Область техники
Настоящее изобретение относится к устройству, способу и компьютерной программе для формирования и использования информации предсказания движения при кодировании и декодировании видеоданных.
Предпосылки создания изобретения
Видеокодек может включать кодер, который преобразует входные видеоданные в их сжатое представление, пригодное для хранения и/или передачи, и декодер, который распаковывает сжатое представление видеоданных обратно в подходящую для просмотра форму, или только один из этих элементов. Кодер может отбрасывать часть информации из исходной видеопоследовательности для представления видеоданных в более компактной форме, например с более низкой битовой скоростью передачи.
Многие гибридные видеокодеки, например соответствующие стандартам H.263 и H.264 Международного союза электросвязи - Технического совета (ITU-T, International Telegraphic Union - Technical Board), кодируют видеоинформацию в два этапа. На первом этапе предсказывают значения пикселей в определенной области изображения или «блоке». Эти значения пикселей могут предсказываться, например, с помощью механизмов компенсации движения, в которых применяются поиск и указание на область в одном из ранее кодированных видеокадров (или в позднее кодируемом видеокадре), близко соответствующую кодируемому блоку. Кроме того, значения пикселей могут быть предсказаны с помощью пространственных механизмов, в которых применяются поиск и указание взаимосвязи пространственных областей, например, с использованием, заданным образом, значений пикселей вокруг кодируемого блока.
При этом подходы, в которых применяется предсказание с использованием видеоинформации из предыдущих или последующих изображений, могут называться способами внешнего предсказания (Inter prediction), тогда как подходы, в которых применяется предсказание с использованием видеоинформации внутри одного изображения, могут называться способами внутреннего предсказания (Intra prediction).
На втором этапе выполняют кодирование ошибки между предсказанным блоком пикселей и исходным блоком пикселей. Обычно это выполняется путем преобразования разности значений пикселей с использованием заданного преобразования. Для этого обычно используется дискретное косинусное преобразование (DCT, Discrete Cosine Transform) или его варианты. После преобразования разности выполняется квантование и энтропийное кодирование преобразованной разности.
Путем изменения точности процесса квантования кодер может управлять балансом между точностью представления пикселей (другими словами, качеством изображения) и размером результирующего представления кодированного видео (другими словами, размером файла или битовой скоростью передачи).
Один из примеров процедуры кодирования проиллюстрирован на фиг.1.
Декодер реконструирует выходное видео путем применения механизма предсказания, аналогичного тому, который использовался кодером, для формирования предсказанного представления блоков пикселей (с использованием информации о движении или пространственной информации, созданной кодером и хранимой в сжатом представлении изображения), и путем декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания, для реконструкции квантованного сигнала предсказания в пространственной области).
После применения процессов предсказания пикселей и декодирования ошибки декодер объединяет сигналы предсказания и ошибки предсказания (значения пикселей) для формирования выходного видеокадра.
Декодер (и кодер) может также применять дополнительный процесс фильтрации для повышения качества выходного видеосигнала перед его отображением и/или сохранением в качестве опорного для предсказания последующих кадров в видеопоследовательности.
Один из примеров процедуры декодирования проиллюстрирован на фиг.2.
Предсказание с компенсацией движения (Motion Compensated Prediction) представляет собой технологию, применяемую в стандартах сжатия видеоданных для уменьшения размера кодированного битового потока. В технологии МСР предсказание для текущего кадра формируют с использованием ранее кодированного кадра (кадров), при этом кодируют и передают в декодер только разность между исходным и предсказанным сигналами, представляющими текущий и предсказанный кадр. Сигнал предсказания, представляющий предсказанный кадр, формируют, сначала разбивая текущий кадр на блоки, например макроблоки, и затем находя наилучшее совпадение в опорном кадре для каждого блока. Таким образом определяют движение блока относительно опорного кадра, и информацию об этом движении кодируют в битовый поток в виде векторов движения. Декодер способен в точности реконструировать предсказанный кадр с помощью декодирования данных векторов движения, кодированных в битовом потоке.
Один из примеров структуры предсказания представлен на фиг.8. Прямоугольниками обозначены кадры, заглавные буквы внутри прямоугольников обозначают типы кодирования, числа внутри прямоугольников представляют номера кадров (в порядке декодирования), а стрелки указывают на зависимости в предсказании. В данном примере I-кадры представляют собой кадры внутреннего кодирования, для которых не применяются опорные изображения, и которые, следовательно, могут декодироваться независимо от декодирования остальных кадров. P-кадры представляют собой так называемые изображения с одинарным предсказанием, то есть они ссылаются на один опорный кадр, а B-кадры представляют собой кадры с двойным предсказанием, для которых в качестве опорных используются два других изображения, или два блока предсказания внутри одного опорного изображения. Другими словами, опорные блоки, связанные с B-кадром, могут находиться в одном опорном кадре (как показано двумя стрелками от кадра P7 к кадру B8 на фиг.8) или в двух различных опорных кадрах (как показано, например, стрелками от кадра P2 и кадра B3 к кадру B4 на фиг.8).
Следует также отметить, что один кадр может включать различные типы блоков, то есть блоки кадра могут представлять собой блоки внутреннего предсказания, блоки одинарного предсказания и/или блоки двойного предсказания. С блоками часто связывают векторы движения, при этом для одного кадра может быть множество векторов движения.
В некоторых системах кадры с одинарным предсказанием называются также кадрами с однонаправленным предсказанием, а кадры с двойным предсказанием называются кадрами с двунаправленным предсказанием.
Векторы движения не обязательно должны иметь точность до целого пикселя, но могут также иметь точность до дробной части пикселя. То есть векторы движения могут указывать на дробнопиксельные позиции/местоположения в опорном кадре, которые могут относиться, например, к местоположениям «между» пикселями изображения. Для получения отсчетов в дробнопиксельных местоположениях в процессе МСР могут применяться интерполяционные фильтры. Имеющиеся стандарты видеокодирования описывают, каким образом декодер может получать отсчеты с дробнопиксельной точностью с помощью задания интерполяционного фильтра. Например, в стандарте MPEG-2 максимальная точность векторов движения равна половине пикселя, при этом отсчеты в полупиксельных местоположениях получают простым усреднением соседних отсчетов в целопиксельных положениях. Стандарт видеокодирования H.264/AVC поддерживает векторы движения до четверть-пиксельной точности. Кроме того, в стандарте видеокодирования H.264/AVC полупиксельные отсчеты получают с применением симметричных и разделяемых 6-точечных фильтров, тогда как четверть-пиксельные отсчеты получают усреднением ближайших полупиксельных или целопиксельных отсчетов.
В типовых видеокодеках информация о движении указывается векторами движения, связанными с каждым блоком изображения с компенсацией движения. Каждый из этих векторов движения представляет смещение блока изображения на изображении, подлежащем кодированию (в кодере) или декодированию (в декодере), относительно исходного блока предсказания в одном из ранее кодированных или декодированных изображений (или кадров). Для эффективного представления векторов движения эти векторы обычно кодируются дифференциально по отношению к предсказанному вектору движения, специфичному для блока. В типовом видеокодеке предсказанные векторы движения создаются заранее заданным образом, например путем вычисления среднего для кодируемых или декодируемых векторов движения смежных блоков.
В типовых видеокодеках разностный сигнал предсказания после компенсации движения сначала преобразуют с использованием ядра преобразования (подобного DCT), а затем кодируют. Причина этого заключается в том, что в разностном сигнале часто имеется некоторая корреляция и преобразование во многих случаях позволяет уменьшить эту корреляцию и обеспечить более эффективное кодирование.
В типовых видеокодерах для нахождения оптимальных режимов кодирования, например, требуемого режима макроблока и связанных векторов движения, используется функция стоимости Лагранжа. Функция стоимости этого типа использует весовой коэффициент λ для связывания точного или оценочного искажения изображения, возникающего вследствие применения способов кодирования с потерями, и точного или оценочного объема информации, требуемого для представления значений пикселей в области изображения.
Она может быть представлена следующей формулой:
где C - величина стоимости Лагранжа, которая должна быть минимизирована, D - искажение изображения (например, среднеквадратическая ошибка между значениями пикселей в блоке исходного изображения и блоке кодированного изображения) при использовании рассматриваемых в настоящий момент режима и векторов движения, λ - множитель Лагранжа и R - количество битов, необходимых для представления требуемых данных для реконструкции блока изображения в декодере (включая объем данных для представления возможных векторов движения).
В некоторых гибридных видеокодеках, например в H.264/AVC, для повышения эффективности кодирования используют двунаправленное предсказание с компенсацией движения. При двунаправленном предсказании сигнал предсказания для блока может формироваться путем объединения, например путем усреднения, двух блоков предсказания с компенсацией движения. Эта операция усреднения может также включать округление сверху или снизу, что может вносить ошибки округления.
Накопление ошибок округления при двунаправленном предсказании может вызывать снижение эффективности кодирования. Подобное накопление ошибок округления может быть устранено или уменьшено с помощью сигнализации, после объединения двух сигналов предсказания для каждого кадра, о том, было ли использовано округление сверху или снизу. Альтернативно, ошибкой округления можно управлять путем чередования округления сверху и округления снизу для каждого кадра. Например, округление сверху может применяться через кадр, и, соответственно, округление снизу также может применяться через кадр.
На фиг.9 проиллюстрирован пример усреднения двух блоков предсказания с компенсацией движения при применении округления. Значения отсчетов первого опорного блока предсказания вводят (902) в первый фильтр (904), в котором для фильтрации используются значения двух или более целых пикселей вблизи точки, на которую указывает вектор движения. К фильтрованному значению может быть добавлено (906) смещение округления. Значение после фильтрации, сложенное со смещением округления, сдвигают вправо (908) на x битов, то есть делят на 2x, для получения первого сигнала P1 предсказания. Аналогичную операцию выполняют со вторым опорным блоком предсказания, что проиллюстрировано блоками 912, 914, 916 и 198, и получают второй сигнал P2 предсказания. Первый сигнал P1 предсказания и второй сигнал P2 предсказания объединяют, например, путем суммирования сигналов P1, P2 предсказания. К объединенному сигналу может быть добавлено (920) смещение округления, после чего результат сдвигают вправо на у битов, то есть делят на 2y. Округление может выполняться сверху, если смещение округления положительно, или снизу, если смещение округления отрицательно. Направление округления может быть всегда одинаковым или может изменяться время от времени, например, для каждого кадра. Направление округления может сигнализироваться в битовом потоке, чтобы в процессе декодирования использовалось то же направление округления.
Однако эти способы повышают сложность, поскольку при усреднении результатов двунаправленного предсказания необходимо записывать две отдельные ветви кода. Кроме того, процедуры оценки движения в кодере необходимо дублировать для случаев округления и усечения.
Сущность изобретения
В настоящем изобретении предлагается способ, позволяющий снизить влияние ошибок округления при двунаправленном и многонаправленном предсказании. В соответствии с некоторыми вариантами осуществления настоящего изобретения во время вычисления предсказаний поддерживают более высокую точность сигналов предсказания, а затем точность уменьшают после объединения двух или более сигналов предсказания.
В некоторых примерах осуществления настоящего изобретения более высокую точность сигналов предсказания используют до тех пор, пока эти сигналы предсказания не будут объединены для получения сигнала двунаправленного или многонаправленного предсказания. Точность сигнала двунаправленного или многонаправленного предсказания может затем быть понижена путем сдвига до точности, подходящей для последующей обработки. Соответственно, отсутствует необходимость включения указания на направление округления в битовый поток или считывания такого указания из битового потока.
В соответствии с первым аспектом настоящего изобретения предлагается способ, включающий:
определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определение типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединение упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижение точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии со вторым аспектом настоящего изобретения предлагается устройство, содержащее:
процессор и
блок памяти, функционально связанный с упомянутым процессором и содержащий:
компьютерный код, сконфигурированный для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
компьютерный код, сконфигурированный для определения типа упомянутого блока;
компьютерный код, сконфигурированный, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с третьим аспектом настоящего изобретения предлагается машиночитаемый носитель для хранения данных с хранимым на нем кодом для использования устройством, который при исполнении процессором обеспечивает выполнение упомянутым устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с четвертым аспектом настоящего изобретения предлагается по меньшей мере один процессор и по меньшей мере одна память, в которой хранится код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с пятым аспектом настоящего изобретения предлагается устройство, содержащее:
входной модуль для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
модуль определения для определения типа упомянутого блока; при этом, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков, то упомянутый модуль определения сконфигурирован также для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
первый модуль предсказания для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
второй модуль предсказания для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
модуль объединения для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
модуль сдвига для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с шестым аспектом настоящего изобретения предлагается устройство, содержащее:
средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
средство для определения типа упомянутого блока;
средство для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке, если упомянутое определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков;
средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
Благодаря использованию настоящего изобретения отсутствует необходимость сигнализации смещения округления, а также использования различных способов округления для различных кадров. Настоящее изобретение позволяет поддерживать максимально возможную точность сигнала предсказания с компенсацией движения для каждого из предсказаний после интерполяции и выполнять округление до битовой разрядности видеосигнала после суммирования обоих сигналов предсказания.
Краткое описание чертежей
Для понимания настоящего изобретения далее, в качестве примеров, будут осуществляться ссылки на приложенные чертежи.
На фиг.1 показана схема электронного устройства, в котором применяются некоторые варианты осуществления настоящего изобретения.
На фиг.2 показано пользовательское устройство, подходящее для применения некоторых вариантов осуществления настоящего изобретения.
На фиг.3 показаны электронные устройства, в которых применяются варианты осуществления настоящего изобретения и которые связаны с помощью беспроводных и проводных сетевых соединений.
На фиг.4a показана схема одного из вариантов осуществления настоящего изобретения, реализованного в кодере.
На фиг.4b показана схема одного из вариантов осуществления модуля внешнего предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
На фиг.5 показана блок-схема, иллюстрирующая работу одного из вариантов осуществления настоящего изобретения в отношении кодера, показанного на фиг.4a.
На фиг.6 показана схема декодера в соответствии с некоторыми вариантами осуществления настоящего изобретения.
На фиг.7 показана блок-схема алгоритма, иллюстрирующая работу одного из вариантов осуществления настоящего изобретения в отношении декодера, показанного на фиг.6.
На фиг.8 показан один из примеров структуры предсказания в видеопоследовательности.
На фиг.9 показан один из примеров битового потока изображения.
На фиг.10 показан один из примеров двунаправленного предсказания с использованием округления.
На фиг.11 показан один из примеров двунаправленного предсказания в соответствии с примером осуществления настоящего изобретения.
На фиг.12 показан один из примеров некоторых возможных направлений предсказания для вектора движения.
Подробное описание изобретения
Ниже более подробно описываются соответствующее устройство и возможные механизмы для уменьшения объема информации, передаваемой в системах видеокодирования, а также более оптимальные отображения кодовых слов в некоторых вариантах осуществления настоящего изобретения. В связи с этим рассмотрим сначала фиг.1, где показана структурная схема примеров устройства или электронного устройства 50, которое может включать кодек в соответствии с вариантом осуществления настоящего изобретения.
Электронное устройство 50 может являться, например, мобильным терминалом или пользовательским устройством системы беспроводной связи. Однако следует отметить, что варианты настоящего изобретения могут быть реализованы в рамках любого электронного устройства или устройства, для которого может потребоваться кодирование и/или декодирование видеоизображений.
Устройство 50 может содержать корпус 30 для размещения и защиты компонентов устройства. Устройство 50 может также содержать дисплей 32, выполненный в виде жидкокристаллического дисплея. В других вариантах осуществления настоящего изобретения дисплей может быть выполнен в соответствии с любой подходящей технологией для воспроизведения изображений или видео. Устройство 50 может также содержать клавиатуру 34. В других вариантах осуществления настоящего изобретения могут использоваться любые подходящие механизмы интерфейса ввода данных или пользовательского интерфейса. Например, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного экрана. Устройство может содержать микрофон 36 или любое подходящее средство ввода аудиосигнала, которое может являться средством ввода цифрового или аналогового сигнала. Устройство 50 может также содержать средство вывода аудиосигнала, которое в вариантах осуществления настоящего изобретения может представлять собой одно из следующих средств: наушники 38, динамик либо аналоговое или цифровое подключение к аудиовыходу. Устройство 50 может также содержать батарею 40 (или в других вариантах осуществления настоящего изобретения устройство может получать питание от любого подходящего мобильного источника энергии, такого как солнечный фотоэлемент, топливный элемент или аккумулятор часового механизма). Устройство может также содержать инфракрасный порт 42 для ближней связи с другими устройствами. В других вариантах осуществления настоящего изобретения устройство 50 может также содержать любое подходящее решение для ближней связи, такое как беспроводное соединение 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 может включать любое объединение проводных или беспроводных сетей, включая, не ограничиваясь этим, беспроводную телефонную сотовую сеть (например, сеть GSM, UMTS, CDMA и т.д.), локальную беспроводную сеть (WLAN, wireless local area network), определенную, например, любым из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную сеть Ethernet, кольцевую локальную сеть с маркерным доступом (token ring), глобальную сеть и Интернет.
Система 10 может содержать как проводные, так и беспроводные средства связи или устройства 50, подходящие для реализации вариантов настоящего изобретения.
Например, система, показанная на фиг.3, включает мобильную телефонную сеть 11 и Интернет 28. Соединение с Интернетом 28 может включать, не ограничиваясь этим, беспроводные соединения для дальней связи, беспроводные соединения для ближней связи и различные проводные соединения, включая, не ограничиваясь этим, телефонные линии, кабельные линии, линии электропитания и аналогичные тракты связи.
Примеры устройств связи, показанные в системе 10, могут включать, не ограничиваясь этим, электронное устройство или устройство 50, объединение персонального цифрового помощника (PDA, personal digital assistant) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (IMD, integrated messaging device), настольный компьютер 20, ноутбук 22. Устройство 50 может быть стационарным или мобильным устройством, перемещаемым отдельным пользователем. Устройство 50 может также располагаться в транспортном средстве, включая, не ограничиваясь этим, легковой автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.
Некоторые устройства могут посылать и принимать вызовы и сообщения и осуществлять связь с провайдерами услуг через беспроводное соединение 25 с базовой станцией 24. Базовая станция 24 может соединяться с сетевым сервером 26, который позволяет выполнять связь между мобильной телефонной сетью 11 и Интернетом 28. Система может содержать дополнительные устройства связи и устройства связи различных типов.
Устройства связи могут осуществлять связь с использованием различных технологий передачи, включая, не ограничиваясь этим, множественный доступ с кодовым разделением каналов (CDMA, code division multiple access), глобальные системы мобильной связи (GSM, global system for mobile communications), универсальную систему мобильной связи (UMTS, universal mobile telecommunications system), множественный доступ с временным разделением каналов (TDMA, time divisional multiple access), множественный доступ с частотным разделением каналов (FDMA, frequency division multiple access), протокол управления передачей/Интернет-протокол (TCP-IP, transmission control protocol-internet protocol), службу обмена короткими сообщениями (SMS, short messaging service), службу обмена мультимедийными сообщениями (MMS, multimedia messaging service), электронную почту, службу мгновенного обмена сообщениями (IMS, instant messaging service), Bluetooth, IEEE 802.11 и любые другие аналогичные технологии беспроводной связи. Устройства связи, задействованные в реализации различных вариантов осуществления настоящего изобретения, могут осуществлять связь с использованием различных сред передачи, включая, не ограничиваясь этим, радиосоединения, инфракрасные, лазерные, кабельные соединения и любые другие подходящие соединения.
Различные варианты осуществления настоящего изобретения могут служить расширением традиционных двухэтапных алгоритмов с дробнопиксельной интерполяцией, например алгоритма, используемого в стандарте видеокодирования H.264/AVC, без увеличения сложности декодера. Следует отметить, что фиг.11 иллюстрирует только некоторые целопиксельные значения для пикселей, являющихся ближайшими соседями рассматриваемого блока пикселей, однако при интерполяции можно также использовать целопиксельные значения для пикселей, расположенных на большем расстоянии от рассматриваемого блока. Кроме того, настоящее изобретение не ограничено применением одномерной интерполяции, дробнопиксельные отсчеты могут формироваться с использованием более сложной интерполяции или фильтрации.
Следует отметить, что различные варианты осуществления настоящего изобретения могут быть реализованы с помощью или в сочетании с другими стандартами видеокодирования, помимо стандарта видеокодирования H.264/AVC.
На фиг.4 показана структурная схема видеокодера, подходящего для реализации настоящего изобретения. Кроме того, на фиг.5 подробно показано функционирование вариантов осуществления настоящего изобретения, относящихся к кодеру, в отношении использования более высокой точности при вычислении сигналов предсказания, как показано на блок-схеме.
На фиг.4a показан кодер, содержащий модуль 302 предсказания пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. На фиг.4a также показан один из вариантов осуществления модуля 302 предсказания пикселей, включающего модуль 306 внешнего предсказания, модуль 308 внутреннего предсказания, модуль 310 выбора режима, фильтр 316 и память 318 для опорных кадров. Модуль 310 выбора режима содержит процессор 381 блоков и модуль 382 вычисления функции стоимости. На фиг.4b также показан один из вариантов осуществления модуля 306 внешнего предсказания, содержащего модуль 360 выбора блока и модуль 361 задания векторов движения, который может быть реализован, например, в процессоре 362 предсказания. Модуль 306 внешнего предсказания может иметь доступ к памяти 404 для параметров. Модуль 310 выбора режима может также содержать модуль 384 квантования.
Модуль 302 предсказания пикселей принимает подлежащее кодированию изображение 300 как на входе модуля 306 внешнего предсказания (который определяет разность между кадром изображения и опорным кадром 318 с компенсацией движения), так и на входе модуля 308 внутреннего предсказания (который определяет предсказание для блока изображения исходя только из уже обработанных частей текущего кадра или изображения). Выходные сигналы модуля внешнего предсказания и модуля внутреннего предсказания подаются на модуль 310 выбора режима. Модуль 308 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, в каждом из этих режимов может осуществляться внутреннее предсказание, и в модуль 310 выбора режима может предоставляться предсказанный сигнал. Модуль 310 выбора режима также принимает копию изображения 300.
Процессор 381 блоков определяет, какой режим кодирования использовать для кодирования текущего блока. Если процессор 381 блоков принимает решение использовать режим внешнего предсказания, то он передает выходные данные модуля 306 внешнего предсказания на выход модуля 310 выбора режима. Если процессор 381 блоков принимает решение использовать режим внешнего предсказания, то он передает на выход модуля 310 выбора режима выходные данные одного из режимов внешнего предсказания.
В соответствии с некоторыми примерами осуществления настоящего изобретения модуль 302 предсказания пикселей функционирует следующим образом. Модуль 306 внешнего предсказания и режимы внутреннего предсказания выполняют предсказание текущего блока для получения предсказанных значений пикселей текущего блока. Модуль 306 внешнего предсказания и режимы 308 внутреннего предсказания могут предоставлять предсказанные значения пикселей текущего блока в процессор 381 блоков для анализа того, какое предсказание необходимо выбрать. Помимо предсказанных значений текущего блока, процессор 381 блоков в некоторых вариантах осуществления настоящего изобретения может принимать из упомянутых режимов внутреннего предсказания указание на режим направленного внутреннего предсказания.
Процессор 381 блоков анализирует, следует ли выбрать режим внешнего предсказания или режим внутреннего предсказания. Для анализа того, какой из методов кодирования дает наиболее эффективный результат в отношении определенного критерия или критериев, процессор блоков 381 может использовать функции стоимости, например уравнение (1). Выбранный критерий может включать эффективность кодирования, вычислительные затраты и/или другие критерии. При выборе режима предсказания процессор 381 блоков может анализировать предсказание для каждого направления, то есть для каждого режима внутреннего предсказания и каждого режима внешнего предсказания, или процессор 381 блоков может анализировать только подмножество всех доступных режимов предсказания.
В некоторых вариантах осуществления настоящего изобретения модуль 306 внешнего предсказания работает следующим образом. Модуль 360 выбора блока принимает текущий кодируемый блок (шаг 504 на фиг.5) и анализирует, содержит ли ранее кодированное изображение блок, который может использоваться в качестве опорного для текущего блока (шаг 505). Если такой блок найден в памяти 318 для опорных кадров, то модуль 365 оценки движения может определять возможность предсказания текущего блока с использованием одного или двух (или более) опорных блоков, то есть может определять то, будет ли текущий блок блоком с одинарным предсказанием или блоком с двойным предсказанием (шаг 506). Если модуль 365 оценки движения принял решение использовать одинарное предсказание, то он может передать указание на опорный блок в модуль 361 задания векторов движения. Если модуль 365 оценки движения выбрал использовать двойное предсказание, то он может передать указания в модуль 361 задания векторов движения на оба опорных блока или, если было выбрано более двух опорных блоков, на все выбранные опорные блоки. Модуль 361 задания векторов движения использует эту информацию об опорных блоках и задает вектор движения (шаг 507), указывающий на соответствие между пикселями текущего блока и опорного блока (блоков).
В некоторых вариантах осуществления настоящего изобретения модуль 306 внешнего предсказания вычисляет значение функции стоимости для однонаправленного и двунаправленного предсказания и после этого может выбирать, какой тип предсказания использовать для текущего блока.
В некоторых вариантах осуществления настоящего изобретения вектор движения может указывать на целопиксельный отсчет или дробнопиксельный отсчет, то есть на половину пикселя, четверть пикселя или одну восьмую пикселя. Модуль 361 задания векторов движения может анализировать тип текущего блока и определять, является ли этот блок блоком с двойным предсказанием или имеет другой тип (шаг 508). Тип блока может определяться с помощью указания 366 на тип блока, которое может предоставляться модулем 360 выбора блока или другим элементом кодера. Если блок является блоком с двойным предсказанием, то модулем 361 задания векторов движения задаются два (или более) векторов движения (шаг 509). В противном случае, если блок является блоком с одинарным предсказанием, будет задан один вектор движения (шаг 510).
Определение типа блока возможно также до вычисления вектора движения.
Модуль 361 задания векторов движения предоставляет информацию о векторах движения в процессор 381 блоков, который использует эту информацию для получения сигнала предсказания.
После вычисления значения функции стоимости для режима внутреннего предсказания и, возможно, для режима (или режимов) внешнего предсказания, процессор 381 блоков выбирает один из режимов внутреннего или внешнего предсказания для кодирования текущего блока.
Если был выбран режим внешнего предсказания, то в качестве выходных данных модуля выбора режима предоставляются предсказанные значения пикселей или предсказанные значения пикселей, квантованные с помощью опционального модуля 384 квантования.
Выходные данные модуля выбора режима передаются в первое суммирующее устройство 321. Первое суммирующее устройство может вычитать выходные данные модуля 302 предсказания пикселей из изображения 300 для получения первого сигнала 320 ошибки предсказания, который подается на вход кодера 303 ошибки предсказания.
Модуль 302 предсказания пикселей принимает от предварительного модуля 339 реконструкции объединение представления предсказания блока 312 изображения и выходного сигнала 338 декодера 304 ошибки предсказания. Предварительно реконструированное изображение 314 может быть передано в модуль 308 внутреннего предсказания и фильтр 316. Фильтр 316, принимающий предварительное представление, может выполнять фильтрацию предварительного представления и выводить окончательное реконструированное изображение 340, которое может сохраняться в памяти 318 для опорных кадров. Память 318 для опорных кадров может соединяться с модулем 306 внешнего предсказания для использования в качестве опорного изображения по отношению к будущему изображению 300 в операциях внешнего предсказания.
Функционирование модуля 302 предсказания пикселей может быть сконфигурировано для выполнения любого известного алгоритма предсказания пикселей.
Модуль 302 предсказания пикселей может также содержать фильтр 385 для фильтрации предсказанных значений перед выводом их из модуля 302 предсказания пикселей.
Далее более подробно будет описано функционирование кодера 302 ошибки предсказания и декодера 304 ошибки предсказания. В последующих примерах кодер формирует изображения в макроблоках 16×16 пикселей для формирования полного изображения или кадра. Таким образом, в приведенных ниже примерах модуль 302 предсказания пикселей выдает последовательность предсказанных макроблоков размера 16×16 пикселей, а первое суммирующее устройство 321 выдает последовательность макроблоков 16×16 разностных данных, которые могут представлять разницу между первым макроблоком в изображении 300 и предсказанным макроблоком (выходными данными модуля 302 предсказания пикселей). Следует понимать, что может использоваться и другой размер макроблоков.
Кодер 303 ошибки предсказания включает модуль 342 преобразования и модуль 344 квантования. Модуль 342 преобразования преобразует первый сигнал 320 ошибки предсказания в область преобразования. Таким преобразованием является, например, преобразование DCT. Модуль 344 квантования квантует сигнал области преобразования, например коэффициенты DCT, и формирует квантованные коэффициенты.
Энтропийный кодер 330 принимает выходной сигнал кодера ошибки предсказания и может выполнять для этого сигнала подходящее энтропийное кодирование или кодирование переменной длины для обеспечения возможности обнаружения ошибки и коррекции. Может использоваться любой подходящий алгоритм энтропийного кодирования.
Декодер 304 ошибки предсказания принимает выходной сигнал кодера 303 ошибки предсказания и выполняет процессы, обратные тем, которые выполняет кодер 303 ошибки предсказания, для формирования сигнала 338 декодированной ошибки предсказания, который при объединении с представлением предсказания блока 312 изображения во втором суммирующем устройстве 339 формирует предварительно реконструированное изображение 314. Декодер ошибки предсказания может рассматриваться как устройство, содержащее модуль 346 деквантования, который деквантует квантованные значения коэффициентов, например коэффициентов DCT, и восстанавливает сигнал преобразования, а также модуль 348 обратного преобразования, который выполняет обратное преобразование в реконструированный сигнал преобразования, при этом выходные данные модуля 348 обратного преобразования содержат реконструированный блок (или блоки). Декодер ошибки предсказания может также содержать фильтр макроблоков (не показан), который может фильтровать реконструированный макроблок в соответствии с дополнительной декодированной информацией и параметрами фильтрации.
Функционирование и реализация модуля 310 выбора режима более подробно проиллюстрированы на фиг.5. На основе сигналов предсказания с выхода модуля 306 внешнего предсказания, выходных данных модуля 308 внутреннего предсказания и/или сигнала 300 изображения процессор 381 блоков определяет, какой режим кодирования нужно использовать для кодирования текущего блока изображения. Этот выбор проиллюстрирован на шаге 500 на фиг.5. Процессор 381 блоков может вычислять значение коэффициента стоимости "скорость-искажение" (RD, rate-distorsion) или другое значение коэффициента стоимости для сигналов предсказания, поступающих на вход модуля 310 выбора режима, и выбирать такой режим 503, 504 кодирования, для которого вычисленное значение коэффициента стоимости будет наименьшим.
Модуль 310 выбора режима предоставляет указание на режим кодирования текущего блока (501). Это указание может кодироваться и вводиться в битовый поток или сохраняться в памяти вместе с информацией изображения.
Если выбран режим внутреннего предсказания, то блок предсказывают с помощью способа (503) внутреннего предсказания. Соответственно, если выбран режим внешнего предсказания, то блок предсказывают с помощью способа (504-510) внешнего предсказания.
На фиг.11 в виде блок-схемы проиллюстрирован один из примеров работы модуля выбора режима, когда выбран режим внешнего предсказания и блок является блоком с двойным предсказанием. Информация векторов движения, предоставляемая модулем 361 задания векторов движения, содержит указание на первый опорный блок и второй опорный блок. В приложениях многонаправленного предсказания информация векторов движения может включать указание более чем на два опорных блока. Процессор 381 блоков использует эту информацию векторов движения для определения, какой из блоков использовать в качестве первого опорного блока для текущего блока и какой блок использовать в качестве второго опорного блока для текущего блока. Затем процессор 381 блоков использует часть значений пикселей первого опорного блока для получения первых предсказанных значений и часть значений пикселей второго опорного блока для получения вторых предсказанных значений. Например, если первый вектор движения указывает на дробную часть пикселя (подпиксель), проиллюстрированную квадратом b в примере на фиг.12, то процессор 381 блоков для получения значения опорного пикселя может использовать вместо упомянутой дробной части пикселя, например, значения нескольких полных пикселей в этой же строке. Процессор 381 может использовать, например, P-точечный фильтр, такой как шеститочечный фильтр, в котором для вычисления предсказанного значения используют P значений пикселей опорного блока. В примере на фиг.12 этими значениями пикселей могут быть пиксели E, F, G, H, I и J. Коэффициенты фильтра могут представлять собой, например, целочисленные значения. Примером подобного шеститочечного фильтра является [1 -5 20 20 -5 1]/32. Следовательно, фильтр 1102 примет (шаг 1101) значения пикселей E, F, G, H, I и J и отфильтрует эти значения согласно уравнению P1=(E1-5*F1+20*G1+20*H1-5*I1+J1), где E1 - значение пикселя E в первом опорном блоке, F1 - значение пикселя F в первом опорном блоке, G1 - значение пикселя G в первом опорном блоке, H1 - значение пикселя H в первом опорном блоке, I1 - значение пикселя I в первом опорном блоке, a J1 - значение пикселя J в первом опорном блоке. В блоке 1103, где выполняют введение первого смещения округления, к значению P1 может быть добавлено первое смещение округления, то есть результатом будет P1 + смещение округления. Затем эта сумма может быть сдвинута вправо с помощью первого блока 1104 сдвига таким образом, что точность суммы будет составлять M битов. Точность M больше, чем точность ожидаемого предсказанного значения. Например, значения пикселей и предсказанные значения могут быть представлены N битами, где M>N. В некоторых примерах N равно 8 битов, а M равно 16 битов, однако очевидно, что в настоящем изобретении могут использоваться и другие длины в битах.
Второе предсказание может быть получено аналогичным образом вторым фильтром 1106, который принимает (шаг 1105) часть значений пикселей второго опорного блока. Эти значения пикселей определяют на основе второго вектора движения. Второй вектор движения может указывать на тот же самый пиксель (или дробную часть пикселя) во втором опорном блоке, на который указывает первый вектор движения в первом опорном блоке (в приведенном выше примере этим пикселем будет подпиксель b) или на другой полный пиксель или подпиксель во втором опорном блоке. Второй фильтр 1106 использует фильтр, который аналогичен первом фильтру 1102, и выдает второй результат P2 фильтрации. В соответствии с предыдущим примером этот фильтр представляет собой шеститочечный фильтр [1 -5 20 20 -5 1]/32, при этом P2=(E2-5*F2+20*G2+20*H2-5*I2+J2), где E2 - значение пикселя E во втором опорном блоке, F2 - значение пикселя F во втором опорном блоке, G2 - значение пикселя G во втором опорном блоке, H2 - значение пикселя H во втором опорном блоке, I2 - значение пикселя I во втором опорном блоке, a J2 - значение пикселя J во втором опорном блоке. В блоке 1107, где выполняют введение второго смещения округления, к значению P2 может быть добавлено первое смещение округления, то есть результатом будет P2 + смещение округления. Затем эта сумма может быть сдвинута вправо с помощью второго блока 1108 сдвига таким образом, что точность суммы будет составлять M битов.
В блоке 1109 объединения объединяют два значения P1, P2 предсказания, например путем суммирования, и объединенное значение складывают со вторым значением округления в блоке 1110 введения третьего значения округления. Точность результата уменьшают, например, путем сдвига битов результата вправо на у позиций в третьем блоке 1111 сдвига. Это соответствует делению результата на 2y. После преобразования точность сигнала предсказания соответствует точности входных значений пикселей. Однако промежуточные результаты имеют более высокую точность, поэтому возможные ошибки округления оказывают меньшее влияние на сигнал предсказания, по сравнению с существующими способами, такими, например, как способ, проиллюстрированный на фиг.10.
В одном из альтернативных вариантов осуществления настоящего изобретения смещение округления не складывают отдельно с результатами первого фильтра 1102 и второго фильтра 1106, а выполняют это сложение после объединения результатов в блоке 1110 объединения. В этом случае значение смещения округления равно удвоенному значению первого смещения округления, так как в варианте осуществления настоящего изобретения, показанном на фиг.11, первое смещение округления, фактически, добавляют дважды, один раз к P1, а другой раз к P2.
В некоторых вариантах осуществления настоящего изобретения первый блок 1105 сдвига и второй блок 1109 сдвига не используются, когда точность регистров, хранящих результаты фильтрации является достаточной и не ограничивает точность результатов фильтрации. В этом случае третий блок сдвига должен будет сдвинуть результаты предсказания более чем на у битов вправо, чтобы сдвинутое вправо значение P имело ту же точность, что и входные значения пикселей, например 8 битов.
Некоторые другие примеры осуществления настоящего изобретения могут частично отличаться от примеров, описанных выше. Например, если вектор движения одного из направлений предсказания указывает на целочисленный отсчет, то битовая разрядность отсчетов предсказания с целочисленной точностью может быть увеличена с помощью сдвига этих отсчетов влево таким образом, чтобы выполнять фильтрацию со значениями одной точности.
Отсчеты каждого из направлений предсказания могут округляться на промежуточном шаге до битовой разрядности, которая все еще больше, чем входная битовая разрядность, чтобы обеспечить совпадение всех промежуточных значений с определенной длиной регистров, например с 16-битными регистрами. Например, рассмотрим тот же пример, что и выше, но с использованием следующих точек фильтра: {3, -17, 78, 78, -17, 3}. Тогда P1 и P2 получают следующим образом:
P1=(3*E1-17*F1+78*G1+78*H1-17*I1+3*J1)>>1
P2=(3*E2-17*F2+78*G2+78*H2-17*I2+3*J2)>>1
Сигнал двунаправленного предсказания тогда может быть получен с помощью:
P=(P1+P2+32)>>6.
Когда вектор движения указывает на позицию между двумя целыми пикселями, то есть на дробную часть пикселя, значение для этого опорного пикселя может быть получено несколькими способами. Некоторые из возможностей были описаны выше, однако ниже со ссылками на фиг.12 приведены дополнительные примеры, не ограничивающие изобретение.
Если вектор движения указывает на блок, обозначенный j, то соответствующее значение опорных пикселей может быть получено с использованием целопиксельных значений на той же диагонали, что и j, или с помощью двухэтапной процедуры, в которой, например, значения пикселей строки вокруг блока j используют для вычисления множества промежуточных результатов, а затем эти промежуточные результаты могут фильтроваться для получения значений опорных пикселей. В одном из примеров осуществления настоящего изобретения целопиксельные значения A и B могут использоваться для вычисления первого промежуточного результата, представляющего дробнопиксельное значение aa, целопиксельные значения C и D могут использоваться для вычисления второго промежуточного результата, представляющего дробнопиксельное значение bb, а целопиксельные значения E-J могут использоваться для вычисления третьего промежуточного результата, представляющего дробнопиксельное значение b. Аналогично, четвертое, пятое и шестое промежуточные значения, представляющие дробнопиксельные значения s, gg, hh могут быть вычислены на основе целопиксельных значений K-Q; R, S; и T, U. Эти промежуточные результаты затем могут быть обработаны, например, шеститочечным фильтром.
Сигнал P предсказания, полученный с помощью описанных выше операций, не подлежит передаче в декодер, эта информация используется кодером для получения предсказанных блоков и ошибки предсказания. Ошибка предсказания может предоставляться в декодер, при этом декодер может использовать соответствующие операции для получения предсказанных блоков с помощью предсказания и коррекции результатов предсказания на основе этой ошибки предсказания. Кодер также может представлять в декодер информацию векторов движения.
В одном из примеров осуществления настоящего изобретения в соответствии с фиг.9 битовый поток изображения включает указание на начало 910 изображения, информацию 920 изображения каждого блока изображения и указание на конец 930 изображения. Информация 920 изображения каждого блока изображения может включать указатель 932 типа блока и информацию 933 векторов движения. Очевидно, что битовый поток может включать и другую информацию. В данном примере представлено лишь упрощенное изображение битового потока, и в практических реализациях содержимое битового потока может отличаться от иллюстрации на фиг.9.
Битовый поток затем может кодироваться энтропийным кодером 330.
Хотя рассмотренные выше варианты осуществления настоящего изобретения были описаны на примере макроблоков размером 16×16 пикселей, нужно понимать, что описанные способы и устройство могут быть сконфигурированы для обработки макроблоков различных пиксельных размеров.
Далее на примере фиг.6 более подробно рассмотрена работа одного из примеров осуществления декодера 600.
На стороне декодера выполняют аналогичные операции для реконструкции блоков изображения. На фиг.6 проиллюстрирована схема видеодекодера, подходящего для реализации вариантов осуществления настоящего изобретения, а на фиг.7 проиллюстрирована блок-схема одного из примеров способа, реализуемого в видеодекодере. Декодер содержит энтропийный декодер 600, который выполняет энтропийное декодирование принятого сигнала. Таким образом, энтропийный декодер выполняет операцию, обратную энтропийному кодеру описанного выше кодера. Энтропийный декодер 600 выводит результаты энтропийного декодирования в декодер 602 ошибки предсказания и в модуль 604 предсказания пикселей.
Модуль 604 предсказания пикселей принимает выходные данные энтропийного декодера 600. Выходные данные энтропийного декодера 600 могут включать указанные на режим предсказания, используемый при кодировании текущего блока. Модуль 614 выбора внутри модуля 604 предсказания пикселей определяет, что необходимо выполнять внутреннее предсказание, внешнее предсказание или операцию интерполяции. Модуль выбора модуля предсказания может выводить предсказанное представление блока 616 изображения в первый модуль 613 объединения. Предсказанное представление блока 616 изображения используется вместе с реконструированным сигналом 612 ошибки предсказания для формирования предварительного реконструированного изображения 618. Предварительное реконструированное изображение 618 может использоваться в модуле 614 предсказания или передаваться в фильтр 620. Фильтр 620 осуществляет фильтрацию, после которой выводится окончательный реконструированный сигнал 622. Окончательный реконструированный сигнал 622 может быть сохранен в памяти 624 для опорных кадров, при этом память 624 для опорных кадров связана с модулем 614 предсказания для выполнения операций предсказания.
Декодер 602 ошибки предсказания принимает выходные данные энтропийного декодера 600. Модуль 692 деквантования декодера 602 ошибки предсказания может выполнять деквантование выходных данных энтропийного декодера 600, при этом модуль 693 обратного преобразования может выполнять операцию обратного преобразования над деквантованным сигналом, выводимым модулем 692 деквантования. Выходные данные энтропийного декодера 600 могут также указывать на то, что сигнал ошибки предсказания не должен применяться, в этом случае декодер ошибки предсказания формирует выходной сигнал, состоящий из нулей.
Декодер выбирает разностный макроблок размером 16×16 пикселей для его реконструкции. Выбор восстанавливаемого разностного макроблока размером 16×16 пикселей проиллюстрирован (шаг 700).
Декодер принимает информацию о режиме кодирования, использованном при кодировании текущего блока. Это указание при необходимости декодируют и предоставляют в процессор 691 реконструкции модуля 614 выбора модуля предсказания. Процессор 691 реконструкции анализирует это указание (шаг 701 на фиг.7) и выбирает один из режимов внутреннего предсказания (шаг 703), если это указание указывает на то, что данный блок был кодирован с использованием внутреннего предсказания, или режим внешнего предсказания (шаги 704-711), если это указание указывает на то, что данный блок был кодирован с использованием внешнего предсказания.
Если текущий блок был кодирован с использованием внешнего предсказания, то модуль 604 предсказания пикселей может функционировать следующим образом. Модуль 604 предсказания пикселей принимает информацию векторов движения (шаг 704). Модуль 604 предсказания пикселей также принимает (шаг 705) информацию о типе блока и анализирует, является ли данный блок блоком с двойным предсказанием или нет (шаг 706). Если блок является блоком с двойным предсказанием, то модуль 604 предсказания пикселей анализирует информацию векторов движения для определения, какие опорные кадры и опорный блок в этих опорных кадрах были использованы при формировании этой информации векторов движения. Процессор 619 реконструкции вычисляет (шаг 709) векторы движения и использует значение (дробной части) пикселя из опорных блоков, на которые указывают векторы движения, для получения (шаг 710) предсказания с компенсацией движения, а также объединяет ошибку предсказания с этим значением для получения реконструированного значения пикселя текущего блока (шаг 711).
Если блок является блоком с одинарным предсказанием, то модуль 604 предсказания пикселей анализирует информацию векторов движения для определения того, какой опорный кадр и какой опорный блок в этом опорном кадре был использован для формирования информации векторов движения. Процессор 691 реконструкции вычисляет вектор движения (шаг 707) и использует значения (дробной части) пикселя этого опорного блока, на который указывает вектор движения, для получения (шаг 708) предсказания с компенсацией движения, а также объединяет ошибку предсказания с этим значением для получения реконструированного значения пикселя текущего блока (шаг 711).
В случае когда вектор движения не указывает на целопиксельный отсчет в опорном блоке, процессор 691 реконструкции для получения значений дробных частей пикселей выполняет вычисления с использованием, например, однонаправленной интерполяции или P-точечной фильтрации (например, шеститочечной фильтрации). В сущности, операции могут выполняться аналогичным образом, что и в кодере, то есть с сохранением во время фильтрации значений более высокой точности до тех пор, пока в операции окончательного округления точность не будет понижена до точности входных пикселей. Следовательно, влияние возможных ошибок округления на предсказанные значения может быть не столь велико, как в существующих способах.
Описанные выше процедуры могут повторяться для каждого пикселя текущего блока для получения всех реконструированных значений пикселей текущего блока.
В некоторых вариантах осуществления настоящего изобретения процессор 691 реконструкции для вычисления значений дробных частей пикселей применяет модуль 694 интерполяции.
В некоторых вариантах осуществления настоящего изобретения процессор 691 реконструкции предоставляет значения дробных частей пикселей в модуль 695 предсказания, который объединяет эти значения дробных частей пикселей с ошибкой предсказания для получения реконструированных значений пикселей текущего блока.
В некоторых вариантах осуществления настоящего изобретения упомянутая интерполяция может также выполняться с использованием значений целых пикселей, значений полупикселей и/или четвертей пикселей, который могут храниться в памяти для опорных кадров. Например, кодер или декодер может содержать память для опорных кадров, в которой хранятся целопиксельные отсчеты, значения полупикселей и/или значения четвертей пикселей.
В некоторых вариантах осуществления настоящего изобретения блоки могут быть блоками многонаправленного предсказания, при этом предсказание блока может выполняться на основе более чем двух опорных блоков.
Для лучшего понимания выполняемых процессов в представленных выше вариантах осуществления настоящего изобретения описывается кодек, содержащий отдельные устройства кодирования и декодирования. Однако следует принимать во внимание то, что устройства, структуры и операции могут быть реализованы в виде единого устройства/структуры/операции кодера-декодера. Кроме того, в некоторых вариантах осуществления настоящего изобретения кодер и декодер могут совместно использовать некоторые или все общие элементы.
Хотя в приведенных выше примерах описываются варианты осуществления настоящего изобретения, работающие в рамках кодека внутри электронного устройства, следует принимать во внимание, что изобретение, как будет описано ниже, может быть реализовано как часть любого видеокодека. Таким образом, например, варианты осуществления настоящего изобретения могут быть реализованы в видеокодеке, который может выполнять кодирование видеосигнала, передаваемого по фиксированным или проводным трактам связи.
Таким образом, пользовательское устройство может содержать видеокодек, такой как кодеки, описанные в представленных выше вариантах осуществления настоящего изобретения.
Следует отметить, что термин пользовательское устройство охватывает пользовательское устройство беспроводной связи любого подходящего типа, например, мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.
Кроме того, элементы наземной сети мобильной связи общего пользования (PLMN, public land mobile network) также могут содержать описанные выше видеокодеки.
В целом, различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратного обеспечения или специализированных схем, программного обеспечения, логических схем или любой комбинации указанных средств. Например, некоторые аспекты могут быть реализованы в виде аппаратных средств, в то время как другие аспекты могут быть реализованы в виде встроенного программного или программного обеспечения, которое может выполняться контроллером, микропроцессором или другим вычислительным устройством, хотя изобретение не ограничено перечисленными средствами. Хотя различные аспекты настоящего изобретения могут быть проиллюстрированы и описаны в виде структурных схем, блок-схем или с использованием некоторых других графических представлений, очевидно, что описанные здесь блоки, устройства, системы, методы или способы могут быть реализованы, не ограничиваясь приведенными примерами, в виде аппаратного, программного, встроенного программного обеспечения, специализированных схем или логических схем, универсальных аппаратных средств или контроллера или других вычислительных устройств, или некоторой их комбинации.
Варианты изобретения могут быть реализованы с помощью компьютерного программного обеспечения, выполняемого процессором данных мобильного устройства, например блоком процессора, или с помощью аппаратного обеспечения, или комбинации программного и аппаратного обеспечения. Кроме того, в этом отношении следует отметить, что любые показанные на чертежах блоки логических алгоритмов могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию шагов программы и логических схем, блоков и функций. Упомянутое программное обеспечение может храниться на физических носителях, таких как микросхемы памяти или блоки памяти, реализованные внутри процессора, магнитные носители, например жесткий диск или гибкий диск, и оптические носители, например DVD и их варианты для хранения данных, CD.
Блоки памяти могут быть любого типа, подходящего к локальной технической среде, и могут быть реализованы с использованием любых подходящих технологий хранения данных и представлять собой, например, устройства полупроводниковой памяти, устройства и системы магнитной памяти, устройства и системы оптической памяти, несъемную и съемную память. Процессоры данных могут быть любого типа, подходящего для локальной технической среды, и могут включать в качестве не ограничивающих изобретение примеров один или более универсальных компьютеров, специализированных компьютеров, микропроцессоров, цифровых сигнальных процессоров (DSP, digital signal processor) и процессоров на основе многоядерной архитектуры.
Варианты осуществления настоящего изобретения могут быть выполнены в виде различных компонентов, таких как модули интегральных схем. В целом, конструирование интегральных схем является высокоавтоматизированным процессом. Имеются комплексные и эффективные программные средства для преобразования разработки логического уровня в полупроводниковую схему, подготовленную для травления и формирования полупроводниковой основы.
Программы, производимые, например, компаниями Synopsys, Inc., Маунтин Вью, Калифорния, и Cadence Design, Сан Хосе, Калифорния, автоматически разводят проводники и размещают компоненты на полупроводниковом кристалле с использованием установленных правил разработки, а также библиотек заранее сохраненных модулей разработки. По окончании разработки полупроводниковой схемы полученный в результате проект в стандартизованном электронном формате (например, Opus, GDSII и т.п.) может быть передан на производство полупроводникового устройства для изготовления.
Приведенное описание является полным и информативным описанием вариантов осуществления настоящего изобретения, представленных в качестве примеров, не ограничивающих изобретение. Из описания, приложенных чертежей и формулы изобретения специалисту могут быть очевидны различные модификации и адаптации изобретения. Однако все такие модификации изобретения остаются в пределах сущности настоящего изобретения.
В соответствии с первым вариантом осуществления настоящего изобретения способ включает:
определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определение типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединение упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижение точности упомянутого объединенного предсказания до упомянутой первой точности.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения в упомянутое первое предсказание и упомянутое второе предсказание вводят первое смещение округления.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения точность упомянутого первого предсказания и упомянутого второго предсказания понижают до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения в упомянутое объединенное предсказание вводят второе смещение округления перед упомянутым понижением точности.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой двунаправленный блок.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой многонаправленный блок.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на y+1 битов.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутая первая точность составляет 8 битов.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения значение у равно 5.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутое первое предсказание и упомянутое второе предсказание получают путем фильтрации значений пикселей упомянутых опорных блоков.
В некоторых способах в соответствии с первым вариантом осуществления настоящего изобретения упомянутую фильтрацию выполняют с помощью P-точечного фильтра.
В соответствии со вторым вариантом осуществления настоящего изобретения устройство содержит:
процессор и
блок памяти, функционально связанный с упомянутым процессором и содержащий:
компьютерный код, сконфигурированный для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
компьютерный код, сконфигурированный для определения типа упомянутого блока;
компьютерный код, сконфигурированный, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения компьютерный код также сконфигурирован для введения первого смещения округления в упомянутое первое предсказание и упомянутое второе предсказание.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый компьютерный код также сконфигурирован для понижения точности упомянутого первого предсказания и упомянутого второго предсказания до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый компьютерный код также сконфигурирован для введения второго смещения округления в упомянутое объединенное предсказание перед упомянутым понижением точности.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой двунаправленный блок.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый тип блока представляет собой многонаправленный блок.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на y+1 битов.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутая первая точность составляет 8 битов.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения значение у равно 5.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутый компьютерный код также сконфигурирован для получения упомянутого первого предсказания и упомянутого второго предсказания путем фильтрации значений пикселей упомянутых опорных блоков.
В некоторых устройствах в соответствии со вторым вариантом осуществления настоящего изобретения упомянутая фильтрация включает P-точечный фильтр.
В соответствии с третьим аспектом настоящего изобретения предлагается машиночитаемый носитель для хранения данных с хранимым на нем кодом для использования устройством, который при исполнении процессором обеспечивает выполнение упомянутым устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с четвертым аспектом настоящего изобретения предлагается по меньшей мере один процессор и по меньшей мере одна память, в которой хранится код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством следующего:
определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
определения типа упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с некоторыми примерами осуществления настоящего изобретения упомянутое устройство представляет собой кодер.
В соответствии с некоторыми примерами осуществления настоящего изобретения упомянутое устройство представляет собой декодер.
В соответствии с пятым аспектом настоящего изобретения устройство содержит:
входной модуль для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
модуль определения для определения типа упомянутого блока; при этом, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков, то упомянутый модуль определения сконфигурирован также для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
первый модуль предсказания для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
второй модуль предсказания для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
модуль объединения для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
модуль сдвига для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
В соответствии с шестым аспектом настоящего изобретения устройство содержит:
средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;
средство для определения типа упомянутого блока;
средство для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке, если упомянутое определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков;
средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и
средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
Изобретение относится к технологиям кодирования и декодирования видеоданных. Техническим результатом является снижение влияния ошибок округления при двунаправленном и многонаправленном предсказании за счет обеспечения регулировки точности сигналов предсказания. Предложен способ предсказания с компенсацией движения при видеокодировании. Способ включает в себя этап, на котором определяют блок пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность сигнала предсказания. Первая точность указывает количество битов, необходимых для представления значений упомянутых пикселей. Далее согласно способу определяют тип предсказания упомянутого блока. Определяют первое местоположение опорных пикселей в первом опорном блоке и второе местоположение опорных пикселей во втором опорном блоке. 3 н. и 20 з.п. ф-лы, 13 ил.
1. Способ предсказания с компенсацией движения при видеокодировании, включающий:
определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность сигнала предсказания, при этом упомянутая первая точность указывает количество битов, необходимых для представления значений упомянутых пикселей;
определение типа предсказания упомянутого блока;
если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,
определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность сигнала предсказания, которая выше, чем упомянутая первая точность, при этом упомянутая вторая точность указывает количество битов, необходимых для представления значений упомянутого первого предсказания и значений упомянутого второго предсказания;
использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
объединение первого предсказания и второго предсказания для получения объединенного предсказания путем суммирования упомянутого первого предсказания и упомянутого второго предсказания; и
понижение точности упомянутого объединенного предсказания до упомянутой первой точности.
2. Способ по п. 1, также включающий введение первого смещения округления в упомянутое первое предсказание и упомянутое второе предсказание.
3. Способ по п. 2, также включающий понижение точности упомянутого первого предсказания и упомянутого второго предсказания до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
4. Способ по п. 2 или 3, также включающий введение второго смещения округления в упомянутое объединенное предсказание перед упомянутым понижением точности.
5. Способ по любому из пп. 1-3, в котором упомянутый тип предсказания блока представляет собой двунаправленный блок.
6. Способ по любому из пп. 1-3, в котором упомянутый тип предсказания блока представляет собой многонаправленный блок.
7. Способ по п. 2, в котором упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на у+1 битов, при этом у представляет позиции сдвига битов.
8. Способ по любому из пп. 1-3, в котором упомянутая первая точность составляет 8 битов.
9. Способ по п. 7, в котором значение у равно 5.
10. Способ по любому из пп. 1-3, также включающий получение упомянутого первого предсказания и упомянутого второго предсказания путем фильтрации значений пикселей упомянутых опорных блоков.
11. Способ по п. 10, также включающий выполнение упомянутой фильтрации с помощью Р-точечного фильтра.
12. Устройство для предсказания с компенсацией движения при видеокодировании, содержащее:
средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность сигнала предсказания, при этом упомянутая первая точность указывает количество битов, необходимых для представления значений упомянутых пикселей;
средство для определения типа предсказания упомянутого блока;
средство для вычисления предсказания с компенсацией движения для блока пикселей, включающее, если упомянутое определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков;
средство для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;
средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность сигнала предсказания, которая выше, чем упомянутая первая точность, при этом упомянутая вторая точность указывает количество битов, необходимых для представления значений упомянутого первого предсказания и значений упомянутого второго предсказания;
средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;
средство для объединения первого предсказания и второго предсказания для получения объединенного предсказания путем суммирования упомянутого первого предсказания и упомянутого второго предсказания; и
средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.
13. Устройство по п. 12, также содержащее средство для введения первого смещения округления в упомянутое первое предсказание и упомянутое второе предсказание.
14. Устройство по п. 13, также содержащее средство для понижения точности упомянутого первого предсказания и упомянутого второго предсказания до промежуточной точности предсказания после добавления упомянутого первого смещения округления, при этом упомянутая промежуточная точность предсказания выше, чем упомянутая первая точность.
15. Устройство по п. 13 или 14, также содержащее средство для введения второго смещения округления в упомянутое объединенное предсказание перед упомянутым понижением точности.
16. Устройство по любому из пп. 12-14, в котором упомянутый тип предсказания блока представляет собой двунаправленный блок.
17. Устройство по любому из пп. 12-14, в котором упомянутый тип предсказания блока представляет собой многонаправленный блок.
18. Устройство по п. 13, в котором упомянутое первое смещение округления равно 2y, при этом упомянутое понижение точности включает сдвиг вправо упомянутого объединенного предсказания на у+1 битов, при этом у представляет позиции сдвига битов.
19. Устройство по любому из пп. 12-14, в котором упомянутая первая точность составляет 8 битов.
20. Устройство по п. 18, в котором значение у равно 5.
21. Устройство по любому из пп. 12-14, также содержащее средство для получения упомянутого первого предсказания; и
упомянутого второго предсказания путем фильтрации значений пикселей упомянутых опорных блоков.
22. Устройство по п. 21, в котором упомянутая фильтрация включает Р-точечный фильтр.
23. Машиночитаемый носитель с хранимым на нем кодом для использования устройством, который при исполнении процессором обеспечивает выполнение упомянутым устройством способа по любому из пп. 1-11.
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
US 20090257503 A1, 15.10.2009 | |||
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
US 6512523 B1, 28.01.2003 | |||
US 6539058 B1, 25.03.2003 | |||
RU 2004103743 A, 10.06.2005 | |||
RU 2008138706 A, 10.04.2010 |
Авторы
Даты
2015-10-20—Публикация
2012-01-06—Подача