СПОСОБ ПРОГНОЗИРУЮЩЕГО КОДИРОВАНИЯ, УСТРОЙСТВО ПРОГНОЗИРУЮЩЕГО КОДИРОВАНИЯ И ПРОГРАММА ПРОГНОЗИРУЮЩЕГО КОДИРОВАНИЯ ВЕКТОРА ДВИЖЕНИЯ И СПОСОБ ПРОГНОЗИРУЮЩЕГО ДЕКОДИРОВАНИЯ, УСТРОЙСТВО ПРОГНОЗИРУЮЩЕГО ДЕКОДИРОВАНИЯ И ПРОГРАММА ПРОГНОЗИРУЮЩЕГО ДЕКОДИРОВАНИЯ ВЕКТОРА ДВИЖЕНИЯ
FORECAST CODING METHOD, FORECAST CODING DEVICE AND FORECAST CODING PROGRAM OF MOTION VECTOR AND FORECAST DECODING METHOD, FORECAST DECODING DEVICE AND FORWARD-LOOKING SOFTWARE

Область техники, к которой относится изобретение
[0001] Варианты осуществления настоящего изобретения относятся к способу прогнозирующего кодирования, устройству прогнозирующего кодирования и программе прогнозирующего кодирования вектора движения, а также к способу прогнозирующего декодирования, устройству прогнозирующего декодирования и программе прогнозирующего декодирования вектора движения.
Уровень техники
[0002] Технология прогнозирования с компенсацией движения иногда используется в кодировании видео и декодировании видео. В технологии компенсации движения кадр цели обработки в видеопоследовательности разделяется на множество фрагментов. Эти фрагменты последовательно выбираются в качестве фрагмента цели обработки (целевого фрагмента). Вектор движения затем определяется для целевого фрагмента. В технологии прогнозирования с компенсацией движения предиктор вектора движения определяется с использованием векторов движения соседних фрагментов для целевого фрагмента, и вектор движения целевого фрагмента прогнозирующим образом кодируется или прогнозирующим образом декодируется в некоторых случаях.
[0003] Фиг. 1A и 1B иллюстрируют прямоугольные соседние фрагменты, используемые при прогнозировании с компенсацией движения. На фиг. 1A, форма целевого фрагмента BT является идентичной форме соседних фрагментов BL, BA и BRA. Соседний расположенный слева фрагмент BL включает в себя соседний пиксел, находящийся слева от верхнего левого пиксела в целевом фрагменте BT; соседний расположенный сверху фрагмент BA включает в себя соседний пиксел, находящийся выше относительно верхнего левого пиксела в целевом фрагменте BT; соседний расположенный сверху справа фрагмент BRA включает в себя соседний пиксел, находящийся выше и справа от верхнего правого пиксела в целевом фрагменте BT. Традиционная технология H.264/AVC использует предиктор вектора движения, имеющий медианные значения горизонтальных компонентов и вертикальных компонентов векторов движения соседнего расположенного слева фрагмента BL, соседнего расположенного сверху фрагмента BA и соседнего расположенного сверху справа фрагмента BRA.
[0004] С другой стороны, фиг. 1B иллюстрирует случай, в котором существует множество соседних фрагментов, имеющих соответствующие формы, отличающиеся от формы целевого фрагмента BT. Множество соседних фрагментов на фиг. 1B включают в себя соседние фрагменты BL1, BL2, BA1, BA2, BD и BE, в дополнение к соседнему расположенному слева фрагменту BL, соседнему расположенному сверху фрагменту BA и соседнему расположенному сверху справа фрагменту BRA. Согласно технологии, описанной в патентном документе 1, множество соседних фрагментов сканируется в предварительно определенном пространственном порядке, чтобы указывать соседний фрагмент с наилучшим пространственным подобием пикселному сигналу целевого фрагмента, и вектор движения соседнего фрагмента, указываемый таким образом, используется в качестве предиктора вектора движения. В технологии патентного документа 1, пространственное подобие, которое должно быть использовано, представляет собой сумму абсолютных разностей (SAD) между пикселным сигналом целевого фрагмента и пикселным сигналом соседнего фрагмента.
Список библиографических ссылок
Патентные документы
[0005] Патентный документ 1. Перевод на японский язык выложенной PCT-заявки № 2010-515399
Сущность изобретения
Техническая задача
[0006] Поскольку вышеприведенная технология патентного документа 1 заключает в себе вычисление пространственного подобия при сканировании множества соседних фрагментов в предварительно определенном порядке, она требует значительного числа вычислений для определения предиктора вектора движения.
[0007] Следовательно, существует потребность в отношении уменьшения вычислительной сложности, необходимой для определения предиктора вектора движения, в соответствующих областях техники.
Решение задачи
[0008] Один аспект настоящего изобретения относится к технологии прогнозирующего кодирования векторов движения.
[0009] Способ прогнозирующего кодирования векторов движения согласно одному аспекту настоящего изобретения является способом для прогнозирующего кодирования вектора движения, используемого при прогнозировании с компенсацией движения видеопоследовательности, состоящей из временной последовательности кадровых изображений, содержащим: (a) этап определения вектора движения целевого фрагмента в кадровом изображении цели кодирования в видеопоследовательности; (b) этап определения первого варианта предиктора вектора движения, удовлетворяющего предварительно определенному критерию, используемому для определения вариантов предикторов вектора движения, из вектора движения или векторов движения одного или более фрагментов, принадлежащих соседней слева области, расположенной слева от целевого фрагмента; (c) этап определения второго варианта предиктора вектора движения, удовлетворяющего предварительно определенному критерию, используемому для определения вариантов предикторов вектора движения, из вектора движения или векторов движения одного или более фрагментов, принадлежащих соседней сверху области, расположенной выше целевого фрагмента; (d) этап выбора оптимального предиктора вектора движения и вывода информации индикатора предиктора вектора движения, чтобы указывать выбранный оптимальный предиктор вектора движения, причем оптимальный предиктор вектора движения выбирается на основе сравнения между одним или более вариантов предикторов вектора движения, включающих в себя первый вариант предиктора вектора движения и второй вариант предиктора вектора движения, и вектором движения целевого фрагмента; и (e) этап кодирования информации индикатора предиктора вектора движения.
[0010] Устройство прогнозирующего кодирования векторов движения согласно одному аспекту настоящего изобретения является устройством для прогнозирующего кодирования вектора движения, используемого при прогнозировании с компенсацией движения видеопоследовательности, состоящей из временной последовательности кадровых изображений, содержащим: средство обнаружения движения, которое определяет вектор движения целевого фрагмента в кадровом изображении цели кодирования в видеопоследовательности; средство определения первых вариантов предикторов вектора движения, которое определяет первый вариант предиктора вектора движения, удовлетворяющий предварительно определенному критерию, используемому для определения вариантов предикторов вектора движения, из вектора движения или векторов движения одного или более фрагментов, принадлежащих соседней слева области, расположенной слева от целевого фрагмента; средство определения вторых вариантов предикторов вектора движения, которое определяет второй вариант предиктора вектора движения, удовлетворяющий предварительно определенному критерию, используемому для определения вариантов предикторов вектора движения, из вектора движения или векторов движения одного или более фрагментов, принадлежащих соседней сверху области, расположенной выше целевого фрагмента; средство определения предикторов вектора движения, которое выбирает оптимальный предиктор вектора движения на основе сравнения между вектором движения целевого фрагмента и одним или более вариантов предикторов вектора движения. Один или более вариантов предикторов вектора движения включают в себя, по меньшей мере, один из первого варианта предиктора вектора движения или второго варианта предиктора вектора движения. Средство определения предикторов вектора движения выводит информацию индикатора предиктора вектора движения, чтобы указывать выбранный оптимальный предиктор вектора движения; и средство кодирования, которое кодирует информацию индикатора предиктора вектора движения.
[0011] Программа прогнозирующего кодирования векторов движения согласно одному аспекту настоящего изобретения является программой для побуждения компьютера работать в качестве устройства для прогнозирующего кодирования вектора движения, используемого при прогнозировании с компенсацией движения видеопоследовательности, состоящей из временной последовательности кадровых изображений, причем программа побуждает компьютер выступать в качестве: средства обнаружения движения, средства определения первых вариантов предикторов вектора движения, средства определения вторых вариантов предикторов вектора движения, средства определения предикторов вектора движения и средства кодирования, описанных выше.
[0012] В технологии прогнозирующего кодирования векторов движения согласно одному аспекту настоящего изобретения, описанному выше, сокращается число вариантов предикторов вектора движения, и после этого предиктор вектора движения определяется на основе сравнения между вектором движения целевого фрагмента и вариантами предикторов вектора движения. Следовательно, эта технология позволяет уменьшать вычислительную сложность, необходимую для определения предиктора вектора движения.
[0013] В варианте осуществления, технология прогнозирующего кодирования может иметь следующую конфигурацию: прогнозированный сигнал для пикселного сигнала целевого фрагмента формируется посредством обращения к опорному кадру с номером кадра, указываемым посредством идентификационных данных списка опорных изображений и идентификационных данных опорного изображения; первый вариант предиктора вектора движения определяется из векторов движения фрагментов в соседней слева области, имеющих идентификационные данные списка опорных изображений и/или идентификационные данные опорного изображения, совпадающие с идентификационными данными списка опорных изображений и/или идентификационными данными опорного изображения для целевого фрагмента; второй вариант предиктора вектора движения определяется из векторов движения фрагментов в соседней сверху области, имеющих идентификационные данные списка опорных изображений и/или идентификационные данные опорного изображения, совпадающие с идентификационными данными списка опорных изображений и/или идентификационными данными опорного изображения для целевого фрагмента.
[0014] В варианте осуществления, информация индикатора предиктора вектора движения может быть кодирована в кодированные данные с числом битов согласно числу вариантов предикторов вектора движения. Например, информация индикатора предиктора вектора движения может быть кодирована в кодированные данные с минимальным числом битов согласно числу вариантов предикторов вектора движения. Этот вариант осуществления позволяет уменьшать число битов кодированных данных в информации индикатора предиктора вектора движения.
[0015] В варианте осуществления, соседняя слева область может включать в себя соседний фрагмент, расположенный ниже и слева от целевого фрагмента. Соседний расположенный слева снизу фрагмент является фрагментом, включающим в себя соседние пикселы, находящиеся ниже и слева от нижнего левого пиксела в целевом фрагменте. В этом варианте осуществления, соседний расположенный слева снизу фрагмент включается в соседнюю слева область, и вектор движения соседнего расположенного слева снизу фрагмента не задается как независимый вариант предиктора вектора движения, когда первый вариант предиктора вектора движения определяется из соседней слева области. Этот вариант осуществления позволяет сокращать число вариантов предикторов вектора движения. Как результат, число битов кодированных данных в информации индикатора предиктора вектора движения может быть уменьшено.
[0016] В варианте осуществления, соседняя сверху область может включать в себя соседний фрагмент, расположенный выше и справа от целевого фрагмента. Соседний расположенный сверху справа фрагмент является фрагментом, который включает в себя соседние пикселы, находящиеся выше и справа от верхнего правого пиксела в целевом фрагменте. В этом варианте осуществления, соседний расположенный сверху справа фрагмент включается в соседнюю сверху область, и вектор движения соседнего расположенного сверху справа фрагмента не задается как независимый вариант предиктора вектора движения, когда второй вариант предиктора вектора движения определяется из соседней сверху области. Этот вариант осуществления позволяет сокращать число вариантов предикторов вектора движения. Как результат, число битов кодированных данных в информации индикатора предиктора вектора движения может быть уменьшено.
[0017] В варианте осуществления, соседняя слева область или соседняя сверху область могут включать в себя соседний фрагмент, расположенный выше и слева от целевого фрагмента. Соседний расположенный слева сверху фрагмент является фрагментом, который включает в себя соседние пикселы, находящиеся выше и слева от верхнего левого пиксела в целевом фрагменте. В этом варианте осуществления, вектор движения соседнего расположенного слева сверху фрагмента не задается как независимый вариант предиктора вектора движения, и вариант предиктора вектора движения определяется, в то время как соседний расположенный слева сверху фрагмент включается в соседнюю слева область или в соседнюю сверху область. Этот вариант осуществления позволяет сокращать число вариантов предикторов вектора движения. Как результат, число битов кодированных данных в информации индикатора предиктора вектора движения может быть уменьшено.
[0018] В варианте осуществления, технология прогнозирующего кодирования может иметь следующую конфигурацию: один или более фрагментов в соседней слева области сканируются в направлении вверх снизу соседней слева области, посредством чего вектор движения, удовлетворяющий предварительно определенному критерию, определяется в качестве первого варианта предиктора вектора движения из векторов движения одного или более фрагментов. Предварительно определенный критерий используется при определении вариантов предикторов вектора движения. Последующее сканирование в соседней слева области может завершаться при обнаружении вектора движения, удовлетворяющего предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения. Согласно знаниям, полученным авторами изобретения на основе исследования по большому числу видеопоследовательностей, фрагмент, из числа фрагментов в соседней слева области, с вектором движения, имеющим небольшую разность относительно вектора движения целевого фрагмента, чаще всего присутствует снизу в соседней слева области. Следовательно, первый вариант предиктора вектора движения с небольшой разностью относительно вектора движения целевого фрагмента может быть эффективно определен посредством сканирования соседней слева области в вышеприведенном порядке сканирования.
[0019] В варианте осуществления, технология прогнозирующего кодирования может иметь следующую конфигурацию: один или более фрагментов в соседней сверху области сканируются в направлении влево справа налево, посредством чего вектор движения, удовлетворяющий предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения, определяется в качестве второго варианта предиктора вектора движения из векторов движения одного или более фрагментов. Последующее сканирование в соседней сверху области может завершаться при обнаружении вектора движения, удовлетворяющего предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения. Согласно знаниям, полученным авторами изобретения на основе исследования по большому числу видеопоследовательностей, фрагмент с вектором движения, имеющим небольшую разность относительно вектора движения целевого фрагмента, из фрагментов в соседней сверху области, чаще всего существует справа в соседней сверху области. Следовательно, второй вариант предиктора вектора движения с небольшой разностью относительно вектора движения целевого фрагмента может быть эффективно определен посредством сканирования соседней сверху области в вышеприведенном порядке сканирования.
[0020] В варианте осуществления, технология прогнозирующего кодирования может иметь следующую конфигурацию: она содержит определение информации индикатора первого направления сканирования, указывающей направление сканирования одного или более фрагментов, включенных в соседнюю слева область, чтобы определять первый вариант предиктора вектора движения; определение информации индикатора второго направления сканирования, указывающей направление сканирования одного или более фрагментов, включенных в соседнюю сверху область, чтобы определять второй вариант предиктора вектора движения; и дополнительное кодирование информации индикатора первого направления сканирования и информации индикатора второго направления сканирования. В этом варианте осуществления, сканирования выполняются в направлениях как вверх, так и вниз в соседней слева области, чтобы выбирать вектор движения, удовлетворяющий предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения. Оптимальный вектор движения из числа векторов движения, выбранных в направлениях вверх и вниз, задается как первый вариант предиктора вектора движения, и информация, указывающая направление сканирования, в котором получается первый вариант предиктора вектора движения, задается как информация индикатора первого направления сканирования. Кроме того, сканирования выполняются в направлениях как влево, так и вправо в соседней сверху области, чтобы выбирать вектор движения, удовлетворяющий предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения. Оптимальный вектор движения, из числа векторов движения, выбранных в направлениях влево и вправо, задается как второй вариант предиктора вектора движения, и информация, указывающая направление сканирования, в котором получается второй вариант предиктора вектора движения, задается как информация индикатора второго направления сканирования. Этот вариант осуществления обеспечивает достижение дополнительного повышения эффективности кодирования посредством определения первого варианта предиктора вектора движения и второго варианта предиктора вектора движения.
[0021] В варианте осуществления, число одного или более вариантов предикторов вектора движения может не превышать 3. Этот вариант осуществления позволяет дополнительно уменьшать число битов кодированных данных в информации индикатора предиктора вектора движения.
[0022] В варианте осуществления, оптимальный предиктор вектора движения может быть использован в качестве вектора движения целевого фрагмента, без кодирования остаточного сигнала между вектором движения целевого фрагмента и оптимальным предиктором вектора движения. Этот вариант осуществления позволяет дополнительно повышать эффективность кодирования, поскольку остаточный сигнал вектора движения не кодируется.
[0023] Другой аспект настоящего изобретения относится к технологии прогнозирующего декодирования векторов движения.
[0024] Способ для прогнозирующего декодирования вектора движения согласно одному аспекту настоящего изобретения является способом для прогнозирующего декодирования вектора движения, используемого при прогнозировании с компенсацией движения, чтобы восстанавливать видеопоследовательность, состоящую из временной последовательности кадровых изображений. Способ содержит: (a) этап определения первого варианта предиктора вектора движения, который удовлетворяет предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения, причем первый вариант предиктора вектора движения определяется из вектора движения или векторов движения одного или более фрагментов, включенных в соседнюю слева область, расположенную слева от целевого фрагмента в кадровом изображении цели декодирования; (b) этап определения второго варианта предиктора вектора движения, который удовлетворяет предварительно определенному критерию, используемому при определении варианта предиктора вектора движения, причем второй вариант предиктора вектора движения определяется из вектора движения или векторов движения одного или более фрагментов, включенных в соседнюю сверху область, расположенную выше целевого фрагмента; (c) этап декодирования кодированных данных, чтобы восстанавливать информацию индикатора предиктора вектора движения, указывающую оптимальный предиктор вектора движения для целевого фрагмента; и (d) этап выбора оптимального предиктора вектора движения, указываемой посредством информации индикатора предиктора вектора движения, из одного или более вариантов предикторов вектора движения, причем один или более вариантов предикторов вектора движения включают в себя, по меньшей мере, первый вариант предиктора вектора движения и второй вариант предиктора вектора движения.
[0025] Устройство для прогнозирующего декодирования вектора движения согласно одному аспекту настоящего изобретения является устройством для прогнозирующего декодирования вектора движения, используемого при прогнозировании с компенсацией движения, чтобы восстанавливать видеопоследовательность, состоящую из временной последовательности кадровых изображений. Устройство содержит: средство определения первых вариантов предикторов вектора движения, которое определяет первый вариант предиктора вектора движения, который удовлетворяет предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения, из вектора движения или векторов движения одного или более фрагментов, принадлежащих соседней слева области, расположенной слева от целевого фрагмента в кадровом изображении цели декодирования; средство определения вторых вариантов предикторов вектора движения, которое определяет второй вариант предиктора вектора движения, который удовлетворяет предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения, из вектора движения или векторов движения одного или более фрагментов, принадлежащих соседней сверху области, расположенной выше целевого фрагмента; средство декодирования, которое декодирует кодированные данные, чтобы восстанавливать информацию индикатора предиктора вектора движения, чтобы указывать оптимальный предиктор вектора движения для целевого фрагмента; и средство определения оптимального предиктора вектора движения, которое выбирает оптимальный предиктор вектора движения, указываемую посредством информации индикатора предиктора вектора движения. Оптимальный предиктор вектора движения выбирается из одного или более вариантов предикторов вектора движения, включающих в себя, по меньшей мере, первый вариант предиктора вектора движения и второй вариант предиктора вектора движения.
[0026] Программа для прогнозирующего декодирования вектора движения согласно одному аспекту настоящего изобретения является программой для побуждения компьютера работать в качестве устройства для прогнозирующего декодирования вектора движения, используемого при прогнозировании с компенсацией движения, чтобы восстанавливать видеопоследовательность, состоящую из временной последовательности кадровых изображений. Программа побуждает компьютер выступать в качестве: средства определения первых вариантов предикторов вектора движения, средства определения вторых вариантов предикторов вектора движения, средства декодирования и средства определения оптимального предиктора вектора движения, описанных выше.
[0027] В технологии прогнозирующего декодирования векторов движения согласно одному аспекту настоящего изобретения, описанному выше, сокращается число вариантов предикторов вектора движения, и после этого предиктор вектора движения определяется на основе сравнения между вектором движения целевого фрагмента и вариантами предикторов вектора движения. Следовательно, это позволяет уменьшать вычислительную сложность, необходимую для определения предиктора вектора движения.
[0028] В варианте осуществления, технология прогнозирующего декодирования может иметь следующую конфигурацию: прогнозированный сигнал для сигнала изображений целевого фрагмента формируется посредством обращения к опорному кадру с номером кадра, указываемым посредством идентификационных данных списка опорных изображений и идентификационных данных опорного изображения; первый вариант предиктора вектора движения определяется из векторов движения фрагментов в соседней слева области, имеющих идентификационные данные списка опорных изображений и/или идентификационные данные опорного изображения, идентичные идентификационным данным списка опорных изображений и/или идентификационным данным опорного изображения для целевого фрагмента; второй вариант предиктора вектора движения определяется из векторов движения фрагментов в соседней сверху области, имеющих идентификационные данные списка опорных изображений и/или идентификационные данные опорного изображения, идентичные идентификационным данным списка опорных изображений и/или идентификационным данным опорного изображения для целевого фрагмента.
[0029] В варианте осуществления, число битов кодированных данных в информации индикатора предиктора вектора движения может быть числом битов согласно числу вариантов предикторов вектора движения. Например, число битов кодированных данных в информации индикатора предиктора вектора движения может быть минимальным числом битов согласно числу вариантов предикторов вектора движения. Этот вариант осуществления позволяет уменьшать число битов кодированных данных в информации индикатора предиктора вектора движения.
[0030] В варианте осуществления, соседняя слева область может включать в себя соседний фрагмент, расположенный ниже и слева от целевого фрагмента. В этом варианте осуществления, вектор движения соседнего расположенного слева снизу фрагмента не задается как независимый вариант предиктора вектора движения, и соседний расположенный слева снизу фрагмент включается в соседнюю слева область; затем первый вариант предиктора вектора движения определяется из соседней слева области. Этот вариант осуществления позволяет сокращать число вариантов предикторов вектора движения. Как результат, это позволяет уменьшать число битов кодированных данных в информации индикатора предиктора вектора движения и уменьшать вычислительную сложность процесса декодирования, чтобы восстанавливать информацию индикатора предиктора вектора движения из кодированных данных.
[0031] В варианте осуществления, соседняя сверху область может включать в себя соседний фрагмент, расположенный выше и справа от целевого фрагмента. В этом варианте осуществления, вектор движения соседнего расположенного сверху справа фрагмента не задается как независимый вариант предиктора вектора движения, и соседний расположенный сверху справа фрагмент включается в соседнюю сверху область; затем второй вариант предиктора вектора движения определяется из соседней сверху области. Этот вариант осуществления позволяет сокращать число вариантов предикторов вектора движения. Как результат, это позволяет уменьшать число битов кодированных данных в информации индикатора предиктора вектора движения и уменьшать вычислительную сложность процесса декодирования, чтобы восстанавливать информацию индикатора предиктора вектора движения из кодированных данных.
[0032] В варианте осуществления, соседняя слева область или соседняя сверху область могут включать в себя соседний фрагмент, расположенный выше и слева от целевого фрагмента. В этом варианте осуществления, вектор движения соседнего расположенного слева сверху фрагмента не задается как независимый вариант предиктора вектора движения, и соседний расположенный слева сверху фрагмент включается в соседнюю слева область или в соседнюю сверху область; затем вариант предиктора вектора движения определяется оттуда. Этот вариант осуществления позволяет сокращать число вариантов предикторов вектора движения. Как результат, число битов кодированных данных в информации индикатора предиктора вектора движения может быть уменьшено, и вычислительная сложность процесса декодирования, чтобы восстанавливать информацию индикатора предиктора вектора движения из кодированных данных, также может быть уменьшена.
[0033] В варианте осуществления, технология прогнозирующего декодирования может иметь следующую конфигурацию: один или более фрагментов в соседней слева области сканируются в направлении вверх снизу соседней слева области, посредством чего вектор движения, удовлетворяющий предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения, определяется в качестве первого варианта предиктора вектора движения из векторов движения одного или более фрагментов. Последующее сканирование в соседней слева области может завершаться при обнаружении вектора движения, удовлетворяющего предварительно определенному критерию определения вариантов предикторов вектора движения. Первый вариант предиктора вектора движения с небольшой ошибкой относительно вектора движения целевого фрагмента может быть эффективно определен посредством сканирования соседней слева области в вышеприведенном порядке сканирования.
[0034] В варианте осуществления, технология прогнозирующего декодирования может иметь следующую конфигурацию: один или более фрагментов в соседней сверху области сканируются в направлении справа налево, посредством чего вектор движения, удовлетворяющий предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения, определяется в качестве второго варианта предиктора вектора движения из векторов движения одного или более фрагментов. Последующее сканирование в соседней сверху области может завершаться при обнаружении вектора движения, удовлетворяющего предварительно определенному критерию, используемому при определении вариантов предикторов вектора движения. Второй вариант предиктора вектора движения с небольшой ошибкой относительно вектора движения целевого фрагмента может быть эффективно определен посредством сканирования соседней сверху области в вышеприведенном порядке сканирования.
[0035] В варианте осуществления, технология прогнозирующего декодирования может быть сконфигурирована с возможностью включать в себя: декодирование кодированных данных, чтобы восстанавливать информацию индикатора первого направления сканирования, чтобы указывать направление сканирования одного или более фрагментов в соседней слева области, и информацию индикатора второго направления сканирования, чтобы указывать направление сканирования одного или более фрагментов в соседней сверху области; сканирование одного или более фрагментов в соседней слева области в направлении, указываемом посредством информации индикатора первого направления сканирования, чтобы определять первый вариант предиктора вектора движения; и сканирование одного или более фрагментов в соседней сверху области в направлении, указываемом посредством информации индикатора второго направления сканирования, чтобы определять второй вариант предиктора вектора движения. Этот вариант осуществления позволяет определять первый вариант предиктора вектора движения и второй вариант предиктора вектора движения с меньшими ошибками относительно вектора движения целевого фрагмента.
[0036] В варианте осуществления, число одного или более вариантов предикторов вектора движения может не превышать 3. Этот вариант осуществления позволяет дополнительно уменьшать число битов в информации индикатора предиктора вектора движения.
[0037] В варианте осуществления, оптимальный предиктор вектора движения может быть использован в качестве вектора движения целевого фрагмента. Этот вариант осуществления позволяет уменьшать объем данных для кодированных данных, поскольку остаточный сигнал вектора движения не кодируется.
Преимущества изобретения
[0038] Как описано выше, аспекты и варианты осуществления настоящего изобретения предоставляют способ прогнозирующего кодирования, устройство прогнозирующего кодирования и программу прогнозирующего кодирования векторов движения, а также способ прогнозирующего декодирования, устройство прогнозирующего декодирования и программу прогнозирующего декодирования векторов движения, допускающие уменьшение вычислительной сложности, необходимой для определения предикторов вектора движения.
Краткое описание чертежей
[0039] Фиг. 1A иллюстрирует прямоугольные соседние фрагменты, используемые при прогнозировании с компенсацией движения.
Фиг. 1B иллюстрирует прямоугольные соседние фрагменты, используемые при прогнозировании с компенсацией движения.
Фиг. 2 показывает конфигурацию устройства кодирования видео согласно варианту осуществления.
Фиг. 3 - блок-схема последовательности операций способа, показывающая вариант осуществления способа прогнозирующего кодирования векторов движения.
Фиг. 4 иллюстрирует прямоугольные соседние фрагменты, используемые при прогнозировании с компенсацией движения.
Фиг. 5 - блок-схема последовательности операций способа, подробно показывающая первый вариант осуществления процесса для этапа S302 на фиг. 3.
Фиг. 6 - блок-схема последовательности операций способа, подробно показывающая первый вариант осуществления процесса для этапа S303 на фиг. 3.
Фиг. 7 показывает конфигурацию устройства декодирования видео согласно одному варианту осуществления.
Фиг. 8 - блок-схема последовательности операций способа, показывающая вариант осуществления способа прогнозирующего декодирования вектора движения.
Фиг. 9 - блок-схема последовательности операций способа, показывающая процесс определения вариантов предикторов вектора движения в способе прогнозирующего кодирования вектора движения во втором варианте осуществления.
Фиг. 10 - блок-схема последовательности операций способа, показывающая способ прогнозирующего декодирования вектора движения во втором варианте осуществления.
Фиг. 11 показывает конфигурацию программы кодирования видео согласно одному варианту осуществления.
Фиг. 12 показывает конфигурацию программы декодирования видео согласно одному варианту осуществления.
Фиг. 13 показывает аппаратную конфигурацию компьютера согласно одному варианту осуществления.
Фиг. 14 - вид в перспективе показывающий компьютер согласно одному варианту осуществления.
Подробное описание вариантов осуществления
[0040] Различные варианты осуществления подробно описываются ниже со ссылкой на чертежи. На чертежах идентичные или эквивалентные части обозначаются посредством идентичных ссылочных позиций.
[0041] Фиг. 2 показывает конфигурацию устройства кодирования видео согласно одному варианту осуществления. Устройство 20 кодирования видео, показанное на фиг. 2, является примером устройства, которое прогнозирующим образом кодирует вектор движения согласно одному аспекту настоящего изобретения.
[0042] Видеопоследовательность, вводимая в устройство 20 кодирования видео, состоит из временной последовательности кадровых изображений. Сигнал кадровых изображений, предназначенный для кодирования, упоминается далее как ʺтекущий кадрʺ. В устройстве 20 кодирования видео текущий кадр разделяется на прямоугольные фрагменты переменного размера, и обработка, описанная ниже, выполняется в каждой из единиц фрагментов.
[0043] Устройство 20 кодирования видео может использовать любой из режима межкадрового прогнозирования и множества режимов внутрикадрового прогнозирования, переключая режим прогнозирования для каждого фрагмента между ними. Например, устройство 20 кодирования видео выбирает режим прогнозирования с высокой эффективностью кодирования из режима межкадрового прогнозирования и режимов внутрикадрового прогнозирования для каждого фрагмента. ʺРежим межкадрового прогнозированияʺ в данном документе является режимом, в котором вектор движения обнаруживается в отношении множества ранее кодированных сигналов кадровых изображений (сигналов опорных кадровых изображений), отличающихся во времени от сигнала кадровых изображений, чтобы за счет этого выполнять межкадровое прогнозирование с компенсацией движения. ʺРежим внутрикадрового прогнозированияʺ является режимом, в котором пространственное прогнозирование выполняется с использованием пикселных значений соседних областей, ранее кодированных в идентичном кадре. В ʺрежиме межкадрового прогнозированияʺ соответствующие процессы обнаружения движения, прогнозирования движения и компенсации движения выполняются для каждого из подфрагментов, например, получаемых посредством дополнительного разделения фрагмента в N×N пикселов на необязательный размер (например, (N/2) пикселов×N строк или (N/4) пикселов×(N/4) строк).
[0044] Как показано на фиг. 2, устройство 20 кодирования видео может содержать узел 201 ввода, узел 202 обнаружения движения, узел 203 определения вариантов предикторов вектора движения, узел 204 определения предикторов вектора движения, узел 205 вычисления разности векторов движения, узел 206 компенсации движения, запоминающее устройство 207, узел 208 пространственного прогнозирования, узел 209 определения способа прогнозирования, узел 210 вычитания, узел 211 преобразования, узел 212 квантования, узел 213 энтропийного кодирования, узел 214 обратного квантования, узел 215 обратного преобразования и узел 216 суммирования.
[0045] Узел 201 ввода принимает входной видеосигнал в качестве видеосигнала, вводимого извне, и разлагает видеосигнал на сигналы кадровых изображений. Узел 201 ввода выводит каждый сигнал кадровых изображений через линию L201a и через линию L201b в узел 210 вычитания и в узел 202 обнаружения движения.
[0046] Запоминающее устройство 207 является секцией, которая сохраняет сигналы кадровых изображений, кодированные ранее, информацию (векторы движения, идентификационные данные списка опорных изображений, идентификационные данные опорного изображения) и другие данные, используемые при ее прогнозировании.
[0047] Узел 202 обнаружения движения выполняет обнаружение вектора движения. Более конкретно, узел 202 обнаружения движения выполняет поиск в сигнале опорных кадровых изображений, вводимом через линию L207a из запоминающего устройства 207, на предмет шаблона сигнала изображений, аналогичного шаблону сигнала изображений целевого фрагмента в текущем кадре, вводимого через линию L201a. Узел 202 обнаружения движения выполняет поиск в предварительно определенном диапазоне поиска в опорном кадре. Узел 202 обнаружения движения обнаруживает вектор движения, представляющий величину пространственного смещения между целевым фрагментом и шаблоном сигнала изображений, полученным посредством поиска, и идентификационные данные списка опорных изображений и идентификационные данные опорного изображения для указания номера кадра для используемого опорного кадра. Обнаруженный вектор движения, идентификационные данные списка опорных изображений и идентификационные данные опорного изображения выводятся через линию L202a в узел 206 компенсации движения и через линию L202c в узел 205 вычисления разности векторов движения. Кроме того, узел 202 обнаружения движения выводит обнаруженные идентификационные данные списка опорных изображений и идентификационные данные опорного изображения через линию L202b в узел 203 определения вариантов предикторов вектора движения. В устройстве 20 кодирования видео номера кадров для указания соответствующих сигналов опорных кадровых изображений, могут управляться в форме списков. Номер кадра указывается с использованием идентификационных данных списка опорных изображений (списка опорных изображений), чтобы указывать список, и идентификационных данных опорного изображения (опорного индекса) в качестве индекса номера кадра в списке. Эта технология является известной технологией в H.264/AVC и т.п.
[0048] Узел 203 определения вариантов предикторов вектора движения определяет варианты предикторов вектора движения с использованием векторов движения ранее кодированных соседних фрагментов, вводимых через линию L207b. Подробности касательно определения вариантов предикторов вектора движения описываются ниже. Узел 203 определения вариантов предикторов вектора движения выводит определенные варианты предикторов вектора движения через линию L203 в узел 204 определения предикторов вектора движения.
[0049] Узел 204 определения предикторов вектора движения определяет оптимальный предиктор вектора движения (значения предиктора вектора движения) из вариантов предикторов вектора движения, вводимых через линию L203. Более конкретно, узел 204 определения предикторов вектора движения определяет вариант предиктора вектора движения с наименьшей разностью относительно вектора движения целевого фрагмента, вводимого через линию L202c, в качестве оптимального предиктора PMVopt вектора движения, из вариантов предикторов вектора движения. Определенный оптимальный предиктор PMVopt вектора движения подается через линию L204a в узел 205 вычисления разности векторов движения. Кроме того, число вариантов предикторов вектора движения и информация индикатора предиктора вектора движения, чтобы указывать оптимальный предиктор PMVopt вектора движения из вариантов предикторов вектора движения, подаются через линию L204b в узел 213 энтропийного кодирования.
[0050] В настоящем варианте осуществления, вариант предиктора вектора движения с наименьшей разностью относительно вектора движения целевого фрагмента выбирается в качестве оптимального предиктора PMVopt вектора движения. Альтернативно, узел 204 определения предикторов вектора движения может выбирать в качестве оптимального предиктора PMVopt вектора движения вариант предиктора вектора движения с наименьшим числом битов, назначаемым вычисленной разности векторов движения.
[0051] В настоящем варианте осуществления, оптимальный предиктор вектора движения определяется после обнаружения движения целевого фрагмента. Альтернативно, оптимальный предиктор вектора движения может быть обнаружен перед обнаружением движения. В частности, как указано посредством формулы (1) ниже, оптимальный предиктор вектора движения может быть вычислен на основе суммы абсолютных разностей (SADpmv) между прогнозированным сигналом изображений при выполнении компенсации движения с использованием каждого из фактически вычисленных вариантов предикторов вектора движения и целевым сигналом изображений и функции затрат с использованием числа Rpmv битов при кодировании варианта предиктора вектора движения и λ в качестве весового коэффициента для числа битов. В этом случае, сигнал изображений целевого фрагмента вводится через линию L201a, и каждый сигнал опорных кадровых изображений вводится через линию L207a в узел 204 определения предикторов вектора движения на фиг. 2.
(1)
[0052] Узел 205 вычисления разности векторов движения вычисляет значения разности векторов движения, которые являются информацией разности между вектором движения, вводимым через линию L202c, и оптимальным предиктором вектора движения, вводимой через линию L204a. Узел 205 вычисления разности векторов движения передает сигнал, включающий в себя вычисленные значения разности векторов движения и идентификационные данные списка опорных изображений и идентификационные данные опорного изображения в качестве информации прогнозирования, через линию L205a в узел 213 энтропийного кодирования. Кроме того, узел 205 вычисления разности векторов движения передает сигнал, включающий в себя вектор движения и идентификационные данные списка опорных изображений и идентификационные данные опорного изображения, через линию L205b в запоминающее устройство 207.
[0053] Узел 206 компенсации движения формирует прогнозированный сигнал изображений целевого фрагмента за счет обращения к сигналу опорных кадровых изображений с номером кадра, указываемым посредством идентификационных данных списка опорных изображений и идентификационных данных опорного изображения, принимаемых из узла 202 обнаружения движения, и использования вектора движения, принимаемого из узла 202 обнаружения движения. Этот прогнозированный сигнал изображений выводится в узел 209 определения способа прогнозирования.
[0054] Узел 208 пространственного прогнозирования формирует прогнозированный сигнал изображений за счет обращения к сигналам изображений (сигналам опорных кадровых изображений) ранее кодированных соседних областей, вводимым через линию L207a. Узел 208 пространственного прогнозирования выводит сформированный прогнозированный сигнал изображений в узел 209 определения способа прогнозирования.
[0055] Узел 209 определения способа прогнозирования сравнивает прогнозированные сигналы изображений, принятые из узла 206 компенсации движения и узла 208 пространственного прогнозирования, чтобы выбирать любой из прогнозированных сигналов изображений, и выводит выбранный прогнозированный сигнал изображений в узел 210 вычитания. Узел 209 определения способа прогнозирования выводит информацию режима прогнозирования, указывающую способ прогнозирования, используемый для формирования выбранного прогнозированного сигнала изображений, через линию L209b в узел 213 энтропийного кодирования.
[0056] Узел 210 вычитания формирует значение разности (остаточный сигнал прогнозирования) между сигналом кадровых изображений, вводимым через линию L201b, и прогнозированным сигналом изображений, вводимым через линию L209a, и выводит остаточный сигнал прогнозирования в узел 211 преобразования.
[0057] Узел 211 преобразования выполняет ортогональное преобразование остаточного сигнала прогнозирования, вводимого через линию L210, чтобы формировать коэффициенты ортогонального преобразования, и выводит коэффициенты ортогонального преобразования в узел 212 квантования. Узел 212 квантования квантует коэффициенты ортогонального преобразования, вводимые через линию L211, чтобы формировать квантованные коэффициенты ортогонального преобразования, и передает квантованные коэффициенты ортогонального преобразования в узел 213 энтропийного кодирования и узел 212 обратного квантования.
[0058] Узел 213 энтропийного кодирования выполняет энтропийное кодирование квантованных коэффициентов ортогонального преобразования, вводимых через линию L212, информации режима прогнозирования, принимаемой из узла 209 определения способа прогнозирования, информации прогнозирования, передаваемой из узла 205 вычисления разности векторов движения, и информации индикатора предиктора вектора движения, выводимой из узла 204 определения предикторов вектора движения, мультиплексирует сформированные кодированные данные в сжатый поток и передает сжатый поток наружу.
[0059] Узел 214 обратного квантования выполняет обратное квантование квантованных коэффициентов ортогонального преобразования, вводимых через линию L212, чтобы формировать коэффициенты ортогонального преобразования, и передает коэффициенты ортогонального преобразования в узел 215 обратного ортогонального преобразования. Затем узел 215 обратного ортогонального преобразования применяет обратное ортогональное преобразование к коэффициентам ортогонального преобразования, вводимым через линию L214, чтобы формировать остаточный сигнал прогнозирования, и передает остаточный сигнал прогнозирования в узел 216 суммирования.
[0060] Узел 216 суммирования выполняет суммирование остаточного сигнала прогнозирования, вводимого через линию L215, и прогнозированного сигнала изображений, вводимого через линию L209a, чтобы формировать сигнал кадровых изображений, и передает сигнал кадровых изображений в запоминающее устройство 207. Этот сигнал кадровых изображений сохраняется в запоминающем устройстве 207 и используется в качестве сигнала опорных кадровых изображений в последующем процессе кодирования. В запоминающем устройстве 207, вектор движения, идентификационные данные списка опорных изображений, идентификационные данные опорного изображения и т.д., вводимые через линию L205b, также сохраняются в ассоциации с сигналом опорных кадровых изображений.
[0061] Далее описывается один вариант осуществления способа прогнозирующего кодирования вектора движения, применимого в устройстве 20 кодирования видео.
[0062] Во-первых, фрагменты, смежные с целевым фрагментом, описываются со ссылкой на фиг. 1B. Фрагменты BL, BL1 и BL2 являются фрагментами, контактирующими с левой границей целевого фрагмента BT. Фрагмент BD является фрагментом, включающим в себя соседние пикселы, находящиеся ниже и слева от нижнего левого пиксела в целевой области BT. Фрагмент BE является фрагментом, включающим в себя соседние пикселы, находящиеся выше и слева от верхнего левого пиксела в целевом фрагменте BT. Фрагменты BA, BA1 и BA2 являются фрагментами, контактирующими с верхней границей целевого фрагмента BT. Фрагмент BRA является фрагментом, включающим в себя соседние пикселы, находящиеся выше и справа от верхнего правого пиксела в целевом фрагменте BT. Фрагменты, соседние с целевым фрагментом, могут быть фрагментами с размером, идентичным размеру целевого фрагмента BT, как показано на фиг. 1A.
[0063] Фиг. 3 является блок-схемой последовательности операций способа, показывающей один вариант осуществления способа прогнозирующего кодирования вектора движения. Как показано на фиг. 3, в способе прогнозирующего кодирования вектора движения согласно варианту осуществления, сначала идентификационные данные списка опорных изображений и идентификационные данные опорного изображения вводятся в узел 203 определения вариантов предикторов вектора движения (этап S301).
[0064] Затем узел 203 определения вариантов предикторов вектора движения определяет вариант PMV1 предиктора вектора движения из вектора движения или векторов движения одного или более фрагментов, включенных в соседнюю слева область, расположенную слева от целевого фрагмента BT (этап S302). Подробности касательно способа определения варианта PMV1 предиктора вектора движения описываются ниже.
[0065] Затем узел 203 определения вариантов предикторов вектора движения определяет вариант PMV2 предиктора вектора движения из вектора движения или векторов движения одного или более фрагментов, включенных в соседнюю сверху область, расположенную выше целевого фрагмента BT (этап S303). Подробности касательно способа определения варианта PMV2 предиктора вектора движения описываются ниже.
[0066] Затем узел 203 определения вариантов предикторов вектора движения определяет вариант PMV3 предиктора вектора движения (этап S304). В настоящем варианте осуществления, вектор движения фрагмента, существующего в опорном кадре и в позиции, пространственно идентичной целевому фрагменту, определяется в качестве варианта PMV3 предиктора вектора движения.
[0067] Вариант PMV3 предиктора вектора движения может быть вектором движения другого фрагмента, пространственно смежного с целевым фрагментом, вместо вектора движения фрагмента в позиции, идентичной позиции целевого фрагмента в опорном кадре. Также можно использовать средние значения и т.п., вычисленные на основе варианта PMV1 предиктора вектора движения и варианта PMV2 предиктора вектора движения, в качестве варианта PMV3 предиктора вектора движения.
[0068] Число вариантов предикторов вектора движения может составлять три или более. В этом случае, множество вариантов предикторов вектора движения может быть определено посредством различных способов из каждой из соседней слева области и соседней сверху области. Более конкретно, множество вариантов предикторов вектора движения может быть определено посредством поиска в фрагментах каждой из областей во множестве различных направлений сканирования, в каждой из соседней слева области и соседней сверху области. Также можно использовать вектор движения другой соседней области в качестве варианта предиктора вектора движения.
[0069] Снова ссылаясь на фиг. 3, узел 203 определения вариантов предикторов вектора движения затем определяет только неидентичные варианты предикторов вектора движения из варианта PMV1 предиктора вектора движения, варианта PMV2 предиктора вектора движения и варианта PMV3 предиктора вектора движения, в качестве конечных вариантов предикторов вектора движения (этап S305). В качестве конкретного примера, если вариант PMV1 предиктора вектора движения является идентичным варианту PMV3 предиктора вектора движения, только PMV1 и PMV2 выбираются в качестве вариантов предикторов вектора движения. Если отсутствуют варианты предикторов вектора движения, определенные как удовлетворяющие условиям на этапах S302-S304, нулевой вектор движения задается как вариант предиктора вектора движения.
[0070] Затем узел 204 определения предикторов вектора движения определяет оптимальный предиктор вектора движения, как описано выше, из вариантов предикторов вектора движения, определенных посредством узла 203 определения вариантов предикторов вектора движения (этап S306).
[0071] Затем узел 213 кодирования кодирует информацию индикатора предиктора вектора движения, чтобы указывать, какой вариант предиктора вектора движения является оптимальным предиктором вектора движения (этап S307).
[0072] В одном варианте осуществления информация индикатора предиктора вектора движения может быть кодирована в кодированные данные с числом битов согласно числу вариантов предикторов вектора движения, выбранных посредством узла 204 определения предикторов вектора движения. Например, когда число вариантов предикторов вектора движения составляет 0 или 1, информация индикатора предиктора вектора движения ни кодируется, ни передается. Когда число вариантов предикторов вектора движения составляет 2 или 3, информация индикатора предиктора вектора движения кодируется самое большее в двух битах.
[0073] Информация индикатора предиктора вектора движения может быть кодирована на основе фиксированной таблицы кодирования независимо от числа вариантов предикторов вектора движения. В этом случае информация индикатора предиктора вектора движения может быть кодирована с использованием нижеприведенной таблицы кодирования.
Таблица 1. Таблица кодирования
Битовое значение – Оптимальный предиктор вектора движения
0 – вариант 1 предиктора вектора движения (PMV1)
10 – вариант 2 предиктора вектора движения (PMV2)
11 – вариант 3 предиктора вектора движения (PMV3)
[0074] В одном варианте осуществления, порядок, в котором определяются вариант PMV1 предиктора вектора движения, вариант PMV2 предиктора вектора движения и вариант PMV3 предиктора вектора движения, может быть изменен. Например, может быть использован процесс, в котором целевой фрагмент разделяется на множество подфрагментов, и процесс кодирования выполняется для каждого из подфрагментов. В частности, когда целевой фрагмент разделяется на верхний и нижний подфрагменты, и нижний подфрагмент может быть использован в качестве целевого фрагмента, или когда целевой фрагмент разделяется на левый и правый подфрагменты, и левый подфрагмент может быть использован в качестве целевого фрагмента, варианты предикторов вектора движения могут быть определены в порядке соседней слева области, соседней сверху области и другой области (например, фрагмента в опорном кадре в позиции, идентичной позиции целевого фрагмента). С другой стороны, когда целевой фрагмент разделяется на верхний и нижний подфрагменты, и верхний подфрагмент может быть использован в качестве целевого фрагмента, или целевой фрагмент разделяется на левый и правый подфрагменты, и правый подфрагмент может быть использован в качестве целевого фрагмента, варианты предикторов вектора движения могут быть определены в порядке соседней сверху области, соседней слева области и другой области (например, фрагмента в опорном кадре в позиции, идентичной позиции целевого фрагмента), для этих целевых фрагментов.
[0075] Ниже подробно описывается первый вариант осуществления процесса определения варианта предиктора вектора движения согласно одному варианту осуществления. Во-первых, описывается первый вариант осуществления процесса для этапа S302 на фиг. 3 со ссылкой на фиг. 1B, 4 и 5. В данном документе, как показано на фиг. 1B, предполагается, что соседняя слева область состоит из соседнего расположенного слева снизу фрагмента BD для целевого фрагмента и соседних расположенных слева фрагментов BL, BL1 и BL2 для целевого фрагмента. Также предполагается, что фрагменты в соседней слева области сканируются в порядке возрастания индекса i, показанном в (a) по фиг. 4. А именно, предполагается, что фрагменты в соседней слева области сканируются в порядке снизу вверх.
[0076] Соседний расположенный слева снизу фрагмент BD может исключаться из соседней слева области. Кроме того, фрагмент еще ниже соседнего расположенного слева снизу фрагмента BD может быть включен в соседнюю слева область. Кроме того, фрагмент BE или фрагмент, расположенный выше фрагмента BE, может быть включен в соседнюю слева область. Кроме того, фрагмент, расположенный слева от целевого фрагмента и на предварительно определенном расстоянии от целевого фрагмента, может быть включен в соседнюю слева область.
[0077] Возвращаясь к (a) на фиг. 4 и фиг. 5, в процессе этапа S302, во-первых, узел 203 определения вариантов предикторов вектора движения задает 0 в индексе i (этап S501). Узел 203 определения вариантов предикторов вектора движения увеличивает индекс i на приращение в 1 на следующем этапе S502.
[0078] Затем узел 203 определения вариантов предикторов вектора движения определяет, существует или нет i-ый фрагмент в порядке сканирования в соседней слева области, и имеет или нет фрагмент вектор движения (этап S503). Если существует i-ый фрагмент в соседней слева области, и если фрагмент имеет вектор движения, узел 203 определения вариантов предикторов вектора движения определяет, на следующем этапе S504, то, имеют или нет i-ый фрагмент и целевой фрагмент идентичные идентификационные данные списка опорных изображений и идентификационные данные опорного изображения. Когда условие определения на этапе S504 удовлетворяется, узел 203 определения вариантов предикторов вектора движения определяет вектор движения i-го фрагмента в качестве варианта PMV1 предиктора вектора движения на следующем этапе S505 и затем выводит вариант PMV1 предиктора вектора движения на следующем этапе S506, после чего обработка завершается.
[0079] С другой стороны, когда условие определения на этапе S503 не удовлетворяется, или когда условие определения на этапе S504 не удовлетворяется, обработка переходит к этапу S507. На этапе S507 узел 203 определения вариантов предикторов вектора движения определяет, превышает или нет индекс i число N фрагментов в соседней слева области. Когда условие определения на этапе S507 не удовлетворяется, узел 203 определения вариантов предикторов вектора движения продолжает обработку от этапа S502. С другой стороны, когда условие определения на этапе S507 удовлетворяется, узел 203 определения вариантов предикторов вектора движения завершает обработку.
[0080] Фрагменты в соседней слева области сканируются в порядке снизу соседней слева области в варианте осуществления, показанном в (a) на фиг. 4, но в одном варианте осуществления, как показано в (c) на фиг. 4, они могут быть сканированы в порядке сверху соседней слева области.
[0081] В другом варианте осуществления, может адаптивно выбираться любой из порядка сканирования, показанного в (a) на фиг. 4, и порядка сканирования, показанного в (c) на фиг. 4. Например, порядок сканирования может быть определен на основе взаимосвязи векторов движения соседних фрагментов. В частности, можно приспосабливать способ сравнения абсолютной разности α между вектором движения фрагмента BL и вектором движения фрагмента BA с абсолютной разностью β между вектором движения фрагмента BRA и вектором движения фрагмента BD на фиг. 1B и выбора порядка сканирования в (c) на фиг. 4, если абсолютная разность α меньше абсолютной разности β. В противоположном случае, с другой стороны, может быть выбран порядок сканирования в (a) на фиг. 4.
[0082] В варианте осуществления этап S502 может быть сконфигурирован с возможностью увеличивать индекс i на приращение в два или более, тем самым прореживая фрагменты, которые должны быть сканированы.
[0083] Ниже подробно описывается первый вариант осуществления процесса для этапа S303 на фиг. 3 со ссылкой на фиг. 1B, 4 и 6. В данном документе, как показано на фиг. 1B, предполагается, что соседняя сверху область состоит из соседнего расположенного слева сверху фрагмента BE для целевого фрагмента и соседнего расположенного сверху фрагмента BA, BA1 и BA2 для целевого фрагмента. Также предполагается, что фрагменты в соседней сверху области сканируются в порядке возрастания индекса j, показанном в (a) на фиг. 4. А именно, предполагается, что фрагменты в соседней сверху области сканируются в порядке справа налево.
[0084] Соседний расположенный слева сверху фрагмент BE может исключаться из соседней сверху области. Кроме того, фрагмент, еще левее соседнего расположенного слева сверху фрагмента BE, может быть включен в соседнюю сверху область. Кроме того, фрагмент, расположенный выше целевого фрагмента и на предварительно определенном расстоянии от целевого фрагмента, может быть включен в соседнюю сверху область.
[0085] Возвращаясь к (a) на фиг. 4 и фиг. 6, в процессе этапа S303, во-первых, узел 203 определения вариантов предикторов вектора движения задает 0 в индексе j (этап S601). Узел 203 определения вариантов предикторов вектора движения увеличивает индекс j на приращение в 1 на следующем этапе S602.
[0086] Затем, узел 203 определения вариантов предикторов вектора движения определяет то, существует или нет j-ый фрагмент в порядке сканирования в соседней сверху области, и имеет или нет фрагмент вектор движения (этап S603). Когда существует j-ый фрагмент в соседней сверху области, и когда фрагмент имеет вектор движения, узел 203 определения вариантов предикторов вектора движения определяет на следующем этапе S604, имеют или нет j-ый фрагмент и целевой фрагмент идентичные идентификационные данные списка опорных изображений и идентификационные данные опорного изображения. Когда условие определения на этапе S604 удовлетворяется, узел 203 определения вариантов предикторов вектора движения определяет на следующем этапе S605, является или нет вектор движения j-го фрагмента идентичным варианту PMV1 предиктора вектора движения. Когда вектор движения j-го фрагмента отличается от варианта PMV1 предиктора вектора движения, узел 203 определения вариантов предикторов вектора движения определяет на следующем этапе S606, что вектор движения j-го фрагмента является вариантом PMV2 предиктора вектора движения, и затем выводит вариант PMV2 предиктора вектора движения на следующем этапе S607, после чего обработка завершается.
[0087] С другой стороны, когда условие определения на этапе S603 не удовлетворяется, когда условие определения на этапе S604 не удовлетворяется, или когда условие определения на этапе S605 удовлетворяется, обработка переходит к этапу S608.
[0088] На этапе S608 узел 203 определения вариантов предикторов вектора движения определяет, превышает или нет индекс j число M фрагментов в соседней сверху области. Когда условие определения на этапе S608 не удовлетворяется, узел 203 определения вариантов предикторов вектора движения продолжает обработку от этапа S602. С другой стороны, когда условие определения на этапе S608 удовлетворяется, узел 203 определения вариантов предикторов вектора движения завершает обработку.
[0089] Фрагменты в соседней сверху области сканируются в порядке справа налево в варианте осуществления, показанном в (a) по фиг. 4, но фрагменты могут быть сканированы в порядке слева направо, как показано в (c) по фиг. 4, в одном варианте осуществления.
[0090] В другом варианте осуществления, может адаптивно выбираться любой из порядка сканирования, показанного в (a) по фиг. 4, или порядка сканирования, показанного в (c) по фиг. 4. Например, порядок сканирования может быть определен на основе взаимосвязи векторов движения соседних фрагментов. В частности, можно приспосабливать способ сравнения абсолютной разности α между вектором движения фрагмента BL и вектором движения фрагмента BA с абсолютной разностью β между вектором движения фрагмента BRA и вектором движения фрагмента BD на фиг. 1B и выбора порядка сканирования в (c) по фиг. 4, если абсолютная разность α меньше абсолютной разности β. В противоположном случае, с другой стороны, может быть выбран порядок сканирования в (a) по фиг. 4.
[0091] Фрагмент BE включается в соседнюю сверху область в вышеописанном варианте осуществления, но фрагмент BE может быть включен в соседнюю слева область. Также можно задавать фрагмент BE в качестве области, независимой от соседней сверху области и соседней слева области, и обрабатывать вектор движения фрагмента BE в качестве другого варианта предиктора вектора движения.
[0092] Вышеприведенный вариант осуществления использует как идентификационные данные списка опорных изображений, так и идентификационные данные опорного изображения в качестве условия определения для выбора вектора движения фрагмента в соседней области в качестве варианта предиктора вектора движения, но настоящее изобретение не ограничено этим. Например, либо идентификационные данные списка опорных изображений, либо идентификационные данные опорного изображения могут использоваться для условия определения. Когда идентификационные данные опорного изображения не используются, масштабирование векторов движения фрагментов в соседней области может быть реализовано согласно расстоянию между опорным кадром и целевым кадром. Также можно использовать информацию другого внутрикадрового прогнозирования. В частности, размер целевого фрагмента и размеры соседних фрагментов могут суммироваться как один в вышеуказанном условии определения. В частности, когда размер целевого фрагмента составляет N×N пикселов, условие определения может состоять в том, что размер фрагмента в соседней области составляет N×N пикселов, или условие определения может состоять в том, что размер фрагмента составляет от N/2×N/2 пикселов до 2N×2N пикселов.
[0093] В вышеприведенном варианте осуществления вычисление варианта PMV2 предиктора вектора движения в соседней сверху области выполняется после вычисления варианта PMV1 предиктора вектора движения в соседней слева области, но настоящее изобретение не ограничено этим. Вариант PMV2 предиктора вектора движения в соседней сверху области может быть определен до определения варианта PMV1 предиктора вектора движения в соседней слева области. В этом случае, процесс определения того, является или нет вектор движения фрагмента в соседней слева области идентичным варианту PMV2 предиктора вектора движения в соседней сверху области, может быть выполнен в процессе определения варианта PMV1 предиктора вектора движения в соседней слева области.
[0094] В вышеописанном варианте осуществления, на этапе S605 определяется, является или нет вектор движения j-го фрагмента в соседней сверху области идентичным варианту PMV1 предиктора вектора движения в соседней слева области, но это определение может опускаться. В этом случае процесс этапа S606 может быть непосредственно выполнен, когда условие определения на этапе S604 удовлетворяется.
[0095] В одном варианте осуществления, этап S602 может быть сконфигурирован с возможностью увеличивать индекс j на приращение в два или более, тем самым прореживая фрагменты, которые должны быть сканированы.
[0096] Ниже описывается устройство декодирования видео, которое декодирует сжатый поток, сформированный посредством устройства 20 кодирования видео, чтобы восстанавливать видеопоследовательность. Фиг. 7 показывает конфигурацию устройства декодирования видео согласно одному варианту осуществления. Устройство 30 декодирования видео, показанное на фиг. 7, является примером устройства, которое прогнозирующим образом декодирует вектор движения согласно одному аспекту настоящего изобретения.
[0097] Как показано на фиг. 7, устройство 30 декодирования видео может содержать узел 301 энтропийного декодирования, узел 302 определения вариантов предикторов вектора движения, узел 303 определения предикторов вектора движения, узел 304 суммирования векторов движения, узел 305 компенсации движения, запоминающее устройство 306 кадров, узел 307 пространственного прогнозирования, узел 308 определения способа прогнозирования, узел 309 обратного квантования, узел 310 обратного ортогонального преобразования и узел 311 суммирования.
[0098] Узел 301 энтропийного декодирования принимает сжатый поток, затем обнаруживает синхрослово, указывающее начало каждого кадра в сжатом потоке, и после этого восстанавливает информацию режима прогнозирования и квантованные коэффициенты ортогонального преобразования из кодированных данных в сжатом потоке в каждой из разделенных единиц фрагментов. Когда режим прогнозирования, указываемый посредством информации режима прогнозирования, является ʺрежимом межкадрового прогнозированияʺ, узел 301 энтропийного декодирования декодирует кодированные данные в сжатом потоке, чтобы также восстанавливать разность векторов движения, идентификационные данные списка опорных изображений и идентификационные данные опорного изображения.
[0099] Узел 301 энтропийного декодирования передает восстановленные квантованные коэффициенты ортогонального преобразования через линию L301a в узел 309 обратного квантования. Узел 301 энтропийного декодирования передает информацию режима прогнозирования, идентификационные данные списка опорных изображений и идентификационные данные опорного изображения через линию L301b в узел 302 определения вариантов предикторов вектора движения. Кроме того, узел 301 энтропийного декодирования передает восстановленную разность векторов движения через линию L301d в узел 304 суммирования векторов движения. Узел 301 энтропийного декодирования передает восстановленную информацию режима прогнозирования через линию L301e в узел 308 определения способа прогнозирования.
[0100] Когда режим прогнозирования, указываемый посредством принимаемой информации режима прогнозирования, является ʺрежимом межкадрового прогнозированияʺ, узел 302 определения вариантов предикторов вектора движения определяет варианты предикторов вектора движения из векторов движения ранее декодированных соседних фрагментов. Поскольку обработка касательно определения вариантов предикторов вектора движения, выполняемая посредством узла 302 определения вариантов предикторов вектора движения, является идентичной обработке, описанной выше в отношении узла 203 определения вариантов предикторов вектора движения, ее описание опускается в данном документе. Этот узел 302 определения вариантов предикторов вектора движения выводит определенные варианты предикторов вектора движения через линию L302b в узел 303 определения предикторов вектора движения. Кроме того, узел 302 определения вариантов предикторов вектора движения выводит число вариантов предикторов вектора движения через линию L302a в узел 301 энтропийного декодирования.
[0101] Узел 301 энтропийного декодирования, при приеме числа вариантов предикторов вектора движения через линию L302a, декодирует кодированные данные в сжатом потоке согласно числу вариантов предикторов вектора движения, чтобы восстанавливать информацию индикатора предиктора вектора движения. Узел 301 энтропийного декодирования передает восстановленную информацию индикатора предиктора вектора движения в узел 303 определения предикторов вектора движения. Более конкретно, когда число вариантов предикторов вектора движения составляет 0 или 1, информация индикатора предиктора вектора движения не передается, и, следовательно, процесс восстановления не выполняется. Когда число вариантов предикторов вектора движения составляет 2 или 3, кодированные данные двух битов самое большее энтропийно декодируется, чтобы восстанавливать информацию индикатора предиктора вектора движения.
[0102] Узел 301 энтропийного декодирования сконфигурирован с возможностью восстанавливать информацию индикатора предиктора вектора движения посредством декодирования кодированных данных согласно числу вариантов предикторов вектора движения, выбранных посредством узла 302 определения вариантов предикторов вектора движения, но настоящее изобретение не ограничено этим. Например, информация индикатора предиктора вектора движения может быть восстановлена с использованием фиксированной таблицы кодирования таблицы 1, описанной выше, независимо от числа вариантов предикторов вектора движения. Следует отметить, что задание фиксированной таблицы кодирования не ограничивается этим примером. Информация индикатора предиктора вектора движения может быть восстановлена до вычисления вариантов предикторов вектора движения.
[0103] Узел 303 определения предикторов вектора движения определяет оптимальный предиктор PMVopt вектора движения на основе информации индикатора предиктора вектора движения, вводимой через линию L301c, из вариантов предикторов вектора движения, вводимых через линию L302b. Определенный оптимальный предиктор PMVopt вектора движения передается через линию L303 в узел 304 суммирования векторов движения.
[0104] Узел 304 суммирования векторов движения выполняет суммирование разности векторов движения, передаваемой из узла 301 энтропийного декодирования, и оптимального предиктора PMVopt вектора движения, передаваемой из узла 303 определения предикторов вектора движения, чтобы восстанавливать вектор движения. Узел 304 суммирования векторов движения передает сигнал, включающий в себя восстановленный вектор движения через линию L304, в узел 305 компенсации движения.
[0105] Узел 305 компенсации движения выбирает сигнал опорных кадровых изображений в запоминающем устройстве 306 на основе вектора движения, передаваемого из узла 304 суммирования векторов движения, и информации режима прогнозирования, идентификационных данных списка опорных изображений и идентификационных данных опорного изображения, передаваемых через линию L301d из узла 301 энтропийного декодирования, и формирует прогнозированный сигнал изображений с использованием выбранного сигнала опорных кадровых изображений. Узел 305 компенсации движения передает прогнозированный сигнал изображений через линию L305a в узел 308 определения способа прогнозирования. Кроме того, узел 305 компенсации движения выводит информацию режима прогнозирования, идентификационные данные списка опорных изображений и идентификационные данные опорного изображения, используемые при формировании прогнозированного сигнала изображений, через линию L305b в запоминающее устройство 306 кадров. В запоминающем устройстве 306 имеются сохраненные ранее декодированные сигналы кадровых изображений, информация режима прогнозирования, идентификационные данные списка опорных изображений и идентификационные данные опорного изображения.
[0106] Когда режим прогнозирования, указываемый посредством информации режима прогнозирования, вводимой через линию L301e, является ʺрежимом внутрикадрового прогнозированияʺ, узел 307 пространственного прогнозирования формирует прогнозированный сигнал изображений в отношении сигналов изображений (сигналов опорных кадровых изображений) ранее декодированных соседних фрагментов и передает прогнозированный сигнал изображений в узел 308 определения способа прогнозирования.
[0107] Узел 308 определения способа прогнозирования выбирает либо прогнозированный сигнал изображений, сформированный посредством межкадрового прогнозирования, либо прогнозированный сигнал изображений, сформированный посредством внутрикадрового прогнозирования, на основе режима прогнозирования, передаваемого из узла 301 энтропийного декодирования, и передает выбранный прогнозированный сигнал изображений через линию L308 в узел 311 суммирования.
[0108] Узел 309 обратного квантования выполняет обратное квантование квантованных коэффициентов ортогонального преобразования, передаваемых из узла 301 энтропийного декодирования, чтобы восстанавливать коэффициенты ортогонального преобразования. Узел 309 обратного квантования передает восстановленные коэффициенты ортогонального преобразования через линию L309 в узел 310 обратного ортогонального преобразования.
[0109] Узел 310 обратного ортогонального преобразования применяет обратное ортогональное преобразование к принимаемым коэффициентам ортогонального преобразования, чтобы восстанавливать остаточный сигнал прогнозирования. Узел 310 обратного ортогонального преобразования передает восстановленный остаточный сигнал прогнозирования через линию L310 в узел 311 суммирования.
[0110] Узел 311 суммирования выполняет суммирование прогнозированного сигнала изображений, передаваемого из узла 308 определения способа прогнозирования, и остаточного сигнала прогнозирования, передаваемого из узла 310 обратного ортогонального преобразования, чтобы восстанавливать сигнал кадровых изображений.
[0111] Восстановленный сигнал кадровых изображений выводится в предварительно определенное время отображения в устройство отображения (не показано), посредством чего входной видеосигнал (сигнал динамического изображения) может быть воспроизведен. Поскольку сигнал кадровых изображений используется в последующем процессе декодирования, он сохраняется в качестве сигнала опорных кадровых изображений в запоминающем устройстве 306. Сигнал кадровых изображений в данном документе может иметь значение, идентичное значению сигнала кадровых изображений с идентичным номером в устройстве 20 кодирования видео. Информация относительно вектора движения и номера опорного кадра также одновременно сохраняется в ассоциации с сигналом опорных кадровых изображений.
[0112] Далее описывается один вариант осуществления способа прогнозирующего декодирования векторов движения, используемого в устройстве 30 декодирования видео, со ссылкой на фиг. 8. Фиг. 8 является блок-схемой последовательности операций способа, показывающей один вариант осуществления способа прогнозирующего декодирования векторов движения.
[0113] В способе прогнозирующего декодирования предикторов вектора движения согласно одному варианту осуществления, как показано на фиг. 8, идентификационные данные списка опорных изображений и идентификационные данные опорного изображения сначала вводятся в узел 302 определения вариантов предикторов вектора движения (этап S801).
[0114] Затем узел 302 определения вариантов предикторов вектора движения определяет вариант предиктора вектора движения, PMV1, из вектора движения или векторов движения одного или более фрагментов, включенных в соседнюю слева область, расположенную слева от целевого фрагмента BT (этап S302).
[0115] Затем узел 302 определения вариантов предикторов вектора движения определяет вариант предиктора вектора движения, PMV2, из вектора движения или векторов движения одного или более фрагментов, включенных в соседнюю сверху область, расположенную выше целевого фрагмента BT (этап S303).
[0116] Затем узел 302 определения вариантов предикторов вектора движения определяет вариант PMV3 предиктора вектора движения (этап S304). Процессы этапов S302-S304 на фиг. 8 являются идентичными процессам этапов S302-S304 на фиг. 3.
[0117] На этапе S805 узел 302 определения вариантов предикторов вектора движения затем задает в качестве вариантов предикторов вектора движения только неидентичные варианты предикторов вектора движения из варианта PMV1 предиктора вектора движения, варианта PMV2 предиктора вектора движения и варианта PMV3 предиктора вектора движения. В качестве конкретного примера, если вариант PMV1 предиктора вектора движения является идентичным варианту PMV3 предиктора вектора движения, только вариант PMV1 предиктора вектора движения и вариант PMV2 предиктора вектора движения выбираются в качестве вариантов предикторов вектора движения. Когда обработка вплоть до этапа S805 приводит к определению отсутствия эффективных вариантов предикторов вектора движения, нулевой вектор движения задается как вариант предиктора вектора движения.
[0118] На этапе S806, как описано выше, узел 301 декодирования восстанавливает информацию индикатора предиктора вектора движения на основе числа вариантов предикторов вектора движения. Затем на этапе S807 узел 303 определения предикторов вектора движения выбирает оптимальный предиктор вектора движения из вариантов предикторов вектора движения на основе информации индикатора предиктора вектора движения.
[0119] Далее описывается второй вариант осуществления способа прогнозирующего кодирования векторов движения. Фиг. 9 является блок-схемой последовательности операций способа, показывающей процесс определения вариантов предикторов вектора движения в способе прогнозирующего кодирования векторов движения во втором варианте осуществления. В способе прогнозирующего кодирования векторов движения согласно второму варианту осуществления, последовательность операций, показанная на фиг. 9, используется вместо этапов S302-S304 на фиг. 3.
[0120] В настоящем варианте осуществления на этапе S901 узел 203 определения вариантов предикторов вектора движения сначала сканирует фрагменты в соседней слева области, расположенной слева от целевого фрагмента, в направлении вниз, чтобы определять вариант PMVa предиктора вектора движения из векторов движения этих фрагментов. На этапе S901 узел 203 определения вариантов предикторов вектора движения может обнаруживать вариант PMVa предиктора вектора движения посредством выполнения способа определения варианта PMV1 предиктора вектора движения (этап S302), описанного в первом варианте осуществления, согласно порядку сканирования соседней слева области, показанному в (c) на фиг. 4. Для определения варианта PMVa предиктора вектора движения узел 203 определения вариантов предикторов вектора движения может использовать входные идентификационные данные списка опорных изображений и идентификационные данные опорного изображения, аналогично первому варианту осуществления.
[0121] Затем на этапе S902 узел 203 определения вариантов предикторов вектора движения сканирует фрагменты в соседней слева области, расположенной слева от целевого фрагмента, в направлении вверх, чтобы определять вариант PMVb предиктора вектора движения из векторов движения этих фрагментов. На этапе S902 узел 203 определения вариантов предикторов вектора движения может обнаруживать вариант PMVb предиктора вектора движения посредством выполнения способа определения варианта PMV1 предиктора вектора движения (этап S302), описанного в первом варианте осуществления, согласно порядку сканирования соседней слева области, показанному в (a) на фиг. 4. Для определения варианта PMVb предиктора вектора движения узел 203 определения вариантов предикторов вектора движения может использовать идентификационные данные списка опорных изображений и идентификационные данные опорного изображения.
[0122] Затем на этапе S903 узел 203 определения вариантов предикторов вектора движения выбирает вариант PMVX предиктора вектора движения в соседней слева области из варианта PMVa предиктора вектора движения и варианта PMVb предиктора вектора движения. Кроме того, узел 203 определения вариантов предикторов вектора движения формирует информацию индикатора направления сканирования, указывающую направление X сканирования, используемое для определения выбранного варианта предиктора вектора движения. В частности, узел 203 определения вариантов предикторов вектора движения определяет в качестве варианта PMVX предиктора вектора движения, вариант предиктора вектора движения с наименьшей ошибкой относительно предиктора вектора движения целевого фрагмента, из варианта PMVa предиктора вектора движения и варианта PMVb предиктора вектора движения. Кроме того, когда выбирается вариант PMVa предиктора вектора движения в качестве варианта PMVX предиктора вектора движения, узел 203 определения вариантов предикторов вектора движения формирует информацию индикатора направления сканирования, указывающую направление вниз; а когда выбирается вариант PMVb предиктора вектора движения, он формирует информацию индикатора направления сканирования, указывающую направление вверх.
[0123] Затем на этапе S904 узел 203 определения вариантов предикторов вектора движения сканирует фрагменты в соседней сверху области для целевого фрагмента в направлении вправо, чтобы определять вариант PMVc предиктора вектора движения из векторов движения этих фрагментов. На этапе S904 узел 203 определения вариантов предикторов вектора движения может обнаруживать вариант PMVc предиктора вектора движения посредством выполнения способа определения варианта PMV2 предиктора вектора движения (этап S303), описанного в первом варианте осуществления, согласно порядку сканирования соседней сверху области, показанному в (c) на фиг. 4. Для определения варианта PMVc предиктора вектора движения узел 203 определения вариантов предикторов вектора движения может использовать входные идентификационные данные списка опорных изображений и идентификационные данные опорного изображения, аналогично первому варианту осуществления.
[0124] Затем на этапе S905 узел 203 определения вариантов предикторов вектора движения сканирует фрагменты в соседней сверху области для целевого фрагмента в направлении влево, чтобы определять вариант PMVd предиктора вектора движения из векторов движения этих фрагментов. На этапе S905 узел 203 определения вариантов предикторов вектора движения может обнаруживать вариант PMVd предиктора вектора движения посредством выполнения способа определения (этап S303) варианта PMV2 предиктора вектора движения, описанного в первом варианте осуществления, согласно порядку сканирования соседней сверху области, показанному в (a) на фиг. 4. Для определения варианта PMVd предиктора вектора движения узел 203 определения вариантов предикторов вектора движения также может использовать идентификационные данные списка опорных изображений и идентификационные данные опорного изображения.
[0125] Затем на этапе S906 узел 203 определения вариантов предикторов вектора движения выбирает вариант PMVY предиктора вектора движения в соседней сверху области из варианта PMVc предиктора вектора движения и варианта PMVd предиктора вектора движения. Узел 203 определения вариантов предикторов вектора движения формирует информацию индикатора направления сканирования, указывающую направление Y сканирования, используемое для определения выбранного варианта предиктора вектора движения. В частности, узел 203 определения вариантов предикторов вектора движения определяет вариант предиктора вектора движения с наименьшей ошибкой относительно предиктора вектора движения целевого фрагмента, из варианта PMVc предиктора вектора движения и варианта PMVd предиктора вектора движения, в качестве варианта PMVY предиктора вектора движения. Когда выбирается вариант PMVc предиктора вектора движения в качестве варианта PMVY предиктора вектора движения, узел 203 определения вариантов предикторов вектора движения формирует информацию индикатора направления сканирования, указывающую направление вправо; когда выбирается вариант PMVd предиктора вектора движения, он формирует информацию индикатора направления сканирования, указывающую направление влево.
[0126] Затем на этапе S907 узел 203 определения вариантов предикторов вектора движения получает вариант PMVZ предиктора вектора движения фрагмента в опорном кадре в позиции, пространственно идентичной целевому фрагменту, идентично процессу этапа S304. Процесс на этом этапе S907 может быть идентичным вышеуказанной форме модификации процесса этапа S304 в первом варианте осуществления.
[0127] Затем на этапе S908 узел 203 определения вариантов предикторов вектора движения задает только неидентичные варианты предикторов вектора движения из варианта PMVX предиктора вектора движения, варианта PMVY предиктора вектора движения и варианта PMVZ предиктора вектора движения, в качестве вариантов предикторов вектора движения. Затем узел 203 определения вариантов предикторов вектора движения выводит варианты предикторов вектора движения, число вариантов предикторов вектора движения и информацию индикатора направления сканирования. В качестве конкретного примера, если вариант PMVX предиктора вектора движения является идентичным варианту PMVZ предиктора вектора движения, только вариант PMVX предиктора вектора движения и вариант PMVY предиктора вектора движения выбираются в качестве вариантов предикторов вектора движения. Если эффективный вариант предиктора вектора движения не определяется на этапах S901-S907, нулевой вектор движения задается как вариант предиктора вектора движения.
[0128] После этого обработка, идентичная обработке на этапе S306 в первом варианте осуществления, выполняется во втором варианте осуществления. В завершение, на этапе S307 узел 213 кодирования кодирует информацию индикатора предиктора вектора движения, чтобы указывать, какой вариант предиктора вектора движения является оптимальным предиктором вектора движения. Во втором варианте осуществления узел 213 кодирования также кодирует информацию индикатора направления сканирования на этапе S307.
[0129] Во втором варианте осуществления, фрагменты, составляющие соседнюю слева область, и фрагменты, составляющие соседнюю сверху область, могут быть модифицированы, как описано выше в первом варианте осуществления. Число предикторов вектора движения также может быть изменено, как описано выше в первом варианте осуществления. Как описано выше в первом варианте осуществления, порядок определения вариантов PMVX, PMVY и PMVZ предикторов вектора движения может быть изменен на основе режима разделения целевого фрагмента на подфрагменты и позиций подфрагментов.
[0130] Ниже описывается способ прогнозирующего декодирования векторов движения согласно второму варианту осуществления. Фиг. 10 является блок-схемой последовательности операций способа, показывающей способ прогнозирующего декодирования векторов движения согласно второму варианту осуществления. Способ прогнозирующего декодирования, показанный на фиг. 10, является способом прогнозирования вектора движения из кодированных данных, сформированных посредством способа прогнозирующего кодирования векторов движения согласно второму варианту осуществления.
[0131] В настоящем варианте осуществления, как показано на фиг. 10, на этапе S1001 узел 302 определения вариантов предикторов вектора движения сначала принимает ввод восстановленных идентификационных данных списка опорных изображений, идентификационных данных опорного изображения и информации индикатора направления сканирования (направление X сканирования, направление Y сканирования).
[0132] Затем на этапе S1002 узел 302 определения вариантов предикторов вектора движения определяет вариант PMVX предиктора вектора движения в соседней слева области согласно идентификационным данным списка опорных изображений, идентификационным данным опорного изображения и информации индикатора направления сканирования, чтобы указывать направление X сканирования. Вариант PMVX предиктора вектора движения определяется посредством процесса, идентичного процессу определения варианта PMV1 предиктора вектора движения в первом варианте осуществления, посредством последовательного сканирования фрагментов в соседней слева области в направлении X сканирования, указываемом посредством информации индикатора направления сканирования.
[0133] Затем на этапе S1003 узел 302 определения вариантов предикторов вектора движения определяет вариант PMVY предиктора вектора движения в соседней сверху области согласно идентификационным данным списка опорных изображений, идентификационным данным опорного изображения и информации индикатора направления сканирования, чтобы указывать направление Y сканирования. Вариант PMVY предиктора вектора движения определяется посредством процесса, идентичного процессу определения варианта PMV2 предиктора вектора движения в первом варианте осуществления, посредством последовательного сканирования фрагментов в соседней сверху области в направлении Y сканирования, указываемом посредством информации индикатора направления сканирования.
[0134] Затем на этапе S1004 узел 302 определения вариантов предикторов вектора движения определяет вариант PMVZ предиктора вектора движения фрагмента в опорном кадре, пространственно идентичном целевому фрагменту. Процесс этапа S1004 является идентичным процессу этапа 304.
[0135] Затем на этапе S1005 узел 302 определения вариантов предикторов вектора движения задает только неидентичные варианты предикторов вектора движения, из варианта PMVX предиктора вектора движения, варианта PMVY предиктора вектора движения и варианта PMVZ предиктора вектора движения, в качестве вариантов предикторов вектора движения. В качестве конкретного примера, если вариант PMVX предиктора вектора движения является идентичным варианту PMVZ предиктора вектора движения, только вариант PMVX предиктора вектора движения и вариант PMVY предиктора вектора движения выбираются в качестве вариантов предикторов вектора движения. Если эффективные варианты предикторов вектора движения не определяются посредством обработки вплоть до этапа S1005, нулевой вектор движения задается как вариант предиктора вектора движения.
[0136] Затем на этапе S1006 узел 301 декодирования восстанавливает информацию индикатора предиктора вектора движения на основе числа вариантов предикторов вектора движения. На этапе S1007 узел 303 определения предикторов вектора движения затем выбирает оптимальный предиктор вектора движения из числа вариантов предикторов вектора движения на основе информации индикатора предиктора вектора движения.
[0137] Во втором варианте осуществления порядок определения вариантов PMVX, PMVY и PMVZ предикторов вектора движения также может быть изменен на основе режима разделения целевого фрагмента на подфрагменты и позиций подфрагментов, как описано выше в первом варианте осуществления.
[0138] Устройство 20 кодирования видео и устройство 30 декодирования видео, описанные выше, сконфигурированы с возможностью сокращать число вариантов для предиктора вектора движения и затем обнаруживать оптимальный предиктор вектора движения из результирующих вариантов предикторов вектора движения. Следовательно, можно уменьшать вычислительную сложность, необходимую для определения оптимального предиктора вектора движения. Кроме того, информация индикатора предиктора вектора движения, чтобы указывать оптимальный предиктор вектора движения, может быть кодирована при меньшем числе битов.
[0139] Устройство 20 кодирования видео и устройство 30 декодирования видео с использованием прогнозирующего кодирования и прогнозирующего декодирования второго варианта осуществления имеют возможность определять варианты предикторов вектора движения с меньшей ошибкой относительно вектора движения целевого фрагмента.
[0140] Ниже описывается программа 1000 кодирования видео для побуждения компьютера выступать в качестве устройства 20 кодирования видео и программа 1100 декодирования видео для побуждения компьютера выступать в качестве вышеуказанного устройства 30 декодирования видео.
[0141] Фиг. 11 является чертежом, показывающим конфигурацию программы кодирования видео согласно одному варианту осуществления. Фиг. 12 является чертежом, показывающим конфигурацию программы декодирования видео согласно одному варианту осуществления. Фиг. 13 является чертежом, показывающим аппаратную конфигурацию компьютера согласно одному варианту осуществления. Фиг. 14 является видом в перспективе, показывающим компьютер согласно одному варианту осуществления.
[0142] Программа 1000 кодирования видео, показанная на фиг. 11, может предоставляться как сохраненная на носителе SM записи. Кроме того, программа 1100 декодирования видео, показанная на фиг. 12, также может предоставляться как сохраненная на носителе SM записи. Примеры таких носителей SM записи, применимых в данном документе, включают в себя такие носители записи, как гибкий диск, CD-ROM, DVD или ROM, полупроводниковые запоминающие устройства и т.п.
[0143] Как показано на фиг. 13, компьютер C10 может содержать устройство C12 считывания, такое как узел накопителя на гибких дисках, узел накопителя на CD-ROM или узел накопителя на DVD, оперативное запоминающее устройство (RAM) C14, в котором постоянно размещается операционная система, запоминающее устройство C16, сохраняющее программу, сохраненную на носителе SM записи, узел C18 монитора, такой как дисплей, мышь 20 и клавиатуру 22 в качестве устройств ввода, устройство C24 связи для передачи/приема данных и т.п. и CPU C26, чтобы управлять выполнением программы.
[0144] Когда носитель SM записи вставляется в устройство C12 считывания, компьютер C10 становится доступным для программы 1000 кодирования видео, сохраненной на носителе SM записи, через устройство C12 считывания, и может работать в качестве устройства 20 кодирования видео на основе программы 1000.
[0145] Когда носитель SM записи вставляется в устройство C12 считывания, компьютер C10 становится доступным для программы 1100 декодирования видео, сохраненной на носителе SM записи, через устройство C12 считывания, и может работать в качестве устройства 30 декодирования видео на основе программы 1100.
[0146] Как показано на фиг. 11, программа 1000 кодирования видео содержит основной модуль 1001, чтобы, в общем, управлять обработкой, модуль 1002 ввода, модуль 1003 обнаружения движения, модуль 1004 определения вариантов предикторов вектора движения, модуль 1005 определения предикторов вектора движения, модуль 1006 вычисления разности векторов движения, модуль 1007 компенсации движения, модуль 1008 пространственного прогнозирования, модуль 1009 определения способа прогнозирования, модуль 1010 вычитания, модуль 1011 ортогонального преобразования, модуль 1012 квантования, модуль 1013 энтропийного кодирования, модуль 1014 обратного квантования, модуль 1015 обратного ортогонального преобразования и модуль 1016 суммирования. Функции, которые предписывают компьютеру реализовывать модуль 1002 ввода, модуль 1003 обнаружения движения, модуль 1004 определения вариантов предикторов вектора движения, модуль 1005 определения предикторов вектора движения, модуль 1006 вычисления разности векторов движения, модуль 1007 компенсации движения, модуль 1008 пространственного прогнозирования, модуль 1009 определения способа прогнозирования, модуль 1010 вычитания, модуль 1011 ортогонального преобразования, модуль 1012 квантования, модуль 1013 энтропийного кодирования, модуль 1014 обратного квантования, модуль 1015 обратного ортогонального преобразования и модуль 1016 суммирования, являются идентичными функциям вышеуказанного узла 201 ввода, узла 202 обнаружения движения, узла 203 определения вариантов предикторов вектора движения, узла 204 определения предикторов вектора движения, узла 205 вычисления разности векторов движения, узла 206 компенсации движения, узла 208 пространственного прогнозирования, узла 209 определения способа прогнозирования, узла 210 вычитания, узла 211 ортогонального преобразования, узла 212 квантования, узла 213 энтропийного кодирования, узла 214 обратного квантования, узла 215 обратного ортогонального преобразования и узла 216 суммирования, соответственно.
[0147] Как показано на фиг. 12, программа 1100 декодирования видео содержит основной модуль 1101, чтобы, в общем, управлять обработкой, модуль 1102 энтропийного декодирования, модуль 1103 определения вариантов предикторов вектора движения, модуль 1104 определения предикторов вектора движения, модуль 1105 суммирования векторов движения, модуль 1106 компенсации движения, модуль 1107 пространственного прогнозирования, модуль 1108 определения способа прогнозирования, модуль 1109 обратного квантования, модуль 1110 обратного ортогонального преобразования и модуль 1111 суммирования. Функции, которые предписывают компьютеру реализовывать модуль 1102 энтропийного декодирования, модуль 1103 определения вариантов предикторов вектора движения, модуль 1104 определения предикторов вектора движения, модуль 1105 суммирования векторов движения, модуль 1106 компенсации движения, модуль 1107 пространственного прогнозирования, модуль 1108 определения способа прогнозирования, модуль 1109 обратного квантования, модуль 1110 обратного ортогонального преобразования и модуль 1111 суммирования, являются идентичными функциям вышеуказанного узла 301 энтропийного декодирования, узла 302 определения вариантов предикторов вектора движения, узла 303 определения предикторов вектора движения, узла 304 суммирования векторов движения, узла 305 компенсации движения, узла 307 пространственного прогнозирования, узла 308 определения способа прогнозирования, узла 309 обратного квантования, узла 310 обратного ортогонального преобразования и узла 311 суммирования, соответственно.
[0148] Выше описаны различные варианты осуществления, но настоящее изобретение может быть модифицировано множеством способов без ограничения вышеописанными вариантами осуществления. Например, в вышеописанных вариантах осуществления, кодированные данные разности векторов движения, представляющей собой разность между вектором движения целевого фрагмента и предиктором вектора движения (оптимальным предиктором вектора движения), передаются из устройства кодирования в устройство декодирования, но оптимальный предиктор вектора движения может приспосабливаться в качестве вектора движения целевого фрагмента без передачи кодированных данных разности векторов движения из устройства кодирования в устройство декодирования.
[0149] Вариант PMVX предиктора вектора движения может определяться следующим образом: прогнозированные сигналы изображений создаются с использованием вариантов PMVa и PMVb предикторов вектора движения, и вариант PMVX предиктора вектора движения, который должен приспосабливаться, является вариантом предиктора вектора движения, который задает меньшей сумму абсолютных разностей (SAD) между прогнозированным сигналом изображений и сигналом изображений целевого фрагмента, из вариантов PMVa и PMVb предикторов вектора движения. Вариант PMVY предиктора вектора движения может определяться следующим образом: прогнозированные сигналы изображений создаются с использованием вариантов PMVc и PMVd предикторов вектора движения, и вариант PMVY предиктора вектора движения, который должен приспосабливаться, является вариантом предиктора вектора движения, который задает меньшей сумму абсолютных разностей (SAD) между прогнозированным сигналом изображений и сигналом изображений целевого фрагмента, из вариантов PMVc и PMCd предикторов вектора движения. Кроме того, сумма абсолютных преобразованных разностей (SATD) или сумма квадратов разностей (SSD) может быть использована вместо SAD.
Список ссылочных позиций
[0150] 20 – устройство кодирования видео; 30 – устройство декодирования видео; 201 – узел ввода; 202 – узел обнаружения; 203 – узел определения вариантов предикторов вектора движения; 204 – узел определения предикторов вектора движения; 205 – узел вычисления разности векторов движения; 206 – узел компенсации движения; 207 – запоминающее устройство; 208 – узел пространственного прогнозирования; 209 – узел определения способа прогнозирования; 210 – узел вычитания; 211 – узел преобразования; 212 – узел квантования; 213 – узел энтропийного кодирования; 214 – узел обратного квантования; 215 – узел обратного преобразования; 216 – узел суммирования; 301 – узел энтропийного декодирования; 302 – узел определения вариантов предикторов вектора движения; 303 – узел определения предикторов вектора движения; 304 – узел суммирования векторов движения; 305 – узел компенсации движения; 306 – запоминающее устройство кадров; 307 – узел пространственного прогнозирования; 308 – узел определения способа прогнозирования; 309 – узел обратного квантования; 310 – узел обратного ортогонального преобразования; 311 – узел суммирования.