ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка испрашивает приоритет предварительной патентной заявки США № 62/883,407, поданной 6 августа 2019 и озаглавленной "BLOCK-BASED ADAPTIVE RESOLUTION MANAGEMENT", которая включена в настоящий документ посредством ссылки во всей своей полноте.
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к области сжатия видео. В частности, настоящее изобретение относится к управлению адаптивным разрешением на блочной основе.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Кодек видео может включать в себя электронную схему или программное обеспечение, которое выполняет сжатие или декомпрессию (восстановление) цифрового видео. Он может преобразовывать несжатое видео в сжатый формат или наоборот. В контексте сжатия видео, устройство, которое сжимает видео (и/или выполняет некоторую функцию этого), обычно называется кодером, и устройство, которое восстанавливает сжатое видео (и/или выполняет некоторую функцию этого), может называться декодером.
Формат сжатых данных может соответствовать стандартной спецификации сжатия видео. Сжатие может быть с потерями в том, что сжатое видео не имеет некоторой информации, присутствующей в исходном видео. Следствием этого является то, что восстановленное видео может иметь более низкое качество, чем исходное несжатое видео, поскольку недостаточно информации для точного восстановления исходного видео.
Могут иметься комплексные отношения между качеством видео, количеством данных, используемых для представления видео (например, определяется скоростью передачи битов), сложностью алгоритмов кодирования и декодирования, чувствительностью к потерям и ошибкам данных, легкостью редактирования, произвольным доступом, сквозной задержкой (например, временем ожидания) и тому подобным.
Компенсация движения может включать в себя подход для предсказания видеокадра или его части с учетом опорного кадра, такого как предыдущий и/или будущий кадры, с учетом движения камеры и/или объектов в видео. Его можно использовать при кодировании и декодировании видеоданных для сжатия видео, например, при кодировании и декодировании с использованием усовершенствованного стандарта кодирования видео (AVC) Группы экспертов по движущимся изображениям (MPEG) (также упоминаемого как H.264). Компенсация движения может описывать картинку с точки зрения преобразования опорной картинки в текущую картинку. Опорная картинка может быть предыдущей по времени по сравнению с текущей картинкой, из будущего при сравнении с текущей картинкой. Когда изображения могут быть точно синтезированы из ранее переданных и/или сохраненных изображений, эффективность сжатия может быть улучшена.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
В одном аспекте, декодер выполнен с возможностью принимать опорный кадр, определять, для текущего блока, константу масштабирования, масштабировать блок опорного кадра в соответствии с константой масштабирования, причем блок опорного кадра соответствует текущему блоку, и восстанавливать пиксельные данные текущего блока с использованием масштабированного блока опорного кадра.
В другом аспекте, способ включает в себя прием опорного кадра, определение, для текущего блока, константы масштабирования, масштабирование блока опорного кадра в соответствии с константой масштабирования, причем блок опорного кадра соответствует текущему блоку, и восстановление пиксельных данных текущего блока и использование масштабированного блока опорного кадра.
Детали одного или более вариантов заявленного изобретения, описанного в настоящем документе, изложены в прилагаемых чертежах и описании ниже. Другие признаки и преимущества заявленного изобретения, описанного в настоящем документе, будут очевидны из описания и чертежей, а также из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для иллюстрации изобретения, на чертежах показаны аспекты одного или более вариантов осуществления изобретения. Однако должно быть понятно, что настоящее изобретение не ограничивается точными компоновками и инструментальными средствами, показанными на чертежах, где:
Фиг. 1 представляет собой иллюстрацию примерного опорного кадра и примерных предсказанных кадров различных масштабов разрешения;
Фиг. 2 представляет собой иллюстрацию, изображающую примерный опорный кадр, примерный повторно масштабированный опорный кадр и примерный последующий процесс предсказания блока;
Фиг. 3 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс в соответствии с некоторыми реализациями настоящего изобретения;
Фиг. 4 представляет собой блок-схему системы, иллюстрирующую примерный декодер, способный декодировать битовый поток в соответствии с некоторыми реализациями настоящего объекта изобретения;
Фиг. 5 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс кодирования видео в соответствии с некоторыми реализациями настоящего изобретения;
Фиг. 6 представляет собой блок-схему системы, иллюстрирующую примерный кодер видео в соответствии с некоторыми реализациями настоящего изобретения; и
Фиг. 7 представляет собой блок-схему вычислительной системы, которая может быть использована для реализации любой одной или более методологий, раскрытых в настоящем документе, и любой одной или более их частей.
Чертежи не обязательно выполнены в масштабе и могут быть проиллюстрированы пунктирными линиями, схематичными представлениями и фрагментарными видами. В некоторых случаях, детали, которые не являются необходимыми для понимания вариантов осуществления или которые затрудняют восприятие других деталей, могут быть опущены. Одинаковые ссылочные позиции на различных чертежах указывают подобные элементы.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Во многих кодерах современного уровня техники, разрешением управляют посредством повторного кодирования и повторной отправки всей части видео, известной как группа картинок (GOP). Это требует отправки интра-кадра (I-кадра), что может сопровождаться дополнительными затратами, так как эти кадры отвечают за объем битов в GOP.
Варианты осуществления, описанные в этом раскрытии, относятся к адаптивному управлению разрешением (ARM), которое представляет собой метод, который обеспечивает дополнительную гибкость для кодера/декодера видео, позволяя осуществлять экономию битовой скорости в различных случаях использования. В общем, ARM включает в себя выполнение предсказания с использованием опорного кадра с разрешением иным, чем у текущего кадра. В современных стандартах кодирования, опорные кадры имеют такое же разрешение, что и предсказанные кадры. В ARM, опорный кадр может иметь меньшее или большее разрешение, чем предсказываемый кадр. Этот подход может быть использован для снижения разрешения видео, следовательно, уменьшая битовую скорость, или повышения разрешения видео, следовательно, облегчая отображение характеристик воспроизведения видео.
ARM может альтернативно или эквивалентно упоминаться, для целей данного раскрытия, как повторная дискретизация опорной картинки (RPR); RPR и ARM могут использоваться взаимозаменяемо.
Некоторые реализации настоящего изобретения могут включать в себя использование ARM для любого количества кадров, в любом положении в GOP, тем самым устраняя требования к повторному кодированию I-кадра.
Фиг. 1 представляет собой иллюстрацию опорного кадра и предсказанных кадров различных масштабов разрешения. Кадр 1 меньше (более низкое разрешение), чем опорный кадр, кадр 2 имеет такой же размер (такое же разрешение), тогда как кадр 3 больше (более высокое разрешение). "Разрешение", как используется в этом раскрытии, представляет собой количество пикселов в картинке, кадре, подкадре и/или другой отображаемой области или ее части, используемой при воспроизведении видео, сжатии или тому подобном, с увеличенным числом пикселов, соответствующим более высокому разрешению, и со сниженным числом пикселов, соответствующим более низкому разрешению. Разрешение может измеряться в терминах области, например, и без ограничения, с использованием одного или более размеров длины, измеренных в пикселах, которые определяют область. Например, круговой подкадр или другая область может иметь разрешение, определяемое в соответствии с радиусом. Альтернативно или дополнительно, разрешение может определяться общим числом пикселов.
В качестве примера, и продолжая ссылаться на фиг. 1, где опорный кадр и/или подкадр имеет геометрическую форму, для которой область может быть определена полностью в терминах двух параметров длины, такую как, без ограничения, треугольная, параллелограммная и/или прямоугольная форма, опорный кадр и/или подкадр может иметь разрешение W×H, где W и H могут указывать число пикселов, описывающих, соответственно, размеры ширины (или базы) и высоты опорного кадра и/или подкадра. Каждый предсказанный кадр может также иметь разрешение, которое может быть определено аналогично разрешению опорного кадра; например, кадр 1 может иметь меньшее разрешение WS×HS, кадр 2 может иметь такое же разрешение, как опорный кадр W×H, и кадр 3 может иметь более высокое разрешение WL×HL. Ширина и высота меньших и больших кадров могут быть получены путем умножения опорной ширины и высоты на произвольную константу повторного масштабирования (Rc), также называемую масштабным коэффициентом и/или константой. В случае меньших кадров, Rc может иметь значение между 0 и 1. В случае больших кадров, Rc может иметь значение больше 1; например, Rc может иметь значение между 1 и 4. Другие значения возможны. Константа повторного масштабирования может быть иной для одной размерности разрешения, чем для другой, например, постоянная повторного масштабирования Rch может быть использована для повторного масштабирования высоты, в то время как другая постоянная повторного масштабирования Rcw может быть использована для повторного масштабирования ширины.
По-прежнему со ссылкой на фиг.1, ARM может быть реализовано как режим. В случае активации режима ARM в некоторый момент во время декодирования, декодер может уже принять опорный кадр с разрешением W×H и может повторно масштабировать предсказанный кадр с использованием константы повторного масштабирования. В некоторых реализациях, кодер может сигнализировать декодеру, какую константу повторного масштабирования использовать. Сигнализация может выполняться в наборе параметров последовательности (SPS), соответствующем GOP, содержащей текущую картинку, и/или в наборе параметров картинки (PPS), соответствующем текущей картинке. Например, и без ограничения, кодер может сигнализировать повторно масштабированные параметры с использованием полей, таких как pps_pic_width_in_luma_samples, pps_pic_height_in_luma_samples, pps_scaling_win_left_offset, pps_scaling_win_right_offset, pps_scaling_win_top_offset, pps_scaling_win_bottom_offset и/или sps_num_subpics_minus1.
Далее, со ссылкой на фиг. 1, параметры W и H, как описано выше, могут быть представлены, без ограничения, с использованием переменных CurrPicScalWinWidthL и CurrPicScalWinHeightL, соответственно; эти переменные могут быть выведены из сигнализируемых параметров, как описано выше, с использованием одного или более математических соотношений между сигнализированными параметрами и переменными. Например, и без ограничения, CurrPicScalWinWidthL может быть выведено в соответствии со следующим уравнением:
CurrPicScalWinWidthL=pps_pic_width_in_luma_samples - SubWidthC * (pps_scaling_win_right_offset+pps_scaling_win_left_offset)
В качестве другого не ограничивающего примера, CurrPicScalWinHeightL может быть выведено в соответствии со следующим уравнением:
CurrPicScalWinWidthL=pps_pic_width_in_luma_samples − SubWidthC * (pps_scaling_win_right_offset+pps_scaling_win_left_offset)
Специалистам в данной области техники, на основе рассмотрения всего этого раскрытия, будут понятны различные альтернативные вычисления, которые могут быть использованы для выведения вышеописанных переменных. Кодер может альтернативно или дополнительно сигнализировать одну или более таких переменных, Rc, Rch и/или Rcw непосредственно, например, и без ограничения в PPS и/или SPS.
Альтернативно или дополнительно, и по-прежнему со ссылкой на фиг. 1, константа повторного масштабирования и/или набор констант повторного масштабирования, как описано выше, может сигнализироваться в битовом потоке с использованием ссылки на индекс сохраненной константы и/или констант масштабирования, и/или кадр и/или блок, который сигнализировался с использованием ранее сигнализированных и/или использованных константы и/или констант масштабирования. Ссылка на индекс сохраненной константы масштабирования может сигнализироваться явно и/или определяться из одного или более дополнительных параметров, сигнализируемых в битовом потоке. Например, и без ограничения, декодер может идентифицировать опорный кадр и/или группу картинок, содержащих текущий кадр; где константа повторного масштабирования ранее была сигнализирована и/или использована в такой группе картинок, с опорным кадром, сигнализированным как применимый к текущему кадру и/или текущей группе картинок, или т.п., декодер может идентифицировать, что константа повторного масштабирования предназначена для использования в качестве константы повторного масштабирования с текущим кадром.
В некоторых реализациях, и продолжая ссылаться на фиг. 1, операция ARM может выполняться на уровне блока закодированных кадров. Например, опорный кадр может сначала повторно масштабироваться, и затем может выполняться предсказание, как показано на фиг. 2. Фиг. 2 является иллюстрацией, изображающей опорный кадр, повторно масштабированный опорный кадр и последующий процесс предсказания блока. Процесс предсказания блока может быть выполнен на масштабированном опорном кадре (имеющем масштабированное разрешение), а не на исходном опорном кадре. Опорный кадр повторного масштабирования может включать в себя повторное масштабирование в соответствии с любым параметром, сигнализируемым кодером, как описано выше; например, и без ограничения, где опорный кадр, который должен использоваться с текущей картинкой, сигнализируется, например, посредством ссылки на значение индекса, ассоциированное с опорным кадром или подобным, при этом сигнализированный опорный кадр может быть повторно масштабирован, перед предсказанием, в соответствии с любым способом повторного масштабирования, описанным выше. Повторно масштабированный опорный кадр может быть сохранен в памяти и/или в буфере, который может включать в себя, без ограничения, буфер, идентифицирующий кадры, содержащиеся в нем, индексами, в соответствии с которыми может быть выполнено извлечение кадра; буфер может включать в себя буфер декодированных картинок (DCB) и/или один или более дополнительных буферов, реализованных декодером. Процесс предсказания может включать в себя, например, предсказание между картинками (межкадровое предсказание), включающее в себя компенсацию движения.
Некоторые реализации АРМ на блочной основе могут обеспечивать гибкость при применении оптимальных фильтров для каждого блока, вместо применения одного и того же фильтра для всего кадра. В некоторых реализациях может быть возможным режим пропуска АРМ, так что некоторые блоки (например, на основе равномерности пикселов и стоимости битовой скорости) могут быть в режиме пропуска ARE (так что повторное масштабирование не изменяет битовую скорость). Режим пропуска АРМ может сигнализироваться в битовом потоке; например, и без ограничения, режим пропуска АРМ может сигнализироваться в параметре PPS. Альтернативно или дополнительно, декодер может определить, что режим пропуска ARM активен, на основе одного или более параметров, установленных декодером и/или сигнализируемых в битовом потоке. Пространственные фильтры, используемые в АРМ на блочной основе, могут включать в себя, без ограничения, бикубические пространственные фильтры, которые применяют бикубическую интерполяцию, билинейные пространственные фильтры, которые применяют билинейную интерпретацию, фильтры Ланцоша, которые используют фильтрацию Ланцоша и/или повторную дискретизацию Ланцоша с использованием комбинации sinc-фильтров, интерполяцию sinc-функции и/или методы восстановления сигнала, или тому подобное; специалистам в данной области техники, при рассмотрении всего этого раскрытия, будут понятны различные фильтры, которые могут быть использованы для интерполяции в соответствии с этим раскрытием.
Фиг. 3 представляет собой блок-схему последовательности операций, иллюстрирующую примерный вариант осуществления процесса 300 адаптивного управления разрешением на блочной основе, который может обеспечивать дополнительную гибкость для кодера/декодера видео, обеспечивающего экономию битовой скорости в различных случаях использования.
На этапе 305, и по-прежнему со ссылкой на фиг. 3, принимается опорный кадр. Опорный кадр может приниматься (например, путем доступа) из памяти; например, и без ограничения, опорный кадр может быть получен путем доступа из буфера кадров. Опорный кадр может быть ранее декодирован из битового потока. Битовый поток может быть принят декодером. Битовый поток может включать в себя текущий блок. Текущий блок может содержаться в битовом потоке, который принимает декодер. Битовый поток может включать в себя, например, данные, найденные в потоке битов, который вводится в декодер, как более подробно описано ниже, при использовании сжатия данных. Битовый поток может включать в себя информацию, необходимую для декодирования видео. Прием может включать в себя извлечение и/или синтаксический анализ блока и ассоциированной информации сигнализации из битового потока. В некоторых реализациях, текущий блок может включать в себя единицу дерева кодирования (CTU), единицу кодирования (CU) или единицу предсказания (PU).
На этапе 310, и продолжая ссылаться на фиг. 3, константа масштабирования может быть определена для текущего блока. В некоторых реализациях, константа масштабирования может быть определена из битового потока. Например, константа масштабирования может сигнализироваться в битовом потоке непосредственно, и/или битовый поток может включать в себя индекс для заданной константы масштабирования.
На этапе 315, и по-прежнему ссылаясь на фиг. 3, блок опорного кадра может быть масштабирован в соответствии с константой масштабирования. Блок опорного кадра может соответствовать текущему блоку, масштабирование блока опорного кадра, может включать в себя интерполирование значений пикселов для определения значений пикселов для масштабированного блока. В некоторых реализациях, интерполирование пиксельных значений может выполняться с использованием фильтров интерполяции суб-пиксельного предсказания. Фильтры интерполяции могут включать в себя, в качестве неограничивающего примера, фильтр нижних частот, который может быть использован, без ограничения, посредством процесса повышающей дискретизации, посредством чего пикселы между пикселами блока и/или кадра перед масштабированием могут быть инициализированы в нуль, а затем заполняются выходом фильтра нижних частот. В качестве альтернативы или дополнительно, может быть использован любой процесс интерполяционной фильтрации выборок яркости. Интерпретация выборки яркости может включать в себя вычисление интерполированного значения при индексе фильтра интерполяции с половинной выборкой, попадающего между двумя последовательными значениями выборок немасштабированного массива выборок. Вычисление интерполированного значения может выполняться, без ограничения, путем извлечения коэффициентов и/или весов из справочных таблиц; выбор справочных таблиц может быть выполнен как функция моделей движения единиц кодирования и/или величин отношения масштабирования, например, как определяется с использованием констант масштабирования, как описано выше. Вычисление может включать в себя, без ограничения, выполнение взвешенных сумм смежных значений пикселов, где веса извлекаются из справочных таблиц. Вычисленные значения могут альтернативно или дополнительно быть сдвинуты, например, и без ограничения, значения могут быть сдвинуты на Min(4, BitDepth − 8), 6, Max(2, 14 − BitDepth) или тому подобное. Специалистам в данной области техники, на основе рассмотрения всего этого раскрытия, будут понятны различные альтернативные или дополнительные реализации, которые могут быть использованы для фильтров интерполяции.
На этапе 320, и далее ссылаясь на фиг. 3, пиксельные данные текущего блока могут быть восстановлены с использованием масштабированного блока опорного кадра. Восстановление пиксельных данных может включать в себя обработку текущего блока с помощью режима интер-предсказания, что может включать в себя определение текущего блока посредством по меньшей мере объединения предсказанного блока с остатком. Предсказанный блок может быть определен с использованием масштабированного блока опорного кадра.
В некоторых реализациях, множество блоков может быть обработано в соответствии с режимом адаптивного управления разрешением. Обработка может включать в себя применение первого фильтра к первому текущему блоку из множества текущих блоков и применение второго фильтра ко второму текущему блоку из множества текущих блоков. Множество блоков может образовывать часть кадра. Декодер может использовать предопределенный упорядоченный список фильтров по умолчанию; кодер может вычислять оптимальный фильтр для данного кадра и/или его части и сигнализировать оптимальный фильтр на декодер.
В некоторых реализациях, битовый поток может включать в себя поле, характеризующее пропуск режима адаптивного управления разрешением.
Фиг. 4 представляет собой блок-схему системы, иллюстрирующую примерный декодер 400, выполненный с возможностью адаптивного управления разрешением на блочной основе. Декодер 400 может включать в себя процессор 404 энтропийного декодера, процессор 408 обратного квантования и обратного преобразования, фильтр 412 устранения блочности, буфер 416 кадров, процессор 420 компенсации движения и/или процессор 424 интра-предсказания.
При работе, и по-прежнему со ссылкой на фиг. 4, битовый поток 428 может приниматься декодером 400 и вводиться в процессор 404 энтропийного декодера, который может энтропийно декодировать части битового потока в квантованные коэффициенты. Квантованные коэффициенты могут быть предоставлены в процессор 408 обратного квантования и обратного преобразования, который может выполнять обратное квантование и обратное преобразование для создания остаточного сигнала, который может быть добавлен к выходу процессора 420 компенсации движения или процессора 424 интра-предсказания в соответствии с режимом обработки. Выход процессора 420 компенсации движения и процессора 424 интра-предсказания может включать в себя предсказание блока на основе ранее декодированного блока. Сумма предсказания и остатка может обрабатываться фильтром 412 устранения блочности и сохраняться в буфере 416 кадров.
Фиг. 5 представляет собой блок-схему последовательности операций, иллюстрирующую примерный процесс 500 кодирования видео в соответствии с адаптивным управлением разрешением на блочной основе, которое может обеспечивать дополнительную гибкость для кодера/декодера видео, обеспечивающего экономию битовой скорости в различных случаях использования. На этапе 505, кадр видео может подвергаться сегментации исходного блока, например, с использованием схемы разбиения макроблоков древовидной структуры, которая может включать в себя разбиение кадра картинки на CTU и CU.
На этапе 510, и по-прежнему со ссылкой на фиг. 5, может выполняться адаптивное управление разрешением на блочной основе, включающее в себя масштабирование разрешения кадра или его части.
На этапе 515, и продолжая ссылаться на фиг. 5, блок может быть закодирован и включен в битовый поток. Кодирование может включать в себя использование, например, режимов интер-предсказания и интра-предсказания.
Фиг. 6 представляет собой блок-схему системы, иллюстрирующую примерный кодер 600 видео, выполненный с возможностью кодирования видео с переупорядочиванием кандидатов объединения на основе глобального вектора движения. Примерный кодер 600 видео может принимать входное видео 604, которое может быть первоначально сегментировано или разделено согласно схеме обработки, такой как схема разбиения макроблоков древовидной структуры (например, квадродерево плюс двоичное дерево). Пример схемы разбиения макроблоков древовидной структуры может включать в себя разбиение кадра картинки на крупные блочные элементы, называемые единицами дерева кодирования (CTU). В некоторых реализациях, каждая CTU может дополнительно разбиваться один или более раз на множество подблоков, называемых единицами кодирования (CU). Конечный результат этого разбиения может включать в себя группу подблоков, которые могут называться единицами предсказания (PU). Также могут быть использованы единицы преобразования (TU).
По-прежнему со ссылкой на фиг. 6, примерный кодер 600 видео может включать в себя процессор 608 интра-предсказания, процессор 612 оценки/компенсации движения, который также может упоминаться как процессор интер-предсказания, способный конструировать список кандидатов вектора движения, включая добавление кандидата глобального вектора движения в список кандидатов вектора движения, процессор 616 преобразования/квантования, процессор 620 обратного квантования/обратного преобразования, внутриконтурный фильтр 624, буфер 628 декодированной картинки и/или процессор 632 энтропийного кодирования. Параметры битового потока могут вводиться в процессор 632 энтропийного кодирования для включения в выходной битовый поток 636.
При работе, и продолжая ссылаться на фиг. 6, для каждого блока кадра входного видео 604, может быть определено, следует ли обрабатывать блок посредством внутрикадрового предсказания или с использованием оценки/компенсации движения. Блок может быть предоставлен на процессор 608 интра-предсказания или процессор 612 оценки/компенсации движения. Если блок должен быть обработан посредством интра-предсказания, процессор 608 интра-предсказания может выполнять обработку для вывода предсказателя. Если блок должен быть обработан посредством оценки/компенсации движения, процессор 612 оценки/компенсации движения может выполнять обработку, включающую в себя конструирование списка кандидатов вектора движения, включая добавление кандидата глобального вектора движения в список кандидатов вектора движения, если применимо.
Далее, со ссылкой на фиг. 6, остаток может быть сформирован вычитанием предсказателя из входного видео. Остаток может приниматься процессором 616 преобразования/квантования, который может выполнять обработку преобразования (например, дискретное косинусное преобразование (DCT)) для получения коэффициентов, которые могут быть квантованы. Квантованные коэффициенты и любая ассоциированная информация сигнализации могут предоставляться на процессор 632 энтропийного кодирования для энтропийного кодирования и включения в выходной битовый поток 636. Процессор 632 энтропийного кодирования может поддерживать кодирование информации сигнализации, относящейся к кодированию текущего блока. Кроме того, квантованные коэффициенты могут предоставляться на процессор 620 обратного квантования/обратного преобразования, который может восстанавливать пикселы, которые могут объединяться с предсказателем и обрабатываться внутриконтурным фильтром 624, выход которого может быть сохранен в буфере 628 декодированной картинки для использования посредством процессора 612 оценки/компенсации движения, который способен конструировать список кандидатов вектора движения, включая добавление кандидата глобального вектора движения в список кандидатов вектора движения.
Продолжая ссылаться на фиг. 6, хотя некоторые варианты были подробно описаны выше, возможны другие модификации или дополнения. Например, в некоторых реализациях, текущие блоки могут включать в себя любые симметричные блоки (8×8, 16×16, 32×32, 64×64, 128×128 и т.п.), а также любой асимметричный блок (8×4, 16×8 и т.п.).
В некоторых реализациях, и по-прежнему со ссылкой на фиг. 6, может быть реализовано квадродерево плюс двоичное дерево решений (QTBТ). В QTBT, на уровне единицы дерева кодирования, параметры разбиения QTBT могут динамически выводиться, чтобы адаптироваться к локальным характеристикам без передачи какой-либо непроизводительной нагрузки. Затем, на уровне единицы кодирования, структура дерева решений объединенного классификатора может устранять ненужные итерации и управлять риском ложного предсказания. В некоторых реализациях, режим обновления блока кадра LTR может быть доступен в качестве дополнительной опции, доступной в каждом листовом узле QTBT.
В некоторых реализациях, и по-прежнему со ссылкой на фиг. 6, дополнительные синтаксические элементы могут сигнализироваться на разных уровнях иерархии битового потока. Например, может быть задействован флаг для всей последовательности посредством включения флага разрешения, кодируемого в наборе параметров последовательности (SPS). Кроме того, флаг CTU может кодироваться на уровне единицы дерева кодирования (CTU).
Некоторые варианты осуществления могут включать в себя не-временные компьютерные программные продукты (т.е. физически осуществленные компьютерные программные продукты), которые хранят инструкции, которые, при исполнении одним или более процессорами данных одной или более вычислительных систем, побуждают по меньшей мере один процессор данных выполнять операции, описанные в настоящем документе.
Варианты осуществления, раскрытые в настоящем документе, включают в себя декодер, причем декодер включает в себя схему, выполненную с возможностью принимать опорный кадр, определять, для текущего блока, константу масштабирования, масштабировать блок опорного кадра в соответствии с константой масштабирования, причем блок опорного кадра соответствует текущему блоку, и восстанавливать пиксельные данные текущего блока с использованием масштабированного блока опорного кадра.
Декодер может быть дополнительно выполнен с возможностью принимать битовый поток и определять, из битового потока, константу масштабирования, причем константа масштабирования сигнализируется в пределах битового потока. Битовый поток может включать в себя индекс для предопределенной константы масштабирования. Декодер может быть выполнен с возможностью принимать опорный кадр посредством доступа к опорному кадру из памяти. Декодер может быть выполнен с возможностью масштабировать блок опорного кадра посредством интерполирования значений пикселов. Интерполирование значений пикселов может быть выполнено с использованием фильтров интерполяции суб-пиксельного предсказания. Восстановление пиксельных данных может включать в себя обработку текущего блока с помощью режима интер-предсказания, при этом восстановление включает в себя определение текущего блока посредством по меньшей мере объединения предсказанного блока с остатком, причем предсказанный блок определяется с использованием масштабированного блока опорного кадра. Декодер может быть выполнен с возможностью принимать битовый поток, причем битовый поток включает в себя поле, характеризующее режим пропуска адаптивного управления разрешением. Декодер может быть дополнительно выполнен с возможностью обрабатывать, в соответствии с режимом адаптивного управления разрешением, множество блоков, причем обработка включает в себя применение первого фильтра к первому текущему блоку из множества текущих блоков и применение второго фильтра ко второму текущему блоку из множества текущих блоков, причем множество блоков образуют часть кадра. Декодер может включать в себя процессор энтропийного декодера, выполненный с возможностью принимать битовый поток и декодировать битовый поток в квантованные коэффициенты, процессор обратного квантования и обратного преобразования, выполненный с возможностью обрабатывать квантованные коэффициенты, включая выполнение обратного дискретного косинусного преобразования, фильтр устранения блочности, буфер кадров и процессор интра-предсказания.
Варианты осуществления, раскрытые в настоящем документе, могут включать в себя способ. Способ может включать в себя прием опорного кадра, определение, для текущего блока, константы масштабирования, масштабирование блока опорного кадра в соответствии с константой масштабирования, причем блок опорного кадра соответствует текущему блоку, и восстановление пиксельных данных текущего блока и использование масштабированного блока опорного кадра.
Способ может дополнительно включать в себя прием битового потока и определение, из битового потока, константы масштабирования, причем константа масштабирования сигнализируется в битовом потоке. Битовый поток может включать в себя индекс для предопределенной константы масштабирования. Прием опорного кадра может включать в себя доступ к опорному кадру из памяти. Масштабирование блока опорного кадра может включать в себя интерполирование значений пикселов. Интерполирование значений пикселов может выполняться с использованием фильтров интерполяции субпиксельного предсказания. Восстановление пиксельных данных включает в себя обработку текущего блока с помощью режима интер-предсказания, при этом обработка дополнительно включает в себя определение текущего блока посредством по меньшей мере объединения предсказанного блока с остатком, причем предсказанный блок определяется с использованием масштабированного блока опорного кадра. Способ может включать в себя прием битового потока, причем битовый поток включает в себя поле, характеризующее режим пропуска адаптивного управления разрешением. Способ может включать в себя обработку, согласно режиму адаптивного управления разрешением, множества блоков, причем обработка может включать в себя применение первого фильтра к первому текущему блоку из множества текущих блоков и применение второго фильтра ко второму текущему блоку из множества текущих блоков, причем множество блоков образуют часть кадра. По меньшей мере одно из приема, определения, масштабирования и восстановления может выполняться декодером, который включает в себя процессор энтропийного декодера, выполненный с возможностью принимать битовый поток и декодировать битовый поток в квантованные коэффициенты, процессор обратного квантования и обратного преобразования, выполненный с возможностью обрабатывать квантованные коэффициенты, включая выполнение обратного дискретного косинусного преобразования, фильтр устранения блочности, буфер кадров и процессор интра-предсказания.
Следует отметить, что любой один или более аспектов и вариантов осуществления, описанных в настоящем документе, могут быть удобным образом реализованы с использованием цифровых электронных схем, интегральных схем, специально разработанных специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), компьютерных аппаратных средств, встроенного программного обеспечения, программного обеспечения и/или их комбинаций, реализованных и/или осуществленных в одной или более машинах (например, одном или более вычислительных устройствах, которые используются в качестве пользовательского вычислительного устройства для электронного документа, одного или более серверных устройств, таких как сервер документов, и т.д.), запрограммированных в соответствии с идеями настоящей спецификации, как будет очевидно специалистам в данной области техники. Эти различные аспекты или признаки могут включать в себя реализацию в одной или более компьютерных программах и/или программном обеспечении, которые исполняются и/или интерпретируются на программируемой системе, включающей в себя по меньшей мере один программируемый процессор, который может быть специализированным или универсальным, соединенным с возможностью приема данных и инструкций и для передачи данных и инструкций от/на систему хранения, по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Соответствующее кодирование программного обеспечения может быть легко подготовлено опытными программистами на основе идей настоящего раскрытия, как будет очевидно специалистам в данной области техники. Аспекты и реализации, обсуждаемые выше, использующие программное обеспечение и/или программные модули, могут также включать в себя соответствующие аппаратные средства для поддержки реализации исполняемых машиной инструкций программного обеспечения и/или программного модуля.
Такое программное обеспечение может представлять собой компьютерный программный продукт, который использует машиночитаемый носитель данных. Машиночитаемый носитель данных может представлять собой любой носитель, который способен хранить и/или кодировать последовательность инструкций для исполнения машиной (например, вычислительным устройством) и который побуждает машину выполнять любую одну из методологий и/или вариантов осуществления, описанных в настоящем документе. Примеры машиночитаемого носителя хранения включают в себя, но без ограничения, магнитный диск, оптический диск (например, CD, CD-R, DVD, DVD-R и т.д.), магнитооптический диск, устройство постоянной памяти "ROM", устройство памяти с произвольной выборкой "RAM", магнитную карту, оптическую карту, твердотельное устройство памяти, EPROM, EEPROM, программируемые логические устройства (PLD) и/или любые их комбинации. Предусматривается, что машиночитаемый носитель, как используется здесь, включает в себя одиночный носитель, а также совокупность физически отдельных носителей, такую как, например, совокупность компакт-дисков, или один или более накопителей на жестких дисках в сочетании с компьютерной памятью. Как используется здесь, машиночитаемый носитель хранения не включает в себя изменяемые во времени формы передачи сигнала.
Такое программное обеспечение может также включать в себя информацию (например, данные), переносимую как сигнал данных на носителе данных, таком как несущая волна. Например, машинно-исполняемая информация может быть включена как несущий данные сигнал, воплощенный в носителе данных, в котором сигнал кодирует последовательность инструкции, или ее часть, для исполнения машиной (например, вычислительным устройством) и любую связанную информацию (например, структуры данных и данные), которая побуждает машину выполнять любую одну из методологий и/или вариантов осуществления, описанных в настоящем документе.
Примеры вычислительного устройства включают в себя, но без ограничения, устройство считывания электронной книги, компьютерную рабочую станцию, терминальный компьютер, серверный компьютер, портативное устройство (например, планшетный компьютер, смартфон и т.д.), веб-прибор, сетевой маршрутизатор, сетевой коммутатор, сетевой мост, любую машину, способную выполнять последовательность инструкций, задающих действие, которое должно предприниматься этой машиной, и любые их комбинации. В одном примере, вычислительное устройство может включать в себя и/или быть включено в киоск.
Фиг. 7 показывает схематичное представление одного варианта осуществления вычислительного устройства в примерной форме компьютерной системы 700, в которой может исполняться набор инструкций для побуждения системы управления выполнять любой один или более аспектов и/или методологий настоящего раскрытия. Также предполагается, что множество вычислительных устройств может использоваться для реализации специально сконфигурированного набора инструкций для побуждения одного или более устройств выполнять любой один или более аспектов и/или методологий настоящего раскрытия. Компьютерная система 700 включает в себя процессор 704 и память 708, которые осуществляют связь друг с другом, и с другими компонентами, через шину 712. Шина 712 может включать в себя любой из нескольких типов шинных структур, включающих в себя, но без ограничения, шину памяти, контроллер памяти, периферийную шину, локальную шину и любые их комбинации, используя любую из множества шинных архитектур.
Память 708 может включать в себя различные компоненты (например, машиночитаемые носители), включающие в себя, но без ограничения, компонент памяти с произвольной выборкой, компонент постоянной памяти и любые их комбинации. В одном примере, базовая система 716 ввода/вывода (BIOS), включающая в себя базовые процедуры, которые помогают переносить информацию между элементами в компьютерной системе 700, например, во время запуска, может храниться в памяти 708. Память 708 может также включать в себя (например, сохраненные на одном или более машиночитаемых носителях) инструкции (например, программное обеспечение) 720, воплощающие любой один или более аспектов и/или методологий настоящего раскрытия. В другом примере, память 708 может дополнительно включать в себя любое количество программных модулей, включающих в себя, но без ограничения, операционную систему, одну или более прикладных программ, другие программные модули, программные данные и любые их комбинации.
Компьютерная система 700 также может включать в себя устройство 724 хранения. Примеры устройства хранения (например, устройства 724 хранения) включают в себя, но без ограничения, накопитель на жестком диске, накопитель на магнитном диске, накопитель на оптическом диске в комбинации с оптическим накопителем, твердотельное устройство памяти и любые их комбинации. Устройство 724 хранения может быть соединено с шиной 712 посредством соответствующего интерфейса (не показан). Примерные интерфейсы включают в себя, но без ограничения, SCSI, соединение по усовершенствованной технологии (ATA), последовательное ATA, универсальную последовательную шину (USB), IEEE 1394 (FIREWIRE) и любые их комбинации. В одном примере, устройство 724 хранения (или один или более его компонентов) может съемно сопрягаться с компьютерной системой 700 (например, через разъем внешнего порта (не показан)). В частности, устройство 724 хранения и ассоциированный машиночитаемый носитель 728 могут обеспечивать энергонезависимое и/или энергозависимое хранение машиночитаемых инструкций, структур данных, программных модулей и/или других данных для компьютерной системы 700. В одном примере, программное обеспечение 720 может постоянно находиться, полностью или частично, в машиночитаемом носителе 728. В другом примере, программное обеспечение 720 может постоянно находиться, полностью или частично, в процессоре 704.
Компьютерная система 700 также может включать в себя устройство 732 ввода. В одном примере, пользователь компьютерной системы 700 может вводить команды и/или другую информацию в компьютерную систему 700 через устройство 732 ввода. Примеры устройства 732 ввода включают в себя, но без ограничения, буквенно-цифровое устройство ввода (например, клавиатуру), координатно-указательное устройство, джойстик, геймпад, устройство аудиоввода (например, микрофон, систему голосового ответа и т.д.), устройство управления курсором (например, мышь), тачпад, оптический сканер, устройство захвата видео (например, фотокамеру, видеокамеру), сенсорный экран и любые их комбинации. Устройство 732 ввода может взаимодействовать с шиной 712 посредством любого из множества интерфейсов (не показаны), включающих в себя, но без ограничения, последовательный интерфейс, параллельный интерфейс, игровой порт, USB-интерфейс, FIREWIRE-интерфейс, прямой интерфейс с шиной 712 и любые их комбинации. Устройство 732 ввода может включать в себя интерфейс сенсорного экрана, который может быть частью или отдельным от дисплея 736, обсуждаемого ниже. Устройство 732 ввода может использоваться в качестве устройства пользовательского выбора для выбора одного или более графических представлений в графическом интерфейсе, как описано выше.
Пользователь также может вводить команды и/или другую информацию в компьютерную систему 700 через устройство 724 хранения (например, накопитель на съемном диске, флэш-накопитель и т.д.) и/или устройство 740 сетевого интерфейса. Устройство сетевого интерфейса, такое как устройство 740 сетевого интерфейса, может быть использовано для соединения компьютерной системы 700 с одной или более из множества сетей, таких как сеть 744, и одним или более удаленными устройствами 748, соединенными с ними. Примеры устройства сетевого интерфейса включают в себя, но без ограничения, карту сетевого интерфейса (например, карту интерфейса мобильной сети, карту LAN), модем и любую их комбинацию. Примеры сети включают в себя, но без ограничения, глобальную сеть (например, Интернет, сеть предприятия), локальную сеть (например, сеть, ассоциированную с офисом, зданием, кампусом или другим относительно небольшим географическим пространством), телефонную сеть, сеть передачи данных, ассоциированную с провайдером телефонной/голосовой связи (например, сеть передачи данных и/или голоса провайдера мобильной связи), прямое соединение между двумя вычислительными устройствами и любые их комбинации. Сеть, такая как сеть 744, может использовать проводной и/или беспроводной режим связи. В общем случае, может быть использована любая сетевая топология. Информация (например, данные, программное обеспечение 720 и т.д.) может передаваться в компьютерную систему 700 и/или из компьютерной системы 700 через устройство 740 сетевого интерфейса.
Компьютерная система 700 может дополнительно включать в себя адаптер 752 видеодисплея для передачи отображаемого изображения на устройство отображения, такое как дисплейное устройство 736. Примеры устройства отображения включают в себя, но без ограничения, жидкокристаллический дисплей (LCD), электронно-лучевую трубку (CRT), плазменный дисплей, дисплей на светоизлучающих диодах (LED) и любые их комбинации. Адаптер 752 дисплея и дисплейное устройство 736 могут использоваться в комбинации с процессором 704 для обеспечения графических представлений аспектов настоящего изобретения. В дополнение к устройству отображения, компьютерная система 700 может включать в себя одно или более других периферийных устройств вывода, включающих в себя, но без ограничения, аудиодинамик, принтер и любые их комбинации. Такие периферийные устройства вывода могут быть соединены с шиной 712 через интерфейс 756 периферийных устройств. Примеры интерфейса периферийных устройств включают в себя, но без ограничения, последовательный порт, USB-соединение, FIREWIRE-соединение, параллельное соединение и любые их комбинации.
Выше приведено подробное описание иллюстративных вариантов осуществления изобретения. Могут быть выполнены различные модификации и дополнения без отклонения от сущности и объема настоящего изобретения. Признаки каждого из различных вариантов осуществления, описанных выше, могут быть объединены с признаками других описанных вариантов осуществления, как это необходимо, для обеспечения множества комбинаций признаков в ассоциированных новых вариантах осуществления. Кроме того, хотя вышеизложенное описывает ряд отдельных вариантов осуществления, то, что было описано в настоящем документе, является просто иллюстрацией применения принципов настоящего изобретения. Кроме того, хотя конкретные способы в настоящем документе могут быть проиллюстрированы и/или описаны как выполняемые в конкретном порядке, упорядочение может варьироваться специалистами для реализации вариантов осуществления, раскрытых в настоящем документе. Соответственно, это описание должно толковаться только в качестве примера, а не для ограничения объема настоящего изобретения.
В описаниях выше и в формуле изобретения могут использоваться фразы, такие как "по меньшей мере один из" или "один или более из", за которыми следует конъюнктивный список элементов или признаков. Термин "и/или" может также встречаться в списке из двух или более элементов или признаков. Если только иное неявно или явно не вступает в противоречие с контекстом, в котором оно используется, такая фраза предназначена обозначать любой из перечисленных элементов или признаков индивидуально или любой из перечисленных элементов или признаков в комбинации с любым из других перечисленных элементов или признаков. Например, фразы "по меньшей мере один из А и В"; "один или более из А и В"; и "А и/или В" предназначены, каждая, для обозначения "только А, только В, или А и В вместе". Сходная интерпретация также предназначена для списков, включающих в себя три или более элементов. Например, фразы "по меньшей мере одно из А, В и С"; "одно или более из А, В и С "; и "А, В и/или С" предназначены, каждая, для обозначения "только А, только В, только С, А и В вместе, А и С вместе, В и С вместе, или А и В и С вместе". Кроме того, использование термина "на основе" выше и в формуле изобретения предназначено для обозначения "на основе по меньшей мере частично", так что неуказанный признак или элемент также является допустимым.
Заявленное изобретение, описанное в настоящем документе, может быть воплощено в системах, устройствах, способах и/или промышленных изделиях в зависимости от желаемой конфигурации. Варианты осуществления, изложенные в вышеприведенном описании, не представляют все реализации, согласующиеся с заявленным изобретением, описанным в настоящем документе. Вместо этого, они являются лишь некоторыми примерами, согласующимися с аспектами, связанными с описываемым заявленным изобретением. Хотя выше подробно описаны несколько вариантов, возможны другие модификации или дополнения. В частности, дополнительные признаки и/или варианты могут быть предусмотрены в дополнение к изложенным в настоящем документе. Например, описанные выше реализации могут быть направлены на различные комбинации и подкомбинации раскрытых признаков и/или комбинации и подкомбинации некоторых дополнительных признаков, раскрытых выше. Кроме того, логические последовательности, изображенные на прилагаемых чертежах и/или описанные в настоящем документе, не обязательно требуют показанного конкретного порядка или последовательного порядка, для достижения желаемых результатов. Другие реализации могут находиться в пределах объема нижеследующей формулы изобретения.
Изобретение относится к области сжатия видео, в частности к управлению адаптивным разрешением на блочной основе. Техническим результатом является повышение эффективности сжатия видео. Предложен декодер, реализующий способ, который включает в себя этапы: принимают опорный кадр, определяют, для текущего блока, константу масштабирования; масштабируют блок опорного кадра в соответствии с константой масштабирования, причем блок опорного кадра соответствует текущему блоку; и восстанавливают пиксельные данные текущего блока и используют масштабированный блок опорного кадра. 9 з.п. ф-лы, 7 ил.
1. Декодер, содержащий схему, выполненную с возможностью:
принимать битовый поток, включающий в себя опорный кадр и текущий кадр, включающий в себя кодированный текущий блок, причем битовый поток также включает в себя индекс для определения масштабного коэффициента;
определять, что режим на блочной основе активирован, когда опорный кадр и текущий кадр имеют разные разрешения;
используя данный режим, восстанавливать кодированный текущий блок посредством:
определения масштабного коэффициента для текущего блока с использованием индекса в битовом потоке,
определения масштабированного предсказанного блока посредством масштабирования блока опорного кадра с использованием масштабного коэффициента и посредством применения первого интерполяционного фильтра, определенного для данного предсказанного блока, и
объединения масштабированного предсказанного блока с остатком.
2. Декодер по п.1, причем масштабный коэффициент содержит константу масштабирования высоты.
3. Декодер по п.1, причем масштабный коэффициент содержит константу масштабирования ширины.
4. Декодер по п.1, причем декодер выполнен с возможностью масштабировать блок опорного кадра посредством интерполирования значений пикселов.
5. Декодер по п.4, в котором интерполирование значений пикселов выполняется с использованием процессора интерполяции дискретных отсчетов яркости.
6. Декодер по п.1, причем текущий блок включает в себя единицу кодирования.
7. Декодер по п.1, причем текущий блок включает в себя единицу дерева кодирования.
8. Декодер по п.1, причем первый интерполяционный фильтр является бикубическим пространственным фильтром.
9. Декодер по п.1, причем текущий кадр включает в себя второй кодированный текущий блок, при этом упомянутый режим пропускается для второго кодированного текущего блока, причем декодер восстанавливает второй кодированный текущий блок без использования масштабированного предсказанного блока опорного кадра.
10. Декодер по п.1, причем текущий кадр включает в себя второй кодированный текущий блок, при этом, используя упомянутый режим, второй кодированный текущий блок восстанавливается с использованием второго интерполяционного фильтра, отличающегося от первого интерполяционного фильтра.
Byeongdoo Choi et al, AHG8: Signaling and Filtering for Reference Picture Resampling, Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O0332, 15 Meeting: Gothenburg, 3-12 July 2019 | |||
Hendry Seungwook Hong et al, AHG19: Adaptive resolution change (ARC) support in VVC, Joint Video Experts Team (JVET) of ITU-T SG |
Авторы
Даты
2025-03-13—Публикация
2020-08-06—Подача