Область техники
Предложен способ кодирования, способ декодирования, устройство, компьютерный программный продукт, кодер и декодер.
Предпосылки создания изобретения
Данный раздел имеет целью описание предпосылок или контекста настоящего изобретения, изложенного в формуле изобретения. Описание может включать идеи, которые могли бы быть предложены, но при этом не все из них уже были предложены или разработаны ранее. Таким образом, если не указано обратное, описанное в настоящем разделе не является существующим уровнем техники для описания и формулы изобретения настоящей заявки, и не признается таковым вследствие включения в настоящий раздел.
Видеокодек может иметь в своем составе кодер, который преобразует входные видеоданные в их сжатое представление, приспособленное для хранения и/или передачи, и декодер, который распаковывает сжатое представление видеоданных обратно в подходящую для просмотра форму, или только один из этих элементов. В кодере часть информации исходной видеопоследовательности может быть отброшена для представления видеоданных в более компактной форме, к примеру, с меньшим битрейтом.
Многие гибридные видеокодеки, например, работающие по стандартам кодирования Международного союза электросвязи ITU-T Н.263 и Н.264, обеспечивают кодирование видеоинформации в два этапа. На первом этапе предсказывают значения пикселей в определенной области изображения, или «блоке пикселей». Эти значения пикселей могут предсказываться, к примеру, с помощью механизмов компенсации движения, в которых применяются поиск и указание на область в одном из ранее кодированных видеокадров (или в позднее кодируемом видеокадре), близко соответствующую кодируемому блоку. В дополнение, значения пикселей могут быть предсказаны с помощью пространственных механизмов, в которых применяются поиск связей между некоторыми пространственными областями и передача указаний на эти связи, к примеру, с использованием значений пикселей вокруг блока пикселей, кодируемого заданным образом.
При этом методы предсказания, в которых используется видеоинформация из предыдущих или последующих изображений, могут называться методами внешнего предсказания (Inter prediction), тогда как подходы, в которых применяется предсказание с использованием видеоинформации внутри одного изображения, могут называться методами внутреннего предсказания (Intra prediction).
Второй этап - это этап кодирования расхождения между предсказанным блоком пикселей и исходным блоком пикселей. Это осуществляют, как правило, при помощи преобразования разности значений пикселей с использованием выбранного метода преобразования. Таким преобразованием может быть, например, дискретное косинусное преобразование (Discrete Cosine Transform, DCT) или какая-либо его разновидность. Преобразованная разность, после осуществления преобразования, может быть квантована и энтропийно кодирована.
Меняя точность процедуры квантования в кодере можно управлять балансом между достоверностью пиксельного представления (другими, словами, качеством изображения) и размером результирующего кодированного представления видеоданных (другими словами, размером файла или битрейтом передачи).
Декодер восстанавливает выходные видеоданные при помощи механизма предсказания, аналогичного применяемому кодером, для формирования предсказанного представления пиксельных блоков (с использованием информации о движении или пространственной информации, созданной кодером и хранимой в сжатом представлении изображения), и декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания для восстановления квантованного сигнала ошибки предсказания в пространственной области).
После применения процедур предсказания пикселей и декодирования ошибки декодер комбинирует сигнал предсказания и сигнал ошибки предсказания (значения пикселей), формируя выходной видеокадра.
В декодере (как и кодере) могут при этом применяться вспомогательные процедуры фильтрации для повышения качества выходного видеосигнала перед его передачей для отображения и/или перед сохранением его в качестве опорного предсказания для будущих кадров видеопоследовательности.
В некоторых видеокодеках, например, в 4-ой рабочей версии (Draft 4) кодека высокоэффективного видеокодирования (High Efficiency Video Coding), видеоизображения разбивают на блоки кодирования (coding units, CU), покрывающие область изображения. Каждый блок кодирования состоит из одного или более блоков предсказания (prediction units, PU), определяющих процедуру предсказания пиксельных значений блока кодирования, а также из одного или более блоков преобразования (transform units, TU), определяющих процедуру кодирования ошибки предсказания для пиксельных значений блока кодирования. Блок кодирования может представлять собой квадратный блок пиксельных значений, размер которого выбирают из заранее заданного множества возможных размеров блока кодирования. Блок кодирования максимально допустимого размера может быть назван наибольшим блоком кодирования (largest coding unit), при этом видеоизображение может разбиваться на неперекрывающиеся наибольшие блоки кодирования. Наибольший блок кодирования может быть, в свою очередь, разбит на комбинацию менее крупных блоков кодирования, например, путем рекурсивного разделения наибольшего блока кодирования и результирующих блоков кодирования. Каждый результирующий блок кодирования может иметь связанные с ним по меньшей мере один блок предсказания и по меньшей мере один блок преобразования. Каждый блок предсказания и каждый блок преобразования, с целью повышения детализации предсказания и процедур кодирования ошибки предсказания, соответственно, в свою очередь, могут быть разделены на менее крупные блоки предсказания и блоки преобразования. Каждый блок предсказания может включать связанную с ним информацию предсказания, которая определяет тип применяемого предсказания для пикселей в этом блоке предсказания (например, информация вектора движения для блоков предсказания при использовании метода внутреннего предсказания и информация о направленности внешнего предсказания для блоков предсказания при использовании метода внешнего предсказания). Аналогично, каждый блок преобразования может быть связан с информацией, описывающей процедуру декодирования ошибки предсказания для пиксельных значений в этом блоке преобразования (включая, например, информацию о коэффициентах дискретного косинусного преобразования (DCT)). На уровне блока кодирования может сигнализироваться информация о том, было ли применено кодирование ошибки предсказания в этом блоке кодирования или нет. В случае, если с блоком кодирования не связано остаточной ошибки предсказания, считается, что для этого блока кодирования блоки преобразования отсутствуют. Информация о разбиении изображения на блоки кодирования и о разделении блоков кодирования на блоки предсказания и блоки преобразования может сигнализироваться в битовом потоке, что позволяет декодеру восстанавливать исходную структуру этих блоков.
В некоторых из видеокодеков, при использовании метода компенсации движения, информацию о движении указывают с помощью векторов движения, связанных с каждым блоком пикселей изображения. Эти векторы движения отражают смещение блока пикселей кодируемого (в кодере) или декодируемого (в декодере) изображения, а также указывают на исходный блок предсказания в одном из ранее кодированных или декодированных изображениях (или кадрах). С целью повышения эффективности представления векторов движения их кодирование может выполняться дифференциально относительно предсказанного вектора движения, определенного для каждого блока. В некоторых видеокодеках предсказания векторов движения формируют заранее заданным способом, например, при помощи вычисления среднего значения кодированных или декодированных векторов движения смежных блоков.
Другим способом создания предсказания вектора движения является формирование списка, или набора, "кандидатов для предсказания" на основе блоков пикселей в текущем кадре и/или в смежных с ним кадрах, или других блоков пикселей во временных опорных изображениях, и сигнализация выбранного кандидата для предсказания в качестве предсказания вектора движения. Пространственное предсказание вектора движения - это предсказание, полученное исключительно на основе информации одного или более блоков пикселей в том же самом текущем кадре, тогда как временное предсказание вектора движения - это предсказание, полученное на основе информации одного или более блоков пикселей в кадре, не являющемся текущим кадром. Возможно также получение предсказаний вектора движения с комбинированием информации пространственного и временного предсказаний для одного или более кодированных блоков. Такие предсказания векторов движения называют пространственно-временными предсказаниями вектора движения.
В дополнение к предсказанию значений векторов движения может также предсказываться индекс опорного изображения в списке опорных изображений. Индекс опорного изображения может предсказываться на основе блоков пикселей текущего и/или смежных кадров, или других блоков пикселей во временном опорном изображении. При этом в некоторых высокопроизводительных видеокодеках применяют вспомогательный механизм кодирования и декодирования информации о движении, часто называемый режимом объединения (merge mode), в котором предсказание и использование всей информации поля движения, включающей вектор движения и соответствующий индекс опорного изображения для каждого имеющегося в наличии списка опорных изображений, может выполняться без каких-либо изменений или коррекций. Аналогично, предсказание информации поля движения может осуществляться с использованием информации поля движения блоков пикселей в текущем и/или смежных кадрах, или других блоков пикселей во временных опорных кадрах, при этом используемую информацию поля движения сигнализируют в списке кандидатов для полей движения, заполненных информацией полей движения блоков пикселей, доступных в текущем кадре и/или смежных блоков пикселей, или других блоков пикселей во временных опорных кадрах.
В некоторых из видеокодеков остаток предсказания после компенсации движения сначала преобразуют с использованием процедуры преобразования (например, DCT) и затем кодируют. Причиной этому является частое наличие определенной корреляции в упомянутом остатке, при этом преобразование во многих случаях позволяет снизить корреляцию и получить более эффективное кодирование.
В некоторых видеокодеках для поиска оптимальных моделей кодирования применяют функцию стоимости Лагранжа, например, для определения нужного режима макроблока и связанных с ним векторов движения. В функции стоимости подобного типа искажение изображения (точное или прогнозируемое) из-за методов кодирования с потерями и количество информации (точное или прогнозируемое), необходимое для представления пиксельных значений в некоторой области изображения связаны с использованием коэффициента λ:
где С - оптимизируемое значение функции Лагранжа, D - искажение изображения (например, среднеквадратическая ошибка) с учетом режима и векторов движения, a R - количество битов, необходимое для представления данных, требуемых для восстановления блока изображения в декодере (включая количество данных для представления кандидатов для векторов движения).
В некоторых видеокодеках (например, в гибридных) может формироваться список предсказаний векторов движения (motion vector predictions, MVP), состоящий из векторов движения пространственно смежных блоков пикселей (пространственные MVP) и/или векторов движения блоков пикселей в ранее декодированном кадре (временные MVP). Один из кандидатов для векторов в этом списке сигнализируют для использования его в качестве предсказания вектора движения текущего блока. После формирования списка некоторые из кандидатов для векторов движения могут иметь идентичную информацию о движении. В таком случае идентичные векторы-кандидаты могут быть удалены, чтобы исключить избыточность. При декодировании, если информация по временным предсказаниям векторов движении недоступна, например, в результате потери опорного кадра, декодер может не иметь информации о необходимости удаления кандидата для временного предсказания вектора движения из списка. Это может привести к возникновению неопределенности при сопоставлении декодированного индекса кандидата для предсказания с кандидатами для предсказания, решение об удалении которых основано на сравнении информации о движении с временными предсказаниями векторов движения. В результате может произойти ложное назначение кандидатов для векторов движения, что ведет к ухудшению качества изображения и к дальнейшему распространению ложной информации о движении в процессе декодирования.
Сущность изобретения
В настоящем изобретении предложен способ формирования списка предсказаний векторов движения для блока пикселей в изображении. В некоторых из вариантов осуществления настоящего изобретения в видеокодеках при построении списка кандидатов для предсказания движения применяют метод, позволяющий снизить сложность реализации этой процедуры. Это может достигаться за счет выполнения ограниченного количества сравнений информации о движении среди пар-кандидатов с целью удаления избыточных кандидатов, чтобы не выполнять сравнения всех имеющихся пар кандидатов. Решение о сравнении двух кандидатов может основываться на порядке рассматриваемых кандидатов в списке и/или на режиме кодирования/предсказания, и/или на местоположении блоков пикселей, связанных с этими кандидатами для предсказания. В некоторых из вариантов осуществления настоящего изобретения в видеокодеке при кодировании информации о движении применяют процедуру объединения и создают список кандидатов для предсказания движения, один кандидат из которого будет сигнализирован в качестве информации о движении для текущего блока кодирования или предсказания. Кандидаты для предсказания движения могут состоять из нескольких пространственных предсказаний движения и временного предсказания движения. Кандидатов для пространственного предсказания получают, например, на основе информации о движении пространственно смежных блоков пикселей.
В соответствии с первым аспектом настоящего изобретения предложен способ, включающий:
прием блока пикселей, включающего блок предсказания; определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии со вторым аспектом настоящего изобретения предложен способ, включающий:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с третьим аспектом настоящего изобретения, предложено устройство, имеющее в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с четвертым аспектом настоящего изобретения предложено устройство, имеющее в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с пятым аспектом настоящего изобретения, предложен носитель данных, содержащий хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема блока пикселей, включающего блок предсказания; определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В соответствии с шестым аспектом настоящего изобретения предложен носитель данных, содержащий хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с седьмым аспектом настоящего изобретения, предложено устройство, включающее:
средства приема блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В соответствии с восьмым аспектом настоящего изобретения, предложено устройство, включающее:
средства приема кодированного блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
Описание чертежей
Для более глубокого понимания настоящего изобретения далее, в качестве примеров, будут осуществляться ссылки на приложенные чертежи, где:
Фиг. 1 схематично иллюстрирует электронное устройство, в котором применяются некоторые из вариантов осуществления настоящего изобретения;
Фиг. 2 схематично иллюстрирует абонентское оборудование, подходящее для применения некоторых из вариантов осуществления настоящего изобретения;
Фиг. 3 также схематично иллюстрирует электронные устройства, в которых применяются варианты осуществления настоящего изобретения и которые связаны с помощью беспроводных и проводных сетевых соединений;
Фиг. 4а схематично иллюстрирует один из вариантов осуществления настоящего изобретения в составе кодера;
Фиг. 4b схематично иллюстрирует один из вариантов формирования и модификации списка опорных изображений предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения;
Фиг. 5а и 5b иллюстрируют блок-схему алгоритма, демонстрирующую работу одного из вариантов осуществления настоящего изобретения в отношении кодера, показанного на фиг. 4а;
Фиг. 6а иллюстрирует один из примеров пространственного и временного предсказания блока предсказания;
Фиг. 6b иллюстрирует другой пример пространственного и временного предсказания для блока предсказания;
Фиг. 7 схематично иллюстрирует один из вариантов осуществления настоящего изобретения в составе декодера;
Фиг. 8а и 8b иллюстрируют блок-схему алгоритма, демонстрирующую работу одного из вариантов осуществления настоящего изобретения в отношении декодера, показанного на фиг. 7;
Фиг. 9 иллюстрирует пример блока кодирования и нескольких блоков пикселей, смежных с этим блоком кодирования;
Фиг. 10а иллюстрирует пример горизонтального разбиения блока кодирования;
Фиг. 10b иллюстрирует пример вертикального разбиения блока кодирования;
Фиг. 11а иллюстрирует местоположения пяти блоков А0, А1, В0, В1, В2, пространственно смежных с блоком предсказания, сформированного как второй блок предсказания разбитого по горизонтали блока кодирования;
Фиг. 11b иллюстрирует местоположения пяти блоков, пространственно смежных с блоком предсказания, сформированного как второй блок предсказания разбитого по вертикали блока кодирования; и
Фиг. 12 иллюстрирует пример некоторых из блоков, пространственно смежных с блоком кодирования.
Подробное описание некоторых из примеров осуществления изобретения
Ниже более подробно описаны устройства и возможные механизмы, подходящие для повышения точности предсказания, и следовательно, потенциального уменьшения объема информации, передаваемой в системах видеокодирования. С этой целью обратимся сначала к фиг. 1, где проиллюстрирована упрощенная блок-схема одного из примеров аппаратуры, или электронного устройства 50, которое может иметь в своем составе кодек в соответствии с одним из вариантов осуществления настоящего изобретения.
Электронное устройство 50 может, к примеру, представлять собой терминал или абонентское оборудование системы беспроводной связи. Тем не менее, нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы в любых электронных устройствах или аппаратуре, где необходимы кодирование и декодирование, или же кодирование или декодирование видеоизображений.
Устройство 50 может иметь в своем составе корпус 30 для размещения и защиты устройства. Устройство 50 может также включать дисплей 32 в виде дисплея на жидких кристаллах. В других вариантах осуществления настоящего изобретения упомянутый дисплей может быть выполнен по любой технологии, подходящей для отображения изображений или видеоинформации. Устройство 50 может также включать клавиатуру 34. В других вариантах осуществления настоящего изобретения может применяться любой подходящий интерфейс обмена данными или пользовательский интерфейс. К примеру, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного дисплея. Устройство может включать микрофон 36 или любое другое подходящее устройство ввода аудиоинформации, которое может быть устройством ввода цифрового или аналогового сигнала. Устройство 50 может также включать устройство вывода аудиоинформации, которое в вариантах осуществления настоящего изобретения может представлять собой любое из следующего: головной телефон 38, громкоговоритель или же аналоговое или цифровое соединение для вывода аудиоинформации. Устройство 50 может также включать аккумулятор 50 (или, в других вариантах осуществления настоящего изобретения, устройство может снабжаться электроэнергией от любого подходящего мобильного энергетического устройства, например, солнечной батареи, топливной батареи или заводного генератора). Устройство может также включать инфракрасный порт 42 для связи с другими устройствами в ближней зоне прямой видимости. В других вариантах осуществления настоящего изобретения устройство может включать любые подходящие решения для связи малой дальности, например, беспроводное соединение Bluetooth или проводное соединение USB/Firewire.
Устройство 50 может включать контроллер 56 или процессор для управления устройством 50. Контроллер 56 может быть соединен с памятью 58, которая в различных вариантах осуществления настоящего изобретения может хранить данные одновременно в форме видеоинформации и аудиоинформации, и/или может также хранить инструкции для исполнения в контроллере 56. Контроллер 56 может быть также соединен со схемами 54 кодека, способными осуществлять кодирование и декодирование аудио- и/или видеоданных или являться вспомогательным средством при кодировании и декодировании, выполняемом контроллером 56.
Устройство 50 может также включать устройство 48 чтения карт и смарт-карту 46, например, карту UICC и устройство чтения UICC-карт, для предоставления информации об абоненте и для обеспечения возможности предоставления аутентификационной информации с целью аутентификации и авторизации абонента в сети.
Устройство 50 может включать схемы 52 радиоинтерфейса, связанные с контроллером, которые могут использоваться для формирования сигналов беспроводной связи, например, для связи с сетью сотовой связи, системой беспроводной связи или беспроводной локальной вычислительной сетью. Устройство 50 может также включать антенну 44, связанную со схемами 52 радиоинтерфейса, для передачи радиочастотных сигналов, формируемых в схемах 52 радиоинтерфейса, в другое устройство (или устройства), а также для приема радиочастотных сигналов от другого устройства (или устройств).
В некоторых вариантах осуществления настоящего изобретения устройство 50 включает камеру, способную записывать или регистрировать отдельные кадры, которые затем передают в кодек 54 или контроллер для обработки. В некоторых вариантах осуществления настоящего изобретения устройство может принимать от другого устройства данные видеоизображений для обработки перед их передачей и/или хранением. В некоторых вариантах осуществления настоящего изобретения устройство 50 может принимать изображение для кодирования/декодирования либо беспроводным способом, либо по проводному соединению.
Обратимся к фиг. 3, где изображена система 10, в которой могут использоваться различные варианты осуществления настоящего изобретения. Система 10 включает несколько устройств связи, способных осуществлять связь при помощи одной или нескольких сетей. В состав системы 10 может входить любая комбинация проводных и беспроводных сетей, включая, без ограничения перечисленным, беспроводную сотовую телефонную сеть (например, сеть GSM, UMTS, CDMA и т.п.), беспроводную локальную вычислительную сеть (wireless local area network, WLAN), например, в соответствии с определением в любом из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную вычислительную сеть Ethernet, локальную вычислительную сеть типа «маркерное кольцо», глобальную сеть и Интернет.
Система 10 может включать как проводные, так и беспроводные устройства связи, а также устройство 50, подходящее для реализации вариантов осуществления настоящего изобретения.
В качестве примера на фиг. 3 показана мобильная телефонная сеть 11 и Интернет 28. Соединение с Интернетом 28 может включать, без ограничения перечисленным, беспроводные соединения с большим радиусом действия, беспроводные соединения с малым радиусом действия, а также различные проводные соединения, включая, без ограничения перечисленным, телефонные линии, кабельные линии, линии электропередач и аналогичные каналы связи.
Примерами устройств связи в системе 10 могут служить, без ограничения перечисленным, электронное устройство 50, комбинация карманного персонального компьютера (personal digital assistant, PDA) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (integrated messaging device, IMD), настольный компьютер 20, ноутбук 22 и т.д. Устройства 50 связи могут быть как стационарными, так и мобильными, например, они могут переноситься лицами, находящимися в движении. Устройство 50 может также размещаться на транспортном средстве, включая, без ограничения перечисленным, автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.
Некоторые из этих или других устройств могут как посылать, так и принимать вызовы и сообщения, а также осуществлять связь с операторами связи при помощи беспроводного соединения 25 с базовой станцией 24. Базовая станция 24 может быть соединена с сетевым сервером 26, обеспечивающим связь между средствами 11 связи и Интернетом 28. Система может включать дополнительные устройства связи, а также устройства связи других типов.
Устройства связи могут осуществлять связь с использованием различных технологий передачи данных, включая, без ограничения перечисленным, множественный доступ с кодовым разделением (Code Division Multiple Access, CDMA), глобальную систему мобильной связи (Global System for Mobile Communications, GSM), универсальную систему мобильной связи (Universal Mobile Telecommunication System, UMTS), множественный доступ с разделением по времени (Time Division Multiple Access, TDMA), множественный доступ с разделением по частоте (Frequency Division Multiple Access, FDMA), протокол управления передачей/протокол Интернета (Transmission Control Protocol/Internet Protocol, TCP-IP), службу коротких сообщений (Short Messaging Service, SMS), службу мультимедийных сообщений (Multimedia Messaging Service, MMS), электронную почту, сервис мгновенной передачи сообщений (Instant Messaging Service, IMS), Bluetooth, IEEE 802.11 и любые аналогичные технологии беспроводной связи. Устройство связи, используемое при реализации различных вариантов осуществления настоящего изобретения, может осуществлять связь с использованием различных сред передачи данных, включая, без ограничения, радиосоединения, инфракрасные, лазерные, кабельные соединения или любые другие подходящие соединения.
Обратимся к фиг. 4а, где проиллюстрирована блок-схема видеокодера, подходящего для реализации вариантов осуществления настоящего изобретения. Также рассмотрим фиг. 5а и 5b, где в виде блок-схемы алгоритма проиллюстрирована работа одного из примеров осуществления кодера в соответствии с настоящим изобретением, а именно, в отношении создания списка кандидатов для предсказания.
На фиг. 4а показан кодер, который включает устройство 302 предсказания пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. Также на фиг. 4а показан один из вариантов осуществления устройства 302 предсказания пикселей, включающего устройство 306 внешнего предсказания, устройство 308 внутреннего предсказания, селектор 310 режима, фильтр 316 и память 318 опорных кадров. В данном варианте осуществления настоящего изобретения селектор 310 режима включает процессор 381 блоков пикселей и вычислитель 382 функции стоимости. Кодер может также иметь в своем составе энтропийный кодер 330 для энтропийного кодирования битового потока.
На фиг. 4b показан один из вариантов осуществления устройства 306 внешнего предсказания. Устройство 306 внешнего предсказания включает селектор 360 опорного кадра для выбора опорного кадра или кадров, устройство 361 определения векторов движения, модификатор 363 списка предсказаний и селектор 364 вектора движения. Все эти элементы (или их часть) могут быть реализованы, например, в процессоре 362 предсказаний или с помощью других средств.
Устройство 302 предсказания пикселей принимает кодируемое изображение 300 одновременно в устройство 306 внешнего предсказания (которое определяет разницу между этим изображением и опорным кадром 318 компенсации движения) и в устройство 308 внутреннего предсказания (которое определяет предсказание для блока изображения, исходя только из уже обработанных частей текущего кадра или изображения). Выходные данные из устройства внешнего предсказания и из устройства внутреннего предсказания могут быть переданы в селектор 310 режима. Устройство 308 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, с помощью каждого из этих режимов может осуществляться внутреннее предсказание, и затем сигнал предсказания может предоставляться в селектор 310 режима. В селектор 310 режима передается также копия изображения 300.
Селектор 310 режима определяет, какой режим кодирования использовать для кодирования текущего блока. Если селектор 310 режима принимает решение использовать режим внешнего предсказания, то он передает выходные данные устройства 306 внешнего предсказания на выход селектора 310 режима. Если селектор 310 режима принимает решение использовать режим внутреннего предсказания, то он передает на выход селектора 310 режима выходные данные одного из режимов внутреннего предсказания.
Выходные данные селектора режима передают в первое суммирующее устройство 321. Первое суммирующее устройство может вычитать выходные данные устройства 302 предсказания пикселей из изображения 300 с формированием первого сигнала 320 ошибки предсказания, который подают на вход кодера 303 ошибки предсказания.
Также устройство 302 предсказания пикселей принимает от устройства 339 предварительного восстановления комбинацию предсказанного представления блока 312 изображения и выходные данные 338 кодера 304 ошибки предсказания. Предварительно восстановленное изображение 314 может быть передано в устройство 308 внутреннего предсказания и фильтр 316. Фильтр 316, принимающий предварительное представление блока, может выполнять фильтрацию этого предварительного представления и выдавать окончательное восстановленное изображение 340, которое может сохраняться в памяти 318 опорных кадров. Память 318 опорных кадров может иметь соединение с устройством 306 внешнего предсказания и использоваться для предоставления опорного изображения, с которым сравнивают будущее изображение 300 во время выполнения операций внешнего предсказания.
Устройство 302 предсказания пикселей может быть сконфигурировано таким образом, чтобы при функционировании реализовывать любой из известных на существующем уровне техники алгоритмов предсказания пикселей.
Устройство 302 предсказания пикселей может также включать фильтр 385 для фильтрации предсказанных значений перед выводом их из устройства 302 предсказания пикселей.
Далее более подробно будет описана работа кодера 303 ошибки предсказания и декодера 304 ошибки предсказания. В приведенных ниже примерах кодер формирует изображения в виде макроблоков 16×16 пикселей, из которых затем формируется полное изображение или кадр.
Итак, в приведенных ниже примерах устройство 302 предсказания пикселей выдает последовательность предсказанных макроблоков размером 16×16 пикселей, а первое суммирующее устройство 321 выдает последовательность макроблоков данных остатка (размером 16×16 пикселей), которые могут представлять расхождение между первым макроблоком в изображении 300 и предсказанным макроблоком (выходными данными устройства 302 предсказания пикселей). Следует понимать, что может использоваться и другой размер макроблоков.
Кодер 303 ошибки предсказания имеет в своем составе блок 342 преобразования и квантователь 344. Блок 342 преобразования преобразует первый сигнал 320 ошибки предсказания в область преобразования. Таким преобразованием является, к примеру, преобразование DCT. Квантователь 344 квантует сигнал, например, коэффициенты DCT, в области преобразования и формирует квантованные коэффициенты.
Декодер 304 ошибки предсказания принимает выходные данные от кодера 303 ошибки предсказания, выполняет процедуры, обратные кодеру 303 ошибки предсказания, и формирует декодированный сигнал 338 ошибки предсказания, который, после комбинирования с предсказанным представлением блока 312 изображения во втором суммирующем устройстве 339, образует предварительное восстановленное изображение 314. Декодер ошибки предсказания можно рассматривать как имеющий в своем составе деквантователь 346, который деквантует квантованные значения коэффициентов, например, коэффициентов DCT, и восстанавливает преобразованный сигнал, а также как включающий блок 348 обратного преобразования, который выполняет обратное преобразование и формирует восстановленный сигнал (из ранее преобразованного сигнала), при этом выходные данные блока 348 обратного преобразования содержат восстановленный блок (или блоки). Декодер ошибки предсказания может также включать фильтр макроблоков (не показан), который может фильтровать восстановленный макроблок в соответствии с дополнительной декодированной информацией и параметрами фильтрации.
Ниже более подробно описана работа одного из примеров устройства 306 внешнего предсказания. Устройство 306 внешнего предсказания принимает текущий блок пикселей с целью выполнения внешнего предсказания. Допустим, текущий блок пикселей уже имеет один или более соседних блоков пикселей, которые были кодированы и для которых уже были определены векторы движения. К примеру, такими блоками пикселей могут быть блок пикселей слева от текущего блока пикселей и/или блок пикселей над текущим блоком. Пространственные предсказания векторов движения для текущего блока пикселей могут быть сформированы, например, с помощью векторов движения уже кодированных смежных блоков пикселей и/или несмежных блоков пикселей в том же слайсе или кадре с использованием линейных или нелинейных функций пространственного предсказания векторов движения, с использованием комбинирования различных пространственных предсказателей векторов движения с линейными или нелинейными операциями, или с помощью любых других подходящих средств, не использующих временную опорную информацию. Также получение предсказаний векторов движения может осуществляться с помощью комбинирования одновременно пространственной и временной информации предсказания для одного или более кодированных блоков пикселей. Такие предсказания векторов движения могут названы пространственно-временными предсказаниями векторов движения.
Опорные кадры, использованные при кодировании упомянутых смежных блоков пикселей, были сохранены в памяти 404 опорных кадров. Опорные кадры могут являться краткосрочными или долгосрочными опорными изображениями, при этом каждый опорный кадр может иметь уникальный индекс, указывающий на местоположение этого опорного кадра в памяти опорных кадров. Если опорный кадр более не используется в качестве такового, он может быть удален из памяти опорных кадров или помечен как не являющийся опорным, тогда место, в котором хранится этот опорный кадр, может быть занято новым опорным кадром. В дополнение к опорным кадрам смежных блоков пикселей, селектор 360 опорных кадров может также выбирать один или более кадров в качестве потенциальных опорных кадров и сохранять их в памяти опорных кадров.
Информация векторов движения кодированных блоков также сохраняется в памяти, чтобы устройство 306 внешнего предсказания могло получать информацию векторов движения при обработке кандидатов для векторов движения для текущего блока пикселей.
В некоторых вариантах осуществления настоящего изобретения векторы движения хранят в одном или более списках. К примеру, векторы движения кадров, для которых предсказание выполняется в одном направлении (например, Р-кадры), могут храниться в списке, называемом list0. Для кадров, предсказание для которых выполняется в двух направлениях (например, В-кадры), может храниться два списка (list0 и list1), тогда как для кадров с мульти-предсказанием может храниться более двух списков. Индексы опорных кадров, возможно связанные с упомянутыми векторами движения, также хранят в одном или более списках.
В некоторых вариантах осуществления настоящего изобретения могут выполняться две или более процедуры предсказания векторов движения, при этом каждая из процедур может иметь отличающийся процесс создания набора кандидатов. В одной из процедур могут использоваться только значения векторов движения. В другой процедуре, которая может называться «режимом объединения», каждый элемент-кандидат может включать: 1) информацию о том, что «для блока пикселей было выполнено однонаправленное предсказание с использованием только списка list0 », или о том, что «для блока пикселей было выполнено однонаправленное предсказание с использованием только списка list0», или же о том, что «для блока пикселей было выполнено двунаправленное предсказание с использованием списка list0 и списка list1», 2) значение вектора движения для списка list0, 3) индекс опорного изображения в списке list0, 4) значение вектора движения для списка list1, 5) индекс опорного изображения в списке list1. Соответственно, когда необходимо выполнить сравнение двух кандидатов для предсказания, чтобы определить их соответствие друг другу, сравнивают не только значения векторов движения, но и пять указанных выше значений. В противном случае, если любое из сравнений указывает на то, что кандидаты для предсказания имеют неидентичную информацию о движении, дальнейшие сравнения выполнять не требуется.
Устройство 361 определения векторов движения определяет кандидатов для векторов движения для текущего кадра с использованием одного или более векторов движения одного или более смежных блоков пикселей и/или других блоков пикселей в том же кадре и/или блока пикселей с тем же местоположением (и/или других блоков пикселей) в одном или более других кадрах. Этих кандидатов для векторов движения можно назвать набором кандидатов для предсказания или набором предсказаний. Соответственно, каждый кандидат для предсказания представляет собой вектор движения для одного или более уже кодированных блоков. В некоторых вариантах осуществления настоящего изобретения вектор движения кандидата для предсказания назначают равным вектору движения смежного блока пикселей в том же списке, если текущий блок пикселей и смежный блок пикселей ссылаются на одни и те же опорные кадры для этого списка. Также, в случае временного предсказания, могут присутствовать один или более ранее кодированных кадров, при этом в качестве кандидатов для предсказания для текущего блока могут быть выбраны векторы движения блока пикселей с тем же местоположением или векторы движения других блоков пикселей в одном из ранее кодированных кадров. Кандидат для временного предсказания вектора движения может формироваться любыми средствами, в которых, помимо текущего кадра, применяются другие кадры.
Кандидаты для векторов движения могут быть также получены с использованием более чем одного вектора движения одного или более других блоков пикселей, например, блоков пикселей, смежных с текущим блоком пикселей, или блоков пикселей с тем же местоположением в одном или более других кадрах. В качестве примера, может использоваться любая комбинация вектора движения блока пикселей слева от текущего блока пикселей, вектора движения блока пикселей сверху от текущего блока пикселей, и вектора движения блока пикселей в верхнем правом углу от текущего блока пикселей (т.е. блока пикселей справа от блока, который расположен сверху от текущего блока пикселей). Упомянутая комбинация может представлять собой среднее значение векторов движения или может вычисляться с использованием других формул. К примеру, один или более векторов, используемых в этой комбинации, могут масштабироваться с использованием коэффициента масштабирования, к ним может добавляться смещение и/или могут добавляться постоянные векторы движения. В некоторых вариантах осуществления настоящего изобретения комбинированный вектор движения получают на основе временных и пространственных векторов движения одновременно, например, вектора движения одного или более блоков пикселей, смежных с текущим блоком пикселей, или других блоков пикселей, и вектора движения блока пикселей, имеющего то же местоположение, или другого блока пикселей, в другом кадре.
Если какой-либо из смежных блоков пикселей не имеет информации о движении, то вместо нее может использоваться заданный по умолчанию вектор движения, например, нулевой вектор движения.
На фиг. 9 проиллюстрирован один из примеров блока 900 кодирования и нескольких блоков 901-905, смежных с этим блоком кодирования. Как видно из фиг. 9, если блок 900 кодирования является текущим блоком пикселей, то смежные блоки 901-905, обозначенные А0, А1, В0, В1 и В2, могут быть смежными блоками пикселей, подходящими для использования при получении кандидатов для вектора движения.
Если текущее количество кандидатов ограничено или недостаточно, может требоваться создание вспомогательных, или дополнительных, предсказаний векторов движения на основе ранее добавленных предсказаний. Такое создание дополнительных кандидатов может выполняться при помощи комбинирования двух ранее полученных предсказаний и/или обработки одного из предыдущих кандидатов с масштабированием или добавлением смещения, или при помощи добавления нулевого вектора движения, с различными опорными индексами. Соответственно, устройство 361 определения векторов движения может анализировать, сколько кандидатов для векторов движения может быть определено и сколько кандидатов для векторов движения потенциально существует для текущего блока пикселей. Если количество потенциальных кандидатов для векторов движения меньше, чем пороговое значение, то устройство 361 определения векторов движения может создавать дополнительные предсказания векторов движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый комбинированный вектор движения может быть получен на основе векторов движения из различных списков. К примеру, один из векторов движения может быть получен комбинированием одного вектора движения из списка list0 и одного вектора движения из списка list1, например, если смежный блок пикселей или блок пикселей с тем же местоположением представляет собой блок пикселей с двунаправленным предсказанием, и для этого блока пикселей с двунаправленным предсказанием в списках list0 и list1 имеется по меньшей мере по одному вектору движения.
Чтобы отличать текущий блок пикселей от кодированных/ декодированных блоков пикселей, векторы движения которых используют в качестве кандидатов для векторов движения, эти кодированные/ декодированные блоки в настоящей заявки называются также опорными блоками пикселей.
В некоторых вариантах осуществления настоящего изобретения получают (например, копированием) не только информацию векторов движения опорного блока (или блоков) пикселей, но также опорный индекс опорного блока пикселей в списке опорных изображений, который может копироваться в список кандидатов. Также может копироваться информация о том, было ли выполнено однонаправленное предсказание блока с использованием только списка list0, или было выполнено однонаправленное предсказание блока с использованием только списка list1, или же было выполнено двунаправленное предсказание блока с использованием списков list0 и list1. Этот список кандидатов может быть также назван набором кандидатов или набором кандидатов для предсказания векторов движения.
На фиг. 6а проиллюстрирован пример пространственного и временного предсказания блока предсказания. Показан текущий блок 601 пикселей в кадре 600 и смежный с ним блок 602 пикселей, который уже был кодирован. С помощью устройства 361 определения векторов движения был определен вектор 603 движения для смежного блока 602 пикселей, который указывает на блок 604 пикселей в предыдущем кадре 605. Данный вектор движения может быть использован как потенциальное пространственное предсказание 610 вектора движения для текущего блока пикселей. На фиг. 6 показано, что блок 606 пикселей с тем же положением в предыдущем кадре 605 (т.е. с тем же положением, что и текущий блок, но в предыдущем кадре) имеет вектор 607 движения, указывающий на блок 609 пикселей в другом кадре 608. Данный вектор 607 может быть использован как потенциальное временное предсказание 611 вектора движения для текущего кадра.
На фиг. 6b проиллюстрирован еще один пример пространственного и временного предсказания блока предсказания. В данном примере для блока 606 пикселей предыдущего кадра 605 было использовано двунаправленное предсказание на основе блока 609 пикселей из кадра, предшествующего кадру 605, и блока 612 пикселей из кадра, следующего за текущим кадром 600. Временное предсказание вектора движения для текущего блока 601 пикселей может быть сформировано с использованием обоих векторов 607, 614 движения или только одного из них.
Далее будет подробно описана работа модификатора 363 списка предсказания на примере блок-схем алгоритмов фиг. 5а и 5b. На шаге 500 фиг. 5а модификатор 363 списка предсказаний инициализирует список предсказаний векторов движения заданными по умолчанию значениями. Модификатор 363 списка предсказаний может также инициализировать индекс списка начальным значением, например, нулевым. Затем, на шаге 501, модификатор списка предсказаний проверяет, присутствуют ли кандидаты для векторов движения для обработки. Если в наборе предсказаний имеется по меньшей мере один кандидат для вектора движения для обработки, то модификатор 363 списка предсказаний формирует следующего кандидата для вектора движения, который может представлять собой временной вектор движения или пространственный вектор движения. Сравнение может представлять собой проверку на идентичность или эквивалентность, или же сравнение (абсолютного значения) разности с пороговым значением или какой-либо иной метрикой похожести.
Ниже будет более подробно описан процесс объединения для кодирования информации о движении в соответствии с одним из примеров осуществления настоящего изобретения. Кодер создает список кандидатов для предсказания движения, из которого один кандидат будет сигнализирован в качестве информации о движении для текущего блока кодирования или блока предсказания. Кандидаты для предсказания движения могут состоять из нескольких пространственных предсказаний движения и одного временного предсказания движения. Пространственные кандидаты могут быть получены, например, на основе информации о движении пространственно смежных блоков А0, А1, В0, В1, В2 пикселей, информацию о движении которых используют в качестве кандидатов для пространственного предсказания движения. Кандидат для временного предсказания движения может быть получен при помощи обработки движения блока пикселей в другом, а не в текущем кадре. В данном примере осуществления настоящего изобретения операции кодера по построению списка объединения для пространственных кандидатов могут включать описанные ниже действия. Эти операции могут выполняться, к примеру, модификатором 363 списка предсказаний.
Может быть задано максимальное количество кандидатов для пространственного предсказания, включаемых в список объединения. Это максимальное количество может сохраняться, например, в памяти 58 устройства 50 или в другое подходящее место. Допускается также определение этого максимального количества с помощью других средств, или оно может определяться в программном обеспечении кодера устройства 50.
В некоторых вариантах осуществления настоящего изобретения упомянутое максимальное количество кандидатов для пространственного предсказания векторов движения, включаемых в список объединения, равно четырем, однако в других вариантах осуществления настоящего изобретения это максимальное количество может быть меньше четырех или больше четырех.
В данном примере кандидатами для пространственного предсказания векторов движения являются пространственно смежные блоки А0, А1, В0, В1, В2 пикселей. Кандидат для пространственного предсказания А1 вектора движения расположен слева от блока предсказания, когда кодирование и декодирование осуществляется в порядке слева направо и сверху вниз кадра, области изображения или иного кодируемого и декодируемого элемента. Соответственно, кандидат В1 для пространственного предсказания расположен над блоком предсказания, кандидат ВО для пространственного предсказания вектора движения расположен справа от кандидата В1 для пространственного предсказания вектора движения; кандидат А0 для пространственного предсказания вектора движения расположен под кандидатом А1 для пространственного предсказания вектора движения; и кандидат В2 для пространственного предсказания вектора движения расположен в том же столбце, что и кандидат А1 для пространственного предсказания вектора движения, и в той же строке, что и кандидат В1 для пространственного предсказания вектора движения. Другими словами, кандидат В2 для пространственного предсказания является смежным с блоком предсказания по диагонали, как можно видеть, например, на фиг. 9.
Эти кандидаты для пространственного предсказания векторов движения могут обрабатываться в заранее заданном порядке, например: А1, В1, В0, А0 и В2. Кандидатом для пространственного предсказания вектора движения, выбираемым первым для дальнейшего анализа, таким образом, будет А1. Перед выполнением дальнейшего анализа выбранного кандидата для пространственного предсказания вектора движения может выполняться определение, содержит ли уже список объединения максимальное количество кандидатов для пространственного предсказания векторов движения. Соответственно, модификатор 363 списка предсказаний сравнивает, на шаге 502, количество кандидатов для пространственного предсказания векторов движения в списке объединения с упомянутым максимальным количеством, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения не меньше, чем упомянутое максимальное количество, то выбранного кандидата для пространственного предсказания вектора движения не включают в список объединения, и процедура построения списка объединения может быть остановлена (шаг 526). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем упомянутое максимальное количество, выполняют дальнейший анализ выбранного кандидата для пространственного предсказания вектора движения (шаги 504-522).
Для всех кандидатов для пространственного предсказания векторов движения, для которых планируется выполнение дальнейшего анализа, может выполняться проверка некоторых или всех из описанных ниже условий, чтобы определить, следует ли включать кандидата для пространственного предсказания вектора движения в список объединения.
Модификатор 363 списка предсказаний проверяет (на шаге 504), доступен ли блок предсказания или блок пикселей, охватывающий блок кандидата для пространственного предсказания вектора движения, для предсказания движения. Если нет, то данный кандидат не включается в список объединения. Причиной, по которой блок пикселей может быть недоступен, может быть кодирование этого блока пикселей во внутреннем режиме предсказания, или то, что он расположен в другом слайсе или вне области изображения.
Для всех кандидатов для пространственного предсказания векторов движения, если в дополнение к описанным выше общим условиям выполняется любое из описанных ниже условий, то кандидата для предсказания не включают в список объединения, а в противном случае - включают.
Модификатор 363 списка предсказаний определяет (на шаге 506), какой из кандидатов для пространственного предсказания векторов движения в наборе кандидатов для пространственного предсказания векторов движения рассматривается. Если этим кандидатом для пространственного предсказания вектора движения является блок А1, то на шаге 508 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по вертикали на два прямоугольных блока 103, 104 предсказания, как это показано на фиг. 10b, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 508), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по вертикали на два прямоугольных блока предсказания, а разбит горизонтально на два прямоугольных блока 101, 102 в соответствии с иллюстрацией фиг. 10а, и текущий блок предсказания является вторым блоком предсказания в последовательности кодирования/декодирования, и при этом блок А1 включает ту же информацию о движении, что и блок В1 (шаг 510), это кандидата для пространственного предсказания (блок А1) вектора движения не включают в список объединения. В примере на фиг. 10а вторым блоком предсказания является нижний блок 102 предсказания блока 100 кодирования, а в примере фиг. 10b вторым блоком предсказания является правый блок 104 предсказания блока 100 кодирования. Если ни одно из описанных выше условий не выполняется, то блок А1 включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок В1, то на шаге 512, 514 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по горизонтали на два прямоугольных блока 101, 102 предсказания, в соответствии с иллюстрацией на фиг. 10а, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 512), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по горизонтали на два прямоугольных блока предсказания, и если блок В1 включает ту же информацию о движении, что и блок А1 (шаг 514), этого кандидата для пространственного предсказания (блок В1) вектора движения не включают в список объединения. Если ни одно из описанных выше условий не выполняется, то блок В1 включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок В0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок ВО имеет ту же информацию о движении, что и блок В1 (шаг 516). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, то этого кандидата для пространственного предсказания (блок В0) вектора движения включают в список объединения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок А0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок А0 имеет ту же информацию о движении, что и блок А1 (шаг 518). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, этого кандидата для пространственного предсказания (блок А0) вектора движения включают в список объединения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок В2 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если максимальное количество кандидатов для пространственного предсказания векторов движения равно четырем, а по остальным блокам А0, А1, В0 и В1 пикселей были приняты решения о включении их в список объединения (шаг 520). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, блок В2 пикселей не включают в список объединения, если блок В2 пикселей имеет ту же информацию о движении, что и блок В1 пикселей или блок А1 пикселей (шаг 522).
После обработки блоков А1, В1, В0, А0 и В2 пикселей и включения некоторого их поднабора в список объединения на основе описанных выше условий, других проверок на избыточность среди этих кандидатов не выполняют, и могут быть обработаны оставшиеся кандидаты для временного предсказания вектора движения и/или другие потенциальные дополнительные кандидаты для предсказания.
Сравнение двух блоков пикселей на предмет содержания в них одного и того же движения может выполняться при помощи сравнения всех элементов информации о движении, а именно: 1) информации о том, что «для блока было выполнено однонаправленное предсказание с использованием только списка Iist0», или о том, что «для блока было выполнено однонаправленное предсказание с использованием только списка list1», или же о том, что «для блока было выполнено двунаправленное предсказание с использованием списка list0 и списка list1», 2) значения вектора движения, соответствующего списку list0 опорных изображений, 3) индекса опорного изображения в списке list0, 4) значения вектора движения, соответствующего списку list1 опорных изображений, 5) индекса опорного изображения в списке list1 опорных изображений.
В некоторых вариантах осуществления настоящего изобретения аналогичные ограничения могут налагаться на сравнение пар кандидатов, если текущий блок кодирования кодируется или декодируется с разбиением на четыре или любое другое количество блоков предсказания.
Максимальное количество кандидатов в списке объединения может иметь любое ненулевое значение. В приведенном выше примере упомянутыми кандидатами на включение в список объединения были пространственно смежные блоки А0, А1, В0, В1, В2 пикселей и кандидат для временного предсказания вектора движения, однако могут использоваться более одного кандидата для временного предсказания вектора движения, а также другие пространственные смежные блоки пикселей, нежели блоки А0, А1, В0, В1, В2.
Также максимальное количество кандидатов для пространственного предсказания векторов движения, включаемых в список, может отличаться от четырех.
В некоторых вариантах осуществления настоящего изобретения максимальное количество кандидатов в списке объединения и максимальное количество кандидатов для пространственного предсказания векторов движения, включаемых в список, может зависеть от того, включают кандидата для временного предсказания вектора движения в список или нет.
Обрабатываться может и другое количество кандидатов для пространственного предсказания векторов движения, находящихся в различных местоположениях в текущем кадре. Местоположения могут быть теми же самыми, что для блоков А0, А1, В0, В1 и В2, или могут отличаться от них.
Решение о том, какие из кандидатов для пространственного предсказания векторов движения включать в список, может приниматься за два шага. На первом шаге устраняют часть кандидатов, проверяя, доступен ли блок пикселей кандидата, не является ли режим его предсказания внутренним, и/или не является ли текущий блок пикселей вторым блоком предсказания блока кодирования, кодируемого с использованием двух блоков предсказания, и не имеет ли этот кандидат для предсказания ту же информацию о движении, что и первый блок предсказания. На втором шаге анализируют оставшихся кандидатов для предсказания и часть из них включают в список объединения. Анализ на втором шаге не включает сравнения информации о движении между всеми возможными парами кандидатов, а включает лишь поднабор всех возможных комбинаций сравнения.
Решения по кандидатам могут приниматься в любом порядке элементов А0, А1, В0, В1 и В2, или независимо и параллельно.
Для каждого кандидата и/или поднабора кандидатов могут проверяться также следующие условия: имеет ли блок кандидата ту же информацию о движении, что и первый блок предсказания текущего блока кодирования, когда текущий блок кодирования разбит на два прямоугольных блока предсказания и текущий блок предсказания является вторым блоком предсказания в последовательности кодирования/декодирования.
Для определения, включать ли кандидата в список, могут применяться дополнительные условия, связанные с различными свойствами текущих и/или предыдущих областей изображения, и/или текущих и/или смежных блоков пикселей.
Сравнение движения может быть реализовано при помощи сравнения поднабора всей информации о движении. К примеру, могут сравниваться только значения векторов движения для всех списков опорных изображений, или их части, и/или индексы опорных изображений для всех списков опорных изображений, или их части, и/или идентификационные значения, назначенные каждому блоку пикселей для представления их информации о движении. Это сравнение может представлять собой проверку на идентичность или эквивалентность или сравнение (абсолютного значения) разности с пороговым значением или любую другую метрику похожести.
Условия, на основе которых принимается решении о включении кандидата в список, могут включать сравнение информации о движении с любым поднабором кандидатов, поскольку в конечном итоге будет выполнено сравнение не всех возможных пар кандидатов.
Решение о включении в список кандидата для временного предсказания вектора движения может быть основано на сравнении его информации о движении с информацией о движении некоторого поднабора кандидатов для пространственного предсказания векторов движения.
При сравнении информации о движении двух блоков пикселей может учитываться также информация о движении дополнительных блоков пикселей. К примеру, при сравнении блока В2 с блоком А1 выполняется проверка всех блоков между блоком В2 и блоком А1 (см. фиг. 12) на предмет идентичности их движения; а при сравнении блока В2 с блоком В1 выполняется проверка всех блоков между блоком В2 и блоком В1 (см. фиг. 12) на предмет идентичности их движения. Такой вариант осуществления настоящего изобретения может быть реализован так образом, что самый правый блок пикселей каждого блока предсказания или все блоки пикселей в каждом блоке предсказания могут хранить информацию о количестве последовательных блоков, следующих за этим блоком и имеющих такую же информацию о движении. При этом информация о количестве последовательных блоков слева, имеющих ту же информацию о движении, может храниться в самом нижнем блоке пикселей каждого блока предсказания или во всех блоках пикселей каждого блока предсказания. С использованием этой информации проверка условия невключения В0 в список может реализована как проверка того, что количество последовательных блоков с той же информацией о движении слева от блока В0 больше 0. Проверка условия невключения блока А0 в список может быть реализована как проверка того, что количество последовательных блоков с идентичной информацией о движении над А0 больше 0. Условия невключения В2 могут быть изменены следующим образом:
проверяют не факт того, что блок В2 имеет такую же информацию о движении, что и блок В1, или что блок В2 имеет такую же информацию о движении, что и блок А1, а сколько последовательных блоков имеется слева от блока В1 с той же информацией о движении, что и блок В1, и/или сколько последовательных блоков с имеется над блоком А1 с идентичной ему информацией о движении. Если количество последовательных блоков с той же информацией о движении слева от блока В1 больше, чем количество блоков между В2 и В1, или если количество последовательных блоков с той же информацией о движении над блоком А1 больше, чем количество блоков между блоком В2 и блоком А1, блок В2 не включают в список объединения.
Если используют описанную выше реализацию, то значение количества последовательных блоков слева или сверху, с той же информацией о движении, может определяться при помощи непосредственного сравнения информации о движении или при помощи проверки режима предсказания, и/или индекса объединения, если для этого блока применяется процедура объединения.
При кодировании или декодировании выбранного индекса объединения может также учитываться информация о том, применяется ли процедура объединения для кодирования и декодирования блока кодирования в режиме пропуска (Skip mode) или блока кодирования в режиме внешнего объединения (Inter Merge mode). К примеру, если для энтропийного кодирования/декодирования используется контекстно-адаптивный двоичный арифметический кодер (context adaptive binary arithmetic coder, CABAC), то для бинов могут использоваться различные контексты в зависимости от режима кодирования (режима пропуска или режима внешнего объединения) текущего блока. При этом может применяться назначение двух контекстов в зависимости от факта использования процедуры объединения в блоке кодирования в режиме пропуска или в блоке предсказания в режиме внешнего объединения только для наиболее значимого бина упомянутого индекса объединения.
В процессе удаления избыточных кандидатов сравнение между кандидатами для предсказания векторов движения может быть основано, вместо значений векторов движения, на любой другой информации. К примеру, оно может быть основано на линейных или нелинейных функциях значений векторов движения, на типе кодирования или предсказания блоков, используемых для получения информации о движении, размере блоков пикселей, пространственном расположении в блоке пикселей / (наиболее крупном) блоке кодирования / макроблоке, на информации о том, что блоки пикселей разделяют одну и ту же информацию с некоторым блоком, на информации о том, что блоки пикселей находятся в одном и том же блоке кодирования или предсказания, и т.п.
С помощью приведенного ниже псевдокода проиллюстрирован один из примеров осуществления настоящего изобретения, предназначенный для построения списка объединения.
Входные данные для этой процедуры:
- местоположение (xP, yP) в яркостной составляющей сигнала, задающее вернее левое значение яркости текущего блока предсказания относительно верхнего левого значения текущего изображения;
- переменные, задающие ширину и высоту блока предсказания для яркостной составляющей сигнала, nPSW и nPSH, и
- переменная Partldx, задающая индекс текущего блока предсказания в текущем блоке кодирования.
Выходные данные этой процедуры (где N заменяют на А0, A1, В0, B1 или B2, а X заменяют на 0 или 1)
- флаги доступности availableFlagN смежных блоков предсказания,
- индексы опорных изображений refldxLXN для смежных блоков предсказания,
- флаги, указывающие на использование списка предсказания predFlagLXN для смежных блоков предсказания,
- векторы движения mvLXN смежных блоков предсказания.
Для вычисления флага availableFlagN, где N является А0, A1, В0, B1 или В2, (xN, yN) является (xP-1, yP+nPSH), (xP-1, yP+nPSH-1), (xP+nPSW, yP-1), (xP+nPSW-1, yP-1) или (xP-1, yP-1), верно следующее:
- если одно из описанных ниже условий выполнено, то флаг availableFlagN устанавливают равным 0, обе составляющих mvLXN устанавливают равными 0, значения refldxLXN и predFlagLX[xN, yN] блока предсказания, охватывающего местоположение (xN, yN) яркостной составляющей сигнала, назначают равными соответственно mvLXN, refldxLXN и predFlagLXN.
- N равно В2, а сумма availableFlagA0 + availableFlagA1 + availableFlagB0 + availableFlagB1 равна 4.
- блок предсказания, охватывающий местоположение (xN, yN), не доступен или значение PreMode равно MODE_INTRA.
- N равно A1, при этом значение PartMode текущего блока предсказания равно PART_N×2N или PART_nL×2N или PART_nR×2N, а значение Partldx равно 1.
- N равно A1, при этом значение PartMode текущего блока предсказания равно PART_2N×N или PART_2N×nU или PART_2N×nD, значение Partldx равно 1, а блоки предсказания, охватывающие местоположение (xP+nPSW-1, yP-1) (N=В1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала, имеют идентичные параметры движения:
- mvLX[xP+nPSW-1, yP-1]==mvLX[xN, yN]
- refldxLX[xP+nPSW-I, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP+nPSW-1I, yP-1]==predFlagLX[xN, yN]
- N равно B1, при этом значение PartMode текущего блока предсказания равно 2N×N или PART_2N×nU, или PART_2N×nD, а значение Partldx равно 1.
- N равно В1, при этом блоки предсказания, охватывающие местоположение (xP-1, yP+nPSH-1) (N=А1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала, имеют идентичные параметры движения:
- mvLX[xP-1, yP+nPSH-1]==mvLX[xN, yN]
- refldxLX[xP-1, yP+nPSH-1]==refldxLX[xN, yN]
- predFlagLX[xP-1, yP+nPSH-1]==predFlagLX[xN, yN]
- N равно В0, при этом блоки предсказания, охватывающие местоположение (xP+nPSW-1, yP-1) (N=В1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP+nPSW-1, yP-1]==mvLX[xN, yN]
- refldxLX[xP+nPSW-1, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP+nPSW-1, yP-1]==predFlagLX[xN, yN]
- N равно A0, при этом блоки предсказания, охватывающие местоположение (xP-1, yP+nPSH-1) (N=А1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP+nPSH-1]==mvLX[xN, yN]
- refldxLX[xP-1, yP+nPSH-1]==refldxLX[xN, yN]
- predFlagLX[xP-1, yP+nPSH-1]==predFlagLX[xN, yN]
- N равно B2, при этом блоки предсказания, охватывающие местоположение (xP+nPSW-1, yP-1) (N=В1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала, имеют идентичные параметры движения:
- mvLX[xP+nPSW-1, yP-1]==n1vLX[xN, yN]
- reldxLX[xP+nPSW-1, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP+nPSW-1, yP-1]==predFlagLX[xN, yN]
- N равно B2, при этом блоки предсказания, охватывающие
местоположение (xP-1, yP+nPSH-1) (N=А1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP+nPSH-1]==mvLX[xN, yN]
- refldxLX[xP-1, yP+nPSH-1]==refldxLX[xN, yN]
- predFlagLX[xP-1, yP+nPSH-1]==predFlagLX[xN, yN]
- значение PartMode текущего блока предсказания равно PART_N×N, а значение Partldx равно 3, при этом блоки предсказания, охватывающие местоположение (xP-1, yP) (Partldx=2) в яркостной составляющей сигнала и местоположение (xP-1, yP-1) (Partldx=0) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP]==mvLX[xP-1, yP-1]
- refldxLX[xP-1, yP]==refldxLX[xP-1, yP-1]
- predFlagLX[xP-1, yP]==predFlagLX[xP-1, yP-1]
и блоки предсказания, охватывающие местоположение (xP, yP-1) (Partldx=1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP, yP-1]==mvLX[xN, yN]
- refldxLX[xP, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP, yP-1]==predFlagLX[xN, yN]
- Значение PartMode текущего блока кодирования равно PART_N×N, а значение Partldx равно 3, при этом блоки предсказания, охватывающие местоположение (xP, yP-1) (Partldx=1) в яркостной составляющей сигнала и местоположение (xP-1, yP-1) (Partldx=0) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP, yP-1]==mvLX[xP-1, yP-1]
- refldxLX[xP, yP-1]==reldxLX[xP-1, yP-1]
- predFlagLXfxP, yP-1]==predFlagLX[xP-1, yP-1]
при этом блоки предсказания, охватывающие местоположение (xP-1, yP) (Partldx=2) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP]==mvLX[xN, yN]
- refldxLX[xP-1, yP]==reldxLX[xN, yN]
- predFlagLX[xP-1, yP]==predFlagLX[xN, yN]
- В обратном случае флаг availableFlagN устанавливают равным 1, а переменные mvLX[xN, yN], refldxLX[xN, yN] и predFlagLX[xN, yN] блока предсказания, охватывающего местоположение (xN, yN) в яркостной составляющей сигнала назначают, соответственно, равными mvLXN, refldxLXN и predFlagLXN.
Что касается процедуры формирования списка кандидатов для предсказания векторов движения, каждый кандидат из списка может включать не только значение вектора движения, но и дополнительную информацию, например, применяемые списки опорных изображений, опорные кадры, использованные в каждом списке, и вектор движения для каждого списка.
После анализа всех кандидатов для векторов движения выбирают один вектор движения и используют его как вектор движения текущего блока. Селектор 364 вектора движения может выполнять анализ различных векторов движения в списке и определять, какой из векторов движения дает наиболее эффективный результат кодирования, или же выбор вектора движения может быть также основан на других критериях. Информацию о выбранном векторе движения предоставляют в селектор режима для кодирования и передачи в декодер, или для хранения, если селектор режима принимает решение об использовании внешнего предсказания для текущего блока. Эта информация может включать индекс вектора движения в списке и/или параметры вектора движения, или другую подходящую информацию.
Выбранный вектор движения и блок, связанный с этим вектором движения, используют для формирования предсказанного представления блока 312 изображения, которое выдают в качестве выходных данных селектора режима. Эти выходные данные могут использоваться суммирующим устройством 321 для формирования первого сигнала 320 ошибки предсказания в соответствии с предшествующим описанием.
Выбранный кандидат для предсказания вектора движения может быть модифицирован добавлением разности векторов движения или может быть использован в качестве вектора движения данного блока непосредственно. При этом после выполнения компенсации движения с использованием выбранного кандидата для предсказания вектора движения сигнал ошибки для этого блока может быть кодирован с преобразованием, или этот сигнал может быть пропущен.
Варианты осуществления настоящего изобретения, описанные выше, были рассмотрены на примере размера макроблока, равного 16×16 пикселей, однако нужно понимать, что описанные способы и устройства могут быть сконфигурированы для работы с макроблоками отличающихся пиксельных размеров.
Ниже более подробно описана работа одного из примеров осуществления декодера 600 на примере фиг. 7.
На стороне декодера выполняют аналогичные операции для восстановления блоков изображения. На фиг. 7 проиллюстрирована блок-схема видеодекодера 700, подходящего для реализации вариантов осуществления настоящего изобретения, а на фиг. 8а и 8b проиллюстрированы блок-схемы алгоритмов для одного из примеров способа, реализуемого в видеодекодере. Декодируемый битовый поток может приниматься от кодера, от сетевого элемента, с носителя данных или из другого источника. В декодере имеется информация о структуре битового потока, поэтому он способен определять значение энтропийно кодированных кодовых слов и может декодировать битовый поток с помощью энтропийного декодера 701, который выполняет энтропийное декодирование принятого сигнала. То есть, энтропийный декодер выполняет операцию, обратную энтропийному кодеру 330 описанного выше кодера. Энтропийный декодер 701 выдает результаты энтропийного декодирования в декодер 702 ошибки предсказания и в устройство 704 предсказания пикселей.
В некоторых вариантах осуществления настоящего изобретения энтропийное кодирование может не применяться, но может использоваться другое канальное кодирование, или же кодированный битовый поток может поступать в декодер 700 без канального кодирования. Декодер 700 может включать соответствующий канальный декодер для получения кодированных кодовых слов из принятого сигнала.
Устройство 704 предсказания пикселей принимает выходные данные энтропийного декодера 701. Выходные данные энтропийного декодера 701 могут включать указание на режим предсказания, используемый при кодировании текущего блока. Селектор 714 предсказания в устройстве 704 предсказания пикселей определяет, что необходимо выполнять, внутреннее предсказание или внешнее предсказание. Селектор 714 предсказания может при этом выдавать предсказанное представление блока 716 изображения в первое комбинирующее устройство 713. Предсказанное представление блока 716 изображения используют вместе с восстановленным сигналом 712 ошибки предсказания для формирования предварительного восстановленного изображения 718. Предварительное восстановленное изображение 718 может использоваться в устройстве 714 предсказания или может передаваться в фильтр 720. Фильтр 720, если он применяется, осуществляет фильтрацию, после которой выдается окончательный восстановленный сигнал 722. Окончательный восстановленный сигнал 722 может быть сохранен в памяти 724 опорных кадров, при этом память 724 опорных кадров имеет соединение с устройством 714 предсказания для выполнения операций предсказания.
Также декодер 702 ошибки предсказания принимает выходные данные энтропийного декодера 701. Деквантователь 792 декодера 702 ошибки предсказания может деквантовать выходные данные энтропийного декодера 701, при этом блок 793 обратного преобразования может выполнять операцию обратного преобразования над деквантованным сигналом на выходе деквантователя 792. Выходные данные энтропийного декодера 701 могут также указывать на то, что сигнал ошибки предсказания не должен применяться, в этом случае декодер ошибки предсказания формирует выходной сигнал состоящий из нулей.
Декодер выбирает остаточный макроблок размером 16×16 пикселей для его восстановления. Этот остаточный макроблок называют также текущим блоком.
Декодер может также принимать информацию о режиме кодирования, использованном при кодировании текущего блока. Это указание при необходимости декодируют и предоставляют в процессор 791 восстановления селектора 714 предсказания. Процессор 791 восстановления анализирует это указание и выбирает один из режимов внутреннего предсказания, если эта информация указывает на то, что данный блок был кодирован с использованием внутреннего предсказания, или режим внешнего предсказания, если информация указывает на то, что данный блок был кодирован с использованием внешнего предсказания.
Для режима внешнего предсказания в состав процессора 791 восстановления могут входить один или более элементов, соответствующих процессору 362 предсказания из состава кодера, например, устройство определения векторов движения, модификатор списка предсказаний и/или селектор вектора движения.
На шаге 800 процессор 791 восстановления инициализирует список предсказаний векторов движения заданными по умолчанию значениями. Как и в случае, рассмотренном для процесса кодирования, в данном примере кандидатами для пространственного предсказания векторов движения являются пространственно смежные блоки А0, А1, В0, В1, В2 пикселей, и эти кандидаты для пространственного предсказания векторов движения обрабатываются в том же заранее заданном порядке, что и в кодере: А1, В1, В0, А0 и В2. Кандидатом для пространственного предсказания вектора движения, выбираемым первым для дальнейшего анализа, таким образом будет А1. Перед выполнением дальнейшего анализа выбранного кандидата для пространственного предсказания вектора движения проверяют, содержит ли уже список объединения максимальное количество кандидатов для пространственного предсказания векторов движения. Если количество кандидатов для пространственного предсказания векторов движения в списке объединения не меньше, чем упомянутое максимальное количество, то выбранного кандидата для пространственного предсказания вектора движения не включают в список объединения, и процедура построения списка объединения может быть остановлена (шаг 826). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем упомянутое максимальное количество, выполняют дальнейший анализ выбранного кандидата для пространственного предсказания вектора движения (шаги 804-822).
Декодер проверяет (на шаге 504), доступен ли блок предсказания или блок пикселей, охватывающий блок кандидата для пространственного предсказания вектора движения, для предсказания движения. Если нет, то данный кандидат не включается в список объединения. Причиной, по которой блок может быть недоступен, может быть кодирование блока в режиме внутреннего предсказания или то, что он находится в другой области изображения или вне области изображения.
Для всех кандидатов для пространственного предсказания векторов движения, если в дополнение к описанным выше общим условиям выполняется любое из описанных ниже условий, то кандидата не включают в список объединения, а в противном случае - включают.
Декодер определяет (на шаге 806), какой из кандидатов для пространственного предсказания векторов движения в наборе кандидатов для пространственного предсказания векторов движения рассматривается. Если этим кандидатом для пространственного предсказания вектора движения является блок А1 пикселей, то на шаге 808, 810 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по вертикали на два прямоугольных блока 103, 104 предсказания, как это показано на фиг. 10b, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 508), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по вертикали на два прямоугольных блока предсказания, а разбит горизонтально на два прямоугольных блока 101, 102 в соответствии с иллюстрацией на фиг. 10а, и текущий блок предсказания представляет собой второй блок предсказания в последовательности кодирования/декодирования, и при этом блок А1 пикселей включает ту же информацию о движении, что и блок В1 (шаг 510) пикселей, этого кандидата для пространственного предсказания (блок А1) вектора движения не включают в список объединения. В примере на фиг. 10а вторым блоком предсказания является нижний блок 102 предсказания блока 100 кодирования, а в примере на фиг. 10b вторым блоком предсказания является правый блок 104 предсказания блока 100 кодирования. Если ни одно из описанных выше условий не выполняется, то блок А1 пикселей включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок В1 пикселей, то на шаге 812, 814 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по горизонтали на два прямоугольных блока 101, 102 предсказания, в соответствии с иллюстрацией фиг. 10а, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 812), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по горизонтали на два прямоугольных блока предсказания, и если блок В1 включает ту же информацию о движении, что и блок А1 пикселей (шаг 814), этого кандидата для пространственного предсказания (блок В1) вектора движения не включают в список объединения. Если ни одно из описанных выше условий не выполняется, то блок В1 пикселей включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок В0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок В0 пикселей имеет ту же информацию о движении, что и блок В1 пикселей (шаг 816). В противном случае, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, этого кандидата для пространственного предсказания (блок В0) вектора движения включают в список объединения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок А0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок А0 пикселей имеет ту же информацию о движении, что и блок А1 пикселей (шаг 818). В противном случае, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, этого кандидата для пространственного предсказания (блок АО) вектора движения включают в список объединения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок В2 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если максимальное количество кандидатов для пространственного предсказания векторов движения равно четырем, а по остальным блокам А0, А1, В0 и В1 пикселей были приняты решения о включении их в список объединения (шаг 520). В противном случае, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, блок В2 пикселей не включают в список объединения, если блок В2 пикселей имеет ту же информацию о движении, что и блок В1 пикселей или блок А1 пикселей (шаг 822).
После обработки блоков А1, В1, В0, А0 И В2 пикселей и включения некоторого их поднабора в список объединения на основе описанных выше условий, других проверок на избыточность среди этих кандидатов не выполняют, и могут быть обработаны оставшиеся кандидаты для временного предсказания вектора движения и/или другие потенциальные дополнительные кандидаты.
После построения списка объединения декодер может использовать (шаг 828) указание на вектор движения, принятое от кодера, для выбора вектора движения для декодирования текущего блока. Таким указанием может быть, к примеру, индекс для списка объединения.
Собственно, после построения процессором 791 восстановления списка объединения, он должен соответствовать списку объединения, построенному кодером, если процессор 791 восстановления имел ту же информацию, что и кодер. Утеря какой-либо части информации при передаче от кодера в декодер может повлиять на формирование списка объединения в декодере 700.
Приведенные выше примеры описывают работу только в режиме объединения, однако кодер и декодер могут работать и в других режимах.
В рассмотренных выше вариантах осуществления настоящего изобретения, чтобы упростить понимание выполняемых процедур, кодек описан как раздельные устройства кодера и декодера. Однако нужно понимать, что эти устройства, структуры и операции могут быть реализованы как единое устройство/структура/операция декодера. Также, в некоторых вариантах осуществления настоящего изобретения, кодер и декодер могут иметь некоторые или все общие элементы.
В рассмотренных выше примерах варианты осуществления настоящего изобретения функционируют в составе кодека в электронном устройстве, однако следует понимать, что настоящее изобретение, в соответствии с последующим описанием, может быть реализовано как часть любого видеокодека. Так, например, варианты осуществления настоящего изобретения могут быть реализованы в видеокодеке, который может реализовывать видеокодирование по стационарным или проводным каналам связи.
Соответственно, абонентское оборудование может включать видеокодек, например, описанный в представленных выше вариантах осуществления настоящего изобретения.
Нужно понимать, что выражение «абонентское оборудование» используется как охватывающие любые подходящие типы беспроводного абонентского оборудования, например, мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.
При этом элементы наземной сети мобильной связи общего пользования (public land mobile network, PLMN) также могут включать видеокодеки в соответствии с предшествующим описанием.
В общем случае различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратного обеспечения или схем специального назначения, программного обеспечения, логики или какой-либо их комбинации. К примеру, некоторые из аспектов могут быть реализованы в виде аппаратного обеспечения, тогда как другие аспекты могут быть реализованы в виде микропрограммного или программного обеспечения, которое может исполняться контроллером, микропроцессором или иным вычислительным устройством, без ограничения настоящего изобретения перечисленным. Различные аспекты настоящего изобретения допускают иллюстрацию и описание в виде блок-схем, блок-схем алгоритмов или с помощью некоторых других наглядных представлений, но при этом нужно хорошо понимать, что блоки, устройства, системы, методы или способы, описанные в настоящем документе, могут быть реализованы, в качестве неограничивающих примеров, в виде аппаратного обеспечения, программного обеспечения, микропрограммного обеспечения, схем или логики специального назначения, аппаратного обеспечения или контроллера общего назначения, или же иных вычислительных устройств, или некоторой их комбинации.
Варианты осуществления настоящего изобретения могут быть реализованы с помощью программного обеспечения, исполняемого процессором данных мобильного устройства, например, процессорным элементом, или с помощью аппаратного обеспечения, или с помощью комбинации программного и аппаратного обеспечения. Также в этом отношении следует отметить, что любые блоки последовательностей логических операций, проиллюстрированные на чертежах, могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию программных шагов и логических схем, блоков и функций. Упомянутое программное обеспечение может храниться на таких физических носителях, как микросхемы памяти или блоки памяти, реализованные внутри процессора, магнитные носители, например, жесткий диск или гибкий диск, и оптические носители, например, DVD и их варианты для хранения данных, CD.
Упомянутая память может относиться к любому типу, соответствующему локальному техническому окружению, при этом она может быть реализована с использованием любой подходящей технологии хранения данных, например, запоминающие устройства на полупроводниках, магнитные запоминающие устройства и системы, оптические запоминающие устройства и системы, несъемная или съемная память. Упомянутые процессоры данных могут относиться к любому типу, соответствующему локальному техническому окружению, и могут включать одно или более из следующего: компьютеры общего назначения, компьютеры специального назначения, микропроцессоры, цифровые сигнальные процессоры (digital signal processors, DSP), процессоры на основе многоядерной архитектуры - в качестве неограничивающих примеров.
Варианты осуществления настоящего изобретения могут применяться на практике в различных компонентах, например, в модулях интегральных схем. Процесс разработки интегральных схем в целом в высокой степени автоматизирован. Существуют сложные и мощные программные инструменты для преобразования проектов логического уровня в конструкции полупроводниковых схем, готовые для вытравливания и формирования на полупроводниковой подложке.
Программы, подобные поставляемой фирмой Synopsys, Inc (Маунтин-Вью, Калифорния) или фирмой Cadence Design (Сан-Хосе, Калифорния), осуществляют автоматическую разводку проводников и позиционирование компонентов на полупроводниковом кристалле с использованием общепринятых правил разработки, а также с использованием библиотек заранее сохраненных модулей проектов. По завершении разработки полупроводниковой схемы результирующая конструкция в стандартизированном электронном формате (например, Opus, GDSII и т.п.) может быть передана на полупроводниковое производство для изготовления.
В предшествующем изложении с помощью иллюстративных и неограничивающих примеров было обеспечено полное и информативное описание настоящего изобретения. Однако в свете предшествующего описания, рассматриваемого в сочетании с приложенными чертежами, специалистам в соответствующих областях техники могут быть очевидны различные модификации и доработки. Тем не менее, любые такие или аналогичные им модификации концепции настоящего изобретения попадают в его рамки.
Ниже приведены некоторые примеры.
В некоторых вариантах осуществления настоящего изобретения способ включает:
прием блока пикселей, включающего блок предсказания; определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ также включает шаг включения блоков, смежных с упомянутым принятым блоком пикселей, в упомянутый набор кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает построение упомянутого набора кандидатов для пространственного предсказания вектора движения с использованием векторов движения одного или более кодированных блоков пикселей в том же кадре, что и упомянутый блок пикселей.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает также выбор кандидатов для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения в заранее заданном порядке.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает проверку, является ли упомянутый принятый кодированный блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если это так, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
определение максимального количества кандидатов для пространственного предсказания вектора движения, включаемых в список объединения; и
ограничение количества кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения количеством, меньшим или равным упомянутому максимальному количеству.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем упомянутое максимальное количество;
если это так, проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен под упомянутым потенциальным кандидатом для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает выбор одного кандидата для предсказания вектора движения из упомянутого списка объединения, которое будет представлять предсказание вектора движения для упомянутого блока пикселей.
В некоторых вариантах осуществления настоящего изобретения способ, в соответствии со вторым аспектом, включает:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает также шаг включения блоков, смежных с упомянутым принятым кодированным блоком пикселей, в упомянутый набор кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает построение набора кандидатов для пространственного предсказания вектора движения с использованием векторов движения одного или более декодированных блоков пикселей в том же кадре, что и принятый кодированный блок пикселей.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает также выбор кандидатов для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения в заранее заданном порядке.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает проверку, является ли принятый кодированный блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если это так, то исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
определение максимального количества кандидатов для пространственного предсказания вектора движения, включаемых в список объединения; и
ограничение количества кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения количеством, меньшим или равным упомянутому максимальному количеству.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем упомянутое максимальное количество;
если это так, проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен под упомянутым потенциальным кандидатом для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает шаг включения кандидата для временного предсказания вектора движения в упомянутый список объединения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает выбор из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого принятого кодированного блока пикселей.
В некоторых вариантах осуществления настоящего изобретения, в соответствии с третьим аспектом настоящего изобретения, устройство имеет в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения, в соответствии с его четвертым аспектом, устройство имеет в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В некоторых вариантах осуществления настоящего изобретения носитель данных имеет хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения носитель данных имеет хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения устройство включает:
средства приема блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В некоторых вариантах осуществления настоящего изобретения устройство включает:
средства приема кодированного блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
Настоящее изобретение относится к способу кодирования, способу декодирования, устройству, компьютерным программным продуктам, кодеру и декодеру видеоинформации. Вектор движения блока пикселей в изображении предсказывают на основе набора кандидатов для предсказания векторов движения, определяемых на основе ранее кодированных векторов движения. Кандидата для предсказания вектора движения включают в этот набор на основе местоположения блока пикселей, связанного с первым кандидатом для пространственного предсказания вектора движения, и на основе сравнения с кандидатами для предсказания векторов движения, уже находящимися в этом наборе. 6 н. и 16 з.п. ф-лы, 18 ил.
1. Способ кодирования видеоизображения, включающий:
прием блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний вектора движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
2. Способ по п. 1, включающий сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
3. Способ по п. 1 или 2, включающий проверку, является ли упомянутый принятый блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если так, то исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
4. Способ по п. 1 или 2, включающий:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
5. Способ по п. 1 или 2, включающий выбор из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого блока пикселей.
6. Способ декодирования кодированного видеоизображения, включающий:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний вектора движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
7. Способ по п. 6, включающий сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
8. Способ по п. 6 или 7, включающий проверку, является ли упомянутый принятый кодированный блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если это так, то исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
9. Способ по п. 6 или 7, включающий:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
10. Способ по п. 6 или 7, включающий выбор из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого принятого кодированного блока пикселей.
11. Устройство для кодирования видеоизображения, содержащее процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код конфигурированы вместе с упомянутым процессором для обеспечения выполнения упомянутым устройством:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
12. Устройство по п. 11, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством сравнения информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
13. Устройство по п. 11 или 12, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством проверки, является ли упомянутый принятый блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если так, то выполнение исключения упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
14. Устройство по п. 11 или 12, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
проверки, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
15. Устройство по п. 11 или 12, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
выбора из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого блока пикселей.
16. Устройство для декодирования кодированного видеоизображения, содержащее процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код конфигурированы вместе с упомянутым процессором для обеспечения выполнения упомянутым устройством:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
17. Устройство по п. 16, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством сравнения информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
18. Устройство по п. 16 или 17, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством проверки, является ли упомянутый принятый блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если так, то выполнение исключения упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
19. Устройство по п. 16 или 17, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
проверки, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
20. Устройство по п. 16 или 17, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
выбора из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого блока пикселей.
21. Машиночитаемый носитель данных, имеющий хранимые на нем машиночитаемые команды, которые при исполнении одним или более процессором обеспечивают выполнение одним или более процессором способа кодирования видеоизображения, включающего:
прием блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
22. Машиночитаемый носитель данных, имеющий хранимые на нем машиночитаемые команды, которые при исполнении одним или более процессором обеспечивают выполнение одним или более процессором способа декодирования кодированного видеоизображения, включающего:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
WO 2011062392 A2, 26.05.2011 | |||
WO 2007037912 A2, 05.04.2007 | |||
СПОСОБ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА С ИСПОЛЬЗОВАНИЕМ ВЗВЕШЕННОГО ПРЕДСКАЗАНИЯ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ | 2006 |
|
RU2341035C1 |
УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕОСИГНАЛА, ПРЕДСТАВЛЯЮЩЕГО ИЗОБРАЖЕНИЯ, ПРИЕМНИК ТЕЛЕВИЗИОННОГО СИГНАЛА, ВКЛЮЧАЮЩЕГО ДАННЫЕ ЗАГОЛОВКОВ И ПОЛЕЗНЫЕ ДАННЫЕ В ВИДЕ СЖАТЫХ ВИДЕОДАННЫХ | 1992 |
|
RU2128405C1 |
Авторы
Даты
2016-03-10—Публикация
2012-11-02—Подача