СПОСОБ И УСТРОЙСТВО УПРАВЛЕНИЯ КОДИРОВАНИЕМ ВИДЕО
METHOD AND APPARATUS FOR CONTROLLING VIDEO CODING

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к технологии кодирования видео и, в частности, к технологии для предотвращения ухудшения качества изображения, несмотря на уменьшение размера кода, сформированного для кодирования целевого изображения, так чтобы не возникало незаполнения буфера со стороны декодирования.
Приоритет испрашивается по японской патентной заявки № 2010-106104, поданной 6 мая 2010 г., содержание которой включено в настоящий документ посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
В обычном декодере принятые кодированные данные хранятся в буфере до момента декодирования для отображения. Декодированные кодированные данные изымаются из буфера.
При кодировании видеоизображения состояние буфера стороны декодера следует принимать во внимание для предотвращения такого результата, как невозможность декодирования видео. Соответственно, для гарантии успешного выполнения декодирования во время кодирования выполняется тест, использующий виртуальный буфер декодера.
Буфер декодера имеет два ненормальных состояния, а именно переполнение и незаполнение.
При переполнении кодированные данные попадают в декодер со скоростью выше, чем скорость декодирования и отображения данных. В случае приема кодированных данных со скоростью выше, чем скорость декодирования и отображения, размер кода для принятых данных больше, чем размер кода для данных, изъятых из буфера так, чтобы размер принятых данных мог превышать емкость буфера декодера. В известной степени, для предотвращения переполнения декодера бесполезные данные (для укомплектования или заполнения данными) вставляются для того, чтобы уменьшить скорость приема необходимых данных, тем самым предотвращая переполнение.
Напротив, в случае незаполнения необходимые кодированные данные все еще не приняты в процессе декодирования и отображения данных. Для предотвращения незаполнения подходящий целевой размер кода для предотвращения незаполнения может быть установлен так, чтобы управлять размером сформированного кода. В другом способе, использующем технологию пропуска изображений, уменьшается количество изображений, которые должны быть закодированы, так чтобы предотвратить незаполнение. Оба способа предотвращают незаполнение посредством уменьшения размера сформированного кода.
Например, в патентном документе 1 раскрывается способ, в котором выполняется проверка буфера декодера для определения того, произошло ли незаполнение. Если произошло незаполнение, то исходные кодированные данные заменяются пропуском кодированных данных.
Фиг. 7 изображает схему последовательности операций способа предотвращения незаполнения при традиционном кодировании видео.
Сначала, при проверке буфера декодера, определяется, произошло ли незаполнение (см. этап S100). Если незаполнение детектировано, то размер сформированного кода уменьшается при помощи процесса управления размером сформированного кода (см. этап S101).
Уменьшение размера сформированного кода может быть выполнено посредством способа управления для уменьшения разницы между размером сформированного кода и целевым размером кода, способа пропуска изображения, для которого детектировано незаполнение, или способа формирования пустых кодированных данных, который образует минимальный размер сформированного кода.
Детектирование возникновения незаполнения выполняется до или после соответствующего кодирования.
При выполнении детектирования незаполнения после кодирования кодированный поток изображения, для которого было детектировано незаполнение, должен быть отменен.
Кроме того, скорость заполнения в буфере декодера непосредственно перед декодированием изображения во время t может быть вычислена посредством следующей формулы
B(t)=B(0)+R*t-ΣG(i)
где B(0) является исходным значением скорости заполнения в буфере декодера, R обозначает скорость передачи данных, а G(i) обозначает размер кода, сформированного для изображения во время i.
ДОКУМЕНТ УРОВНЯ ТЕХНИКИ
ПАТЕНТНЫЙ ДОКУМЕНТ
Патентный документ 1: японская нерассмотренная патентная заявка, первая публикация № 2005-72742.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
ПРОБЛЕМЫ, КОТОРЫЕ ДОЛЖНЫ БЫТЬ РЕШЕНЫ ПОСРЕДСТВОМ ИЗОБРЕТЕНИЯ
Ситуация, в которой имеется тенденция возникновения незаполнения, то есть скорость заполнения в буфере декодера уменьшается, возникает, когда размер сформированного кода является относительно большим относительно скорости передачи данных.
Фиг. 8 изображает пример изменения скорости заполнения в буфере декодера. На Фиг. 8 в каждой из частей, обозначенных как "A", возникло незаполнение (обозначенное посредством пунктира), и, таким образом, соответствующее изображение было пропущено. В части, обозначенной как "B", размер сформированного кода поддерживается на уменьшенном низком уровне в связи с тем, что скорость заполнения буфера сохраняется низкой после пропуска вышеупомянутого изображения.
При низкой скорости заполнения буфера размер сформированного кода должен быть уменьшен для предотвращения незаполнения. Однако в случае, в котором продолжаются сложные видеоизображения (например, включающие в себя произвольные текстуры), если размер сформированного кода значительно уменьшается, то явно проявляется искажение при кодировании. Такое состояние продолжается до момента окончания соответствующей сложной сцены, а затем скорость заполнения в буфере декодера возвращается на соответствующий уровень.
Таким образом, традиционные способы имеют проблему, в которой если скорость заполнения в буфере декодера уменьшается, то ухудшение декодированного изображения на определенное время становится заметным.
Для решения проблемы в патентном документе 1 раскрывается способ предпочтительного пропуска изображения B, которое не относится к другому изображению.
Однако изображения B изначально формируют относительно малый размер кода, и количество изображений B, которые должны быть вставлены, ограничено. Следовательно, даже посредством использования пропуска необходим значительный период времени до момента, когда скорость заполнения в буфере декодера не возвращается на соответствующий уровень. Это означает, что состояние, в котором размер сформированного кода уменьшен, а качество изображения ухудшено, продолжается в течение значительного периода времени.
Следовательно, цель настоящего изобретения заключается в решении проблемы, сопровождаемой уменьшением скорости заполнения буфера декодера, для которого в традиционных способах явно проявляется ухудшение декодированного изображения на определенное время, а также в предотвращении ухудшения качества кодируемого целевого изображения после детектирования незаполнения.
СРЕДСТВО ДЛЯ РЕШЕНИЯ ПРОБЛЕМЫ
Для достижения вышеупомянутой цели настоящее изобретение обеспечивает способ управления кодированием видео для управления кодированием входного видеосигнала, при этом способ содержит этапы:
детектирования незаполнения буфера декодера;
если было детектировано незаполнение буфера декодера, то уменьшения размера сформированного кода, посредством пропуска кодируемого целевого изображения или посредством кодирования кодируемого целевого изображения для образования минимального размера сформированного кода;
после уменьшения размера сформированного кода, сравнения текущей скорости заполнения в буфере декодера с предварительно определенным пороговым значением для скорости заполнения в буфере декодера; и
выполнения управления для непрерывного уменьшения размера кода, сформированного для каждого кодируемого целевого изображения посредством использования вышеупомянутого этапа уменьшения размера сформированного кода до момента, когда скорость заполнения в буфере декодера не превысит пороговое значение, на основе результата вышеупомянутого сравнения.
Настоящее изобретение также обеспечивает способ управления кодированием видео для управления кодированием входного видеосигнала, при этом способ содержит этапы:
детектирования незаполнения буфера декодера;
если было детектировано незаполнение буфера декодера, то вычисления периода времени для уменьшения размера сформированного кода на основе предварительно определенного порогового значения для скорости заполнения в буфере декодера и скорости передачи данных при кодировании; и
выполнения управления для непрерывного уменьшения размера кода, сформированного для каждого кодируемого целевого изображения во время вычисленного периода времени, посредством пропуска кодируемого целевого изображения или посредством кодирования кодируемого целевого изображения для образования минимального размера сформированного кода.
Настоящее изобретение также обеспечивает устройство для управления кодированием видео для управления кодированием входного видеосигнала, причем устройство содержит:
устройство, которое детектирует незаполнение буфера декодера;
устройство, которое уменьшает размер сформированного кода, посредством пропуска кодируемого целевого изображения или посредством кодирования кодируемого целевого изображения для образования минимального размера сформированного кода;
устройство, которое сравнивает текущую скорость заполнения в буфере декодера с предварительно определенным пороговым значением для скорости заполнения в буфере декодера; и
устройство, которое выполняет, если было детектировано незаполнение буфера декодера, управление для непрерывного уменьшения размера кода, сформированного для каждого кодируемого целевого изображения посредством использования вышеупомянутого устройства, которое уменьшает размер сформированного кода до момента превышения порогового значения скорости заполнения в буфере декодера.
Настоящее изобретение также обеспечивает устройство для управления кодированием видео для управления кодированием входного видеосигнала, причем устройство содержит:
устройство, которое детектирует незаполнение буфера декодера;
устройство, которое уменьшает размер сформированного кода посредством пропуска кодируемого целевого изображения или посредством кодирования кодируемого целевого изображения, так чтобы образовывать минимальный размер сформированного кода;
устройство, которое вычисляет период времени для уменьшения размера сформированного кода на основе предварительно определенного порогового значения для скорости заполнения в буфере декодера и скорости передачи данных при кодировании; и
устройство, которое выполняет, если было детектировано незаполнение буфера декодера, управление для непрерывного уменьшения размера кода, сформированного для каждого кодируемого целевого изображения во время вычисленного периода времени, посредством использования вышеупомянутого устройства, которое уменьшает размер сформированного кода.
ЭФФЕКТ ИЗОБРЕТЕНИЯ
В соответствии с настоящим изобретением размер сформированного кода может уменьшаться до момента, когда скорость заполнения в буфере декодера не превысит пороговое значение. Следовательно, после детектирования незаполнения нет необходимости в непрерывном продолжении уменьшения размера сформированного кода для предотвращения незаполнения. Соответственно, качество изображения может быть улучшено.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой последовательности операций управления кодированием видео, предназначенной для разъяснения в общих чертах настоящего изобретения.
Фиг. 2 является диаграммой, изображающей иллюстративную структуру устройства из варианта осуществления настоящего изобретения.
Фиг. 3 является блок-схемой последовательности операций, изображающей процесс работы варианта осуществления.
Фиг. 4 является диаграммой, изображающей иллюстративное изменение скорости заполнения в буфере декодера в варианте осуществления.
Фиг. 5 является блок-схемой последовательности операций, изображающей процесс работы из другого варианта осуществления.
Фиг. 6 является диаграммой, изображающей иллюстративную структуру устройства из другого варианта осуществления.
Фиг. 7 является диаграммой, изображающей схему последовательности операций способа предотвращения незаполнения в случае обычного кодирования видео.
Фиг. 8 является диаграммой, изображающей пример иллюстративного изменения скорости заполнения в буфере декодера посредством использования традиционной технологии.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Сначала настоящее изобретение будет разъяснено в общих чертах.
Если уменьшается скорость заполнения в буфере декодера, то на определенный период времени явно проявляется ухудшение декодированного изображения. Причина состоит в том, что размер сформированного кода уменьшается вследствие низкого уровня (то есть, скорости заполнения) буфера декодера.
Следовательно, для восстановления соответствующего уровня буфера декодера настоящее изобретение выполняет процесс (такой, как пропуск изображения) минимизации размера кода для конкретного периода времени. Минимизация размера сформированного кода продолжается до момента, когда уровень буфера декодера не превысит предварительно определенного порогового значения.
Фиг. 1 является блок-схемой последовательности операций управления кодированием видео, предназначенной для разъяснения в общих чертах настоящего изобретения.
Сначала, подобно реализации в обычном способе, выполняется проверка буфера декодера (см. этап S1). Если при проверке не детектировано никаких проблем, то процесс кодирования продолжается.
Если было детектировано незаполнение, то выполняется процесс уменьшения размера сформированного кода, посредством пропуска или кодирования кодируемого целевого изображения при помощи минимального размера сформированного кода, подобно реализации в обычных способах (см. этап S2).
Затем определяется, превышает ли скорость заполнения в буфере декодера предварительно определенное пороговое значение (см. этап S3).
Если скорость все еще ниже порогового значения, то после определения того, что текущее кодируемое целевое изображение определено как новое кодируемое целевое изображение, вводится следующее изображение, для которого выполняется процесс уменьшения размера сформированного кода (см. этап S2).
Такой процесс повторяется до момента, когда скорость заполнения в буфере декодера не превысит предварительно определенное пороговое значение.
Как было описано выше, в настоящем изобретении пороговое значение для остановки средства уменьшения размера сформированного кода (например, пропуска изображения) устанавливается независимо в дополнение к пороговому значению для детектирования незаполнения буфера декодера, и процесс уменьшения размера сформированного кода выполняется непрерывно посредством средства уменьшения размера сформированного кода до момента, когда скорость заполнения в буфере декодера не превысит пороговое значение. Если скорость заполнения превышает пороговое значение, то операция возвращается к обычному процессу кодирования.
В соответствии с таким способом, возможно локально уменьшить размер сформированного кода на короткий период времени, тем самым предотвращая ухудшение качества кодируемого целевого изображения после детектирования незаполнения буфера декодера.
Несмотря на то, что нет никакого смысла в установлении предварительно определенного порогового значения на очень низкий уровень, очень высокий уровень увеличивает период времени для уменьшения размера сформированного кода. Следовательно, пороговое значение может быть:
(i) половиной максимального размера буфера (приблизительно от 40% до 60% от максимального размера); или
(ii) начальным уровнем буфера, если начато декодирование потока кодирования.
Ниже будут разъяснены конкретные варианты осуществления настоящего изобретения посредством ссылок на чертежи.
Фиг. 2 является диаграммой, изображающей структуру иллюстративного устройства из варианта осуществления настоящего изобретения. На Фиг. 2 части, отличные от блока 112 управления кодированием, в целом, подобны блокам в устройстве, которое выполняет кодирование видео на основе известных стандартов MPEG-2, H.264 или подобных.
Блок 101 формирования предсказанного сигнала формирует предсказанный сигнал на основе разности между входным видеосигналом и межкадровым предсказанным сигналом.
Этот предсказанный сигнал вводится в блок 102 ортогонального преобразования, который выводит коэффициенты преобразования, полученные посредством ортогонального преобразования (например, преобразования DCT (дискретного косинусоидального преобразования)).
Коэффициенты преобразования вводятся в блок 103 квантования, где они квантуются в соответствии с размером этапа квантования, установленным посредством блока 113 управления квантованием.
Квантованные коэффициенты преобразования вводятся в блок 104 кодирования источника информации, где они подвергаются энтропийному кодированию.
Кодированные данные, выведенные из блока 104 кодирования источника информации, сохраняются через блок 114 переключения в буфере 115 кодированных данных.
Одновременно, квантованные коэффициенты преобразования подвергаются обратному квантованию в блоке 105 обратного квантования и, кроме того, обратному ортогональному преобразованию в блоке 106 обратного ортогонального преобразования, тем самым формируя декодированный предсказанный сигнал.
Этот декодированный предсказанный сигнал суммируется с межкадоровым предсказанным сигналом в блоке 107 суммирования, тем самым формируя декодированный сигнал.
Декодированный сигнал подвергается ограничению в блоке 108 ограничения, а затем сохраняется в памяти 109 кадров для его использования в качестве эталонного изображения при кодировании с предсказанием следующего кадра.
Блок 110 детектирования движения выполняет детектирование движения входного видеосигнала посредством поиска движения и выводит полученный вектор движения в блок 111 компенсации движения и блок 104 кодирования источника информации.
Блок 104 кодирования источника информации выполняет энтропийное кодирование вектора движения.
Блок 111 компенсации движения обращается к памяти 109 кадров в соответствии с вектором движения для формирования межкадрового предсказанного сигнала.
В настоящем варианте осуществления выполняется детектирование незаполнения после процесса кодирования, и допустимым процессом для уменьшения размера сформированного кода является пропуск изображения.
Блок 112 управления кодированием принимает скорость передачи данных при кодировании и размер сформированного кода, посланного из буфера 115 кодированных данных, и вычисляет скорость заполнения в буфере декодера со стороны декодирования.
Если детектировано незаполнение буфера декодера, то блок 112 управления кодированием выводит информацию об отмене кодированных данных в блок 114 переключения для того, чтобы кодированные данные соответствующего изображения были отменены посредством открытия соответствующего переключателя (то есть, пропуска изображения). Поддерживается состояние открытия этого переключателя, то есть, пропуск изображений продолжается до момента, когда скорость заполнения в буфере декодера не превысит пороговое значение.
Если скорость заполнения в буфере декодера превышает пороговое значение, то переключатель закрывается для того, чтобы кодированные данные, сформированные в блоке 104 кодирования источника информации, были установлены в буфер 115 кодированных данных.
Фиг. 3 является блок-схемой последовательности операций, изображающей процесс работы из настоящего варианта осуществления.
Сначала выполняется кодирование кодируемого целевого изображения (см. этап S10). Затем выполняется проверка буфера декодера (см. этап S11). Если при проверке не детектировано никаких проблем, то операция, применяемая к целевому изображению кодирования, завершается.
Если детектировано незаполнение, то кодированные данные, которые являются результатом кодирования кодируемого целевого изображения, отменяются и устанавливается пороговое значение для скорости заполнения в буфере декодера (см. этап S12).
Затем кодируемое целевое изображение отменяется (см. этап S13) и формируются кодированные данные, соответствующие пропускаемому изображению (см. этап S14).
После этого скорость заполнения в буфере декодера сравнивается с пороговым значением (см. этап S15).
В соответствии с результатами сравнения, если скорость заполнения в буфере декодера ниже или равна пороговому значению, то входное изображение, следующее за текущим целевым изображением кодирования, определяется как новое целевое изображение кодирования, для которого снова выполняется отмена кодируемого целевого изображения (этап S13) и формирование кодированных данных для пропуска изображения (этап S14).
Если результат сравнения указывает, что соответствующая скорость выше порогового значения, то операция уменьшения размера сформированного кода в соответствии с настоящим управлением кодированием завершается.
Фиг. 4 изображает иллюстративное изменение скорости заполнения в декодере буфера в настоящем варианте осуществления.
В настоящем варианте осуществления, если детектировано незаполнение во время t, то пропуск изображения продолжается до времени t+n, когда скорость заполнения в буфере декодера превысит соответствующее пороговое значение VBVth.
Поскольку размер кода, сформированного для пропуска изображения, может быть определен как почти равный 0, то скорость заполнения в буфере декодера увеличивается вдоль наклона, в соответствии со скоростью передачи данных для времени от t до t+n.
В настоящем варианте осуществления выполняется повтор пропуска изображения до момента, когда скорость заполнения в буфере декодера не превысит пороговое значение. Однако количество изображений, которые будут пропущены, может быть вычислено заранее на основе скорости заполнения в момент времени детектирования незаполнения и на основе порогового значения.
В данном случае предполагается, что уровень заполнения буфера в момент времени детектирования незаполнения составляет B(t0), R обозначает скорость передачи данных, Gs обозначает размер кода, сформированного для пропуска изображения, а Bth обозначает предварительно определенное пороговое значение.
Тогда натуральное число, которое превышает n, вычисленное посредством следующей формулы, может быть определено как количество пропущенных изображений:
n=(Bth-B(t0))/(R-Gs)
Если размер кода, сформированного для пропуска изображения, равен 0, то используется следующая формула:
n=(Bth-B(t0))/R
Фиг. 5 является блок-схемой последовательности операций, использующейся для вышеупомянутого случая (изменение варианта осуществления).
Сначала выполняется кодирование кодируемого целевого изображения (см. этап S20).
Затем выполняется проверка буфера декодера (см. этап S21). Если при проверке не детектировано никаких проблем, то операция, применяемая к целевому изображению кодирования, завершается.
Если детектировано незаполнение, то кодированные данные, которые являются результатом кодирования кодируемого целевого изображения, отменяются (см. этап S22).
Затем выполняется вычисление количества изображений, которые должны быть пропущены, посредством вычисления вышеописанного n (см. этап S23). Затем вычисленное количество (для пропуска изображений) кодируемых целевых изображений отменяется (см. этап S24) и формируются кодированные данные для пропуска изображений, в которых устанавливается количество пропущенных изображений (см. этап S25).
После этого операция уменьшения размера сформированного кода, в соответствии с настоящим управлением кодированием, завершается.
Как было описано выше, по сравнению с процессом на Фиг.3, который выполняет изображенное повторение, этот вариант имеет отличительные черты, заключающиеся в вычислении количества пропущенных изображений (этап S23),  последующей отмене установленного количества кодируемых целевых изображений (этап S24) и пропуске установленного количества изображений (этап S25).
Вместо вычисления количества пропущенных изображений, подобные эффекты могут быть получены посредством вычисления периода времени для уменьшения размера сформированного кода посредством пропуска изображений или подобного. Другими словами, количество изображений и вышеупомянутый период времени принимаются, по существу, тождественными друг  другу.
Несмотря на то, что в настоящем варианте осуществления пропуск изображения используется в качестве средства уменьшения размера сформированного кода, кодирование может также быть выполнено с использованием (i) максимального размера шага квантования или матрицы квантования, (ii) режима, который образует минимальный размер сформированного кода (например, пропуск макроблока), или подобного.
Фиг. 6 является диаграммой, изображающей структуру варианта осуществления, применимого к варианту осуществления, в котором вставляются пустые данные, которые образуют минимальный размер сформированного кода вместо выполнения пропуска изображения.
На разъясненной выше Фиг. 2 пропуск изображения реализован посредством отмены соответствующих кодированных данных. Однако на Фиг. 6, вместо отмены кодированных данных, вставляются кодированные данные, сформированные посредством блока 120 формирования пустых данных. Другие блоки являются идентичными блокам, изображенным на Фиг. 2.
Кроме того, несмотря на то, что вышеописанные варианты осуществления выполняют кодирование для определения того, детектировано ли незаполнение, размер сформированного кода может быть оценен без выполнения кодирования для детектирования возникновения незаполнения. В этом случае отмена кодированных данных не является необходимой.
В вышеупомянутых вариантах осуществления пороговое значение скорости заполнения в буфере декодера может быть установлено, по существу, как половина размера буфера со стороны декодирования или уровня буфера декодера непосредственно до момента приема стороной декодирования кодированных данных главного изображения и начала декодирования кодированных данных. В любом случае может быть получено подходящее пороговое значение, которое не является ни слишком высоким, ни слишком низким.
Кроме того, в вариантах осуществления не рассматривается переполнение буфера декодера.
Для того чтобы справиться с переполнением, необходимо определить, детектировано ли переполнение, на основе информации о максимальном размере буфера.
Вышеописанный процесс управления кодированием видео может быть реализован с использованием компьютера и программного продукта, и программный продукт может быть сохранен на машиночитаемом носителе данных или предоставлен через сеть.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
В соответствии с настоящим изобретением, размер сформированного кода может уменьшаться до момента, когда скорость заполнения в буфере декодера не превысит пороговое значение. Следовательно, после детектирования незаполнения, отсутствует необходимость в непрерывном продолжении уменьшения размера сформированного кода для предотвращения незаполнения. Соответственно, качество изображения может быть улучшено.
ССЫЛОЧНЫЕ ОБОЗНАЧЕНИЯ
101 блок формирования предсказанного сигнала
102 блок ортогонального преобразования
103 блок квантования
104 блок кодирования источника информации
105 блок обратного квантования
106 блок обратного ортогонального преобразования
107 блок суммирования
108 блок ограничения
109 память кадров
110 блок детектирования движения
111 блок компенсации движения
112 блок управления кодированием
113 блок управления квантованием
114 блок переключения
115 буфер кодированных данных
120 блок формирования пустых данных