СПОСОБ УПРАВЛЕНИЯ КОДИРОВАНИЕМ ВИДЕО, УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕО И ПРОГРАММА КОДИРОВАНИЯ ВИДЕО
VIDEO ENCODING CONTROL METHOD, VIDEO ENCODING DEVICE AND VIDEO ENCODING PROGRAMME

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к технологии кодирования видео для кодирования видеосигнала таким образом, чтобы не возникало отказа гипотетического буфера в декодере, такого как буфер кодированного изображения (CPB) в гипотетическом декодере, и не увеличивалось ухудшение качества изображения.
По данной заявке испрашивается приоритет патентных заявок Японии № 2010-109874, 2010-109875, 2010-109876, 2010-109877, и 2010-109878, поданных 12 мая 2010г., которые во всей своей полноте включены в настоящее описание посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
При кодировании видеосигнала необходимо выполнять кодирование таким образом, чтобы не возникало отказа (ошибки) декодера. В схеме кодирования H.264 определен гипотетический декодер, гипотетический опорный декодер (HRD), который получается путем моделирования декодера. Кодеру H.264 требуется выполнять кодирования таким образом, чтобы не возникло отказа гипотетического декодера. Настоящее изобретение является технологией для снижения ухудшения качества изображения, не допуская при этом возможности отказа CPB гипотетического декодера, в частности опустошения CPB.
На Фиг. 1 проиллюстрирована концептуальная схема опустошения CPB. В случае постоянного битрейта, закодированный поток подается в CPB с данным битрейтом (ссылочное обозначение RS1 на Фиг. 1). Объем данных закодированных потоков в CPB в каждый момент времени именуется как «остаточный битрейт». Гипотетический декодер извлекает из CPB закодированный поток, соответствующий каждому изображению. В данном случае остаточный битрейт CPB тот час уменьшается на битрейт, соответствующий каждому изображению. Фиг. 1 иллюстрирует характерный случай постоянного битрейта, однако то же самое применимо к случаю переменного битрейта.
Опустошение CPB относится к ситуации, при которой закодированного потока изображения недостаточно в CPB, когда гипотетический декодер пытается извлечь закодированный поток изображения из CPB, как проиллюстрировано на Фиг. 1. При кодировании, основанном на H.264, требуется проверять состояние CPB при выполнении кодирования, чтобы создавать поток, который не вызывает опустошения CPB. Как описано выше, CPB гипотетического декодера стандартизован в H.264, и дополнительные подробности описаны, например, в непатентном документе 1, который описывается ниже.
Следует отметить, что концепция, аналогичная CPB, также определена в других стандартах кодирования. Например, в стандарте Экспертной Группы по Движущимся Изображениям (MPEG)-2 присутствует верификатор буферизации видео (VBV), а модель буфера такого декодера здесь именуется как «гипотетический буфер». В нижеследующем описании «CPB» может читаться как слова «гипотетический буфер» для интерпретации в широком смысле.
Способы для кодирования видеосигнала включают в себя технологию однопроходного кодирования и технологию многопроходного кодирования. При однопроходном кодировании, как правило, изображения входного видео кодируются последовательно. В противоположность, при многопроходном кодировании, входное видео кодируется множество раз. При 2-проходном кодировании, второе кодировании выполняется, используя результат первого кодирования. В нижеследующем описании, известный способ 1-проходного кодирования именуется как «известный способ a», а известный способ 2-проходного кодирования именуется как «известный способ b».
<Известный способ a>
При 1-проходном кодировании, поскольку входные изображения кодируются последовательно, то характер будущего изображения после кодирования целевого изображения, не известен. Вследствие этого, степень сложности будущего изображения оценивается, например, по сформированному битрейту изображения, закодированного в прошлом с тем, чтобы не допустить опустошения CPB. Например, в методе согласно патентному документу 1, перед кодированием каждого изображения, степень сложности видео, полученного по результатам кодирования в прошлом, определяется как оцененное значение степени сложности оставшихся элементов видео из группы изображений (GOP). В предположении оцененного значения степени сложности, по остаточному битрейту CPB оценивается параметр квантования, формирующий максимальный битрейт, который доступен для кодирования оставшихся элементов видео из GOP, и он используется в качестве значения нижней границы параметра квантования при кодировании для кодирования текущего изображения, тем самым не допуская опустошение CPB. По этой причине, в случае перехода от простой сцены к сложной сцене, при кодировании простой сцены, битрейт формируется предполагая, что битрейт такой же и в будущем, и при кодировании сложной сцены, CPB не имеет остаточного битрейта, который требуется для сохранения качества изображения, и используется большой параметр квантования. В результате, возникает проблема, связанная с тем, что возникает значительное ухудшение качества изображения.
<Известный способ b>
При 2-проходном кодировании кодируются все изображения входного видео, и битрейт каждого изображения, сформированный в этот раз, используется для второго кодирования. В данном способе, поскольку сложность каждой части видео известна во время второго кодирования, в отличие от случая 1-проходного кодирования, то ожидается, что будет не допущено опустошение CPB вместе с недопущением ухудшения качества изображения. Например, в технологии Патентного Документа 2 при первом кодировании получают степень сложности каждого кадра, и получают выделение битрейтов каждому кадру. Затем выполняется проверка того, приводит или нет данное выделение битрейта к опустошению CPB. Если возникает опустошение CPB, то выделение битрейта изменяется. Таким образом, поскольку степень сложности каждого кадра известна, то можно ожидать, что качество изображения будет сохранено при недопущении опустошения CPB. Тем не менее, в данном способе, поскольку все кадры входного видео кодируются дважды, существует проблема, состоящая в том, что требуется большой объем вычислений.
ДОКУМЕНТЫ ИЗВЕСТНОГО УРОВНЯ ТЕХНИКИ
ПАТЕНТНЫЕ ДОКУМЕНТЫ
Патентный документ 1: Не прошедшая экспертизу патентная заявка Японии, первая публикация № 2006-295535
Патентный документ 2: Не прошедшая экспертизу патентная заявка Японии, первая публикация № 2003-018603
НЕПАТЕНТНЫЙ ДОКУМЕНТ
Непатентный документ 1: Кадано, Кикути, и Сузуки, «Third Revised Edition H.264/AVC Textbook», изданное Impress R & D, 2009г., стр. 189-191.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
ЗАДАЧИ, РЕШАЕМЫЕ ИЗОБРЕТЕНИЕМ
При описанном выше известном способе a, поскольку управление кодированием выполняется, используя только уже закодированную информацию, то существует проблема, состоящая в том, что невозможно избежать сильного ухудшения качества изображения, вызванного недопущением опустошения CPB. В качестве простого способа, чтобы избежать ухудшения качества изображения, также может рассматриваться установка верхнего порогового значения параметра квантования. Тем не менее, эта контрмера вызывает опустошение CPB.
С другой стороны, в соответствии с известным способом b, хотя может не допускаться опустошение CPB, не допуская при этом ухудшения качества изображения, существует проблема, состоящая в том, что велик объем вычислений.
Целью настоящего изобретения является уменьшение сильного ухудшения качества изображения, возникающего при известном 1-проходном кодировании (известном способе a), не допуская при этом опустошения CPB, при объеме вычислений меньшем, чем при известном 2-проходном кодировании (известном способе b), тем самым решая описанные выше задачи.
СРЕДСТВА ДЛЯ РЕШЕНИЯ ЗАДАЧ
Перед описанием настоящего изобретения, определяются такие понятия как «группа изображений в очередности кодирования» и «статистика квантования». Группа изображений в очередности кодирования включает в себя заранее определенное количество изображений и является совокупностью последовательных изображений в очередности кодирования. Типичным примером группы изображений в очередности кодирования является группа изображений (GOP).
Концептуальные схемы группы изображений в очередности кодирования проиллюстрированы на Фиг. 2A-2C. На Фиг. 2A-2C, I обозначает изображение, которое является целью кодирования с интра-предсказанием (I изображение), P обозначает изображение, которое является целью кодирования с прямым предсказанием (P изображение), и B обозначает изображение, которое является целью кодирования с двунаправленным предсказанием (B изображение).
Предполагается, что очередностью отображения изображений является, например, очередность вида I→B→P→B→P→B,..., как проиллюстрировано на Фиг. 2A. Когда предполагается, что группой изображений в очередности кодирования в настоящем изобретении является GOP, то группой изображений в очередности кодирования становится группа изображения вида I→P→B→P→...→B→P (непосредственно перед I), как проиллюстрировано на Фиг. 2B. Например, когда группа изображений в очередности кодирования включает в себя 13 изображений, то 13 последовательных изображений в очередности кодирования, как проиллюстрировано на Фиг. 2C, образуют группу изображений в очередности кодирования настоящего изобретения.
Как описано выше, совокупность изображений, в которой последовательность изображений входного видео разделена на группы из заранее определенного количества последовательных изображений в очередности кодирования, именуется как группа изображений в очередности кодирования. Следует отметить, что здесь понятие «изображение» относится к кадру, когда формат видео прогрессивный, или оно относится к кадру одного поля или кадру, полученному посредством объединения верхнего поля и нижнего поля, когда формат видео чересстрочный.
Дополнительно, статистикой квантования является статистика, полученная из параметра квантования или шага квантования, используемого для кодирования каждого макроблока в изображении. Например, это среднее или срединное значение параметров квантования или шагов квантования макроблоков в изображении.
В первом аспекте настоящего изобретения, кодирование входного видео выполняется в единицах групп изображений в очередности кодирования. Однако проверяется, превышает или нет статистика квантования входного изображения заранее определенное пороговое значение каждый раз при кодировании входного изображения, и если статистика квантования превышает заранее определенное пороговое значение, то параметр кодирования меняется таким образом, чтобы формируемый битрейт становился небольшим, а затем выполняется повторное кодирования кодируемой группы изображений в очередности кодирования. Предполагается, что когда завершено кодирование группы изображений в очередности кодирования, результат кодирования выводится из выходного буфера.
Примеры параметров кодирования, которые могут меняться, включают в себя параметр квантования и силу предварительного фильтра, и может меняться один из них или оба. Например, в случае параметра квантования, величина шага параметра квантования увеличивается таким образом, чтобы параметр кодирования обуславливал небольшой формируемый битрейт. Кроме того, когда меняется сила фильтра предварительного фильтра для входного видео, то степень размытости меняется в сторону увеличения с тем, чтобы формируемый битрейт мог быть небольшим.
Когда завершено повторное кодирование группы изображений в очередности кодирования, то параметр кодирования восстанавливается до значения параметра кодирования, которое используется во время нормального кодирования. В результате, не допускается влияния ухудшения качества изображения, вызванного изменением параметра кодирования для уменьшения формируемого битрейта, на следующую группу изображений в очередности кодирования. Здесь, параметр кодирования, который используется во время нормального кодирования, относится к параметру кодирования, который определен для состояния, при котором повторное кодирование не выполняется.
В качестве альтернативы, когда завершено повторное кодирование группы изображений в очередности кодирования, то вместо постоянного восстановления параметра кодирования до значения, которое используется во время нормального кодирования, может проверяться остаточный битрейт CPB, и только если остаточный битрейт больше либо равен заранее определенному пороговому значению, параметр кодирования может восстанавливаться до значения, которое используется во время нормального кодирования, а если остаточный битрейт меньше, то параметр кодирования может не восстанавливаться до значения, которое используется во время нормального кодирования. Это позволяет сократить вероятность постоянного наличия повторного кодирования.
Кроме того, в первом аспекте настоящего изобретения, параметр кодирования может в основном восстанавливаться до значения параметра кодирования, которое используется во время нормального кодирования, но даже во время повторного кодирования группы изображений в очередности кодирования, может быть проверено, превышает или нет статистика квантования каждого изображения заранее определенное пороговое значение каждый раз, когда кодируется каждое изображение, и если статистика квантования превышает заранее определенное пороговое значение, то параметр кодирования может быть изменен, и затем повторное кодирование может выполняться с первого изображения в кодируемой в настоящий момент группе изображений в очередности кодирования. Другими словами, кодирование одной и той же группы изображений в очередности кодирования выполняется повторно множество раз, пока не будет удовлетворено условие повторного кодирования, состоящее в том, что статистика квантования превышает заранее определенное пороговое значение.
В данном случае, количество раз, которое повторно кодируется одна группа изображений в очередности кодирования управляется параметром, именуемым счетчиком повторов, при этом значение счетчика повторов увеличивается, если возникает повторное кодирование, и значение счетчика повторов уменьшается, когда завершено кодирование группы изображений в очередности кодирования. Описанное выше значение параметра кодирования устанавливается в зависимости от значения счетчика повторов, и по мере роста счетчика повторов используется значение, при котором формируемый битрейт становится меньше. Когда параметром кодирования является параметр квантования, то величина шага увеличивается по мере роста счетчика повторов. Когда параметром кодирования является сила фильтра предварительного фильтра, то степень размытости увеличивается по мере роста счетчика повторов.
Обычно, видео как цель кодирования включает в себя сложную часть и простую часть. Как правило, величина изменения формируемого битрейта из-за изменения параметра кодирования значительно увеличивается в сложной части видео. Кроме того, также увеличивается величина изменения в качестве изображения. Если определено, что повторное кодирование одной группы изображений в очередности кодирования будет выполняться один раз, то требуется, чтобы во время повторного кодирования параметр кодирования значительно менялся по отношению к параметру кодирования до повторного кодирования, чтобы, когда повторное кодирование будет выполнено ввиду удовлетворения условия повторного кодирования, состоящего в том, что статистика квантования превышает заранее определенное пороговое значение, условие повторного кодирования вновь не выполнялось. В данном случае, когда целью повторного кодирования является относительно сложная часть видео, может произойти значительное ухудшение качества изображения.
Вследствие этого, до тех пор, пока выполняется условие повторного кодирования, группа изображений в очередности кодирования повторно кодируется, осуществляется управление счетчиком повторов, и параметр кодирования устанавливается в зависимости от величины счетчика повторов. Соответственно добиваются, чтобы величина изменения параметра кодирования была небольшой, и кодирование выполняется с соответствующим параметром кодирования. В результате, становится возможным дополнительно снизить ухудшение качества изображения.
В качестве альтернативы, количество раз, которое повторно кодируется одна группа изображений в очередности кодирования, управляется параметром, именуемым счетчиком повторов, при этом значение счетчика повторов увеличивается, если возникает повторное кодирование, и значение счетчика повторов уменьшается, когда завершено кодирование группы изображений в очередности кодирования аналогично описанному выше.
Однако когда завершено кодирование группы изображений в очередности кодирования, то вместо безусловного уменьшения значения счетчика повторов, счетчик повторов может уменьшаться, только если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению в момент, когда завершено кодирование группы изображений в очередности кодирования.
Другими словами, во время повторного кодирования счетчик повторов увеличивается и выполняется кодирование, а затем в основном счетчик повторов уменьшается в момент, когда завершено кодирование группы изображений в очередности кодирования, тем самым снижается влияние ухудшения качества изображения на следующую группу изображений в очередности кодирования. Однако если остаточный битрейт CPB меньше заранее установленного значения, то счетчик повторов не уменьшается. В результате, повторное кодирование может произойти с меньшей вероятностью даже при кодировании следующей группы изображений в очередности кодирования.
Во втором аспекте настоящего изобретения, группа изображений в очередности кодирования включает в себя заранее определенное количество изображений, при этом первое изображение является изображением, которое кодируется с интра-предсказанием (I изображение), и группа является совокупностью последовательных изображений в очередности кодирования.
Во втором аспекте настоящего изобретения, необязательно чтобы группой изображений в очередности кодирования была GOP, но первым изображением в группе изображений в очередности кодирования является изображение, которое кодируется с интра-предсказанием (I изображение). Фиг. 2D иллюстрирует пример, в котором группа изображений в очередности кодирования включает в себя 20 изображений, соответствующие 2 GOP.
Во втором аспекте настоящего изобретения, кодирование входного видео выполняется в единицах групп изображений в очередности кодирования. Однако каждый раз при кодировании изображения выполняется проверка, превышает или нет статистика квантования входного изображения заранее определенное пороговое значение, и если статистика квантования превышает заранее определенное пороговое значение, то параметр кодирования меняется таким образом, что формируемый битрейт становится малым, и повторное кодирование выполняется с позиции в группе изображений в очередности кодирования, установленной в качестве точки повтора (которая будет описана ниже). Предполагается, что результат кодирования выводится из выходного буфера, когда завершено кодирование группы изображений в очередности кодирования, и если определено, что повторное кодирование не должно выполняться.
Примеры параметров кодирования, которые могут меняться, включают в себя параметр квантования и силу предварительного фильтра, и может меняться один из них или оба. Например, в случае параметра квантования, величина шага параметра квантования увеличивается таким образом, чтобы параметр кодирования обуславливал небольшой формируемый битрейт. Кроме того, когда меняется сила фильтра предварительного фильтра для входного видео, то степень размытости меняется в сторону увеличения, так что формируемый битрейт может быть малым.
Когда завершено повторное кодирование группы изображений в очередности кодирования, то параметр кодирования восстанавливается до значения параметра кодирования, которое используется во время нормального кодирования. В результате, не допускается влияния ухудшения качества изображения, вызванного изменением параметра кодирования для уменьшения формируемого битрейта, на следующую группу изображений в очередности кодирования. Здесь параметр кодирования, который используется во время нормального кодирования, относится к параметру кодирования, который определен для состояния, при котором повторное кодирование не выполняется.
В качестве альтернативы, когда завершено повторное кодирование группы изображений в очередности кодирования, вместо постоянного восстановления параметра кодирования до значения, которое используется во время нормального кодирования, может проверяться остаточный битрейт CPB, и только если остаточный битрейт больше либо равен заранее определенному пороговому значению, параметр кодирования может восстанавливаться до значения, которое используется во время нормального кодирования, а если остаточный битрейт меньше, то параметр кодирования может не восстанавливаться до значения, которое используется во время нормального кодирования. Это позволяет сократить вероятность постоянного наличия повторного кодирования.
Посредством описанного выше процесса, например, даже когда процесс кодирования переходит от простой сцены видео к сложной сцене и качество изображения ухудшается из-за недостаточного остаточного битрейта CPB, то повторное кодирование выполняется с позиции в группе изображений в очередности кодирования, которая установлена в качестве точки повтора, так что остаточный битрейт CPB дополнительно увеличивается. Таким образом, может быть снижено ухудшение качества изображения в сложной сцене.
Описанная выше точка повтора относится к информации о позиции, указывающей изображение, с которого начинается повторное кодирование, когда повторное кодирование необходимо из-за того, что статистика квантования в определенном изображении превышает заранее определенное пороговое значение.
В основном точкой повтора является первое изображение в кодируемой в настоящий момент группе изображений в очередности кодирования, но она может быть первым изображением в непосредственно предшествующей закодированной группе изображений в очередности кодирования. Точка повтора обновляется в следующих случаях.
(1) Если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению в момент, когда завершено кодирование группы изображений в очередности кодирования, то точка повтора устанавливается как первое изображение (I изображение) в следующей группе изображений в очередности кодирования.
(2) Если остаточный битрейт CPB меньше заранее определенного порогового значения в момент, когда завершено кодирование группы изображений в очередности кодирования, то точка повтора остается неизменной и выполняется кодирование первого изображения в следующей группе изображений в очередности кодирования. Если статистика квантования не превышает заранее определенное пороговое значение при кодировании первого изображения в группе изображений в очередности кодирования, то точка повтора устанавливается как первое изображение в текущей кодируемой группе изображений в очередности кодирования.
Далее описаны причины установки точки повтора в соответствии с описанным выше. Если точка повтора всегда установлена в начале кодируемой в настоящий момент группы изображений в очередности кодирования, то конфигурация обработки намного проще, чем представленная в настоящем изобретении. Здесь и далее, данная технология именуется как «связанный уровень техники». Даже в случае связанного уровня техники, ухудшение качества изображения может быть снижено посредством повторного кодирования только группы изображений в очередности кодирования, включающей в себя изображение, в котором статистика квантования превышает заранее определенное пороговое значение, только если возникает данная ситуация. Во втором аспекте, настоящего изобретения, ухудшение качества изображения декодируемых изображений может быть более эффективно снижено в сравнении со связанным уровнем техники.
Как хорошо известно, формируемый битрейт I изображения больше, чем у изображений других типов. Соответственно, при управлении битрейтом, которое обычно выполнялось, если остаточный битрейт CPB в момент, когда завершено кодирование определенной группы изображений в очередности кодирования, мал, значение параметра квантования, которое должно использоваться для кодирования следующего I изображения, увеличивается, для уменьшения формируемого битрейта. В данном случае, в приведенном выше связанном уровне техники, повторное кодирование возникает из-за увеличения параметра квантования I изображения, но поскольку повторное кодирование начинается с первого изображения в группе изображения в очередности кодирования, которая кодируется в настоящий момент, то необходимо, при кодировании, избежать выполнения условия повторного кодирования только по отношению самого I изображения. В данном случае существует проблема, состоящая в том, что сильно ухудшается качество изображения самого I изображения. Кроме того, поскольку I изображение является опорным для кодирования последующих P и B изображений, то также ухудшается эффективность кодирования P изображения и B изображения.
Соответственно, во втором аспекте настоящего изобретения, если остаточный битрейт CPB мал и выполняется условие повторного кодирования в первом I изображении следующей группы изображений в очередности кодирования, то непосредственно предшествующая группа изображений в очередности кодирования повторно кодируется с ее начала в соответствии с установленной точкой повтора. Вследствие этого, можно избежать сильного ухудшения качества изображения в первом изображении в группе изображений в очередности кодирования, и может быть снижено ухудшение качества изображения.
В третьем аспекте настоящего изобретения, вместо постоянного кодирования кадра входного видео дважды, чтобы не допустить опустошение CPB, подобно известному 2-проходному кодированию, в основном используется 1-проходное кодирования, и только если выполняется условие повторного кодирования, состоящее в том, что статистика квантования превышает заранее определенное пороговое значение, при кодировании определенного изображения, выполняется обратное отслеживание и повторное кодирование множества изображений.
В третьем аспекте настоящего изобретения, если статистика квантования превышает заранее определенное пороговое значение при кодировании изображения в группе изображений в очередности кодирования, то повторное кодирование выполняется после обратного отслеживания до определенного изображения группы изображений в очередности кодирования. Изображение, которое отслеживается назад и с которым выполняется повторное кодирование, определяется заранее доступным объемом памяти. В представленном здесь описании максимальное количество изображений, которое можно отследить назад во время повторного кодирования, определено как «максимальное расстояние до интер-изображения».
Обзор процесса, относящегося к третьему аспекту настоящего изобретения, соответствует следующему. Сначала получают максимальное количество изображений, на которое может быть выполнено обратное отслеживание во время повторного кодирования исходя из информации о доступном объеме памяти, заданной извне, и данное значение сохраняется в качестве максимального расстояния до интер-изображения.
Это делается по следующим причинам. Для повторного кодирования необходимо хранить видеосигнал целевого изображения кодирования во входном буфере и хранить закодированные потоки результата кодирования в выходном буфере до тех пор, пока не будет определено, что повторное кодирование не выполняется, и вывод результата кодирования из выходного буфера закончен. Если объем доступной памяти достаточен, то каждый из входного буфера и выходного буфера имеет емкость памяти, соответствующую количеству изображений в группе изображений в очередности кодирования, так что повторное кодирование при выполнении условия повторного кодирования может выполняться с начала группы изображений в очередности кодирования в единицах групп изображений в очередности кодирования.
Однако, поскольку память не может всегда использоваться по мере необходимости, то заранее из объема доступной памяти вычисляется максимальное расстояние до интер-изображения, которое является максимальным количеством изображений, на которое может быть выполнено обратное отслеживание во время повторного кодирования.
В третьем аспекте настоящего изобретения, кодирование входного видео выполняется в единицах групп изображений в очередности кодирования. Однако каждый раз при кодировании входного изображения осуществляется проверка того, превышает или нет статистика квантования изображения заранее определенное пороговое значение, и если статистика квантования превышает заранее определенное пороговое значение, то параметр кодирования меняется таким образом, что сформированный битрейт становится небольшим, а затем выполняется повторное кодирование кодируемой группы изображений в очередности кодирования. Однако изображение в кодируемой группе изображений в очередности кодирования, которое отслеживается назад и с которого выполняется повторное кодирование, является изображением, которое отвечает следующим трем условиям.
- Условие 1: Изображение включено в кодируемую группу изображений в очередности кодирования.
- Условие 2: Изображение находится в пределах максимального расстояния до интер-изображения от изображения, статистика квантования которого превышает заранее определенное пороговое значение.
- Условие 3: Изображение является изображением, которое наиболее удалено от изображения, статистика квантования которого превышает заранее определенное пороговое значение, из изображений, выполняющих условия 1 и 2.
Изображение, с которого начинается повторное кодирование, именуется точкой повтора. Например, если первое изображение на максимальном расстоянии до интер-изображения находится в непосредственно предшествующей группе изображения в очередности кодирования, то точкой повтора является первое изображение в кодируемой в текущий момент группе изображений в очередности кодирования; в противном случае, точкой повтора является первое изображение на максимальном расстоянии до интер-изображения, т.е. самое раннее закодированное изображение, на максимальном расстоянии до интер-изображения.
Примеры параметров кодирования, которые могут меняться, включают в себя параметр квантования и силу предварительного фильтра, и может меняться один из них или оба. Например, в случае параметра квантования, величина шага параметра квантования увеличивается таким образом, чтобы параметр кодирования обуславливал небольшой формируемый битрейт. Кроме того, когда меняется сила фильтра предварительного фильтра для входного видео, то степень размытости меняется в сторону увеличения, чтобы формируемый битрейт мог быть малым.
Когда кодирование собственно кодируемой в настоящий момент группы изображений в очередности кодирования завершается повторным кодированием, то параметр кодирования восстанавливается до значения параметра кодирования, которое используется во время нормального кодирования, тем самым не допуская влияния ухудшения качества изображения на следующую группу изображений в очередности кодирования. Здесь, параметр кодирования, который используется во время нормального кодирования, относится к параметру кодирования, который определен для состояния, при котором повторное кодирование не выполняется.
В качестве альтернативы, когда завершено повторное кодирование группы изображений в очередности кодирования, то параметр кодирования не обязательно восстанавливается до значения, которое используется во время нормального кодирования, а может проверяться остаточный битрейт CPB, и только если остаточный битрейт больше либо равен заранее определенному пороговому значению, параметр кодирования может восстанавливаться до значения, которое используется во время нормального кодирования, а если остаточный битрейт меньше, то параметр кодирования может не восстанавливаться до значения, которое используется во время нормального кодирования. Это позволяет сократить вероятность постоянного наличия повторного кодирования.
РЕЗУЛЬТАТЫ ИЗОБРЕТЕНИЯ
В соответствии с настоящим изобретением, даже когда процесс кодирования переходит от простой сцены видео к сложной сцене видео и качество изображения ухудшается из-за недостаточного битрейта CPB, то повторное кодирование выполняется с первого изображения группы изображений в очередности кодирования, чтобы увеличить остаточный битрейт CPB, и тем самым может быть снижено ухудшение качества изображения в сложной сцене в сравнении с известным способом a в виде 1-проходного кодирования. Кроме того, поскольку настоящее изобретение снижает ухудшение качества изображения путем частичного выполнения повторного кодирования только при необходимости, то объем вычислений является небольшим в сравнении с известным способом b в виде 2-проходного кодирования, при котором все кадры входного видео кодируются дважды.
В частности, настоящее изобретение позволяет сохранить небольшой величину изменения параметра кодирования во время повторного кодирования путем управления счетчиком повторов, тем самым снижая ухудшение в качестве изображения из-за повторного кодирования.
Кроме того, если остаточный битрейт CPB после повторного кодирования мал, то параметр кодирования сохраняется тем же самым, что и во время повторного кодирования, тем самым не допуская повторного возникновения повторного кодирования.
Кроме того, в соответствии с настоящим изобретением, даже когда процесс кодирования переходит от простой сцены видео к сложной сцене и качество изображения ухудшается из-за недостаточного битрейта CPB, то повторное кодирование выполняется с начала группы изображений в очередности кодирования, установленного в качестве точки повтора, чтобы дополнительно увеличить остаточный битрейт CPB, и тем самым может быть снижено ухудшение качества изображения в сложных сценах в сравнении с известным способом a в виде 1-проходного кодирования. Кроме того, поскольку настоящее изобретение снижает ухудшение в качестве изображения путем частичного выполнения повторного кодирования только при необходимости, то объем вычислений является небольшим в сравнении с известным способом b в виде 2-проходного кодирования, при котором все кадры входного видео кодируются дважды.
В частности, в настоящем изобретении можно не допустить сильного ухудшения качества изображения первого I изображения в группе изображений в очередности кодирования даже если остаточный битрейт CPB малый, когда завершено кодирование группы изображений в очередности кодирования.
Кроме того, в соответствии с настоящим изобретением, даже когда процесс кодирования переходит от простой сцены видео к сложной сцене и качество изображения ухудшается из-за недостаточного остаточного битрейта CPB, то повторное кодирование выполняется с изображения в группе изображений в очередности кодирования, установленного в качестве точки повтора, чтобы увеличить остаточный битрейт CPB, и тем самым может быть снижено ухудшение качества изображения в сложных сценах в сравнении с известным способом a в виде 1-проходного кодирования. Кроме того, поскольку настоящее изобретение снижает ухудшение в качестве изображения путем частичного выполнения повторного кодирования только при необходимости, то объем вычислений является небольшим в сравнении с известным способом b в виде 2-проходного кодирования, при котором все кадры входного видео кодируются дважды. Кроме того, поскольку повторное кодирование выполняется с точки повтора, которая определяется в зависимости от объема памяти, который требуется для повторного кодирования, то память может использоваться эффективно.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является схемой для описания опустошения CPB.
Фиг. 2A является концептуальной схемой группы изображений в очередности кодирования.
Фиг. 2B является концептуальной схемой группы изображений в очередности кодирования.
Фиг. 2C является концептуальной схемой группы изображений в очередности кодирования.
Фиг. 2D является концептуальной схемой группы изображений в очередности кодирования.
Фиг. 3 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 4 является блок-схемой процесса как варианта способа управления кодированием видео в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 5 является концептуальной схемой GOP.
Фиг. 6 является схемой, иллюстрирующей пример конфигурации устройства кодирования видео в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 7 является концептуальной схемой изменения в параметре кодирования, когда выполняется повторное кодирование.
Фиг. 8 является концептуальной диаграммой перехода остаточного битрейта CPB, когда выполняется повторное кодирование.
Фиг. 9 является концептуальной диаграммой перехода статистики квантования, когда выполняется повторное кодирование.
Фиг. 10 является концептуальной диаграммой перехода статистики квантования, когда превышения статистикой квантования заранее определенного пороговое значения не удается избежать даже путем повторного кодирования.
Фиг. 11 является блок-схемой процесса способа управления кодированием видео в соответствии со вторым вариантом осуществления настоящего изобретения.
Фиг. 12 является схемой, иллюстрирующей пример конфигурации устройства кодирования видео в соответствии со вторым вариантом осуществления настоящего изобретения.
Фиг. 13 является концептуальной диаграммой перехода счетчика повторов и параметра кодирования.
Фиг. 14 является блок-схемой процесса способа управления кодированием видео в соответствии с третьим вариантом осуществления настоящего изобретения.
Фиг. 15 является схемой, иллюстрирующей пример конфигурации устройства кодирования видео в соответствии с третьим вариантом осуществления настоящего изобретения.
Фиг. 16 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Фиг. 17 является блок-схемой процесса как варианта способа управления кодированием видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Фиг. 18 является схемой, иллюстрирующей пример конфигурации устройства кодирования видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Фиг. 19 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Фиг. 20 является блок-схемой процесса как варианта способа управления кодированием видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Фиг. 21 является схемой, иллюстрирующей пример конфигурации устройства кодирования видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Фиг. 22 является концептуальной схемой, описывающей объем памяти, который требуется для опорных изображений.
Фиг. 23 является схемой, иллюстрирующей уменьшение памяти входного буфера и выходного буфера посредством ограничения точки повтора максимальным расстоянием до интер-изображения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[Первый вариант осуществления]
Здесь и далее со ссылкой на чертежи будет описан первый вариант осуществления настоящего изобретения. Фиг. 3 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с первым вариантом осуществления настоящего изобретения.
Сначала, во входном видеосигнале в качестве цели кодирования устанавливается изображение, следующее за изображением, для которого кодирование закончено (этап S1). Входное изображение, установленное в качестве цели кодирования, кодируется с использованием H.264 или любой из других заранее определенных схем кодирования (этап S2). Когда входное изображение закодировано, то выполняется определение того, превышает или нет статистика квантования входного изображения, заранее определенное пороговое значение (этап S3), и если статистика квантования превышает заранее определенное пороговое значение, то процесс переходит к этапу S7.
Если статистика квантования не превышает заранее определенное пороговое значение, то выполняется определение того, завершено или нет кодирование последнего изображения (этап S4), и если завершено кодирование последнего изображения, то процесс кодирования заканчивается.
В противном случае выполняется определение того, завершено или нет кодирование группы изображений в очередности кодирования (этап S5). Если кодирование группы изображений в очередности кодирования не завершено, то процесс возвращается к этапу S1, и аналогичный процесс кодирования продолжается для следующего изображения. Когда завершено кодирование группы изображений в очередности кодирования, то параметр кодирования восстанавливается до значения, которое используется во время нормального кодирования, если параметр кодирования был изменен повторным кодированием (повтором) группы изображений в очередности кодирования (этап S6), при этом процесс возвращается к этапу S1, и процесс кодирования выполняется с первого изображения следующей группы изображений в очередности кодирования.
Если на этапе S3 обнаруживается, что статистика квантования превышает заранее определенное пороговое значение, то выполняется определение того, кодировалась ли или нет повторно текущая группа изображений в очередности кодирования (выполнялся ли уже повтор) (этап S7). Если повтор уже выполнялся, то никакого дальнейшего повторного кодирования не выполняется, процесс переходит к этапу S4, и процесс кодирования просто продолжается.
Если повтор еще не выполнялся, то первое изображение в текущей группе изображений в очередности кодирования устанавливается в качестве цели кодирования для повторного кодирования текущей группы изображений в очередности кодирования (этап S8). Затем один или оба из двух параметров кодирования (параметр квантования и сила предварительного фильтра) меняются (для параметра квантования величина шага меняется в сторону увеличения, а для силы фильтра в сторону увеличения меняется степень размытости) (этап S9), процесс возвращается к этапу S2, и кодируемая группа изображений в очередности кодирования повторно кодируется.
Другими словами, группа изображений в очередности кодирования (например, GOP) кодируется дважды, только если статистика квантования закодированного изображения слишком большая в отличие от известного способа b, при котором дважды кодируются все кадры входного видео. Во время второго кодирования повторно кодируется только кодируемая в настоящий момент группа изображений в очередности кодирования, используя при этом параметр кодирования, при котором дополнительно увеличивается остаточный битрейт CPB, и таким образом может быть снижено ухудшение в качестве изображения во время перехода видео от простой сцены к сложной сцене и может быть уменьшен объем вычислений в сравнении с известным способом b в виде 2-проходного кодирования, при котором все изображения входного видео кодируются дважды.
Фиг. 4 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с вариантом исполнения настоящего варианта осуществления. Настоящий вариант осуществления может быть реализован посредством замены процесса на этапе S6, проиллюстрированного на Фиг. 3, на процесс этапов с S61 по S63, проиллюстрированные на Фиг. 4. Все прочие процессы, кроме процесса на этапе S6, аналогичны тем, что представлены на Фиг. 3.
После процесса на этапе S5 на Фиг. 3 выполняется определение того, был ли или нет изменен повтором параметр кодирования (этап S61). Если параметр кодирования не был изменен повтором, то процесс возвращается к этапу S1 на Фиг. 3. Если параметр кодирования был изменен повтором, то выполняется определение того, больше либо равен, или нет остаточный битрейт CPB заранее определенному пороговому значению (этап S62). Если остаточный битрейт CPB меньше заранее определенного порогового значения, то параметр кодирования сохраняют тем же, что использовался для повторного кодирования, и только если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению, параметр кодирования восстанавливается до исходного параметра кодирования по умолчанию (этап S63). Затем процесс возвращается к этапу S1 на Фиг. 3 для перехода к кодированию следующей группы изображений в очередности кодирования.
Как описано выше, в варианте, проиллюстрированном на Фиг. 4, параметр кодирования восстанавливается до значения, которое используется во время нормального кодирования, только если остаточный битрейт CPB превышает заранее определенную величину в момент, когда завершено кодирование группы изображений в очередности кодирования. Это делается по следующим причинам. Даже если остаточный битрейт CPB малый, когда завершено кодирование группы изображений в очередности кодирования, то восстановление параметра кодирования до значения, которое используется во время нормального кодирования, дополнительно увеличит формируемый битрейт, и таким образом статистика квантования закодированного изображения с высокой вероятностью вновь превысит заранее определенное пороговое значение при кодировании следующей группы изображений в очередности кодирования. В процессе на Фиг. 4, если остаточный битрейт CPB малый, то параметр кодирования не меняется, тем самым не допускается возникновение повторного кодирования при кодировании следующей группы изображений в очередности кодирования и дополнительно уменьшается объем вычислений в сравнении с процессом на Фиг. 3.
Как описано выше, настоящий вариант осуществления меняет параметр кодирования во время повторного кодирования. Здесь, предполагается, что во время кодирования к входному видео применяется предварительный фильтр, и параметрами кодирования, которые могут меняться, являются параметр квантования и сила предварительного фильтра. Могут меняться оба из двух параметров кодирования или может меняться только любой один из них.
Применительно к параметру квантования, к значению параметра квантования, которое используется во время нормального кодирования, прибавляется заранее определенное значение коррекции, и повторное кодирование выполняется, используя такой больший параметр квантования.
Применительно к предварительному фильтру, предполагается, что в настоящем варианте осуществления используется фильтр Гаусса. Фильтр Гаусса может быть реализован посредством дискретизации распределения Гаусса, показанного в нижеследующем уравнении применительно к x и y.
<mrow><mi>g</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>{</mo><mrow><mn>1</mn><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><mi>π</mi><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><mo>}</mo></mrow><mo>×</mo><mi>exp</mi><mo>{</mo><mo>−</mo><mo stretchy="false">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>}</mo></mrow>
<mi>σ</mi>
Как видно из приведенного выше уравнения, степень размытости увеличивается при увеличении значения
. Поскольку высокочастотная составляющая уменьшается с увеличением степени размытости, то формируемый во время кодирования битрейт уменьшается. Подробности фильтра Гаусса описаны, например, в следующем непатентном документе 2.
[Непатетный документ 2]: Окутоми, Озава, Шимизу и Хори, «Digital Image Processing», Computer Graphic Arts Society, 2006г., стр. 108-110.
<mi>σ</mi>
<mrow><msub><mi>σ</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mn>1</mn></msub><mo>></mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mn>1</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
При
, равном 0, фильтр Гаусса не применяется, и, например, используются параметр кодирования по умолчанию
, и параметр кодирования для повторного кодирования
. Следует отметить, что в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Кроме того, то, насколько сильной должна быть степень размытости во время повторного кодирования, может произвольно определяться заранее. Например, допустимо использование структуры, при которой параметр
кодирования по умолчанию меняется в зависимости от степени сложности каждого изображения, а
устанавливается как сумма заранее определенной коррекции и
.
Кроме того, в настоящем варианте осуществления предполагается, что в качестве статистики квантования используется среднее значение параметров квантования макроблоков изображения.
Применительно к кодированию, предполагается, что кодирование выполняется в соответствии со стандартом H.264. Кроме того, в настоящем варианте осуществления группой изображений в очередности кодирования является GOP, а концептуальная схема GOP при кодировании проиллюстрирована на Фиг. 5. Предполагается, что одна GOP включает в себя 10 изображений, а B изображение и P изображение выстроены попеременно в очередности отображения, при этом I изображение является первым изображением.
Пример конфигурации устройства настоящего варианта осуществления проиллюстрирован на Фиг. 6. Входной буфер 10 хранит входной видеосигнал и выдает видеосигнал, который является целью кодирования, на модуль 20 кодирования. Кроме того, если входной буфер 10 принимает информацию, указывающую, что должно быть выполнено повторное кодирование (информацию о повторе) из-за того, что статистика квантования изображения превышает заранее определенное пороговое значение, от модуля 40 вычисления статистики квантования, который будет описан ниже, то входной буфер 10 вновь выдает модулю 20 кодирования видеосигнал из первого изображения в кодируемой GOP. Кроме того, если кодирование GOP завершено без приема информации о повторе, то входной буфер 10 сбрасывает хранящийся видеосигнал GOP.
Модуль 20 кодирования кодирует видеосигнал, подаваемый из входного буфера 10, и выдает закодированный поток выходному буферу 30. Кроме того, модуль 20 кодирования выдает параметр квантования (информацию о параметре квантования) каждого макроблока при кодировании входного видеосигнала на модуль 40 вычисления статистики квантования. Кроме того, если модуль 20 кодирования принимает информацию о повторе от модуля 40 вычисления статистики квантования, то видеосигнал из первого изображения в кодируемой GOP вновь выдается из входного буфера 10, а из модуля 50 регулировки параметра выдается параметр кодирования для повторного кодирования, и таким образом модуль 20 кодирования выполняет повторное кодирование, используя входной параметр кодирования для повторного кодирования.
Выходной буфер 30 выдает закодированные потоки GOP, когда сохранены все закодированные потоки GOP, и выходной буфер 30 сбрасывает сохраненные закодированные потоки GOP, которые закодированы, если от модуля 40 вычисления статистики квантования принимается информация о повторе.
Модуль 40 вычисления статистики квантования получает статистику квантования, которая меняется в единицах изображения, используя информацию о параметре квантования, которая выдается модулем 20 кодирования. Затем, если статистика квантования превышает заранее определенное пороговое значение, то модуль 40 вычисления статистики квантования выдает информацию о повторе входному буферу 10, на модуль 20 кодирования, модуль 50 регулировки параметра и выходной буфер 30, чтобы уведомить о том, что статистика квантования превышает заранее определенное пороговое значение.
Если модуль 50 регулировки параметра принимает от модуля 40 вычисления статистики квантования информацию о повторе, то модуль 50 регулировки параметра, как описано выше, выдает модулю 20 кодирования параметр кодирования для повторного кодирования. В результате, во время повторного кодирования, модуль 20 кодирования выполняет кодирование той же GOP, используя параметр кодирования, при котором уменьшается формируемый битрейт.
Ход процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему на Фиг. 3. В нижеследующем описание, соответствие с блок-схемой на Фиг. 3, подобное S1, S2,… излагается в предложениях.
Процесс кодирования определенной GOP будет по отдельности описан для следующих трех случаев.
- [Случай 1]: Статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP.
- [Случай 2]: Статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, но превышения статистикой квантования порогового значения можно избежать посредством повторного кодирования.
- [Случай 3]: Статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования.
[Пример процесса в случае 1]
Сначала будет описан случай 1, при котором статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP. Когда изображение GOP подается во входной буфер 10, то входной буфер 10 сохраняет изображение и выдает изображение модулю 20 кодирования в качестве целевого изображения кодирования (S1). Затем модуль 20 кодирования кодирует изображение, выдает закодированный поток выходному буферу 30 (выходной буфер 30 не выдает закодированный поток, а сохраняет закодированный поток), и выдает информацию о параметре квантования для изображения модулю 40 вычисления статистики квантования (S2).
Здесь для кодирования используется параметр кодирования по умолчанию, а процесс фильтрации в модуле 21 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования по умолчанию, и коэффициент дискретного косинусного преобразования (DCT), формируемый в настоящем изображении, квантуется модулем 22 квантования с использованием параметра квантования в соответствии с параметром кодирования по умолчанию.
Модуль 40 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 20 кодирования. В данном примере, поскольку статистика квантования не превышает заранее определенное пороговое значение, то модуль 40 вычисления статистики квантования не выдает информацию о повторе (S3). Если целевое изображение кодирования является последним изображением входного видеосигнала, то выходной буфер 30 выдает хранящиеся закодированные потоки, и процесс кодирования завершается (S4). С другой стороны, если целевое изображение кодирования является последним изображением GOP, то выходной буфер 30 выдает хранящиеся закодированные потоки, входной буфер 10 сбрасывает хранящиеся изображения, и процесс переходит к процессу кодирования первого изображения в следующей GOP (S5). Здесь, поскольку в GOP не возникает повторного кодирования, параметр кодирования не меняется, и процесс переходит к процессу кодирования первого изображения в следующей GOP (S6).
[Пример процесса в случае 2]
Далее будет описан случай 2, при котором статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, но посредством повторного кодирования может быть предотвращено превышение статистикой квантования порогового значения. Когда изображение GOP подается во входной буфер 10, то входной буфер 10 сохраняет изображение и выдает изображение модулю 20 кодирования в качестве целевого изображения кодирования (S1). Затем модуль 20 кодирования кодирует изображение, выдает закодированный поток выходному буферу 30 (выходной буфер 30 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 40 вычисления статистики квантования (S2). Здесь при кодировании используется параметр кодирования по умолчанию.
Модуль 40 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 20 кодирования. В результате, если модуль 40 вычисления статистики квантования обнаруживает, что статистика квантования для изображения превышает заранее определенное пороговое значение, то модуль 40 вычисления статистики квантования выдает информацию о повторе модулю 20 кодирования, модулю 50 регулировки параметра, входному буферу 10, и выходному буферу 30 (S3).
Если повтор еще не возникал для кодируемой GOP (S7), то входной буфер 10 выдает первое изображение хранящейся кодируемой GOP, модулю 20 кодирования (S8), а модуль 50 регулировки параметра выдает параметр кодирования для повторного кодирования модулю 20 кодирования (S9). Кроме того, выходной буфер 30 сбрасывает закодированные потоки кодируемой GOP. Затем модуль 20 кодирования кодирует входное первое изображение в GOP, используя параметр кодирования для повторного кодирования.
Здесь, при кодировании используется параметр кодирования для повторного кодирования, и процесс предварительной фильтрации в модуле 21 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования для повторного кодирования (степень размытости выше, чем при параметре кодирования по умолчанию). Кроме того, коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 22 квантования, используя параметр квантования в соответствии с параметром кодирования для повторного кодирования (величина шага квантования больше, чем при параметре кодирования по умолчанию).
После этого входным буфером 10 модулю 20 кодирования последовательно подаются изображения GOP, и процесс кодирования выполняется модулем 20 кодирования. Затем, когда завершено кодирование последнего изображения GOP (S5), закодированные потоки GOP выдаются выходным буфером 30, модуль 20 кодирования устанавливает параметр кодирования в параметр кодирования по умолчанию (S6), и процесс переходит к процессу кодирования следующей GOP. Следует отметить, что операция, когда завершено кодирование последнего изображения входного видео, выполняется аналогично той, что описана выше для случая 1.
Концептуальная схема изменения параметра кодирования при выполнении повторного кодирования проиллюстрирована на Фиг. 7. В примере на Фиг. 7, поскольку статистика квантования превышает заранее определенное пороговое значение при кодировании шестого изображения второй GOP2, то устанавливается параметр кодирования для повторного кодирования, чтобы уменьшить формируемый битрейт, и GOP2 повторно кодируется, начиная с ее первого I изображения. После этого, поскольку статистика квантования не превышает заранее определенное пороговое значение посредством повторного кодирования, то параметр кодирования для повторного кодирования восстанавливается до параметра кодирования по умолчанию при кодировании следующей GOP3, и процесс кодирования продолжается.
Концептуальная схема трансформации остаточного битрейта CPB, когда выполняется повторное кодирование, соответствует той, что проиллюстрирована на Фиг. 8. Часть, указанная жирной линией, является остаточным битрейтом CPB после повторного кодирования. При повторном кодировании, поскольку степень размытости усиливается предварительным фильтром, и параметр квантования больше, чем при параметре кодирования по умолчанию, формируемый битрейт уменьшается, и трансформация остаточного битрейта CPB соответствует той, что проиллюстрирована, например, на Фиг. 8. В результате, остаточный битрейт CPB в изображении, для которого возникает повторное кодирование, увеличивается во время повторного кодирования, и можно избежать возникновения сильного ухудшения в качестве изображения для изображения.
Кроме того, концептуальная схема трансформации статистики квантования, когда выполняется повторное кодирование, соответствует той, что проиллюстрирована на Фиг. 9. Как проиллюстрировано на Фиг. 9, статистики квантования изображений, для которых началось повторное кодирование, увеличиваются так, как параметр кодирования во время повторного квантования меняется, но это оставляет запас остаточного битрейта CPB, как проиллюстрировано на Фиг. 8, и таким образом статистика квантования в изображении, для которого возникает повторное кодирование, становится меньше чем та, что существовала до повторного кодирования.
[Пример процесса в случае 3]
В заключение, будет описан случай 3, при котором статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, и избежать превышения статистикой квантования порогового значения невозможно даже посредством повторного кодирования.
Фиг. 10 иллюстрирует концептуальную схему преобразования статистики квантования, когда выполняется повторное кодирование, а избежать превышения статистикой квантования порогового значения невозможно даже посредством повторного кодирования. Случай 3 может возникнуть, например, когда статистика квантования уже большая в начале GOP, с которого начинается повторное кодирование, как проиллюстрировано на Фиг. 10. В данном случае, операции, на которых модуль 40 вычисления статистики квантования обнаруживает то, что статистика квантования превышает заранее определенное пороговое значение и выполняется повторное кодирование GOP, аналогичны тем, что описаны в случае 2. Если статистика квантования превышает заранее определенное пороговое значение во время повторного кодирования GOP (S3 и S7), то дальнейшее повторное кодирование не выполняется, и процесс кодирования просто продолжается (процесс переходит к S4). На Фиг. 10 ссылочное обозначение RS10 указывает на то, что избежать превышения статистикой квантования порогового значения невозможно даже посредством повторного кодирования.
Следует отметить, что, так как параметр квантования во время повторного кодирования больше, чем параметр квантования во время нормального кодирования, то во время повторного кодирования статистика квантования может превысить пороговое значение в изображении, более раннем в очередности кодирования, чем изображение, вызвавшее повторное кодирование. Для уменьшения вероятности такого превышения, если параметр квантования во время повторного кодирования выше, чем пороговое значение статистики квантования, то параметр квантования во время повторного кодирования может быть изменен на значение, равное пороговому значению статистики квантования. Однако если параметр квантования во время нормального кодирования больше либо равен статистике квантования, то значение параметра квантования во время повторного кодирования устанавливается равным значению во время нормального кодирования, так что параметр квантования во время повторного кодирования не меньше того, который установлен во время нормального кодирования.
[Второй вариант осуществления]
Здесь и далее, со ссылкой на чертежи подробно будет описан второй вариант осуществления настоящего изобретения. Фиг. 11 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с настоящим вариантом осуществления.
Сначала во входном видеосигнале в качестве цели кодирования устанавливается изображение, следующее за изображением, для которого кодирование закончено (этап S101). Входное изображение, установленное в качестве цели кодирования, кодируется с использованием H.264 или любой из других заранее определенных схем кодирования (этап S102). Когда входное изображение закодировано, то выполняется определение того, превышает или нет статистика квантования входного изображения, заранее определенное пороговое значение (этап S103), и если статистика квантования превышает заранее определенное пороговое значение, то процесс переходит к этапу S108.
Если статистика квантования не превышает заранее определенное пороговое значение, то выполняется определение того, завершено или нет кодирование последнего изображения (этап S104), и если завершено кодирование последнего изображения, то процесс кодирования заканчивается.
В противном случае выполняется определение того, завершено или нет кодирование группы изображений в очередности кодирования (этап S105). Если кодирование группы изображений в очередности кодирования не завершено, то процесс возвращается к этапу S101, и аналогичный процесс кодирования продолжается для следующего изображения. Если кодирование группы изображений в очередности кодирования завершено, то счетчик повторов уменьшается на 1, если счетчик повторов больше либо равен 1 (этап S106). Следует отметить, что исходное значение счетчика повторов равно 0. После этого параметр кодирования, определенный заранее в зависимости от счетчика повторов, устанавливается на основе счетчика повторов (этап 107), и процесс возвращается к этапу S101, и процесс кодирования выполняется с первого изображения следующей группы изображений в очередности кодирования.
Если на этапе S103 обнаружено, что статистика квантования превышает заранее определенное пороговое значение, то выполняется определение того, достигло или нет значение текущего счетчика повторов заранее определенного максимального значения (этап S108). Если счетчик повторов соответствует максимальному значению, то никакого дальнейшего повторного кодирования не выполняется, процесс переходит к этапу S104, и процесс кодирования просто продолжается.
Если счетчик повторов не достиг максимального значения, то первое изображение в текущей группе изображения в очередности кодирования устанавливается в качестве цели кодирования, чтобы повторно закодировать текущую группу изображений в очередности кодирования (этап S109). Затем счетчик повторов увеличивается на 1 (этап S110). После этого один или оба из двух параметров кодирования (параметр квантования и сила предварительного фильтра) меняются на основе счетчика повторов (для параметра квантования величина шага меняется в большую сторону, а для силы фильтра степень размытости меняется в большую сторону) (этап S111), процесс возвращается к этапу S102, и кодируемая группа изображения в очередности кодирования повторно кодируется.
В настоящем варианте осуществления, в основном, процесс кодирования выполняется один раз, и каждое изображение в группе изображений в очередности кодирования (например, GOP) повторно кодируется, только если выполняются условия повторного кодирования, при этом последовательно уменьшая формируемый битрейт, пока не перестанут выполняться условия повторного кодирования, в отличие от известного способа b, при котором все кадры входного видео кодируются дважды. Во время второго и последующего кодирования само кодирование выполняется, используя параметр кодирования, при котором уменьшается формируемый битрейт и который определяется в зависимости от счетчика повторов. Соответственно, объем вычислений может быть уменьшен, и может быть снижено ухудшение качества изображения из-за повторного кодирования в сравнении с известным способом b, при котором все изображения входного видео кодируются дважды.
Как описано выше, настоящий вариант осуществления меняет параметр кодирования в зависимости от счетчика повторов во время повторного кодирования. Здесь предполагается, что во время кодирования к входному видео применяется предварительный фильтр, и параметрами кодирования, которые могут меняться, являются параметр квантования и сила предварительного фильтра. Могут меняться оба из двух параметров кодирования или может меняться только любой один из них.
Применительно к параметру квантования, к значению параметра квантования, которое определено для нормального кодирования, прибавляется заранее определенное значение коррекции, постепенно увеличивающееся в зависимости от счетчика повторов, и повторное кодирование выполняется, используя такой больший параметр квантования.
Применительно к предварительному фильтру, предполагается, что в настоящем варианте осуществления используется фильтр Гаусса. Фильтр Гаусса может быть реализован посредством дискретизации распределения Гаусса, показанного в нижеследующем уравнении применительно к x и y.
<mrow><mi>g</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>{</mo><mrow><mn>1</mn><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><mi>π</mi><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><mo>}</mo></mrow><mo>×</mo><mi>exp</mi><mo>{</mo><mo>−</mo><mo stretchy="false">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>}</mo></mrow>
<mi>σ</mi>
Как видно из приведенного выше уравнения, степень размытости увеличивается при увеличении значения
. Поскольку высокочастотная составляющая уменьшается с увеличением степени размытости, то формируемый во время кодирования битрейт уменьшается. Подробности фильтра Гаусса описаны, например, в непатентном документе 2, который упомянут выше.
<mi>σ</mi>
<mrow><msub><mi>σ</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mi>c</mi></msub></mrow>
<mrow><msub><mi>σ</mi><mi>c</mi></msub></mrow>
<mrow><mn>0</mn><mo><</mo><msub><mi>σ</mi><mn>1</mn></msub><mo><</mo><msub><mi>σ</mi><mn>2</mn></msub><mo><</mo><mo>…</mo></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mi>c</mi></msub></mrow>
<mrow><msub><mi>σ</mi><mrow><mi>c</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow>
При ,
равном 0, фильтр Гаусса не применяется и, например, используется параметр кодирования по умолчанию
, и используется параметр
кодирования для повторного кодирования, когда значение счетчика повторов равно c. Значение
становится больше при увеличении c. Выполняется условие
. Следует отметить, что в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Кроме того, например, допустимо использование структуры, при которой параметр
кодирования по умолчанию меняется в зависимости от степени сложности каждого изображения, а
является суммой заранее определенной коррекции и
.
Кроме того, в настоящем варианте осуществления предполагается, что в качестве статистики квантования используется среднее значение параметров квантования макроблоков изображения.
В варианте осуществления, который будет описан ниже, предполагается, что кодирование выполняется, используя схему кодирования в соответствии со стандартом H.264. Кроме того, предполагается, что группой изображений в очередности кодирования является GOP. Концептуальная схема GOP при кодировании соответствует той, что проиллюстрирована на Фиг. 5. Предполагается, что одна GOP включает в себя 10 изображений, B изображение и P изображение выстроены попеременно в очередности отображения, при этом I изображение является первым изображением.
Пример конфигурации устройства настоящего варианта осуществления проиллюстрирован на Фиг. 12. Входной буфер 110 хранит входной видеосигнал и выдает видеосигнал, который является целью кодирования, модулю 120 кодирования. Кроме того, если входной буфер 110 принимает информацию, указывающую на то, что должно быть выполнено повторное кодирование (информацию о повторе) из-за того, что статистика квантования изображения превышает заранее определенное пороговое значение, от модуля 140 вычисления статистики квантования, который будет описан ниже, то входной буфер 110 вновь выдает на модуль 120 кодирования видеосигнал с первого изображения в кодируемой GOP. Кроме того, если кодирование GOP завершено без приема информации о повторе, то входной буфер 110 сбрасывает хранящийся видеосигнал GOP.
Модуль 120 кодирования кодирует видеосигнал, подаваемый из входного буфера 110, и выдает закодированный поток в выходной буфер 130. Кроме того, модуль 120 кодирования выдает параметр квантования (информацию о параметре квантования) каждого макроблока при кодировании входного видеосигнала модулю 140 вычисления статистики квантования. Кроме того, если модуль 120 кодирования принимает информацию о повторе от модуля 140 вычисления статистики квантования, то видеосигнал с первого изображения в кодируемой GOP вновь выдается из входного буфера 110, и из модуля 160 регулировки параметра выдается параметр кодирования для повторного кодирования, и таким образом модуль 120 кодирования выполняет повторное кодирование, используя входной параметр кодирования для повторного кодирования.
Выходной буфер 130 выдает закодированные потоки GOP, когда сохранены все закодированные потоки GOP, и выходной буфер 130 сбрасывает сохраненные закодированные потоки GOP, которые закодированы, если от модуля 140 вычисления статистики квантования принимается информация о повторе.
Модуль 140 вычисления статистики квантования получает статистику квантования, которая меняется в единицах изображения, используя информацию о параметре квантования, которая выдается модулем 120 кодирования. Затем, если статистика квантования превышает заранее определенное пороговое значение, то модуль 140 вычисления статистики квантования выдает информацию о повторе входному буферу 110, модулю 120 кодирования, модулю 150 управления счетчиком повторов и выходному буферу 130, чтобы уведомить о том, что статистика квантования превышает заранее определенное пороговое значение.
Если модуль 150 управления счетчиком повторов принимает от модуля 140 вычисления статистики квантования информацию о повторе, то модуль 150 управления счетчиком повторов прибавляет 1 к значению текущего счетчика повторов и уведомляет модуль 160 регулировки параметра об обновленном счетчике повторов. Кроме того, в случае, при котором кодирование кодируемой в настоящий момент GOP завершено без приема информации о повторе от модуля 140 вычисления статистики квантования, если значение счетчика повторов больше либо равно 1, то модуль 150 управления счетчиком повторов вычитает 1 из значения счетчика повторов и уведомляет модуль 160 регулировки параметра об обновленном счетчике повторов. Если значение счетчика повторов равно 0 в момент, когда завершено кодирование GOP, то модуль 150 управления счетчиком повторов уведомляет модуль 160 регулировки параметра о том, что счетчик повторов равен 0.
Когда модуль 160 регулировки параметра принимает счетчик повторов от модуля 150 управления счетчиком повторов, то модуль 160 регулировки параметра выдает модулю 120 кодирования параметр кодирования, который определяется в зависимости от счетчика повторов. В результате модуль 120 кодирования выполняет кодирование той же GOP, используя параметр кодирования, при котором формируемый битрейт уменьшается по мере увеличения количества повторов собственного повторного кодирования.
Как описано выше, в настоящем варианте осуществления представлена концепция счетчика повторов, чье значение увеличивается, если возникает повторное кодирование, и уменьшается в момент, когда завершено кодирование GOP, а счетчиком повторов управляет модуль 150 управления счетчиком повторов. Предполагается, что применительно к данному счетчику повторов, существует заранее определенное значение верхней границы, такое как верхняя граница, равная «3», и повторное кодирование одной и той же GOP может выполняться до тех пор, пока счетчик повторов не достигнет значения верхней границы. Значение коррекции параметра квантования и сила фильтра предварительного фильтра во время кодирования меняются в зависимости от значения счетчика повторов.
Если счетчик повторов равен 0, то используется параметр кодирования по умолчанию. Если счетчик повторов отличен от 0, например, когда значение верхней границы счетчика повторов равно 3, то параметры кодирования для повторного кодирования, соответствующие счетчику повторов равному 1, 2 и 3, могут быть заранее подготовлены в качестве таблицы параметра кодирования, и для повторного кодирования может использоваться параметр кодирования, полученный из таблицы параметра кодирования.
Ход процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему на Фиг. 11. В нижеследующем описании, соответствие с блок-схемой на Фиг. 11, подобное S101, S102,…, упоминается в изложении.
Процесс кодирования определенной GOP по отдельности описан для следующих трех случаев.
- [Случай 1]: Статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP.
- [Случай 2]: Статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, но превышение статистикой квантования порогового значения можно избежать посредством повторного кодирования.
- [Случай 3]: Статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, и превышение статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования.
[Пример процесса в случае 1]
Сначала будет описан случай 1, при котором статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP. Когда изображение GOP подается во входной буфер 110, входной буфер 110 сохраняет изображение и выдает изображение модулю 120 кодирования в качестве целевого изображения кодирования (S101). Затем модуль 120 кодирования кодирует изображение, выдает закодированный поток выходному буферу 130 (выходной буфер 130 не выдает закодированный поток, а сохраняет закодированный поток), и выдает информацию о параметре квантования для изображения модулю 140 вычисления статистики квантования (S102).
Здесь, например, когда предполагается, что счетчик повторов имеет исходное значение, равное 0, то для кодирования используется параметр кодирования по умолчанию, и процесс фильтрации в модуле 121 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования по умолчанию. Кроме того, коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 122 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию. Если счетчик повторов больше либо равен 1, то кодирование выполняется, используя предварительный фильтр и процесс квантования с силой фильтра и параметром квантования, которые определяются в зависимости от счетчика повторов.
Модуль 140 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 120 кодирования. В данном примере, поскольку статистика квантования не превышает заранее определенное пороговое значение, то модуль 140 вычисления статистики квантования не выдает информацию о повторе (S103). Если целевое изображение кодирования является последним изображением входного видеосигнала, то выходной буфер 130 выдает хранящиеся закодированные потоки, и процесс кодирования завершается (S104). С другой стороны, если целевое изображение кодирования является последним изображением GOP, то выходной буфер 130 выдает хранящиеся закодированные потоки, входной буфер 110 сбрасывает хранящиеся изображения, и процесс переходит к процессу кодирования первого изображения в следующей GOP (с S105 по S107).
Если кодирование GOP завершено без того, что статистика квантования превышает заранее определенное пороговое значение при кодировании каждого изображения как в данном случае 1, то модуль 150 управления счетчиком повторов уменьшает значение текущего счетчика повторов на 1 до тех пор, пока счетчик повторов не станет равным 0 (S106). Если повторное кодирование произошло в GOP, которая находится раньше GOP, для который кодирование завершено в настоящий момент, то счетчик повторов может быть не равен 0. Модуль 150 управления счетчиком повторов уведомляет модуль 160 регулировки параметра об измененном счетчике повторов, модуль 160 регулировки параметра устанавливает в модуле 120 кодирования параметр кодирования в соответствии с полученным в уведомлении счетчиком повторов, и начинается кодирование первого изображения следующей GOP.
[Пример процесса в случае 2]
Далее будет описан случай 2, при котором статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, но посредством повторного кодирования может быть предотвращено превышение статистикой квантования порогового значения. Здесь будет описан случай, при котором счетчик повторов в момент, когда начинается кодирование GOP, равен 1, и повторное кодирование выполняется дважды в одной и той же GOP.
Когда изображение GOP подается во входной буфер 110, то входной буфер 110 сохраняет изображение и выдает изображение модулю 120 кодирования в качестве целевого изображения кодирования (S101). Затем модуль 120 кодирования кодирует изображение, выдает закодированный поток выходному буферу 130 (выходной буфер 130 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 140 вычисления статистики квантования (S102). Здесь при кодировании используется параметр кодирования, соответствующий счетчику повторов, равному 1.
Модуль 140 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 120 кодирования. В результате, если модуль 140 вычисления статистики квантования обнаруживает, что статистика квантования для изображения превышает заранее определенное пороговое значение, то модуль 140 вычисления статистики квантования выдает информацию о повторе модулю 120 кодирования, модулю 150 управления счетчиком повторов, входному буферу 110 и выходному буферу 130 (S103).
Поскольку текущий счетчик повторов равен 1 и не достиг значения верхней границы равного 3 (S108), то входной буфер 110 выдает первое изображение хранящейся кодируемой GOP, модулю 120 кодирования (S109). С другой стороны, счетчик повторов увеличивается модулем 150 управления счетчиком повторов на 1, и счетчик повторов, значение которого равно 2, выдается модулю 160 регулировки параметра (S110).
Модуль 160 регулировки параметра считывает параметр кодирования из таблицы параметра кодирования для случая, при котором счетчик повторов равен 2, и устанавливает в модуле 120 кодирования параметр кодирования (S111). Выходной буфер 130 сбрасывает закодированные потоки кодируемой GOP.
В модуле 120 кодирования, пока статистика квантования не превышает заранее определенное пороговое значение, изображения GOP последовательно выдаются входным буфером 110, и выполняется кодирование. При данном кодировании, если статистика квантования вновь превышает заранее определенное пороговое значение в той же самой GOP, то счетчик повторов увеличивается на 1, и счетчик повторов становится равным 3 посредством процесса, аналогичного описанному выше процессу. В результате, параметр кодирования меняется на параметр кодирования, соответствующий счетчику повторов, равному 3, и затем вновь последовательно выполняется кодирование той же GOP, начиная с первого изображения.
При данном кодировании GOP, если статистика квантования более не превышает заранее определенное пороговое значение, то счетчик повторов уменьшается на 1 модулем 150 управления счетчиком повторов, счетчик повторов становится равным 2, и выполняется кодирование следующей GOP. В данном случае операции входного буфера 110 и выходного буфера 130 аналогичны тем, что представлены в описанном выше примере.
Концептуальная диаграмма перехода счетчика повторов и параметра кодирования в примере случая 2 проиллюстрирована на Фиг. 13. В примере на Фиг. 13, когда вторая GOP2 кодируется в состоянии, при котором счетчик повторов равен 1, статистика квантования превышает заранее определенное пороговое значение при кодировании шестого изображения, и таким образом счетчик повторов устанавливается равным 2, и GOP2 вновь повторно кодируется, начиная с ее первого I изображения, с использованием параметра кодирования, соответствующего счетчику повторов равному 2. Даже при этом повторном кодировании статистика квантования превышает заранее определенное пороговое значение в восьмом изображении, и повторное кодирование выполняется, используя параметр кодирования, соответствующий счетчику повторов равному 3, при котором формируемый битрейт малый. При вновь выполняемом повторном кодировании, поскольку статистика квантования не превышает заранее определенное пороговое значение, то счетчик повторов уменьшается на 1, когда кодирование GOP2 завершено, и процесс переходит к кодированию следующей GOP3, используя параметр кодирования, соответствующий счетчику повторов равному 2.
Концептуальная диаграмма перехода остаточного битрейта CPB при выполнении повторного кодирования соответствует той, что проиллюстрирована на Фиг. 8. Часть, указанная жирной линией, является остаточным битрейтом CPB после повторного кодирования. При повторном кодировании, поскольку степень размытости усилена предварительным фильтром, а параметр квантования больше, чем параметр кодирования по умолчанию, то формируемый битрейт уменьшается и переход остаточного битрейта CPB соответствует проиллюстрированному, например, на Фиг. 8. В результате, остаточный битрейт CPB в изображении, в котором произошло повторное кодирование, увеличивается во время повторного кодирования, и посредством этого можно избежать возникновения сильного ухудшения в качестве изображения собственно изображения.
Кроме того, концептуальная диаграмма перехода статистики квантования при выполнении повторного кодирования соответствует той, что проиллюстрирована на Фиг. 9. Как проиллюстрировано на Фиг. 9, статистики квантования изображений, для которых началось повторное кодирование, увеличиваются, так как параметр кодирования во время повторного квантования меняется, но это оставляет запас остаточного битрейта CPB, как проиллюстрировано на Фиг. 8, и таким образом статистика квантования в изображении, для которого возникает повторное кодирование, становится меньше, чем та, что существовала до повторного кодирования.
[Пример процесса в случае 3]
В заключение, будет описан случай 3, при котором статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, и избежать превышения статистикой квантования порогового значения невозможно даже посредством повторного кодирования.
Предполагается, что аналогично случаю 2, счетчик повторов достигает 3 во время кодирования определенной GOP. Кроме того, если модуль 140 вычисления статистики квантования обнаруживает, что статистика квантования превышает заранее определенное пороговое значение при кодировании той же самой GOP (S103), то модуль 150 управления счетчиком повторов обнаруживает, что счетчик повторов достиг значения верхней границы (S108), и таким образом повторное кодирование не выполняется, а выполняется процесс кодирования.
Концептуальная диаграмма перехода статистики квантования, когда было выполнено повторное кодирование, и превышения статистикой квантования порогового значения невозможно было избежать даже посредством повторного кодирования, соответствует той, что проиллюстрирована на Фиг. 10. Случай 3 может произойти, например, когда статистика квантования уже велика в начале GOP, для которой начинается повторное кодирование, как проиллюстрировано на Фиг. 10.
Следует отметить, что так как во время повторного кодирования параметр квантования больше, чем во время нормального кодирования, то во время повторного кодирования статистика квантования может превысить пороговое значение в изображении более раннем в очередности кодирования, чем изображение, вызвавшее повторное кодирование. Для уменьшения вероятности такого превышения значение коррекции параметра квантования, соответствующее каждому значению счетчика повторов, может определяться следующим образом.
<mo>×</mo>
Значение коррекции параметра квантования (которое является заранее определенным значением, которое определяется заранее), соответствующее максимальному значению счетчика повторов (3 в описанном выше варианте осуществления), прибавляется к параметру квантования во время нормального кодирования, и если результирующее значение превышает пороговое значение статистики квантования, то значение коррекции параметра квантования, соответствующего максимальному значению счетчика повторов изменяется таким образом, чтобы быть равным пороговому значению. Затем значения коррекции, соответствующие другим значениям счетчика повторов, определяются на основе такого значения коррекции (например, в описанном выше варианте осуществления, когда значение коррекции, соответствующее максимальному значению счетчика повторов, равно A, то значения коррекции счетчика повторов, равного 0, 1 и 2, могут определяться посредством равного деления A, подобно 0, A/3 и 2
(A/3)). Однако если параметр квантования во время нормального кодирования больше либо равен статистике квантования, то значения коррекции, соответствующие всем значениям счетчика повторов, устанавливаются равными 0, так что параметр квантования во время повторного кодирования не меньше чем тот, что используется во время нормального кодирования. Кроме того, если значение, полученное путем прибавления заранее определенного значения коррекции параметра квантования, соответствующего максимальному значению счетчика повторов, к параметру квантования во время нормального кодирования, не превышает пороговое значение статистики квантования, то значения коррекции, соответствующие другим значениям счетчика повторов, могут определяться на основе такого значения коррекции.
[Третий вариант осуществления]
Здесь и далее со ссылкой на чертежи подробно описан третий вариант осуществления настоящего изобретения. Фиг. 14 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с настоящим вариантом осуществления.
Сначала во входном видеосигнале в качестве цели кодирования устанавливается изображение, следующее за изображением, для которого кодирование закончено (этап S201). Входное изображение, установленное в качестве цели кодирования, кодируется с использованием H.264 или любой из других заранее определенных схем кодирования (этап S202). Когда входное изображение закодировано, то выполняется определение того, превышает или нет статистика квантования входного изображения, заранее определенное пороговое значение (этап S203), и если статистика квантования превышает заранее определенное пороговое значение, то процесс переходит к этапу S208.
Если статистика квантования не превышает заранее определенное пороговое значение, то выполняется определение того, завершено или нет кодирование последнего изображения (этап S204), и если завершено кодирование последнего изображения, то процесс кодирования заканчивается.
В противном случае выполняется определение того, завершено или нет кодирование группы изображений в очередности кодирования (этап S205). Если кодирование группы изображений в очередности кодирования не завершено, то процесс возвращается к этапу S201, и аналогичный процесс кодирования продолжается для следующего изображения.
Если кодирование группы изображений в очередности кодирования завершено, то выполняется определение того, выполняются или нет следующие условия, и счетчик повторов увеличивается на 1, только если условия выполняются (этап S206).
- Условие 1. Счетчик повторов больше либо равен 1.
- Условие 2: Остаточный битрейт CPB больше либо равен заранее определенному пороговому значению.
Если счетчик повторов равен 0 или остаточный битрейт CPB меньше заранее определенного порогового значения, то счетчик повторов не увеличивается, а сохраняется в исходном значении.
После этого параметр кодирования, который заранее определен в зависимости от счетчика повторов, устанавливается на основе счетчика повторов (этап S207), процесс возвращается к этапу S201, и процесс кодирования выполняется с первого изображения следующей группы изображений в очередности кодирования.
Если на этапе S203 обнаруживается, что статистика квантования превышает заранее определенное пороговое значение, то выполняется определение того, достигло или нет значение текущего счетчика повторов заранее определенного максимального значения (этап S208). Если счетчик повторов соответствует максимальному значению, дальнейшего повторного кодирования не выполняется, процесс переходит к этапу S204, и процесс кодирования просто продолжается.
Если счетчик повторов не достиг максимального значения, то первое изображение в текущей группе изображений в очередности кодирования устанавливается в качестве цели кодирования, чтобы повторно закодировать текущую группу изображений в очередности кодирования (этап S209). Затем счетчик повторов увеличивается на 1 (этап S210). После этого один или оба из двух параметров кодирования (параметр квантования и сила предварительного фильтра) меняются на основе счетчика повторов (для параметра квантования величина шага меняется в большую сторону, а для силы фильтра степень размытости меняется в большую сторону) (этап S211), процесс возвращается к этапу S202, и кодируемая группа изображения в очередности кодирования повторно кодируется.
В настоящем варианте осуществления, в основном, процесс кодирования выполняется один раз, и каждое изображение в группе изображений в очередности кодирования (например, GOP) повторно кодируется, только если выполняются условия повторного кодирования, при этом последовательно уменьшая формируемый битрейт до тех пор, пока перестанут выполняться условия повторного кодирования, в отличие от известного способа b, при котором все кадры входного видео кодируются дважды. Во время второго и последующего кодирования само кодирование выполняется, используя параметр кодирования, при котором уменьшается формируемый битрейт, и который определяется в зависимости от счетчика повторов. Соответственно, объем вычислений может быть уменьшен, и может быть снижено ухудшение качества изображения из-за повторного кодирования в сравнении с известным способом b, при котором все изображения входного видео кодируются дважды.
Как описано выше, настоящий вариант осуществления меняет параметр кодирования в зависимости от счетчика повторов во время повторного кодирования. Здесь предполагается, что во время кодирования к входному видео применяется предварительный фильтр, и параметрами кодирования, которые могут меняться, являются параметр квантования и сила предварительного фильтра. Могут меняться оба из двух параметров кодирования или может меняться только любой один из них.
Применительно к параметру квантования, к значению параметра квантования, которое определено для нормального кодирования, прибавляется заранее определенное значение коррекции, постепенно увеличивающееся в зависимости от счетчика повторов, и повторное кодирование выполняется, используя такой больший параметр квантования.
Применительно к предварительному фильтру, предполагается, что в настоящем варианте осуществления используется фильтр Гаусса. Фильтр Гаусса может быть реализован посредством дискретизации распределения Гаусса, показанного в нижеследующем уравнении применительно к x и y.
<mrow><mi>g</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>{</mo><mrow><mn>1</mn><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><mi>π</mi><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><mo>}</mo></mrow><mo>×</mo><mi>exp</mi><mo>{</mo><mo>−</mo><mo stretchy="false">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>}</mo></mrow>
<mi>σ</mi>
Как видно из приведенного выше уравнения, степень размытости увеличивается при увеличении значения
. Поскольку высокочастотная составляющая уменьшается с увеличением степени размытости, то формируемый во время кодирования битрейт уменьшается. Подробности фильтра Гаусса описаны, например, в непатентном документе 2, который упомянут выше.
<mi>σ</mi>
<mrow><msub><mi>σ</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mi>c</mi></msub></mrow>
<mrow><msub><mi>σ</mi><mi>c</mi></msub></mrow>
<mrow><mn>0</mn><mo><</mo><msub><mi>σ</mi><mn>1</mn></msub><mo><</mo><msub><mi>σ</mi><mn>2</mn></msub><mo><</mo><mo>…</mo></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mi>c</mi></msub></mrow>
<mrow><msub><mi>σ</mi><mrow><mi>c</mi><mo>−</mo><mn>1</mn></mrow></msub></mrow>
При
, равном 0, фильтр Гаусса не применяется, и, например, используется параметр кодирования по умолчанию
, и используется параметр
кодирования для повторного кодирования, когда значение счетчика повторов равно c. Значение
становится больше при увеличении c. Выполняется условие
. Следует отметить, что в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Кроме того, например, допустимо использование структуры, при которой параметр
кодирования по умолчанию меняется в зависимости от степени сложности каждого изображения, а
является суммой заранее определенной коррекции и
.
Кроме того, в настоящем варианте осуществления предполагается, что в качестве статистики квантования используется среднее значение параметров квантования макроблоков изображения.
В варианте осуществления, который будет описан ниже, предполагается, что кодирование выполняется, используя схему кодирования в соответствии со стандартом H.264. Кроме того, предполагается, что группой изображений в очередности кодирования является GOP. Концептуальная схема GOP при кодировании соответствует той, что проиллюстрирована на Фиг. 5. Предполагается, что одна GOP включает в себя 10 изображений, а B изображение и P изображение выстроены попеременно в очередности отображения, при этом I изображение является первым изображением.
Пример конфигурации устройства настоящего варианта осуществления проиллюстрирован на Фиг. 15. Входной буфер 210 хранит входной видеосигнал и выдает видеосигнал, который является целью кодирования, на модуль 220 кодирования. Кроме того, если входной буфер 210 принимает информацию, указывающую, что должно быть выполнено повторное кодирование (информацию о повторе) из-за того, что статистика квантования изображения превышает заранее определенное пороговое значение, от модуля 240 вычисления статистики квантования, который описан ниже, то входной буфер 210 вновь выдает на модуль 220 кодирования видеосигнал из первого изображения в кодируемой GOP. Кроме того, если кодирование GOP завершено без приема информации о повторе, то входной буфер 210 сбрасывает хранящийся видеосигнал GOP.
Модуль 220 кодирования кодирует видеосигнал, подаваемый из входного буфера 210, и выдает закодированный поток выходному буферу 230. Кроме того, модуль 220 кодирования выдает параметр квантования (информацию о параметре квантования) каждого макро блока при кодировании входного видеосигнала модулю 240 вычисления статистики квантования. Кроме того, модуль 220 кодирования уведомляет модуль 260 предсказания состояния CPB информацией об остаточном битрейте CPB в момент, когда завершено кодирование GOP.
Кроме того, если модуль 220 кодирования принимает информацию о повторе от модуля 240 вычисления статистики квантования, то видеосигнал с первого изображения в кодируемой GOP вновь выдается из входного буфера 210, а из модуля 270 регулировки параметра выдается параметр кодирования для повторного кодирования, и таким образом модуль 220 кодирования выполняет повторное кодирование, используя входной параметр кодирования для повторного кодирования.
Выходной буфер 230 выдает закодированные потоки GOP, когда сохранены все закодированные потоки GOP, и выходной буфер 230 сбрасывает сохраненные закодированные потоки GOP, которые закодированы, если от модуля 240 вычисления статистики квантования принимается информация о повторе.
Модуль 240 вычисления статистики квантования получает статистику квантования, которая меняется в единицах изображения, используя информацию о параметре квантования, которая выдается модулем 220 кодирования. Затем, если статистика квантования превышает заранее определенное пороговое значение, то модуль 240 вычисления статистики квантования выдает информацию о повторе входному буферу 210, модулю 220 кодирования, модулю 250 управления счетчиком повторов и выходному буферу 230, чтобы уведомить о том, что статистика квантования превышает заранее определенное пороговое значение.
Если модуль 250 управления счетчиком повторов принимает от модуля 240 вычисления статистики квантования информацию о повторе, то модуль 250 управления счетчиком повторов прибавляет 1 к значению текущего счетчика повторов и уведомляет модуль 270 регулировки параметра об обновленном счетчике повторов. Кроме того, в случае, при котором кодирование кодируемой в настоящий момент GOP завершено без приема информации о повторе от модуля 240 вычисления статистики квантования, если значение счетчика повторов больше либо равно 1, то модуль 250 управления счетчиком повторов вычитает 1 из значения счетчика повторов и уведомляет модуль 270 регулировки параметра об обновленном счетчике повторов. Одна если от модуля 260 предсказания состояния CPB поступает уведомление информацией об изменении/не изменении параметра, указывающей «не менять параметр», то модуль 250 управления счетчиком повторов не вычитает 1 из счетчика повторов, даже если счетчик повторов больше либо равен 1. Кроме того, если значение счетчика повторов равно 0, то модуль 250 управления счетчиком повторов также не вычитает 1 из счетчика повторов и уведомляет модуль 270 регулировки параметра о значении текущего счетчика повторов.
Модуль 260 предсказания состояния CPB определяет, больше либо равен или нет остаточный битрейт CPB заранее определенному пороговому значению на основе информации об остаточном битрейте CPB, о которой уведомляет модуль 220 кодирования в момент, когда кодирование GOP завершено, и если остаточный битрейт CPB больше либо равен пороговому значению, то модуль 260 предсказания состояния CPB уведомляет модуль 250 управления счетчиком повторов о том, что параметр кодирования должен быть изменен, в качестве информации об изменении/не изменении параметра. В противоположность, если остаточный битрейт CPB меньше порогового значения, то модуль 260 предсказания состояния CPB уведомляет модуль 250 управления счетчиком повторов о том, что параметр кодирования не должен быть изменен в качестве информации об изменении/не изменении параметра.
Когда модуль 270 регулировки параметра принимает счетчик повторов от модуля 250 управления счетчиком повторов, модуль 270 регулировки параметра выдает модулю 220 кодирования параметр кодирования, который определяется в зависимости счетчика повторов. В результате, модуль 220 кодирования выполняет кодирование той же GOP, используя параметр кодирования, при котором формируемый битрейт уменьшается по мере увеличения количества повторов собственного повторного кодирования.
Как описано выше, в настоящем варианте осуществления, представлена концепция счетчика повторов, чье значение увеличивается, если возникает повторное кодирование, и уменьшается в момент, когда завершено кодирование GOP, а счетчиком повторов управляет модуль 250 управления счетчиком повторов. Предполагается, что применительно к данному счетчику повторов, существует заранее определенное значение верхней границы, такое как верхняя граница, равная «3», и повторное кодирование одной и той же GOP может выполняться до тех пор, пока счетчик повторов не достигнет значения верхней границы. Значение коррекции параметра квантования и сила фильтра предварительного фильтра во время кодирования меняются в зависимости от значения счетчика повторов.
Если счетчик повторов равен 0, то используется параметр кодирования по умолчанию. Если счетчик повторов отличен от 0, например, когда значение верхней границы счетчика повторов равно 3, то параметры кодирования для повторного кодирования, соответствующие счетчику повторов равному 1, 2 и 3, могут быть заранее подготовлены в качестве таблицы параметра кодирования, и для повторного кодирования может использоваться параметр кодирования, полученный из таблицы параметра кодирования.
Ход процесса кодирования в настоящем варианте осуществления описан со ссылкой на блок-схему на Фиг. 14. В нижеследующем описании соответствие с блок-схемой на Фиг. 14, подобное S201, S202,… , упоминается при изложении.
Процесс кодирования определенной GOP по отдельности описан для следующих трех случаев.
- [Случай 1]: Статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP.
- [Случай 2]: Статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, но превышение статистикой квантования порогового значения можно избежать посредством повторного кодирования.
- [Случай 3]: Статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, и превышение статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования.
[Пример процесса в случае 1]
Сначала описан случай 1, при котором статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP. Когда изображение GOP подается во входной буфер 210, входной буфер 210 сохраняет изображение и выдает изображение модулю 220 кодирования в качестве целевого изображения кодирования (S201). Затем модуль 220 кодирования кодирует изображение, выдает закодированный поток выходному буферу 230 (выходной буфер 230 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 240 вычисления статистики квантования (S202).
Здесь, например, когда предполагается, что счетчик повторов имеет исходное значение, равное 0, для кодирования используется параметр кодирования по умолчанию, и процесс фильтрации в модуле 221 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования по умолчанию. Кроме того коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 222 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию. Если счетчик повторов больше либо равен 1, то кодирование выполняется, используя предварительный фильтр и процесс квантования с силой фильтра и параметром квантования, которые определяются в зависимости от счетчика повторов.
Модуль 240 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 220 кодирования. В данном примере, поскольку статистика квантования не превышает заранее определенное пороговое значение, то модуль 240 вычисления статистики квантования не выдает информацию о повторе (S203). Если целевое изображение кодирования является последним изображением входного видеосигнала, то выходной буфер 230 выдает хранящиеся закодированные потоки, и процесс кодирования завершается (S204). С другой стороны, если целевое изображение кодирования является последним изображением GOP, то выходной буфер 230 выдает хранящиеся закодированные потоки, входной буфер 210 сбрасывает хранящиеся изображения, и процесс переходит к процессу кодирования первого изображения в следующей GOP (с S205 по S207).
Если кодирование GOP завершено без того, что статистика квантования превышает заранее определенное пороговое значение как в данном случае 1, то модуль 220 кодирования уведомляет модуль 260 предсказания состояния CPB информацией об остаточном битрейте CPB в момент, когда завершено кодирование GOP. Модуль 260 предсказания состояния CPB определяет, больше либо равен остаточный битрейт CPB заранее определенному пороговому значению, и если остаточный битрейт CPB больше либо равен пороговому значению, то модуль 260 предсказания состояния CPB уведомляет модуль 250 управления счетчиком повторов о том, что параметр кодирования должен быть изменен, в качестве информации об изменении/не изменении параметра. В противоположность, если остаточный битрейт CPB меньше порогового значения, то модуль 260 предсказания состояния CPB уведомляет модуль 250 управления счетчиком повторов о том, что параметр кодирования не должен изменяться, в качестве информации об изменении/не изменении параметра. Модуль 250 управления счетчиком повторов уменьшает значение текущего счетчика повторов на 1 только если информация об изменении/не изменении параметра, указывает на то, что параметр кодирования должен быть изменен (S206).
Другими словами, если повторное кодирование возникает в GOP, которая находится раньше GOP, для которой кодирование завершено в настоящий момент, то счетчик повторов может быть не равен 0. В данном случае модуль 150 управления счетчиком повторов меняет счетчик повторов в соответствии с уведомлением информацией об изменении/не изменении параметра от модуля 260 предсказания состояния CPB и уведомляет модуль 270 регулировки параметра об измененном счетчике повторов. Модуль 270 регулировки параметра устанавливает в модуле 220 кодирования параметр кодирования в соответствии с полученным в уведомлении счетчиком повторов, и начинается кодирование первого изображения следующей GOP.
[Пример процесса в случае 2]
Далее описан случай 2, при котором статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, но посредством повторного кодирования может быть предотвращено превышение статистикой квантования порогового значения. Здесь описан случай, при котором счетчик повторов в момент, когда начинается кодирование GOP, равен 1, и повторное кодирование выполняется дважды в одной и той же GOP.
Когда изображение GOP подается во входной буфер 210, входной буфер 210 сохраняет изображение и выдает изображение модулю 220 кодирования в качестве целевого изображения кодирования (S201). Затем модуль 220 кодирования кодирует изображение, выдает закодированный поток выходному буферу 230 (выходной буфер 230 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 240 вычисления статистики квантования (S202). Здесь при кодировании используется параметр кодирования, соответствующий счетчику повторов равному 1.
Модуль 240 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 220 кодирования. В результате, если модуль 240 вычисления статистики квантования обнаруживает, что статистика квантования для изображения превышает заранее определенное пороговое значение, то модуль 240 вычисления статистики квантования выдает информацию о повторе модулю 220 кодирования, модулю 250 управления счетчиком повторов, входному буферу 210 и выходному буферу 230 (S203).
Поскольку текущий счетчик повторов равен 1 и не достиг значения верхней границы равного 3 (S208), то входной буфер 210 выдает первое изображения хранящейся кодируемой GOP модулю 220 кодирования (S209). С другой стороны, счетчик повторов увеличивается модулем 250 управления счетчиком повторов на 1, и счетчик повторов со значением 2 выдается модулю 270 регулировки параметра (S210).
Модуль 270 регулировки параметра считывает параметр кодирования из таблицы параметра кодирования для случая, при котором счетчик повторов равен 2, и устанавливает в модуле 220 кодирования параметр кодирования (S211). Выходной буфер 230 сбрасывает закодированные потоки кодируемой GOP.
В модуле 220 кодирования, пока статистика квантования не превышает заранее определенное пороговое значение, изображения GOP последовательно выдаются входным буфером 210, и выполняется кодирование. При данном кодировании, если статистика квантования вновь превышает заранее определенное пороговое значение в той же самой GOP, то счетчик повторов увеличивается на 1, и счетчик повторов становится равным 3 посредством процесса, аналогичного описанному выше процессу. В результате параметр кодирования меняется на параметр кодирования, соответствующий счетчику повторов равному 3, и затем вновь последовательно выполняется кодирование той же GOP, начиная с первого изображения.
При данном кодировании GOP, если статистика квантования более не превышает заранее определенное пороговое значение, то модуль 220 кодирования уведомляет модуль 260 предсказания состояния CPB информацией об остаточном битрейте CPB. Если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению, то модуль 260 предсказания состояния CPB устанавливает информацию об изменении/не изменении параметра в значение «менять»; в противном случае, модуль 260 предсказания состояния CPB устанавливает информацию об изменении/не изменении параметра в значение «не менять», и модуль 260 предсказания состояния CPB уведомляет модуль 250 управления счетчиком повторов информацией об изменении/не изменении параметра.
Если получаемая в уведомлении информация об изменении/не изменении параметра соответствует значению «менять», то счетчик повторов уменьшается на 1 модулем 250 управления счетчиком повторов, счетчик повторов становится равным 2 и выполняется кодирование следующей GOP. В данном случае операции входного буфера 210 и выходного буфера 230 аналогичны тем, что представлены в описанном выше примере. Если информация об изменении/не изменении параметра соответствует «не менять», то счетчик повторов остается равным 3, и выполняется кодирование следующей GOP.
Концептуальная диаграмма перехода счетчика повторов и параметра кодирования в примере случая 2 проиллюстрирована на Фиг. 13. В примере на Фиг. 13, когда вторая GOP 2 кодируется в состоянии, при котором счетчик повторов равен 1, статистика квантования превышает заранее определенное пороговое значение при кодировании шестого изображения, и таким образом счетчик повторов устанавливается равным 2, и GOP2 вновь повторно кодируется, начиная с ее первого I изображения, используя параметр кодирования, соответствующий счетчику повторов равному 2. Даже при этом повторном кодировании статистика квантования превышает заранее определенное пороговое значение в восьмом изображении, и повторное кодирование выполняется, используя параметр кодирования, соответствующий счетчику повторов равному 3, при котором формируемый битрейт малый.
При вновь выполняемом повторном кодировании, поскольку статистика квантования не превышает заранее определенное пороговое значение, то выполняется определение того, больше либо равен или нет остаточный битрейт CPB заранее определенному пороговому значению. Здесь, поскольку остаточный битрейт CPB больше либо равен заранее определенному пороговому значению, то счетчик повторов уменьшается на 1, когда кодирование GOP2 завершено, и процесс переходит к кодированию следующей GOP3, используя параметр кодирования, соответствующий счетчику повторов равному 2.
Концептуальная диаграмма перехода остаточного битрейта CPB при выполнении повторного кодирования соответствует той, что проиллюстрирована на Фиг. 8. Часть, указанная жирной линией, является остаточным битрейтом CPB после повторного кодирования. При повторном кодировании, поскольку степень размытости усилена предварительным фильтром, а параметр квантования больше, чем параметр кодирования по умолчанию, то формируемый битрейт уменьшается и переход остаточного битрейта CPB соответствует проиллюстрированному, например, на Фиг. 8. В результате, остаточный битрейт CPB в изображении, в котором произошло повторное кодирование, увеличивается во время повторного кодирования, и посредством этого можно избежать возникновения сильного ухудшения в качестве изображения собственно изображения.
Кроме того, концептуальная диаграмма перехода статистики квантования при выполнении повторного кодирования соответствует той, что проиллюстрирована на Фиг. 9. Как проиллюстрировано на Фиг. 9, статистики квантования изображений, для которых началось повторное кодирование, увеличиваются, так как параметр кодирования во время повторного квантования меняется, но это оставляет запас остаточного битрейта CPB, как проиллюстрировано на Фиг. 8, и таким образом статистика квантования в изображении, для которого возникает повторное кодирование, становится меньше чем та, что существовала до повторного кодирования.
[Пример процесса в случае 3]
В заключение описан случай 3, при котором статистика квантования превышает заранее определенное пороговое значение несколько раз при кодировании GOP, и избежать превышения статистикой квантования порогового значения невозможно даже посредством повторного кодирования.
Предполагается, что аналогично случаю 2, счетчик повторов достигает 3 во время кодирования определенной GOP. Кроме того, если модуль 240 вычисления статистики квантования обнаруживает, что статистика квантования превышает заранее определенное пороговое значение при кодировании той же самой GOP (S203), то модуль 250 управления счетчиком повторов обнаруживает, что счетчик повторов достиг значения верхней границы (S208), и таким образом повторное кодирование не выполняется, а выполняется процесс кодирования.
Концептуальная диаграмма перехода статистики квантования, когда было выполнено повторное кодирование, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования, соответствует той, что проиллюстрирована на Фиг. 10. Случай 3 может произойти, например, когда статистика квантования уже большая в начале GOP, для которой начинается повторное кодирование, как проиллюстрировано на Фиг. 10.
Следует отметить, что так как во время повторного кодирования параметр квантования больше, чем установленный во время нормального кодирования, то во время повторного кодирования статистика квантования может превысить пороговое значение в изображении, более раннем в очередности кодирования, чем изображение, вызвавшее повторное кодирование. Для уменьшения вероятности такого превышения значение коррекции параметра квантования, соответствующее каждому значению счетчика повторов, может определяться следующим образом.
<mo>×</mo>
Значение коррекции параметра квантования (которое является заранее определенным значением), соответствующее максимальному значению счетчика повторов (3 в описанном выше варианте осуществления), прибавляется к параметру квантования во время нормального кодирования, и если результирующее значение превышает пороговое значение статистики квантования, то значение коррекции параметра квантования, соответствующего максимальному значению счетчика повторов, изменяется таким образом, чтобы быть равным пороговому значению. Затем значения коррекции, соответствующие другим значениям счетчика повторов, определяются на основе такого значения коррекции (например, в описанном выше варианте осуществления, когда значение коррекции, соответствующее максимальному значению счетчика повторов, равно A, значения коррекции счетчика повторов, равного 0, 1 и 2, могут определяться посредством равного деления A, подобно 0, A/3 и 2
(A/3)). Однако если параметр квантования во время нормального кодирования больше либо равен статистике квантования, то значения коррекции, соответствующие всем значениям счетчика повторов, устанавливаются равными 0, так что параметр квантования во время повторного кодирования не меньше, чем тот, что используется во время нормального кодирования. Кроме того, если значение, полученное путем прибавления заранее определенного значения коррекции параметра квантования, соответствующего максимальному значению счетчика повторов, к параметру квантования во время нормального кодирования, не превышает пороговое значение статистики квантования, то значения коррекции, соответствующие другим значениям счетчика повторов, могут определяться на основе такого значения коррекции.
[Четвертый вариант осуществления]
Здесь и далее со ссылкой на чертежи подробно описан четвертый вариант осуществления настоящего изобретения. Фиг. 16 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с настоящим вариантом осуществления.
Сначала во входном видеосигнале в качестве цели кодирования устанавливается изображение, следующее за изображением, для которого кодирование закончено (этап S301). Входное изображение, установленное в качестве цели кодирования, кодируется с использованием H.264 или любой из других заранее определенных схем кодирования (этап S302). Когда входное изображение закодировано, выполняется определение того, превышает или нет статистика квантования входного изображения заранее определенное пороговое значение (этап S303), и если статистика квантования превышает заранее определенное пороговое значение, то процесс переходит к этапу S311.
Если статистика квантования не превышает заранее определенное пороговое значение, то выполняется определение того, завершено или нет кодирование последнего изображения (этап S304), и если завершено кодирование последнего изображения, то процесс кодирования заканчивается.
В противном случае выполняется определение того, является или нет закодированное изображение первым I изображение группы изображений в очередности кодирования (этап S305). Если закодированное в настоящий момент изображение является первым I изображением группы изображений в очередности кодирования, то I изображение устанавливается в качестве точки повтора (этап S306). Это является процессом для обновления точки повтора после того, как было подтверждено, что условие повторного кодирования (статистика квантования превышает заранее определенное пороговое значение) не выполняется в следующем I изображении, так как точка повтора все еще установлена в начале непосредственно предшествующей группы изображений в очередности кодирования, если остаточный битрейт CPB меньше заранее определенного порогового значения на этапе S309, что описано ниже. Следует отметить, что если точка повтора установлена на этапе S310, то точка повтора вновь устанавливается в ту же позицию, но в процессе не возникает недостатка. Затем процесс возвращается к этапу S301, и выполняется кодирование следующего изображения.
Если закодированное изображение не является началом группы изображений в очередности кодирования, то выполняется определение того, завершено или нет кодирование группы изображений в очередности кодирования (этап S307). Если кодирование группы изображений в очередности кодирования не завершено, то процесс возвращается к этапу S301, и процесс кодирования продолжается путем аналогичного выполнения для следующего изображения. Если кодирование группы изображений в очередности кодирования завершено, то в случае, при котором параметр кодирования был изменен посредством повторного кодирования группы изображений в очередности кодирования (повтора), параметр кодирования восстанавливается до значения, которое используется во время нормального кодирования (этап S308).
Кроме того, в момент, когда завершено кодирование группы изображений в очередности кодирования, выполняется определение того, больше либо равен или нет остаточный битрейт CPB заранее определенному пороговому значению (этап S309). Если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению, то точка повтора устанавливается в первое I изображение следующей группы изображений в очередности кодирования (этап S310). Затем процесс возвращается к этапу S301, и выполняется кодирование следующей группы изображений в очередности кодирования последовательно с ее начала.
Если остаточный битрейт CPB меньше заранее определенного порогового значения, то точка повтора не обновляется, процесс возвращается к этапу S301, и выполняется кодирование следующей группы изображений в очередности кодирования.
Если на этапе S303 обнаружено что статистика квантования превышает заранее определенное пороговое значение, то выполняется определение того, кодировалась или нет повторно текущая группа изображений в очередности кодирования (выполнялся ли уже повтор) (этап S311). Если повтор уже выполнялся, то дальнейшее повторное кодирование не выполняется, процесс переходит к этапу S304, и процесс кодирования просто продолжается.
Если повтор еще не выполнялся, то в качестве цели кодирования устанавливается изображение в точке повтора, чтобы повторно закодировать текущую группу изображений в очередности кодирования (этап S312). Затем один или оба из двух параметров кодирования (параметр квантования и сила предварительного фильтра) меняются (для параметра квантования величина шага меняется в большую сторону, а для силы фильтра степень размытости меняется в большую сторону) (этап S313), процесс возвращается к этапу S302, и кодируемая группа изображения в очередности кодирования повторно кодируется.
Другими словами, группа изображений в очередности кодирования (например, GOP) кодируется дважды, только если статистика квантования превышает заранее определенное пороговое значение, в отличие от известного способа b, при котором дважды кодируются все кадры входного видео. Во время второго кодирования кодирование выполняется при помощи параметра кодирования, чтобы уменьшить формируемый битрейт. Только если выполняются условия повторного кодирования, повторно кодируется только группа изображений в очередности кодирования, выполняющая условия (следует отметить, что повторное кодирование может выполняться исключительно с непосредственно предшествующей группы изображений в очередности кодирования), тем самым снижая ухудшение в качестве изображения, не допуская при этом опустошения CPB. Соответственно, может быть уменьшен объем вычислений в сравнении с известным способом b, при котором все изображения входного видео кодируются дважды.
Фиг. 17 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с вариантом исполнения настоящего варианта осуществления. Настоящий вариант осуществления может быть реализован посредством замены процесса на этапе S308, проиллюстрированного на Фиг. 16, на процесс этапов с S381 по S383, проиллюстрированный на Фиг. 17. Все прочие процессы, кроме процесса на этапе S308, аналогичны тем, что представлены на Фиг. 16.
Вслед за процессом на этапе S307 на Фиг. 16 выполняется определение того, был ли изменен повтором параметр кодирования (этап S381). Если параметр кодирования не был изменен повтором, процесс переходит к этапу S309. Если параметр кодирования был изменен повтором, то выполняется определение того, больше либо равен или нет остаточный битрейт CPB первому заранее определенному пороговому значению (этап S382). Если остаточный битрейт CPB меньше заранее определенного порогового значения, то параметр кодирования сохраняется тем же, что и параметр кодирования, используемый для повторного кодирования, и только если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению, параметр кодирования восстанавливается до исходного параметра кодирования по умолчанию (этап S383). Затем процесс переходит к этапу S309, на котором выполняется определение того, больше либо равен или нет остаточный битрейт CPB второму заранее определенному пороговому значению, и данный процесс и процесс этапа S310 аналогичны процессам этапов S309 и S310, проиллюстрированных на Фиг. 16. Следует отметить, что первое пороговое значение и второе пороговое значение могут быть одинаковыми значениями или разными значениями.
Как описано выше, в варианте, проиллюстрированном на Фиг. 17, параметр кодирования восстанавливается до значения, которое используется во время нормального кодирования, только если остаточный битрейт CPB превышает заранее определенную величину в момент, когда завершено кодирование группы изображений в очередности кодирования. Это делается по следующим причинам. Даже если остаточный битрейт CPB мал в момент, когда завершено кодирование группы изображений в очередности кодирования, то восстановление параметра кодирования до значения, которое используется во время нормального кодирования, дополнительно увеличивает формируемый битрейт, так что с высокой вероятностью условия повторного кодирования будут выполнены при кодировании изображений в следующей группе изображений в очередности кодирования. В процессе на Фиг. 17, если остаточный битрейт CPB мал, то параметр кодирования не меняется, так что не допускается возникновение повторного кодирования при кодировании следующей группы изображений в очередности кодирования и дополнительно уменьшается объем вычислений в сравнении с процессом на Фиг. 16.
Как описано выше, настоящий вариант осуществления меняет параметр кодирования во время повторного кодирования. Здесь предполагается, что во время кодирования к входному видео применяется предварительный фильтр, и параметрами кодирования, которые могут меняться, являются параметр квантования и сила предварительного фильтра. Могут меняться оба из двух параметров кодирования или может меняться только любой один из них.
Применительно к параметру квантования, к значению параметра квантования, которое используется во время нормального кодирования, прибавляется заранее определенное значение коррекции, и повторное кодирование выполняется, используя такой больший параметр квантования.
Применительно к предварительному фильтру, предполагается, что в настоящем варианте осуществления используется фильтр Гаусса. Фильтр Гаусса может быть реализован посредством дискретизации распределения Гаусса, показанного в нижеследующем уравнении применительно к x и y.
<mrow><mi>g</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>{</mo><mrow><mn>1</mn><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><mi>π</mi><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><mo>}</mo></mrow><mo>×</mo><mi>exp</mi><mo>{</mo><mo>−</mo><mo stretchy="false">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>}</mo></mrow>
<mi>σ</mi>
Как видно из приведенного выше уравнения, степень размытости увеличивается при увеличении значения
. Поскольку высокочастотная составляющая уменьшается с увеличением степени размытости, то формируемый во время кодирования битрейт уменьшается. Подробности фильтра Гаусса описаны, например, в непатентном документе 2, который описан выше.
<mi>σ</mi>
<mrow><msub><mi>σ</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mn>1</mn></msub><mo>></mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mn>1</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
При
, равном 0, фильтр Гаусса не применяется, и, например, используются параметр кодирования по умолчанию
и параметр кодирования для повторного кодирования
. Следует отметить, что в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Кроме того, то, насколько сильной должна быть степень размытости во время повторного кодирования, может произвольно определяться заранее. Например, допустимо использование структуры, при которой параметр
кодирования по умолчанию меняется в зависимости от степени сложности каждого изображения, а
устанавливается как сумма заранее определенной коррекции и
.
Кроме того, в настоящем варианте осуществления предполагается, что в качестве статистики квантования используется среднее значение параметров квантования макроблоков изображения.
Применительно к кодированию, предполагается, что кодирование выполняется в соответствии со стандартом H.264. Кроме того, в настоящем варианте осуществления группой изображений в очередности кодирования является GOP. Концептуальная схема GOP при кодировании соответствует той, что проиллюстрирована на Фиг. 5. Предполагается, что одна GOP включает в себя 10 изображений, а B изображение и P изображение выстроены попеременно в очередности отображения, при этом I изображение является первым изображением.
Пример конфигурации устройства настоящего варианта осуществления проиллюстрирован на Фиг. 18. Входной буфер 310 хранит входной видеосигнал и выдает видеосигнал, который является целью кодирования, модулю 320 кодирования. Кроме того, если входной буфер 310 принимает информацию, указывающую, что должно быть выполнено повторное кодирование (информацию о повторе), так как статистика квантования изображения превышает заранее определенное пороговое значение, от модуля 340 вычисления статистики квантования, который описан ниже, то входной буфер 310 вновь выдает для кодирования модулю 320 кодирования видеосигнал с первого изображения в GOP, установленного в качестве точки повторного кодирования. Кроме того, если от модуля 360 управления точкой повтора выдается информация о точке повтора, то входной буфер 310 сбрасывает хранящийся видеосигнал GOP, которая находится ранее точки повтора.
Модуль 320 кодирования кодирует видеосигнал, подаваемый из входного буфера 310, и выдает закодированный поток выходному буферу 330. Кроме того, модуль 320 кодирования выдает параметр квантования (информацию о параметре квантования), сформированный, когда входной видеосигнал закодирован, модулю 340 вычисления статистики квантования. Кроме того, если модуль 320 кодирования принимает информацию о повторе от модуля 340 вычисления статистики квантования, то видеосигнал с первого изображения в GOP, которое указывается точкой повтора, вновь выдается из входного буфера 310, а из модуля 370 регулировки параметра выдается параметр кодирования для повторного кодирования, и таким образом модуль 320 кодирования выполняет повторное кодирование, используя входной параметр кодирования для повторного кодирования. Кроме того, модуль 320 кодирования выдает информацию об остаточном битрейте CPB в момент, когда завершено кодирование GOP, модулю 350 предсказания состояния CPB.
Выходной буфер 330 выдает закодированные потоки, которые определены для вывода, т.е. закодированные потоки в качестве результата кодирования, который определен как не требующий повторного кодирования на основе информации о точке повтора от модуля 360 управления точкой повтора. В противоположность, если выходной буфер 330 принимает информацию о повторе от модуля 340 вычисления статистики квантования, то выходной буфер 330 сбрасывает сохраненные закодированные потоки кодируемой GOP.
Модуль 340 вычисления статистики квантования получает статистику квантования, которая меняется в единицах изображения, используя информацию о параметре квантования, которая выдается модулем 320 кодирования. Затем, если статистика квантования превышает заранее определенное пороговое значение, то модуль 340 вычисления статистики квантования выдает информацию о повторе входному буферу 310, модулю 320 кодирования, модулю 370 регулировки параметра и выходному буферу 330, чтобы уведомить о том, что статистика квантования превышает заранее определенное пороговое значение.
Модуль 350 предсказания состояния CPB определяет, больше либо равен или нет остаточный битрейт CPB заранее определенному пороговому значению, и если остаточный битрейт CPB больше либо равен пороговому значению, то модуль 350 предсказания состояния CPB уведомляет модуль 360 управления точкой повтора информацией, указывающей, что точкой повтора следующей GOP является ее первое I изображение, в качестве информации об изменении/не изменении точки повтора. В противоположность, если остаточный битрейт CPB меньше порогового значения, то модуль 350 предсказания состояния CPB уведомляет модуль 360 управления точкой повтора информацией, указывающей, что точкой повтора первого изображения следующей GOP является первое изображение (I изображение) GOP, непосредственно перед следующей GOP, в качестве информации об изменении/не изменении точки повтора.
Если информация об изменении/не изменении точки повтора указывает, что точкой повтора первого изображения GOP, которая должна сейчас кодироваться, является первое изображении непосредственно предшествующей GOP, то модуль 360 управления точкой повтора уведомляет входной буфер 310 о точке повтора, и если повторного кодирования не возникает при кодировании первого изображения, то модуль 360 управления точкой повтора уведомляет входной буфер 310 о том, что точка повтора установлена как первое изображение закодированной в настоящий момент GOP от момента, когда закодировано следующее изображение. Кроме того, если информация об изменении/не изменении точки повтора указывает на то, что точкой повтора является первое изображение GOP, которая должна кодироваться сейчас, то модуль 360 управления точкой повтора уведомляет входной буфер 310 и выходной буфер 330 о точке повтора. Здесь информация уведомления относится к информации о точке повтора. Как описано выше, во время повторного кодирования входной буфер 310 выдает видеосигнал модулю 320 кодирования, начиная с изображения на основе информации о точке повтора, а выходной буфер 330 выдает только закодированные потоки, которые определены как выводимые на основе информации о точке повтора.
Если модуль 370 регулировки параметра принимает от модуля 340 вычисления статистики квантования информацию о повторе, то модуль 370 регулировки параметра, как описано выше, выдает модулю 320 кодирования параметр кодирования для повторного кодирования. В результате, во время повторного кодирования, модуль 320 кодирования выполняет кодирование той же GOP, используя параметр кодирования, при котором уменьшается формируемый битрейт.
Ход процесса кодирования в настоящем варианте осуществления описан со ссылкой на блок-схему на Фиг. 16. В нижеследующем описании, соответствие с блок-схемой на Фиг. 16, подобное S301, S302,…, упоминается при изложении.
Процесс кодирования определенных GOP, из которых первой GOP является GOP1, а следующей GOP является GOP2, будет описан по отдельности для следующих четырех случаев.
- [Случай 1]: Кодирование GOP1 было завершено без выполнения условия повторного кодирования, состоящего в том, что статистика квантования превышает заранее определенное пороговое значение при кодировании GOP1, и условие повторного кодирования не выполняется даже при кодировании первого изображения следующей GOP2.
- [Случай 2]: Кодирование GOP1 было завершено, а условие повторного кодирования было выполнено при кодировании первого изображения следующей GOP2, так что было необходимо повторное кодирование.
- [Случай 3]: Условие повторного кодирования было выполнено при кодировании промежуточного изображения GOP2, так что было необходимо повторное кодирование.
- [Случай 4]: Условие повторного кодирования было выполнено при кодировании промежуточного изображения GOP2, а избежать превышения статистикой квантования порогового значения невозможно даже посредством повторного кодирования.
[Пример процесса в случае 1]
Сначала описан случай 1, при котором статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP1 (в случае, при котором условие повторного кодирования не было выполнено). Когда изображение GOP1 подается во входной буфер 310, то входной буфер 310 сохраняет изображение и выдает изображение модулю 320 кодирования в качестве целевого изображения кодирования (S301). Затем модуль 320 кодирования кодирует изображение, выдает закодированный поток выходному буферу 330 (выходной буфер 330 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 340 вычисления статистики квантования (S302).
Здесь для кодирования используется параметр кодирования по умолчанию, и процесс фильтрации в модуле 321 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования по умолчанию. Кроме того, коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 322 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию.
Модуль 340 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 320 кодирования. В данном примере, поскольку статистика квантования не превышает заранее определенное пороговое значение, то модуль 340 вычисления статистики квантования не выдает информацию о повторе (S303). Если целевое изображение кодирования является последним изображением входного видеосигнала, то выходной буфер 330 выдает хранящиеся закодированные потоки, и процесс кодирования завершается (S304).
Если целевое изображение кодирования является первым изображением GOP1 (S305), то модуль 360 управления точкой повтора устанавливает первое изображение (I изображение) в GOP1 в качестве точки повтора (S306), а затем модуль 320 кодирования выполняет кодирование следующего изображения.
Иначе, если целевым изображением кодирования является последнее изображение GOP (S307), в случае, при котором для повторного кодирования использовался параметр кодирования для повторного кодирования, то модуль 370 регулировки параметра меняет параметр кодирования на параметр кодирования по умолчанию (S308).
С другой стороны, модуль 320 кодирования выдает информацию об остаточном битрейте CPB модулю 350 предсказания состояния CPB, и модуль 350 предсказания состояния CPB определяет больше либо равен или нет остаточный битрейт CPB заранее определенному пороговому значению (S309). Модуль 350 предсказания состояния CPB уведомляет модуль 360 управления точкой повтора о результате определения в виде описанной выше информации об изменении/не изменении точки повтора. Если информация об изменении/не изменении точки повтора, указывает на то, что точка повтора не должна меняться (остаточный битрейт CPB меньше порогового значения), то модуль 360 управления точкой повтора уведомляет входной буфер 310 о точке повтора, которая является первым изображением в GOP1, в качестве информации о точке повтора.
Затем процесс переходит к процессу кодирования первого I изображения в GOP2 (S302), и если статистика квантования не превышает заранее определенное пороговое значение при кодировании I изображения (S303), то модуль 360 управления точкой повтора уведомляет входной буфер 310 и выходной буфер 330 о том, что точкой повтора является первое изображение в GOP2 (S306). Другими словами, если в последующем изображении в GOP2 возникает повторное кодирование, то повторное кодирование выполняется с первого изображения в GOP2.
Если в момент, когда описанное выше кодирование GOP1 завершено, остаточный битрейт CPB достаточен, то информация об изменении/не изменении точки повтора, указывающая на то, что точка повтора должна быть изменена, выдается модулем 350 предсказания состояния CPB модулю 360 управления точкой повтора, и модуль 360 управления точкой повтора уведомляет входной буфер 310 о том, что точкой повтора является первое изображение в GOP2, в качестве информации о точке повтора (S310). В данном случае, даже если статистика квантования превысит заранее определенное пороговое значение в любом изображении GOP2 позже, повторное кодирование выполняется с первого изображения GOP2.
[Пример процесса в случае 2]
Далее описан случай 2, при котором при кодировании первого изображения в GOP2 статистика квантования превысила заранее определенное пороговое значение, но затем посредством повторного кодирования можно избежать превышения статистикой квантования порогового значения. Если информация об изменении/не изменении точки повтора в момент, когда завершено кодирование GOP1, указывает, что точка повтора не должна меняться, из-за того что остаточный битрейт CPB малый, как в случае 1, то модуль 360 управления точкой повтора уведомляет входной буфер 310 о том, что точкой повтора является первое I изображение GOP1.
Процесс переходит к процессу кодирования первого I изображения в GOP2, и если модуль 340 вычисления статистики квантования обнаруживает, что статистика квантования в изображении превышает заранее определенное пороговое значение (S303), то входной буфер 310 последовательно подает изображения с первого изображения GOP1 в модуль 320 кодирования на основе информации о повторе от модуля 340 вычисления статистики квантования, и модуль 320 кодирования выполняет повторное кодирование. В данном случае в качестве параметра кодирования используется параметр кодирования для повторного кодирования, установленный модулем 370 регулировки параметра (S313). При данном повторном кодировании процесс предварительной фильтрации посредством модуля 321 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования для повторного кодирования (степень размытости больше, чем при параметре кодирования по умолчанию). Кроме того, коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 322 квантования с параметром квантования в соответствии с параметром кодирования для повторного кодирования (величина шага квантования больше, чем при параметре кодирования по умолчанию).
Если посредством повторного кодирования GOP1 завершено кодирование GOP1 вплоть до последнего изображения, то точка повтора устанавливается как первое изображение в GOP1 или первое изображение в GOP2, в зависимости от остаточного битрейта CPB на этот раз, а затем выполняется процесс кодирования первого изображения в GOP2.
[Пример процесса в случае 3]
Предыдущий Случай 2 описывает пример, при котором повторное кодирование необходимо, поскольку статистика квантования превышает заранее определенное пороговое значение при кодировании первого изображения GOP2. В противоположность, если статистика квантования превышает заранее определенное пороговое значение в изображении, отличном от первого изображения в GOP2, то повторное кодирование аналогичным образом выполняется с первого изображения в GOP2, используя параметр кодирования для повторного кодирования.
Концептуальная схема изменения в параметре кодирования, когда повторное кодирование выполняется на промежуточном изображении в GOP2, соответствует той, что проиллюстрирована на Фиг. 7. В примере на Фиг. 7, поскольку статистика квантования превышает заранее определенное пороговое значение при кодировании шестого изображения в GOP2, то устанавливается параметр кодирования для повторного кодирования, чтобы уменьшить формируемый битрейт, и GOP2 повторно кодируется с ее первого I изображений. Поскольку статистика квантования не превышает заранее определенное пороговое значение посредством повторного кодирования, то параметр кодирования для повторного кодирования восстанавливается до параметра кодирования по умолчанию при кодировании следующей GOP, и процесс кодирования продолжается.
Концептуальная диаграмма перехода остаточного битрейта CPB, когда выполняется повторное кодирование, соответствует той, что проиллюстрирована на Фиг. 8. Часть, указанная жирной линией, является остаточным битрейтом CPB после повторного кодирования. При повторном кодировании, поскольку степень размытости усиливается предварительным фильтром, и параметр квантования больше, чем при параметре кодирования по умолчанию, то формируемый битрейт уменьшается, и переход остаточного битрейта CPB соответствует проиллюстрированному, например, на Фиг. 8. В результате, остаточный битрейт CPB в изображении, для которого возникает повторное кодирование, увеличивается во время повторного кодирования, и можно избежать возникновения сильного ухудшения в качестве изображения для изображения.
Кроме того, концептуальная диаграмма перехода статистики квантования, когда выполняется повторное кодирование, соответствует той, что проиллюстрирована на Фиг. 9. Как проиллюстрировано на Фиг. 9, статистики квантования изображений, для которых началось повторное кодирование, увеличиваются, так как параметр кодирования во время повторного квантования меняется, но это оставляет запас остаточного битрейта CPB, как проиллюстрировано на Фиг. 8, и таким образом статистика квантования в изображении, для которого возникает повторное кодирование, становится меньше, чем та, что существовала до повторного кодирования.
[Пример процесса в случае 4]
В заключение описан случай 4, при котором статистика квантования превышает заранее определенное пороговое значение при кодировании промежуточного изображения в GOP2, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования.
Концептуальная диаграмма перехода статистики квантования, когда было выполнено повторное кодирование, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования, соответствует той, что проиллюстрирована на Фиг. 10. Случай 4 может произойти, например, когда статистика квантования уже большая в начале GOP, для которой начинается повторное кодирование, как проиллюстрировано на Фиг. 10. В данном случае операция, при которой превышающая заранее определенное пороговое значение статистика квантования обнаруживается модулем 340 вычисления статистики квантования, и выполняется повторное кодирование GOP2, аналогична той, что представлена в случае 3. Если статистика квантования превышает заранее определенное пороговое значение во время повторного кодирования GOP2 (S303 и S311), то дальнейшее повторное кодирование не выполняется, и процесс кодирования просто продолжается (переход к S304).
Следует отметить, что так как во время повторного кодирования параметр квантования больше установленного во время нормального кодирования, то во время повторного кодирования статистика квантования может превысить пороговое значение в изображении, более раннем в очередности кодирования, чем изображение, вызвавшее повторное кодирование. Для уменьшения вероятности такого превышения, если параметр квантования во время повторного кодирования выше, чем пороговое значение статистики квантования, то параметр квантования во время повторного кодирования может быть изменен на значение, равное пороговому значению статистики квантования. Однако если параметр квантования во время нормального кодирования больше либо равен статистике квантования, то значение параметра квантования во время повторного кодирования устанавливается равным значению во время нормального кодирования, так что параметр квантования во время повторного кодирования не меньше того, который установлен во время нормального кодирования.
[Пятый вариант осуществления]
Здесь и далее со ссылкой на чертежи описан пятый вариант осуществления настоящего изобретения. Фиг. 19 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с настоящим вариантом осуществления.
Для M-ого изображения и N-ого изображения (N>M) в очередности кодирования, N-M именуется как расстояние до интер-изображения. Сначала на основании информации о доступном объеме памяти, которая выдается извне, получают максимальное расстояние до интер-изображения, которое является расстоянием до интер-изображения, на которое во время повторного кодирования максимально может осуществляться обратное отслеживание в рамках лимита памяти, и оно сохраняется (S400).
Далее, в качестве цели кодирования устанавливается изображение, следующее во входном видеосигнале за изображением, для которого кодирование закончено (первое изображение входного видеосигнала, когда кодирование начинается) (этап S401). Входное изображение, установленное в качестве цели кодирования, кодируется с использованием H.264 или любой из других заранее определенных схем кодирования (этап S402). Когда входное изображение закодировано, выполняется определение того, превышает или нет статистика квантования заранее определенное пороговое значение (этап S403), и если статистика квантования превышает заранее определенное пороговое значение, то процесс переходит к этапу S407.
Если статистика квантования не превышает заранее определенное пороговое значение, то выполняется определение того, завершено или нет кодирование последнего изображения (этап S404). Если кодирование последнего изображения завершено, то процесс кодирования заканчивается.
В противном случае выполняется определение того, завершено или нет кодирование группы изображений в очередности кодирования (этап S405). Если кодирование группы изображений в очередности кодирования не завершено, то процесс возвращается к этапу S401, и аналогичный процесс кодирования продолжается применительно к следующему изображению. Если кодирование группы изображений в очередности кодирования завершено, и если параметр кодирования был изменен повторным кодированием группы изображений в очередности кодирования (повтором), то параметр кодирования восстанавливается до значения, которое используется во время нормального кодирования (этап S406), процесс возвращается к этапу S401, и процесс кодирования выполняется с первого изображения следующей группы изображений в очередности кодирования.
Если на этапе S403 обнаружено, что статистика квантования превышает заранее определенное пороговое значение, то выполняется определение того, кодировалась повторно или нет текущая группа изображений в очередности кодирования (выполнялся ли уже повтор) (этап S407). Если повтор уже выполнялся, то дальнейшее повторное кодирование не выполняется, процесс переходит к этапу S404, и процесс кодирования просто продолжается.
Если повтор еще не выполнялся, то устанавливается точка повтора, чтобы повторно закодировать изображения в текущей группе изображений в очередности кодирования. Другими словами, в качестве цели кодирования устанавливается наиболее удаленное изображение, включенное в кодируемую группу изображений в очередности кодирования, в пределах максимального расстояния до интер-изображения, вычисленного на этапе S400 (этап S408). Затем один или оба из двух параметров кодирования (параметр квантования и сила предварительного фильтра) меняются (для параметра квантования величина шага меняется в сторону увеличения, а для силы фильтра - в сторону увеличения меняется степень размытости) (этап S409), процесс возвращается к этапу S402, и повторное кодирование выполняется, начиная с изображения в группе изображений в очередности кодирования, установленного в качестве точки повтора.
В соответствии с описанным выше процессом повторного кодирования, множество изображений в группе изображений в очередности кодирования (например, GOP) кодируются дважды, только если статистика квантования закодированного изображения слишком большая, в отличие от известного способа b, при котором все кадры входного видео кодируются дважды. Во время второго кодирования, повторно кодируется только множество изображений из кодируемой в настоящий момент группы изображений в очередности кодирования, используя при этом параметр кодирования, при котором дополнительно увеличивается остаточный битрейт CPB. В результате, может быть снижено ухудшение в качестве изображения во время перехода видео от простой сцены к сложной сцене, и может быть уменьшен объем вычислений, в сравнении с известным способом b, при котором все изображения входного видео кодируются дважды. Кроме того, память, которая требуется для организации входного буфера и выходного буфера, может иметь размер, соответствующий лишь заранее определенному количеству кадров, так что можно добиться уменьшения памяти.
Фиг. 20 является блок-схемой процесса, иллюстрирующей способ управления кодированием видео в соответствии с вариантом исполнения настоящего варианта осуществления. Настоящий вариант осуществления может быть реализован посредством замены процесса на этапе S406, проиллюстрированного на Фиг. 19, на процесс этапов с S461 по S463, проиллюстрированный на Фиг. 20. Все прочие процессы, кроме процесса на этапе S406, аналогичны тем, что представлены на Фиг. 19.
Вслед за процессом на этапе S405 на Фиг. 19, выполняется определение того, был ли изменен повтором параметр кодирования (этап S461). Если параметр кодирования не был изменен повтором, процесс возвращается к этапу S401 на Фиг. 19. Если параметр кодирования был изменен повтором, то выполняется определение того, больше либо равен или нет остаточный битрейт CPB заранее определенному пороговому значению (этап S462). Если остаточный битрейт CPB меньше заранее определенного порогового значения, то параметр кодирования сохраняют тем же, что и параметр кодирования, используемый при повторном кодировании. Только если остаточный битрейт CPB больше либо равен заранее определенному пороговому значению, параметр кодирования восстанавливается до исходного параметра кодирования по умолчанию (этап S463). Затем процесс возвращается к этапу S401 на Фиг. 19, и процесс переходит к кодированию следующей группы изображений в очередности кодирования.
В проиллюстрированном на Фиг. 20 варианте исполнения параметр кодирования восстанавливается до значения, которое используется во время нормального кодирования, только если остаточный битрейт CPB превышает заранее определенную величину в момент, когда завершено кодирование группы изображений в очередности кодирования. Это делается по следующим причинам. Даже если остаточный битрейт CPB небольшой в момент, когда завершено кодирование группы изображений в очередности кодирования, то восстановление параметра кодирования до значения, которое используется во время нормального кодирования, дополнительно увеличивает формируемый битрейт, и, следовательно, с высокой вероятностью статистика квантования кодируемого изображения вновь превысит заранее определенное пороговое значение при кодировании следующей группы изображений в очередности кодирования. В процессе на Фиг. 20, если остаточный битрейт CPB небольшой, то параметр кодирования не меняется, так что не допускается возникновение повторного кодирования при кодировании следующей группы изображений в очередности кодирования, и дополнительно уменьшается объем вычислений в сравнении с процессом на Фиг. 19.
Как описано выше, настоящий вариант осуществления меняет параметр кодирования во время повторного кодирования. Здесь предполагается, что во время кодирования к входному видео применяется предварительный фильтр, и параметрами кодирования, которые могут меняться, являются параметр квантования и сила предварительного фильтра. Могут меняться оба из двух параметров кодирования или может меняться только любой один из них.
Применительно к параметру квантования, к значению параметра квантования, которое используется во время нормального кодирования, прибавляется заранее определенное значение коррекции, и повторное кодирование выполняется, используя такой больший параметр квантования.
Применительно к предварительному фильтру, предполагается, что в настоящем варианте осуществления используется фильтр Гаусса. Фильтр Гаусса может быть реализован посредством дискретизации распределения Гаусса, показанного в нижеследующем уравнении применительно к x и y.
<mrow><mi>g</mi><mo stretchy="false">(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>{</mo><mrow><mn>1</mn><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><mi>π</mi><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><mo>}</mo></mrow><mo>×</mo><mi>exp</mi><mo>{</mo><mo>−</mo><mo stretchy="false">(</mo><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>/</mo><mo stretchy="false">(</mo><mn>2</mn><msup><mi>σ</mi><mn>2</mn></msup><mo stretchy="false">)</mo><mo>}</mo></mrow>
<mi>σ</mi>
Как видно из приведенного выше уравнения степень размытости увеличивается при увеличении значения
. Поскольку высокочастотная составляющая уменьшается с увеличением степени размытости, то формируемый во время кодирования битрейт уменьшается. Подробности фильтра Гаусса описаны, например, в непатентном документе 2, который описан выше.
<mi>σ</mi>
<mrow><msub><mi>σ</mi><mn>0</mn></msub><mo>=</mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mn>1</mn></msub><mo>></mo><mn>0</mn></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mn>1</mn></msub></mrow>
<mrow><msub><mi>σ</mi><mn>0</mn></msub></mrow>
При
, равном 0, фильтр Гаусса не применяется, и, например, используются параметр кодирования по умолчанию
и параметр кодирования для повторного кодирования
. Следует отметить, что в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Кроме того, то, насколько сильной должна быть степень размытости во время повторного кодирования, может произвольно определяться заранее. Например, допустимо использование структуры, при которой параметр
кодирования по умолчанию меняется в зависимости от степени сложности каждого изображения, а
устанавливается как сумма заранее определенной коррекции и
.
Кроме того, в настоящем варианте осуществления предполагается, что в качестве статистики квантования используется среднее значение параметров квантования макроблоков изображения.
Применительно к кодированию, предполагается, что кодирование выполняется в соответствии со стандартом H.264. Кроме того, в настоящем варианте осуществления группой изображений в очередности кодирования является GOP. Концептуальная схема GOP при кодировании соответствует той, что проиллюстрирована на Фиг. 5. Предполагается, что одна GOP включает в себя 10 изображений, а B изображение и P изображение выстроены попеременно в очередности отображения, при этом I изображение является первым изображением.
Пример конфигурации устройства настоящего варианта осуществления проиллюстрирован на Фиг. 21. Модулю 500 определения максимального расстояния до интер-изображения поступает извне уведомление о доступном объеме памяти (информация о доступном объеме памяти), и он на основании этого получает максимальное расстояние до интер-изображения, на которое максимально может осуществляться обратное отслеживание во время повторного кодирования. В настоящем варианте осуществления входной видеосигнал кодируемой GOP хранится во входном буфере 410, и закодированный поток кодируемой GOP хранится в выходном буфере 430 для обеспечения повторного кодирования. Модуль 500 определения максимального расстояния до интер-изображения получает расстояние до интер-изображения, при котором полная сумма требуемого объема памяти в худшем случае входного буфера 410 и выходного буфера 430 и другого объема используемой памяти меньше либо равна доступному объему памяти, при этом уменьшая значение максимального расстояния до интер-изображения с исходного значения максимального расстояния до интер-изображения, которое установлено равным длине GOP, чтобы тем самым определить максимальное расстояние до интер-изображения.
Здесь описано характерное вычисление требуемого объема памяти для получения максимального расстояния до интер-изображения. Сначала, как изложено ниже, определяется требуемый объем памяти входного буфера 410.
<mo>×</mo>
Требуемый объем памяти входного буфера = (максимальное расстояние до интер-изображения +1)
(объем данных одного изображения).
С другой стороны, требуемым объемом памяти выходного буфера 430 является максимальный битрейт, который может формироваться, не вызывая опустошения CPB при ограничениях на размер CPB и битрейт. В частности, максимальный битрейт, который может быть сформирован, получается, когда используются все данные, поданные в CPB в соответствии с битрейтом (остаточный битрейт CPB равен 0 после кодирования GOP) в состоянии, при котором остаточный битрейт CPB непосредственно перед началом кодирования GOP равен размеру CPB. В качестве уравнения для расчетов в битах, требуемый объем памяти выходного буфера представляется следующим уравнением.
<mo>×</mo>
Требуемый объем памяти выходного буфера = (битрейт/количество изображения в секунду)
(максимальное расстояние до интер-изображения +1) + (размер CPB в битах).
Кроме того, может потребоваться вычисление объема данных следующих данных. В случае H.264 требуется хранить в качестве опорного изображения декодированное изображение, созданное во время кодирования GOP, чтобы реализовать повторное кодирование (если оно не сохраняется, то отсутствует опорное изображение, когда кодирование выполняется с точки повтора во время повторного кодирования). Поскольку изображение в GOP не опирается на изображение, которое находится раньше GOP, то предполагая, что в качестве опорных изображений в буфере декодированного изображения (DPB) хранятся I и P изображения, то памяти будет достаточно во всех случаях, при обеспечении памяти следующим образом.
Если повторное кодирование возникает в последнем изображении в GOP, то достаточно обеспечить память, соответствующую количеству I и P изображений в группе изображений в очередности кодирования, которые находятся раньше изображения, с которого начинается повторное кодирование (изображения на максимальном расстоянии до интер-изображения) в очередности кодирования.
Фиг. 22 иллюстрирует концептуальную схему для описания данного требуемого объема памяти. Например, предполагается, что GOP включает в себя 10 изображения, а максимальное расстояние до интер-изображения равно 6, как проиллюстрировано на Фиг. 22. Количество изображений, которые должны храниться во входном буфере 410, составляет максимум 7. С другой стороны, в примере на Фиг. 22, для повторного кодирования в памяти также требуется хранить в качестве опорных изображений декодированные изображения первого I изображения и следующего P изображения. В сравнении со случаем, при котором максимальное расстояние до интер-изображения равно длине GOP, в случае, который проиллюстрирован на Фиг. 22, требуется дополнительно хранить DPB для двух изображений (ссылочное обозначение RS22 на Фиг. 22) из первого I изображения и второго P изображения, однако количество изображений, которое должно храниться во входном буфере 410, уменьшается на 3. Другими словами, так как максимальное расстояние до интер-изображения меньше, объем памяти для опорных изображений увеличивается, но уменьшение в количестве изображений, которое должно храниться во входном буфере 410, больше, и таким образом можно видеть, что малое максимальное расстояние до интер-изображения уменьшает требуемый объем памяти.
Кроме того, в H.264 может выполняться ссылка на вектор движения опорного изображения, и, следовательно, может потребоваться память для вектора движения. В дополнение, требуемая память вычисляется в зависимости, например, от конфигурации кодера. Получают расстояние до интер-изображения, при котором полная сумма этих памятей меньше либо равна доступному объему памяти, чтобы тем самым определить максимальное расстояние до интер-изображения.
Следует отметить, что при реализации настоящего изобретения, максимальное расстояние до интер-изображения может вычисляться вне системы и задаваться модулю 500 определения максимального расстояния до интер-изображения вместо уведомления модуля 500 определения максимального расстояния до интер-изображения извне о доступном объеме памяти и вычисления максимального расстояния до интер-изображения.
Модуль 500 определения максимального расстояния до интер-изображения уведомляет модуль 460 управления точкой повтора, полученной в результате определения информацией о максимальной расстоянии до интер-изображения.
Входной буфер 410 хранит входной видеосигнал и выдает видеосигнал, в качестве цели кодирования, модулю 420 кодирования. Кроме того, если входной буфер 410 принимает информацию, указывающую, что должно быть выполнено повторное кодирование (информацию о повторе), так как статистика квантования превышает заранее определенное пороговое значение, от модуля 440 вычисления статистики квантования, который описан ниже, то входной буфер 410 вновь выдает модулю 420 кодирования видеосигнал с изображения точки повтора, о которой он уведомляется модулем 460 управления точкой повтора. Кроме того, если модуль 460 управления точкой повтора уведомляет информацией о точке повтора входной буфер 410, то последний сбрасывает хранящийся видеосигнал, соответствующий изображениям перед точкой повтора.
Модуль 420 кодирования кодирует видеосигнал, подаваемый из входного буфера 410, и выдает закодированный поток выходному буферу 430. Кроме того, модуль 420 кодирования выдает параметр квантования (информацию о параметре квантования), сформированный, когда входной видеосигнал закодирован, модулю 440 вычисления статистики квантования, и выдает информацию, указывающую, что завершено кодирование изображения (информация о завершении кодирования изображения) модулю 460 управления точкой повтора. Кроме того, если модуль 420 кодирования принимает информацию о повторе от модуля 440 вычисления статистики квантования, то видеосигнал с изображения точки повтора в кодируемой GOP вновь выдается из входного буфера 410, а из модуля 450 регулировки параметра выдается параметр кодирования для повторного кодирования, и таким образом модуль 420 кодирования выполняет повторное кодирование, используя входной параметр кодирования для повторного кодирования.
Выходной буфер 430 хранит закодированный поток, который является результатом кодирования GOP, и если модуль 460 управления точкой повтора уведомляет информацией о точке повтора выходной буфер 430, то выходной буфер 430 выдает хранящиеся закодированные потоки, соответствующие изображениям перед точкой повтора, и данные удаляются из выходного буфера 430. Кроме того, если от модуля 440 вычисления статистика квантования принимается информация о повторе, то хранящиеся закодированные потоки кодируемой GOP сбрасываются.
Модуль 440 вычисления статистики квантования получает статистику квантования, которая меняется в единицах изображения, используя информацию о параметре квантования, которая выдается модулем 420 кодирования. Затем, если статистика квантования превышает заранее определенное пороговое значение, то модуль 440 вычисления статистики квантования выдает информацию о повторе входному буферу 410, модулю 420 кодирования, модулю 450 регулировки параметра и выходному буферу 430, чтобы уведомить о том, что статистика квантования превышает заранее определенное пороговое значение.
Если модуль 450 регулировки параметра принимает от модуля 440 вычисления статистики квантования информацию о повторе, то модуль 450 регулировки параметра, как описано выше, выдает модулю 420 кодирования параметр кодирования для повторного кодирования. В результате, во время повторного кодирования, модуль 420 кодирования выполняет кодирование той же GOP, используя параметр кодирования, при котором уменьшается формируемый битрейт.
Модуль 460 управления точкой повтора уведомляет входной буфер 410 и выходной буфер 430 информацией о точке повтора, указывающей, какое изображение является точкой повтора, когда статистика квантовании превышает заранее определенное пороговое значение при кодировании следующего изображения на основе информации о завершении кодирования изображения и информации о максимальном расстоянии до интер-изображения.
Ход процесса кодирования в настоящем варианте осуществления описан со ссылкой на блок-схему на Фиг. 19. В нижеследующем описание, соответствие с блок-схемой на Фиг. 19, подобное S401, S402,…, указано в изложении.
Процесс кодирования определенной GOP будет по отдельности описан для следующих трех случаев.
- [Случай 1]: Статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP.
- [Случай 2]: Статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, но превышения статистикой квантования порогового значения можно избежать посредством повторного кодирования.
- [Случай 3]: Статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования.
[Пример процесса в случае 1]
Сначала описан случай 1, при котором статистика квантования не превышает заранее определенное пороговое значение при кодировании GOP. Когда изображение GOP подается во входной буфер 410, то входной буфер 410 сохраняет изображение и выдает изображение модулю 420 кодирования в качестве целевого изображения кодирования (S401). Затем модуль 420 кодирования кодирует изображение, выдает закодированный поток выходному буферу 430 (выходной буфер 430 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 440 вычисления статистики квантования (S2). Кроме того, модуль 420 кодирования выдает информацию о завершении кодирования изображения модулю 460 управления точкой повтора (S402).
Здесь, для кодирования используется параметр кодирования по умолчанию, и процесс фильтрации в модуле 421 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования по умолчанию. Кроме того, коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 422 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию.
Модуль 440 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 420 кодирования. В данном примере, поскольку статистика квантования не превышает заранее определенное пороговое значение, модуль 440 вычисления статистики квантования не выдает информацию о повторе (S403). Если целевое изображение кодирования является последним изображением входного видеосигнала, то выходной буфер 430 выдает хранящиеся закодированные потоки, и процесс кодирования завершается (S404). С другой стороны, если целевое изображение кодирования является последним изображением GOP, то выходной буфер 430 выдает хранящиеся закодированные потоки, входной буфер 410 сбрасывает хранящиеся изображения, и процесс переходит к процессу кодирования первого изображения в следующей GOP (S405). Здесь, поскольку в GOP не возникает повторного кодирования, то параметр кодирования не меняется, и процесс переходит к процессу кодирования первого изображения в следующей GOP (S406).
[Пример процесса в случае 2]
Далее описан случай 2, при котором статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, но посредством повторного кодирования может быть предотвращено превышение статистикой квантования порогового значения. Когда изображение GOP подается во входной буфер 410, входной буфер 410 сохраняет изображение и выдает изображение модулю 420 кодирования в качестве целевого изображения кодирования (S401). Затем модуль 420 кодирования кодирует изображение, выдает закодированный поток выходному буферу 430 (выходной буфер 430 не выдает закодированный поток, а сохраняет закодированный поток) и выдает информацию о параметре квантования для изображения модулю 440 вычисления статистики квантования (S402). Здесь при кодировании используется параметр кодирования по умолчанию.
Модуль 440 вычисления статистики квантования вычисляет статистику квантования для изображения на основе информации о параметре квантования, которая выдается модулем 420 кодирования. В результате, если модуль 440 вычисления статистики квантования обнаруживает, что статистика квантования для изображения превышает заранее определенное пороговое значение, то модуль 440 вычисления статистики квантования выдает информацию о повторе модулю 420 кодирования, модулю 450 регулировки параметра, входному буферу 410 и выходному буферу 430 (S403).
Если повтор еще не возникал для кодируемой GOP (S407), то входной буфер 410 выдает изображение хранящейся кодируемой GOP в позиции, которая указана как точка повтора, модулю 420 кодирования (S408), и модуль 450 регулировки параметра выдает параметр кодирования для повторного кодирования модулю 420 кодирования (S409). Кроме того, выходной буфер 430 сбрасывает закодированные потоки кодируемой GOP. Затем модуль 420 кодирования кодирует изображения, начиная с введенной точки повтора, используя параметр кодирования для повторного кодирования.
Здесь при кодировании используется параметр кодирования для повторного кодирования, и процесс предварительной фильтрации в модуле 421 предварительного фильтра применяется к целевому изображению кодирования с силой предварительного фильтра, соответствующей параметру кодирования для повторного кодирования (степень размытости выше, чем при параметре кодирования по умолчанию). Кроме того, коэффициент DCT, формируемый в настоящем изображении, квантуется модулем 422 квантования, используя параметр квантования в соответствии с параметром кодирования для повторного кодирования (величина шага квантования больше, чем при параметре кодирования по умолчанию).
Затем, пока статистика квантования не превышает заранее определенное пороговое значение, изображения GOP последовательно выдаются входным буфером 410 модулю 420 кодирования, и процесс кодирования выполняется модулем 420 кодирования. Затем, когда завершено кодирование последнего изображения GOP (S405), закодированные потоки GOP выдаются выходным буфером 430, модуль 420 кодирования устанавливает параметр кодирования в параметр кодирования по умолчанию (S406), и процесс переходит к процессу кодирования следующей GOP. Следует отметить, что операция, когда завершено кодирование последнего изображения входного видео, выполняется аналогично той, что описана выше для случая 1.
Концептуальная схема изменения параметра кодирования при выполнении повторного кодирования проиллюстрирована на Фиг. 7. В примере на Фиг. 7, поскольку статистика квантования превышает заранее определенное пороговое значение при кодировании шестого изображения второй GOP2, то устанавливается параметр кодирования для повторного кодирования, чтобы уменьшить формируемый битрейт, и GOP2 повторно кодируется, начиная с ее первого I изображения в пределах максимального расстояния до интер-изображения. Поскольку статистика квантования не превышает заранее определенное пороговое значение посредством повторного кодирования, то параметр кодирования для повторного кодирования восстанавливается до параметра кодирования по умолчанию при кодировании следующей GOP3, и процесс кодирования продолжается.
Концептуальная диаграмма перехода остаточного битрейта CPB, когда выполняется повторное кодирование, соответствует той, что проиллюстрирована на Фиг. 8. Часть, указанная жирной линией, является остаточным битрейтом CPB после повторного кодирования. При повторном кодировании, поскольку степень размытости усиливается предварительным фильтром, и параметр квантования больше, чем при параметре кодирования по умолчанию, то формируемый битрейт уменьшается, а переход остаточного битрейта CPB соответствует проиллюстрированному, например, на Фиг. 8. В результате, остаточный битрейт CPB в изображении, для которого возникает повторное кодирование, увеличивается во время повторного кодирования, и можно избежать возникновения сильного ухудшения в качестве изображения для изображения.
Концептуальная диаграмма перехода статистики квантования, когда выполняется повторное кодирование, соответствует той, что проиллюстрирована на Фиг. 9. Как проиллюстрировано на Фиг. 9, статистики квантования изображений, для которых началось повторное кодирование, увеличиваются, так как параметр кодирования во время повторного квантования меняется, но это оставляет запас остаточного битрейта CPB, как проиллюстрировано на Фиг. 8, и таким образом статистика квантования в изображении, для которого возникает повторное кодирование, становится меньше, чем та, что существовала до повторного кодирования.
Фиг. 23 является схемой, описывающей уменьшение памяти входного буфера и выходного буфера посредством ограничения точки повтора максимальным расстоянием до интер-изображения. В качестве «случая A» описан случай, при котором точка повтора устанавливается в соответствии с настоящим вариантом осуществления. Например, также возможно, чтобы изображение, с которого начинается повторное кодирование, когда статистика квантования превышает заранее определенное пороговое значение, всегда устанавливалось как первое изображение группы изображений в очередности кодирования (например, GOP), в противоположность настоящему варианту осуществления. Данный вариант именуется как «случай B». Сравнивая случай A со случаем B, например, в случае A, когда кодируемым в настоящий момент является девятое B изображение GOP2, а максимальное расстояние до интер-изображения равно «5», как проиллюстрировано на Фиг. 23, то точкой повтора является четвертое изображение (P изображение) GOP2, а изображения GOP2 с первого по третье, которые находятся раньше точки повтора, для повторного кодирования не используются. По этой причине не требуется хранить данные во входном буфере 410 и выходном буфере 430, соответствующие этим изображениям, и они могут быть сброшены (ссылочное обозначение RS23 на Фиг. 23). В противоположность, в случае B с самого начала кодирования первого изображения в GOP2 до завершения кодирования последнего изображения в GOP2 необходимо хранить во входном буфере 410 и выходном буфере 430 данные, соответствующие этим изображениям в GOP2, и таким образом увеличивается требуемый объем памяти. В настоящем варианте осуществления (случай A), поскольку вычисляется максимальное расстояние до интер-изображения и устанавливается точка повтора, то существует возможность уменьшения объема памяти, в сравнении со случаем B.
[Пример процесса в случае 3]
В заключение описан случай 3, при котором статистика квантования превышает заранее определенное пороговое значение при кодировании GOP, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования.
Концептуальная диаграмма перехода статистики квантования, когда выполняется повторное кодирование, и превышения статистикой квантования порогового значения невозможно избежать даже посредством повторного кодирования, соответствует той, что проиллюстрирована на Фиг. 10. Случай 3 может возникнуть, например, когда статистика квантования уже большая в начале GOP, с которого начинается повторное кодирование, как проиллюстрировано на Фиг. 10. В данном случае, операции, на которых модуль 440 вычисления статистики квантования обнаруживает, что статистика квантования превышает заранее определенное пороговое значение, и выполняется повторное кодирование GOP, аналогичны тем, что описаны в случае 2. Если статистика квантования превышает заранее определенное пороговое значение во время повторного кодирования GOP (S403 и S407), то дальнейшее повторное кодирование не выполняется, и процесс кодирования просто продолжается (процесс переходит к S404).
Следует отметить, что так как во время повторного кодирования параметр квантования больше установленного во время нормального кодирования, то во время повторного кодирования статистика квантования может превысить пороговое значение в изображении, более раннем в очередности кодирования, чем изображение, вызвавшее повторное кодирование. Для уменьшения вероятности такого превышения, если параметр квантования во время повторного кодирования выше, чем пороговое значение статистики квантования, то параметр квантования во время повторного кодирования может быть изменен на значение, равное пороговому значению статистики квантования. Однако если параметр квантования во время нормального кодирования больше либо равен статистике квантования, то значение параметра квантования во время повторного кодирования устанавливается равным значению во время нормального кодирования, так что параметр квантования во время повторного кодирования не меньше того, который установлен во время нормального кодирования.
Описанный выше процесс управления кодированием видео может быть реализован компьютером и программой программного обеспечения, а программа может быть записана на машиночитаемом носители записи или может быть предоставлена по сети.
Хотя настоящее изобретение подробно описано со ссылкой на чертежи, конкретная конфигурация не ограничивается этими вариантами осуществления и, например, также включены исполнения (дополнение, исключение, замещение и прочие изменения), которые выполнены без отклонения от сущности настоящего изобретения. Настоящее изобретение не ограничивается приведенным выше описанием, а ограничено лишь прилагаемой формулой изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение может использоваться, например, в технологии кодирования видео для кодирования видеосигнала. В соответствии с настоящим изобретением видеосигнал может кодироваться таким образом, что не возникает отказа гипотетического буфера в декодере, такого как буфер кодированного изображения в гипотетическом декодере, и не увеличивается ухудшение качества изображения.
ОПИСАНИЕ ССЫЛОЧНЫХ ОБОЗНАЧЕНИЙ
10 входной буфер
20 модуль кодирования
21 модуль предварительного фильтра
22 модуль квантования
30 выходной буфер
40 модуль вычисления статистики квантования
50 модуль регулировки параметра
110 входной буфер
120 модуль кодирования
121 модуль предварительного фильтра
122 модуль квантования
130 выходной буфер
140 модуль вычисления статистики квантования
150 модуль управления счетчиком повторов
160 модуль регулировки параметра
210 входной буфер
220 модуль кодирования
221 модуль предварительного фильтра
222 модуль квантования
230 выходной буфер
240 модуль вычисления статистики квантования
250 модуль управления счетчиком повторов
260 модуль предсказания состояния CPB
270 модуль регулировки параметра
310 входной буфер
320 модуль кодирования
321 модуль предварительного фильтра
322 модуль квантования
330 выходной буфер
340 модуль вычисления статистики квантования
350 модуль предсказания состояния CPB
360 модуль управления точкой повтора
370 модуль регулировки параметра
410 входной буфер
420 модуль кодирования
421 модуль предварительного фильтра
422 модуль квантования
430 выходной буфер
440 модуль вычисления статистики квантования
450 модуль регулировки параметра
460 модуль управления точкой повтора
500 модуль определения максимального расстояния до интер-изображения