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

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к технологии кодирования видео для кодирования видеосигнала, так чтобы гипотетический буфер, такой как буфер кодированного изображения (CPB) в гипотетическом декодере, не испытывал падение и ухудшение качества изображения не увеличивалось.
Приоритет испрашивается по японским патентным заявкам № 2010-106851, 2010-106852, 2010-106853, 2010-106854 и 2010-106855, поданным 7 мая 2010 г., все содержание которых включено в настоящий документ посредством ссылок.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
При кодировании видеосигнала необходимо выполнять кодирование таким образом, чтобы декодер не испытывал падение. В схеме кодирования H.264 задается гипотетический декодер HRD (гипотетический эталонный декодер), полученный моделированием декодера. Кодер H.264 должен выполнять кодирование таким образом, чтобы гипотетический декодер не испытывал падение. Настоящее изобретение является технологией пресечения падения CPB гипотетического декодера, в частности, из-за опустошения CPB.
На фиг. 1 представлена концептуальная схема опустошения CPB. В случае постоянной битовой скорости кодированный поток вводится в CPB на битовой скорости, как указано стрелкой A1. Объем данных кодированного потока при каждом вводе в CPB упоминается как "остаточная битовая скорость". Гипотетический декодер извлекает из CPB кодированный поток, соответствующий каждому изображению. В этом случае остаточная битовая скорость CPB мгновенно снижается на битовую скорость, соответствующую изображению. Проиллюстрирован иллюстративный пример постоянной битовой скорости, но то же самое относится к случаю переменной битовой скорости.
Опустошение CPB относится к ситуации, в которой кодированные потоки изображений недостаточны в CPB, когда гипотетический декодер пытается извлечь кодированные потоки изображений в каждый момент времени, указанный стрелкой A2, как показано на фиг. 1. При кодировании на основе H.264 состояние CPB должно проверяться в то время, когда выполняется кодирование, чтобы создать поток, не вызывающий опустошения CPB. Как описано выше, CPB гипотетического декодера стандартизируется в H.264, и дополнительные подробности описываются, например, в указанном далее непатентном документе 1.
Дополнительно, та же самая концепция, что и CPB, задается также в других стандартах кодирования. Например, в MPEG 2 существует VBV (буферный видеоконтрольник), и буферная модель такого декодера в настоящем документе упоминается как "гипотетический буфер." В последующем описании "CPB" может заменяться термином "гипотетический буфер" для интерпретации в более широком смысле.
Способы кодирования видеосигнала включают в себя технологию однопроходного кодирования и технологию многопроходного кодирования. При однопроходном кодировании обычно кодируются изображения входного видео. С другой стороны, при многопроходном кодировании входное видео кодируется многократно. При двухпроходном кодировании второе кодирование выполняется, используя результат первого кодирования. Далее в настоящем документе уровень техники с однопроходным кодированием упоминается как "предшествующий уровень техники (а)", а предшествующий уровень техники с двухпроходным кодированием упоминается как "предшествующий уровень техники (b)".
Предшествующий уровень техники (a)
При однопроходном кодировании, поскольку входные изображения кодируются последовательно, характер будущего изображения после кодирования целевого изображения неизвестен. Соответственно, несмотря на то, что существует попытка пресечь опустошение CPB, используя однопроходное кодирование, генерированная битовая скорость подавляется больше, чем необходимо, и качество видео ухудшается значительно больше, чем можно было бы. Например, в технологии, соответствующей патентному документу 1, степень сложности видео, полученного из результата кодирования в прошлом, используется в качестве оценки степени сложности других видео GOP перед кодированием каждого изображения. В качестве предпосылки оценки степени сложности параметр квантования, вызывающий максимальную битовую скорость, которая может использоваться для кодирования других видео GOP, оценивается и используется в качестве нижнего предельного значения параметра квантования во время кодирования целевого изображения кодирования. Существующая проблема состоит в том, что битовая скорость подавляется больше, чем необходимо, вызывая ухудшение качества видео, когда другие видео из GOP не являются сложными по сравнению с оцененной степенью сложности.
Предшествующий уровень техники (b)
При двухпроходном кодировании кодируются все изображения входного видео, и битовая скорость каждого изображения, генерируемая в это время, используется для второго кодирования. При этом способе степень сложности каждого участка видео может распознаваться во время второго кодирования, в отличие от случая однопроходного кодирования. Соответственно, опустошение CPB, как можно ожидать, должно пресекаться с ухудшением качества подавляемого видео. Например, в технологии, соответствующей патентному документу 2, при первом кодировании получают степень сложности каждого кадра и получают назначенную битовую скорость каждого кадра. Кроме того, производится проверка, происходит ли опустошение CPB при назначенной битовой скорости. Когда опустошение CPB происходит, назначенная битовая скорость изменяется. Другими словами, так как степень сложности каждого кадра распознается, назначенная битовая скорость может изменяться, только когда происходит опустошение CPB. В результате опустошение CPB может быть пресечено при сохранении меньшего ухудшения качества видео по сравнению с предшествующим уровнем техники (a). Однако при этом способе существует проблема, состоящая в увеличении объема вычислений, так как все кадры входного видео должны кодироваться дважды.
Документы предшествующего уровня техники
Патентные документы
Патентный документ 1: японская нерассмотренная патентная заявка, первая заявка № 2006-295535.
Патентный документ 2: японская нерассмотренная патентная заявка, первая заявка № 2003-018603
Непатентный документ
Непатентный документ 1: Kadono, Kikuchi и Suzuki, "H.264/AVC Textbook, Third revised Version", опубликовано Impress R & D, 2009, стр. 189-191.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Задача, решаемая изобретением
В предшествующем уровне техники, описанном выше, поскольку управление кодированием выполняется только с использованием ранее кодированной информации, происходит большое ухудшение качества видео за счет чрезмерного подавления генерированной битовой скорости. С другой стороны, в соответствии с предшествующим уровнем техники (b) опустошение CPB может быть пресечено с пресечением ухудшения качества подавляемого видео. Однако при этом способе существует проблема, состоящая в том, что объем вычислений является большим, поскольку все кадры входного видео входа должны кодироваться дважды.
Задача настоящего изобретения состоит в том, чтобы реализовать стабильное качество видео, в то же время пресекая опустошение CPB при меньшем объеме вычислений, чем при традиционном двухпроходном кодировании (предшествующий уровень техники (b)), чтобы решить описанную выше задачу.
Средство решения проблемы
В описании настоящего изобретения задается термин "группа изображений, следующих в порядке кодирования". Группа изображений, следующих в порядке кодирования, включает в себя предварительно определенное количество изображений, причем первое изображение является изображением, кодированным с внутренним предсказанием (изображение I), и является собранием изображений, следующих в порядке кодирования. Типичным примером группы изображений, следующих в порядке кодирования, является GOP (группа изображений).
Концептуальные схемы группы изображений, следующих в порядке кодирования, показаны на фиг. 2A-2D. На фиг. 2A-2D 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, формируют группу изображений, следующих в порядке кодирования, упомянутую в настоящем изобретении. Дополнительно, на фиг. 2D показан пример, в котором группа изображений, следующих в порядке кодирования, включает в себя 20 изображений, соответствующих двум GOP.
Как описано выше, собрание изображений, в котором последовательность изображений входного видео делится на группы с предварительно определенным количеством изображений, следующих друг за другом в порядке кодирования, упоминается как группа изображений, следующих в порядке кодирования. Дополнительно, в настоящем документе термин "изображение" относится к кадру, когда видео имеет прогрессивный формат, или относится к кадру одного поля, или относится к кадру верхнего поля и нижнего поля, когда видео имеет чередующийся формат.
В первом варианте осуществления настоящего изобретения кодирование входного видео выполняется в блоках групп изображений, следующих в порядке кодирования. Однако с использованием предварительно определенного алгоритма проверки буфера, проверяется, не испытывает ли падение CPB, каждый раз, когда кодируется входное изображение. Параметр кодирования изменяется таким образом, что генерированная битовая скорость становится малой, только когда происходит опустошение CPB, и затем группа изображений, следующих в порядке кодирования, которая является кодируемой, кодируется повторно. Когда кодирование группы изображений, следующих в порядке кодирования, завершено, результат кодирования выводится из выходного буфера.
Примеры параметров кодирования, которые должны изменяться, содержат параметр квантования и степень предварительной фильтрации, и один или оба параметра могут изменяться. Например, когда параметр кодирования является параметром квантования, размер шага квантования увеличивается, так что параметр кодирования предписывает, чтобы генерированная битовая скорость была малой. Дополнительно, когда степень фильтрации предварительного фильтра для входного видео изменяется, степень размывания изменяется, становясь больше, так чтобы генерированная битовая скорость могла быть малой.
Когда повторное кодирование группы изображений, следующих в порядке кодирования, завершено, параметр кодирования восстанавливается до значения параметра кодирования во время обычного кодирования. Соответственно, ухудшение качества видео пресекается или снижается относительно распространения его на следующую группу изображений, следующих в порядке кодирования. Здесь, параметр кодирования во время обычного кодирования относится к параметру кодирования, определенному в состоянии, в котором кодирование не повторяется.
Дополнительно, когда повторное кодирование группы изображений, следующих в порядке кодирования, завершено, нет необходимости восстанавливать параметр кодирования до значения параметра кодирования во время обычного кодирования. Остаточная битовая скорость CPB проверяется и параметр кодирования восстанавливается до значения во время обычного кодирования, только когда остаточная битовая скорость равна или больше предварительно определенного порогового значения. Когда остаточная битовая скорость меньше, параметр кодирования может не восстанавливаться до значения во время обычного кодирования. Это дает возможность снизить вероятность непрерывного возникновения повторного кодирования.
Дополнительно, во втором варианте осуществления настоящего изобретения, даже когда группа изображений, следующих в порядке кодирования, повторно кодируется, каждый раз, когда кодируется каждое изображение, проверяется, произошло ли опустошение CPB. Если опустошение CPB произошло, параметр кодирования изменяется и группа изображений, следующих в порядке кодирования, которая является кодируемой в настоящий момент, кодируется повторно, начиная с ее первого изображения. Другими словами, одна и та же группа изображений, следующих в порядке кодирования, многократно кодируется только тогда, когда произошло опустошение CPB.
В этом случае количество повторых кодирований одной группы изображений, следующих в порядке кодирования, управляется с использованием параметра, называемого "количество повторений". Когда происходит повторное кодирование, значение количества повторений получает приращение, а когда кодирование группы изображений, следующих в порядке кодирования, завершается, значение количества повторений уменьшается. Значение параметра кодирования, описанного выше, устанавливается в соответствии с размером количества повторений, и используется значение, при котором генерированная битовая скорость становится малой, поскольку количество повторений увеличивается. Когда параметр кодирования является параметром квантования, размер шага увеличивается по мере увеличения количества повторений. Когда параметр кодирования является степенью фильтрации предварительного фильтра, степень размывания увеличивается по мере увеличения количества повторений.
Обычно видео, служащее целью кодирования, включает в себя сложный участок и простой участок. Если выполняется только одно повторное кодирование, независимо от того, является ли сложной или простой группа изображений, следующих в порядке кодирования, которая становится целью повторного кодирования из-за опустошения CPB, опустошение CPB должно пресекаться таким одним повторным кодированием. Соответственно, необходимо установить параметр кодирования для повторного кодирования, увеличивая значение изменения параметра кодирования. Это может вызвать чрезмерно большое ухудшение качества видео, когда повторное кодирование происходит на сложном участке видео, так что опустошения CPB можно было бы избежать, даже когда значение изменения параметра кодирования является малым. То есть, так как сложный участок видео (в котором содержатся многочисленные высокочастотные составляющие и корреляция в направлении времени мала) имеет большой абсолютный объем информации, битовая скорость значительно снижается только при малом изменении параметра кодирования. Другими словами, величина изменения параметра кодирования, которая слишком велика, излишне необязательно ухудшает качество видео.
Как описано выше, группа изображений, следующих в порядке кодирования, кодируется повторно, осуществляется управление количеством повторений и параметры кодирования устанавливаются в соответствии с размером количества повторений, только когда происходит опустошение CPB. Соответственно, величина изменения параметра кодирования подавляется, чтобы быть малой, и кодирование выполняется с соответствующим параметром кодирования, тем самым дополнительно уменьшая ухудшение качества видео.
В третьем варианте осуществления настоящего изобретения, когда кодирование группы изображений, следующих в порядке кодирования, завершается, значение количества повторений не уменьшается безусловно, но количество повторений снижается только тогда, когда остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения в то время, когда завершается кодирование группы изображений, следующих в порядке кодирования.
Значение параметра кодирования, описанного выше, устанавливается в соответствии с размером количества повторений, и используется значение, при котором генерированная битовая скорость становится малой по мере того, как количество повторений увеличивается. Когда параметр кодирования является параметром квантования, размер шага увеличивается по мере увеличения количества повторений. Когда параметр кодирования является степенью фильтрации предварительного фильтра, степень размывания увеличивается по мере увеличения количества повторений.
Обычно видео, служащее целью кодирования, включает в себя сложный участок и простой участок. Если выполняется только одно повторное кодирование, независимо от того, является ли сложной или простой группа изображений, следующих в порядке кодирования, которая становится целью повторного кодирования из-за опустошения CPB, опустошение CPB должно пресекаться таким одним повторным кодированием. Соответственно, необходимо установить параметр кодирования для повторного кодирования, увеличивая значение изменения параметра кодирования. Это может вызвать чрезмерно большое ухудшение качества видео, когда повторное кодирование происходит на сложном участке видео, так что опустошения CPB можно было бы избежать, даже когда значение изменения параметра кодирования является малым. То есть, так как сложный участок видео (в котором содержатся многочисленные высокочастотные составляющие и корреляция в направлении времени мала) имеет большой абсолютный объем информации, битовая скорость значительно снижается только при малом изменении параметра кодирования. Другими словами, величина изменения параметра кодирования, которая слишком велика, излишне необязательно ухудшает качество видео.
Как описано выше, группа изображений, следующих в порядке кодирования, кодируется повторно, осуществляется управление количеством повторений, и параметр кодирования устанавливается в соответствии с размером количества повторений, только когда происходит опустошение CPB. Соответственно, величина изменения параметра кодирования подавляется, чтобы быть малой, и кодирование выполняется с соответствующим параметром кодирования, дополнительно уменьшая тем самым ухудшение качества видео.
Дополнительно, влияние ухудшения качества видео на следующую группу изображений, следующих в порядке кодирования, снижается, главным образом, за счет уменьшения количества повторений в то время, когда завершается кодирование группы изображений, следующих в порядке кодирования, после того, как во время повторного кодирования увеличивается количество повторений и выполняется кодирование. Однако, когда остаточная битовая скорость CPB меньше предварительно определенной величины, количество повторений не уменьшается. Соответственно, повторное кодирование произойдет менее вероятно даже при кодировании следующей группы изображений, следующих в порядке кодирования.
Дополнительно, в четвертом варианте осуществления настоящего изобретения группа изображений, следующих в порядке кодирования, не обязательно может быть GOP, а первое изображение в группе изображений, следующих в порядке кодирования, является изображением, кодированным посредством внутреннего предсказания (изображение I). В этом варианте осуществления кодирование входного видео выполняется в блоках групп изображений, следующих в порядке кодирования. Однако каждый раз, когда кодируется входное изображение, с использованием предварительно определенного алгоритма проверки буфера, проверяется, испытывает ли падение CPB. Если произошло опустошение CPB, параметр кодирования изменяется таким образом, что генерированная битовая скорость становится малой, и производится повторное кодирование, начиная с положения группы изображений, следующих в порядке кодирования, установленного в качестве точки повторения (которая будет описана ниже). Результат кодирования выводится из выходного буфера, кодирование группы изображений, следующих в порядке кодирования, завершается, и определяется, что повторное кодирование выполнять не требуется.
Примеры параметров кодирования, которые должны изменяться, содержат параметр квантования и степень предварительной фильтрации, и один или оба эти параметра могут изменяться. Например, когда параметр кодирования является параметром квантования, размер шага квантования увеличивается, так что параметр кодирования предписывает, чтобы генерированная битовая скорость снижалась. Дополнительно, когда степень фильтрации предварительного фильтра для входного видео изменяется, изменяется степень размывания, становясь большей, так чтобы генерированная битовая скорость могла стать меньше.
Когда повторное кодирование группы изображений, следующих в порядке кодирования, завершено, параметр кодирования восстанавливается до значения параметра кодирования во время обычного кодирования. Соответственно, пресекается распространение ухудшения качества видео на следующую группу изображений, следующих в порядке кодирования. Здесь параметр кодирования во время обычного кодирования относится к параметру кодирования, определенному в состоянии, в котором кодирование не повторяется снова.
Дополнительно, когда повторное кодирование группы изображений, следующих в порядке кодирования, завершено, нет необходимости восстанавливать параметр кодирования до значения параметра кодирования во время обычного кодирования. Проверяется остаточная битовая скорость CPB. Параметр кодирования восстанавливается до значения на момент обычного кодирования, только когда остаточная битовая скорость равна или больше предварительно определенного порогового значения, а когда остаточная битовая скорость меньше предварительно определенного порогового значения, параметр кодирования может не восстанавливаться до значения во время обычного кодирования. Это дает возможность снизить вероятность непрерывного возникновения повторного кодирования.
Точка повторения, описанная ниже, относится к информации о положении, указывающей изображение, с которого начинается повторное кодирование, когда повторное кодирование необходимо из-за появления опустошения CPB в определенном изображении.
Точка повторения является, как правило, первым изображением в текущей кодируемой группе изображений, следующих в порядке кодирования, но может быть первым изображением в находящейся в непосредственной близости ранее кодированной группе изображений, следующих в порядке кодирования. Точка повторения обновляется в следующих случаях.
(1) Когда остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения в то время, когда кодирование группы изображений, следующих в порядке кодирования, завершено, точка повторения устанавливается как первое изображение (изображение I) в следующей группе изображений, следующих в порядке кодирования.
(2) Когда остаточная битовая скорость CPB меньше предварительно определенного порогового значения в то время, когда кодирование группы изображений, следующих в порядке кодирования, завершено, точка повторения остается неизменной, и кодирование выполняется на следующем изображении в следующей группе изображений, следующих в порядке кодирования.
(3) Когда опустошение CPB не произошло при кодировании первого изображения в группе изображений, следующих в порядке кодирования, точка повторения устанавливается на первое изображение в текущей кодируемой группе изображений, следующих в порядке кодирования.
Причина, по которой установка точки повторения выполняется так, как описано выше, будет объяснена далее. Если точка повторения всегда устанавливается на первое изображение текущей кодируемой группы изображений, следующих в порядке кодирования, конфигурация обработки проще, чем в настоящем изобретении. Далее в настоящем документе, эта технология упоминается как "предшествующий уровень техники". Даже в случае предшествующего уровня техники соответствующая группа изображений, следующих в порядке кодирования, кодируется повторно, только если произошло опустошение CPB. Соответственно, опустошение CPB может пресекаться, объем вычислений может сокращаться по сравнению с предшествующим уровнем техники (b), на котором все изображения входного видео кодируются дважды, и может быть осуществлено эффективное управление распределением битовых скоростей.
Как хорошо известно, изображение I имеет большую генерированную битовую скорость, чем другие типы изображений. Соответственно, когда остаточная битовая скорость CPB в то время, когда кодирование определенной группы изображений, следующих в порядке кодирования, мала, опустошение CPB должно с высокой степенью вероятности происходить в изображении I, которое является первым изображением следующей группы изображений, следующих в порядке кодирования. В этом случае в описанном выше предшествующем уровне техники существует риск, что качество видео для изображения I значительно ухудшается, поскольку опустошения CPB можно избежать, только перекодируя изображение I, которое является первым изображением, в котором произошло опустошение CPB.
В настоящем варианте осуществления, если остаточная скорость CPB мала, и опустошение CPB произошло в изображении I, которое является первым изображением следующей группы изображений, следующих в порядке кодирования, непосредственно предшествующая группа изображений, следующих в порядке кодирования, повторно кодируется, начиная с ее первого изображения, посредством установленной точки повторения. Соответственно, возникновения сильного ухудшения качества видео в одном первом изображении можно избежать.
В пятом варианте осуществления настоящего изобретения кадр входного видео не всегда кодируется дважды, чтобы пресечь опустошение CPB, в отличие от двухпроходного кодирования, используемого на предшествующем уровне техники. Обычно используется однопроходное кодирование, и множество изображений прослеживаются и перекодируются, только когда произошло опустошение CPB.
Дополнительно, в настоящем варианте осуществления, когда опустошение CPB произошло при кодировании изображения в группе изображений, следующих в порядке кодирования, некоторые изображения группы изображений, следующих в порядке кодирования, прослеживаются и кодируются повторно. Изображения, прослеживаемые и повторно кодируемые, определяются заранее, используя объем памяти, доступный для повторного кодирования. Здесь максимальное количество изображений, которые могут прослеживаться во время повторного кодирования, задается в описании как "максимальное расстояние между изображениями".
Ниже представлено краткое описание процесса, соответствующего настоящему варианту осуществления. Прежде всего получается максимальное количество изображений, которые могут прослеживаться во время повторного кодирования, основываясь на информации о доступном объеме памяти, предоставляемой извне, и сохраняется как максимальное расстояние между изображениями.
Причина этого следующая. Для повторного кодирования необходимо хранить видеосигнал целевого изображения кодирования во входном буфере и хранить кодированные потоки результата кодирования в выходном буфере до тех пор, пока выходной сигнал результата кодирования выходного буфера не определит, что изображения не должны повторно кодироваться. Если доступный объем памяти достаточен, каждый входной буфер и выходной буфер имеют объем памяти, соответствующий количеству изображений в группе изображений, следующих в порядке кодирования, так что повторное кодирование во время появления опустошения CPB может быть выполнено, начиная с первого изображения в группе изображений, следующих в порядке кодирования, в блоках групп изображений, следующих в порядке кодирования.
Однако, так как память не может обязательно использоваться так, как необходимо, максимальное расстояние между изображениями, которое является максимальным количеством изображений, которые могут прослеживаться во время повторного кодирования, вычисляется из доступного объема памяти заранее.
В настоящем варианте осуществления кодирование входного видео выполняется в блоках групп изображений, следующих в порядке кодирования. Однако каждый раз, когда кодируется входное изображение, проверяется, не будет ли испытывать падение CPB при использовании предварительно определенного алгоритма проверки буфера. Параметр кодирования изменяется таким образом, что генерированная битовая скорость становится малой, и группа изображений, следующих в порядке кодирования, которая является кодируемой, кодируется повторно только тогда, когда происходит опустошение CPB. Однако, в группе изображений, следующих в порядке кодирования, которая является кодируемой, прослеживаются и перекодируются изображения, удовлетворяющие следующим трем условиям.
- Условие 1: Изображение включено в группу изображений, следующих в порядке кодирования, которая является кодируемой.
- Условие 2: Изображение включено в максимальное расстояние между изображениями из изображения, в котором произошло опустошение CPB.
- Условие 3: Изображение является изображением, наиболее удаленным от изображения, в котором произошло опустошение CPB, из числа изображений, удовлетворяющих условиям 1 и 2.
Изображение, с которого начинается повторное кодирование, упоминается как точка повторения. Например, если первое изображение на максимальном расстоянии между изображениями находится в непосредственно предшествующей группе изображений, следующих в порядке кодирования, точкой повторения является первое изображение в группе изображений, следующих в порядке кодирования, которая является кодируемой в настоящий момент, и, в противном случае, точкой повторения является первое изображение на максимальном расстоянии между изображениями, то есть, самое старое кодированное изображение, отделенное максимальным расстоянием между изображениями.
Примеры параметров кодирования, которые должны изменяться во время повторного кодирования, содержат параметр квантования и степень предварительной фильтрации, и один или оба эти параметра могут изменяться. Например, в случае параметра квантования размер шага параметра для параметра квантования увеличивается, так что параметр кодирования предписывает, чтобы генерированная битовая скорость была малой. Дополнительно, когда степень фильтрации предварительного фильтра для входного видео изменяется, степень размывания изменяется, становясь большей, так чтобы генерированная битовая скорость могла быть малой.
Когда кодирование группы изображений, следующих в порядке кодирования, которая является кодируемой в настоящий момент, завершается повторным кодированием, параметр кодирования восстанавливается до значения параметра кодирования во время обычного кодирования, пресекая таким образом распространение ухудшения качества видео на следующие группы изображений, следующих в порядке кодирования. Здесь параметр кодирования во время обычного кодирования относится к параметру кодирования, определенному в состоянии, в котором кодирование не повторяется.
Дополнительно, когда повторное кодирование группы изображений, следующих в порядке кодирования, завершается, параметр кодирования не обязательно восстанавливается до значения во время нормального кодирования, а может быть проверена остаточная битовая скорость CPB, и параметр кодирования может быть восстановлен до значения во время обычного кодирования, только когда остаточная битовая скорость равна или больше предварительно определенного порогового значения, и может не восстанавливаться до значения во время обычного кодирования, когда остаточная битовая скорость меньше предварительно определенного порогового значения. Это дает возможность снизить вероятность непрерывного возникновения повторного кодирования.
ТЕХНИЧЕСКИЙ РЕЗУЛЬТАТ ИЗОБРЕТЕНИЯ
В соответствии с первым вариантом осуществления настоящего изобретения группа изображений, следующих в порядке кодирования, кодируется дважды, только когда произошло опустошение CPB, в отличие от традиционного двухпроходного кодирования (предшествующий уровень техники (b)), при котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), тогда как опустошение CPB пресекается по сравнению с предшествующим уровнем техники (b), только когда это необходимо.
В соответствии со вторым и третьим вариантами осуществления настоящего изобретения, группа изображений, следующих в порядке кодирования, кодируется множество раз, только когда произошло опустошение CPB, в отличие традиционного двухпроходного кодирования (предшествующий уровень техники (b)), при котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB, как в первом варианте осуществления. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), при этом опустошение CPB пресекается по сравнению с предшествующим уровнем техники (b), только когда это необходимо.
Во втором и третьем вариантах осуществления настоящего изобретения величина изменения параметра кодирования во время повторного кодирования подавляется, чтобы быть малой, за счет управления количеством повторений, пресекая тем самым опустошение CPB. Соответственно, возможно понизить ухудшение качества видео из-за повторного кодирования.
В частности, в соответствии с третьим вариантом осуществления настоящего изобретения, когда остаточная битовая скорость CPB после повторного кодирования мала, параметр кодирования сохраняется, чтобы быть тем же самым, как во время повторного кодирования, пресекая тем самым повторное появление повторного кодирования.
В соответствии с четвертым вариантом осуществления настоящего изобретения группа изображений, следующих в порядке кодирования, кодируется дважды, только когда произошло опустошение CPB, в отличие от традиционного двухпроходного кодирования (предшествующий уровень техники (b)), при котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), поскольку опустошение CPB пресекается по сравнению с предшествующим уровнем техники (b), только когда это необходимо.
В частности, в соответствии с четвертым вариантом осуществления настоящего изобретения возможно предотвратить значительное ухудшение качества видео первого изображения I в группе изображений, следующих в порядке кодирования, поскольку появление опустошения CPB в первом изображении I, в котором генерированная битовая скорость является большой, в группе изображений, следующих в порядке кодирования, может быть эффективно пресечено.
В соответствии с пятым вариантом осуществления настоящего изобретения группа изображений, следующих в порядке кодирования, кодируется повторно, начиная с изображения, определенного как точка повторения, только когда произошло опустошение CPB, в отличие традиционного двухпроходного кодирования (предшествующий уровень техники (b)), при котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), поскольку опустошение CPB пресекается по сравнению с предшествующим уровнем техники (b), только когда это необходимо. Дополнительно, поскольку повторное кодирование выполняется, начиная с точки повторения, определяемой в соответствии с объемом памяти, требуемым для повторного кодирования, память может эффективно использоваться.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - график, показывающий опустошение CPB.
Фиг. 2А - концептуальная схема, показывающая изображения в порядке кодирования.
Фиг. 2В - концептуальная схема, показывающая группу изображений, следующих в процессе кодирования, когда она является GOP.
Фиг. 2С - концептуальная схема, показывающая группу изображений, следующих в процессе кодирования, когда она содержит 13 изображений.
Фиг. 2D - концептуальная схема, показывающая группу изображений, следующих в процессе кодирования, когда она содержит 20 изображений, соответствующих двум GOP.
Фиг. 3 - блок-схема последовательности выполнения операций, показывающая способ управления кодированием видео в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 4 - блок-схема последовательности выполнения операций варианта способа управления кодированием видео в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 5 - концептуальная схема GOP.
Фиг. 6 - блок-схема, показывающая устройство кодирования видео в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг. 7 - концептуальная схема изменения параметра кодирования, когда в соответствии с вариантом осуществления настоящего изобретения выполняется повторное кодирование.
Фиг. 8 - график, показывающий переходный процесс остаточной скорости CPB, когда в соответствии с вариантом осуществления настоящего изобретения выполняется повторное кодирование.
Фиг. 9 - блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии со вторым вариантом осуществления настоящего изобретения.
Фиг. 10 - блок-схема, показывающая устройство кодирования видео в соответствии со вторым вариантом осуществления настоящего изобретения.
Фиг. 11 - концептуальная схема переходного процесса количества повторений и параметра кодирования в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 12 - блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с третьим вариантом осуществления настоящего изобретения.
Фиг. 13 - блок-схема, показывающая устройство кодирования видео в соответствии с третьим вариантом осуществления настоящего изобретения.
Фиг. 14 - блок-схема последовательности выполнения операций, показывающая способ управления кодированием видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Фиг. 15 - блок-схема последовательности выполнения операций варианта способа управления кодированием видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Фиг. 16 - блок-схема, показывающая устройство кодирования видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Фиг. 17 - блок-схема последовательности выполнения операций, показывающая способ управления кодированием видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Фиг. 18 - блок-схема последовательности выполнения операций варианта способа управления кодированием видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Фиг. 19 - блок-схема, показывающая устройство кодирования видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Фиг. 20 - концептуальная схема, показывающая требуемый объем памяти для опорного изображения в пятом варианте осуществления настоящего изобретения.
Фиг. 21 - схема, показывающая снижение объема памяти входного буфера и выходного буфера посредством ограничения точки повторения максимальным расстоянием между изображениями в пятом варианте осуществления настоящего изобретения.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Далее в настоящем документе варианты осуществления настоящего изобретения будут описаны подробно со ссылкой на чертежи.
Первый вариант осуществления
На фиг. 3 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с первым вариантом осуществления настоящего изобретения.
Сначала изображение, следующее за изображением, для которого кодирование было закончено во входном видеосигнале, устанавливается в качестве цели кодирования (этап S101). Входное изображение, установленное в качестве цели кодирования, кодируется, используя H.264 или любую другую из предварительно определенных схем кодирования (этап S102). Производится определение в отношении того, происходит ли опустошение CPB из-за кодирования входного изображения (этап S103). Если опустошение CPB происходит, процесс переходит к этапу S107. Дополнительно, определение в отношении того, произошло ли опустошение CPB, может быть сделано, используя способ, применяемый в стандарте H.264.
Если опустошение CPB не происходит, делается определение в отношении того, закончено ли кодирование последнего изображения (этап S104). Если кодирование последнего изображения закончено, процесс кодирования завершен.
В противном случае делается определение в отношении того, закончено ли кодирование группы изображений, следующих в порядке кодирования (этап S105). Если кодирование группы изображений, следующих в порядке кодирования, не закончено, процесс возвращается к этапу S101, на котором процесс кодирования продолжается, чтобы он был выполнен подобным образом на следующем изображении. Если кодирование группы изображений, следующих в порядке кодирования, завершено и параметр кодирования был изменен благодаря повторному кодирования (повторению) группы изображений, следующих в порядке кодирования, параметр кодирования восстанавливается до значения во время обычного кодирования (этап S106) и процесс возвращается к этапу S101, на котором процесс кодирования выполняется, начиная с первого изображения следующей группы изображений, следующих в порядке кодирования.
Если на этапе 103 определяется, что опустошение CPB должно произойти, делается определение в отношении того, была ли повторно кодирована группа изображений, следующих в порядке кодирования (было ли закончено повторение) (этап S107). Если повторение было закончено, опустошение CPB может быть неизбежным, даже когда группа изображений, следующих в порядке кодирования, повторно кодируется. Соответственно, кодирование заканчивается. Если повторение не было завершено, первое изображение в текущей группе изображений, следующих в порядке кодирования, устанавливается в качестве цели кодирования, чтобы повторно кодировать текущую группу изображений, следующих в порядке кодирования (этап S108). Кроме того, один или оба из двух параметров кодирования (параметр квантования и степень предварительной фильтрации) изменяются (для параметра квантования изменяется размер шага, который должен стать больше, а для степени фильтрации изменяется степень размытия, которая должна стать больше) (этап S109). Процесс возвращается к этапу S102, на котором группа изображений, следующих в порядке кодирования, которая является кодируемой, кодируется повторно.
Другими словами, группа изображений, следующих в порядке кодирования (например, GOP), кодируется дважды, только когда произошло опустошение CPB, в отличие от предшествующего уровня техники (b), на котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется, используя параметр кодирования для пресечения опустошения CPB. Соответствующая группа изображений, следующих в порядке кодирования, кодируется повторно, чтобы пресечь опустошение CPB, только когда произошло опустошение CPB. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), на котором все изображения входного видео кодируются дважды.
На фиг. 4 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с разновидностью варианта осуществления настоящего изобретения. Настоящая разновидность может быть осуществлена посредством замены процесса на этапе S106, показанного на фиг. 3, на процесс этапов S161-S163, показанных на фиг. 4. Процессы, отличные от этапа S106, подобны тем, которые показаны на фиг. 3.
Делается определение в отношении того, был ли изменен параметр кодирования из-за повторения после процесса на этапе S105, показанного на фиг. 3 (этап S161). Если параметр кодирования не был изменен из-за повторения, процесс возвращается к этапу S101 на фиг. 3. Если параметр кодирования был изменен из-за повторения, то делается определение в отношении того, равна ли или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение (этап S162). Если остаточная битовая скорость CPB меньше, чем предварительно определенное пороговое значение, параметр кодирования сохраняется таким, каким он использовался при повторном кодировании. Параметр кодирования восстанавливается до первоначального параметра кодирования по умолчанию, только когда остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения (этап S163). Затем, процесс возвращается к этапу S101 на фиг. 3, где выполняется кодирование следующей группы изображений, следующих в порядке кодирования.
В разновидности, показанной на фиг. 4, параметр кодирования восстанавливается до значения во время обычного кодирования, только когда остаточная битовая скорость CPB превышает предварительно определенное значение на момент времени, при котором кодирование группы изображений, следующих в порядке кодирования, завершается как описано выше. Причина этого следующая. Если остаточная битовая скорость CPB мала, даже когда кодирование группы изображений, следующих в порядке кодирования, завершено, восстановление параметра кодирования до значения во время обычного кодирования увеличивает генерируемую битовую скорость и, соответственно, опустошение CPB, очень вероятно, будет происходить при кодировании следующей группы изображений, следующих в порядке кодирования. В процессе, показанном на фиг. 4, если остаточная битовая скорость CPB мала, параметр кодирования не изменяется, так что появление повторного кодирования при кодировании следующей группы изображений, следующих в порядке кодирования, пресекается и объем вычислений дополнительно снижается по сравнению с процессом, показанным на фиг. 3.
В настоящем варианте осуществления параметр кодирования изменяется во время повторного кодирования, как описано выше. Здесь предварительный фильтр применяется к входному видео во время кодирования, и параметрами кодирования, которые должны быть изменены, являются параметр квантования и степень фильтрации предварительного фильтра. Могут изменяться оба параметра кодирования или любой из них.
Для параметра квантования предварительно определенная величина смещения прибавляется к значению параметра квантования во время обычного кодирования, и повторное кодирование выполняется, используя больший параметр квантования.
Для предварительного фильтра в настоящем варианте осуществления используется гауссов фильтр. Гауссов фильтр может быть создан посредством выборки гауссова распределения, представленного следующим уравнением в отношении x и y.
2
2
2
2
<mrow><mtable><mtr><mtd><mrow /></mtd><mtd><mrow /></mtd><mtd><mrow /></mtd></mtr></mtable></mrow>
g(x, y)={l/(2πσ)}×exp{-(x+ y)/(2σ)}
(1)
Как можно видеть из приведенного выше уравнения, степень размывания увеличивается по мере увеличения значения σ. Поскольку высокочастотная составляющая уменьшается по мере увеличения степени размывания, генерированная битовая скорость во время кодирования снижается. Подробности для гауссова фильтра описываются, например, в следующем ссылочном документе 1. [Ссылочный документ 1]: Okutomi, Ozawa, Shimizu, and Hori, "Digital Image Processing," Corporation Picture Information Education Advancement Association, 2006, стр. 108-110.
0
1
0
1
0
Когда σ равно 0, гауссов фильтр не применяется, и, например, параметр кодирования по умолчанию σ=0, и параметр кодирования для повторного кодирования σ>0. Дополнительно, в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Дополнительно, то, как может повышаться степень размывания во время повторного кодирования, может быть произвольно определено заранее. Например, параметр σ кодирования по умолчанию изменяется в соответствии со степенью сложности каждого изображения, и σ является результатом добавления предварительно определенного смещения к σ.
Кодирование выполняется в соответствии со стандартом Н.264. Дополнительно, в настоящем варианте осуществления группа изображений, следующих в порядке кодирования, является группой GOP, и концептуальная схема GOP при кодировании показана на фиг. 5. Одна группа GOP содержит 10 изображений, и изображения B и изображения P поочередно выстраиваются в порядке отображения, при котором изображение I является первым изображением.
Пример конфигурации устройства, соответствующего первому варианту осуществления, показан на фиг. 6. Входной буфер 110 хранит входной видеосигнал и выводит видеосигнал, который является целью кодирования, на блок 120 кодирования. Дополнительно, когда входной буфер 110 принимает от блока 140 управления CPB, который будет описан ниже, информацию, указывающую, что повторное кодирование должно быть выполнено из-за возникновения опустошения CPB (информация о повторении), входной буфер 110 выводит видеосигнал из первого изображения в GOP, которая снова кодируется в блоке 120 кодирования. Дополнительно, когда кодирование GOP завершается без приема информации о повторении, входной буфер 110 удаляет хранящийся видеосигнал GOP.
Блок 120 кодирования кодирует видеосигнал, поступающий из входного буфера 110 и выводит кодированный поток в выходной буфер 130. Дополнительно, блок 120 кодирования выводит битовую скорость (информацию о битовой скорости), генерированную при кодировании входного видеосигнала, в блок 140 управления CPB. Дополнительно, когда блок 120 кодирования принимает информацию о повторении от блока 140 управления CPB, видеосигнал из первого изображения в GOP, которая является кодируемой, вводится из входного буфера 110 снова и параметр кодирования для повторного кодирования вводится из блока 150 регулировки параметров. Соответственно, блок 120 кодирования выполняет повторное кодирование, используя введенный параметр кордирования для повторного кодирования.
Выходной буфер 130 выводит кодированные потоки GOP на этапе, на котором кодированные потоки GOP были полностью сохранены, и удаляет хранящиеся кодированные потоки GOP, которая является кодируемой, когда от блока 140 управления CPB принимается информация о повторении.
Блок 140 управления CPB получает остаточную битовую скорость CPB, измененную во времени, используя информации о битовой скорости, введенную от блока 120 кодирования. Другими словами, блок 140 управления CPB получает остаточную битовую скорость CPB, как показано на концептуальной схеме на фиг. 1. Когда происходит опустошение CPB, блок 140 управления CPB выводит информацию о повторении на входной буфер 110, блок 120 кодирования, блок 150 регулировки параметров и выходной буфер 130, чтобы сигнализировать, что произошло опустошение CPB.
Когда блок 150 регулировки параметров принимает информацию о повторении от блока 140 управления CPB, блок 150 регулировки параметров вводит параметр кодирования для повторного кодирования на блок 120 кодирования, как описано выше. Соответственно, блок 120 кодирования выполняет кодирование той же самой GOP, используя во время повторного кодирования параметр кодирования, при котором генерированная битовая скорость уменьшается.
Поток процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 3. Далее в настоящем документе, соответствие блок-схеме последовательности выполнения операций на фиг. 3 описывается как S101, S102,..., и т.д.
Будут описаны следующие три случая процесса кодирования определенной GOP.
Случай 1: При кодировании GOP опустошение CPB не произошло.
Случай 2: При кодировании GOP произошло опустошение CPB, и его можно избежать при повторном кодировании.
Случай 3: при кодировании GOP произошло опустошение CPB, и его невозможно избежать даже при повторном кодировании.
Пример процесса в случае 1
Сначала будет описан случай 1, в котором опустошение CPB при кодировании группы GOP не произошло. Когда изображение GOP вводится во входной буфер 110, входной буфер 110 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 120 кодирования (S101). Кроме того, блок 120 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 130 (выходной буфер 130 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 140 управления CPB (S102).
Здесь параметр кодирования по умолчанию используется для кодирования, и процесс фильтрации в блоке 121 предварительного фильтра применяется к целевому изображению кодирования со степенью фильтрации предварительного фильтра, соответствующей параметру кодировения по умолчанию, и коэффициент DCT (дискретное косинусное преобразование), генерируемый в настоящем изображении, квантуется блоком 122 квантования, используя параметр квантования, соответствующий параметру кодирования по умолчанию.
Блок 140 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 120 кодирования. В этом примере, так как опустошение CPB не произошло, блок 140 управления CPB не выводит информацию о повторении (S103). Когда кодируемое целевое изображение является последним изображением входного видеосигнала, выходной буфер 130 выводит хранящийся кодированный поток, и процесс кодирования завершается (S104). Альтернативно, если целевое изображение кодирования является последним изображением группы GOP, выходной буфер 130 выходит сохраненный кодированный поток, входной буфер 110 удаляет хранящееся в нем изображение, и процесс переходит к процессу кодирования первого изображения в следующей группе GOP (S105). Здесь, поскольку повторное кодирование в GOP не происходит, параметр кодирования не изменяется и процесс переходит к процессу кодирования первого изображения в следующей GOP (S106).
Пример процесса в случае 2
Далее будет описан случай 2, в котором опустошение CPB произошло при кодировании GOP и его можно избежать при повторном кодировании. Когда изображение GOP вводится во входной буфер 110, входной буфер 110 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 120 кодирования (S101). Кроме того, блок 120 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 130 (выходной буфер 130 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 140 управления CPB (S102). Здесь при кодировании используется параметр кодирования по умолчанию.
Блок 140 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 120 кодирования. В результате, когда блок 140 управления CPB обнаруживает опустошение CPB для изображения, блок 140 управления CPB выводит информацию о повторении на блок 120 кодирования, блок 150 регулировки параметров, входной буфер 110 и выходной буфер 130 (S103).
Когда повторение для группы GOP, которая является кодируемой, (S107) еще не произошло, входной буфер 110 выводит первое изображение хранящейся GOP, которая является кодируемой, на блок 120 кодирования (S108) и блок 150 регулировки параметров выводит параметр кодирования для повторного кодирования на блок 120 кодирования (S109). Дополнительно, выходной буфер 130 удаляет кодированный поток группы GOP, которая является кодируемой. Кроме того, блок 120 кодирования кодирует первое изображение во входной группе GOP, используя параметр кодирования для повторного кодирования.
Здесь при кодировании используется параметр кодирования для повторного кодирования, процесс предварительной фильтрации в блоке 121 предварительного фильтра применяется к целевому изображению со степенью предварительной фильтрации, соответствующей параметру кодирования для повторного кодирования (степень размывания больше, чем для параметра кодирования по умолчанию), и коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 122 квантования, используя параметр квантования, соответствующий параметру кодирования для повторного кодирования (размер шага квантования больше, чем для параметра кодирования по умолчанию).
Затем изображения группы GOP последовательно вводятся из входного буфера 110 в блок 120 кодирования 120 и процесс кодирования выполняется блоком 120 кодирования 120 только тогда, когда опустошение CPB не происходит. Кроме того, когда кодирование последнего изображения группы GOP завершается (S105), кодированный поток GOP выводится из выходного буфера 130, блок 120 кодирования устанавливает параметр кодирования в качестве параметра кодирования по умолчанию (S106) и процесс переходит к кодированию следующего процесса GOP. Дополнительно, операция при завершении кодирования последнего изображения входного видео, подобна операции в случае 1, описанном выше.
Концептуальная схема изменения параметра кодирования при выполнении повторного кодирования представлена на фиг. 7. В примере, показанном на фиг. 7, поскольку опустошение CPB происходит при кодировании шестого изображения второй группы GOP2, устанавливаются параметры кодирования для повторного кодирования, чтобы подавить генерируемую битовую скорость, и GOP2 повторно кодируется, начиная с ее первого изображения I. Затем, так как возникновение опустошения CPB из-за повторного кодирования запрещено, параметр кодирования для повторного кодирования восстанавливается до параметра кодирования по умолчанию при кодировании, чтобы кодировать следующую группу GOP3, и процесс кодирования продолжается.
Концептуальная схема переходного процесса изменения остаточной битовой скорости CPB при выполнении повторного кодирования представлена на фиг. 8. Линия, обозначенная жирной линией, является остаточной битовой скоростью CPB после повторного кодирования. При повторном кодировании, так как степень размывания усиливается предварительным фильтром и параметр квантования больше, чем параметр кодирования по умолчанию, генерируемая битовая скорость подавляется, происходит переходной процесс, как показано, например, на фиг. 8, и опустошение CPB пресекается.
Пример процесса в случае 3
Наконец, будет описан случай 3, в котором опустошение CPB произошло при кодировании GOP и его нельзя избежать даже при повторном кодировании. В этом случае операция, при которой блок 140 управления CPB обнаруживает опустошение CPB и повторно кодирует GOP, выполняется подобно операции в случае 2. Когда опустошение CPB происходит во время повторного кодирования GOP, повторное кодирование прекращается (S107). Дополнительно, кодирование может быть не завершено, и может быть позволено отбрасывание кадра, так чтобы кодированные данные изображения, в котором произошло опустошение CPB, исключались без завершения кодирования и кодироваться будет следующее изображение.
Второй вариант осуществления
Далее в настоящем документе будет описан второй вариант осуществления настоящего изобретения. На фиг. 9 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии со вторым вариантом осуществления настоящего изобретения.
Сначала изображение, следующее за изображением, для которого кодирование было закончено во входном видеосигнале, устанавливается в качестве цели кодирования (этап S201). Входное изображение, установленное в качестве цели кодирования, кодируется, используя H.264 или любую другую из предварительно определенных схем кодирования (этап S202). Определение производится в отношении того, происходит ли из-за кодирования входного изображения опустошение CPB (этап S203). Если опустошение CPB происходит, процесс переходит к этапу S208. Дополнительно, определение в отношении того, произошло ли опустошение CPB, может быть сделано, используя способ, применяемый в стандарте H.264.
Если опустошение CPB не происходит, делается определение в отношении того, закончено ли кодирование последнего изображения (этап S204). Если кодирование последнего изображения закончено, процесс кодирования заканчивается.
В противном случае делается определение в отношении того, завершено ли кодирование группы изображений, следующих в порядке кодирования (этап S205). Если кодирование группы изображений, следующих в порядке кодирования, не завершено, процесс возвращается к этапу S201, на котором процесс кодирования продолжается, чтобы он был подобным образом выполнен на следующем изображении. Если кодирование группы изображений, следующих в порядке кодирования, завершается и если количество повторений равно 1 или больше, количество повторений уменьшается на 1 (этап S206). Дополнительно, начальное значение количества повторений равно 0. Затем параметры кодирования, заранее определенные в соответствии с количеством повторений, устанавливаются, основываясь на количестве повторений (этап S207), и процесс возвращает на этап S201, на котором процесс кодирования выполняется, начиная с первого изображения следующей группы изображений, следующих в порядке кодирования.
Если на этапе S203 обнаруживается, что происходит опустошение CPB, делается определение в отношении того, достигло ли значение текущего количества повторений предварительно определенного максимального значения (этап S208). Если количество повторений имеет максимальное значение, опустошение CPB может быть неизбежным, даже когда группа изображений, следующих в порядке кодирования, повторно кодируется. Соответственно, кодирование заканчивается.
Если количество повторений не достигло максимального значения, первое изображение в текущей группе изображений, следующих в порядке кодирования, устанавливается в качестве цели кодирования, чтобы повторно кодировать текущую группу изображений, следующих в порядке кодирования (этап S209). Кроме того, количество повторений увеличивается на 1 (этап S210). Затем один или оба из двух параметров кодирования (параметр квантования и степень предварительной фильтрации) изменяются (для параметра квантования изменяется размер шага, который должен стать больше, а для степени фильтрации изменяется степень размытия, которая должна стать больше) (этап S211). Процесс возвращается к этапу S202, на котором группа изображений, следующих в порядке кодирования, которая является кодируемой, кодируется повторно.
В настоящем изобретении, в основном, выполняется один процесс кодирования, и группа изображений, следующих в порядке кодирования (например, GOP), повторно кодируется, подавляя в то же время генерируемую битовую скорость ступенчатым способом, пока опустошение CPB не происходит, только когда опустошение CPB произошло, в отличие от предшествующего уровня техники (b), на котором все кадры входного видео кодируются дважды. Во время второго и последующего кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB, которая определяется в соответствии с количеством повторений. Соответственно, объем вычислений может быть уменьшен, и ухудшение качества видео за счет повторного кодирования может быть уменьшено по сравнению с предшествующим уровнем техники (b), на котором все изображения входного видео кодируются дважды.
Как описано выше, в настоящем варианте осуществления параметры кодирования изменяются в соответствии с количеством повторений на момент повторного кодирования. Здесь предварительный фильтр применяется к входному видео во время кодирования и параметрами кодирования, которые должны быть изменены, являются параметр квантования и степень фильтрации предварительного фильтра. Могут изменяться оба параметра кодирования или только один любой из них.
Для параметра квантования предварительно определенное значение смещения, возрастающее ступенчатым образом в соответствии с количеством повторений, прибавляется к значению параметра квантования, определенному во время обычного кодирования, и повторное кодирование выполняется, используя больший параметр квантования.
Для предварительного фильтра в настоящем варианте осуществления используется гауссов фильтр. Гауссов фильтр может быть создан посредством выборки гауссова распределения, представленного уравнением (1) в отношении x и y.
0
с
c
1
2
0
с
с-1
В уравнении (1), когда σ равно 0, гауссов фильтр не применяется, и, например, параметр кодирования по умолчанию σ=0, и параметр кодирования для повторного кодирования равен σ, если значение количества повторений равно c. σ имеет тем большее значение, чем больше значение c. 0<σ<σ< ……… Дополнительно, в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Дополнительно, например, параметр σ кодирования по умолчанию может изменяться в соответствии со степенью сложности каждого изображения, а σ может быть получено прибавлением предварительно определенного смещения к σ.
В варианте осуществления, который будет описан ниже, выполняется кодирование в соответствии со стандартом H.264, выбранным в качестве схемы кодирования. Дополнительно, группой изображений, следующих в порядке кодирования, является группа GOP. Концептуальная схема GOP, когда она кодирована, показана на фиг. 5. Одна группа GOP содержит 10 изображений, и изображения B и изображения P поочередно выстраиваются в порядке отображения, при котором изображение I является первым изображением, как в первом варианте осуществления.
Пример конфигурации устройства, соответствующего второму варианту осуществления настоящего изобретения, показан на фиг. 10. Входной буфер 210 хранит входной видеосигнал и выводит видеосигнал в качестве цели кодирования в блок 220 кодирования. Дополнительно, когда входной буфер 210 принимает от блока 240 управления CPB, который будет описан ниже, информацию, указывающую, что из-за возникновения опустошения CPB должно быть выполнено повторное кодирование (информация о повторении), входной буфер 210 выводит видеосигнал из первого изображения в GOP, которая является кодируемой, снова на блок 220 кодирования. Дополнительно, когда кодирование GOP завершается без приема информации о повторении, входной буфер 210 удаляет хранящийся видеосигнал GOP.
Блок 220 кодирования кодирует видеосигнал, поступающий из входного буфера 210, и выводит кодированный поток в выходной буфер 230. Дополнительно, блок 220 кодирования выводит битовую скорость (информацию о битовой скорости) каждого макроблока, генерированного при кодировании входного видеосигнала, на блок 240 управления CPB. Дополнительно, когда блок 220 кодирования принимает от блока 240 управления CPB информацию о повторении, видеосигнал из первого изображения в GOP, которая является кодируемой, вводится из входного буфера 210 снова в блок 220 кодирования и параметр кодирования для повторного кодирования вводится из блока 260 регулировки параметров в блок 220 кодирования. Соответственно, блок 220 кодирования выполняет повторное кодирование, используя введенный параметр кордирования для повторного кодирования.
На этапе, на котором кодированные потоки GOP были полностью сохранены, выходной буфер 230 выводит кодированные потоки GOP и, когда от блока 240 управления CPB принята информация о повторении, выходной буфер 240 удаляет хранящиеся кодированные потоки GOP, которая является кодируемой.
Блок 240 управления CPB получает остаточную битовую скорость CPB, измененную во времени, используя информации о битовой скорости, введенную от блока 220 кодирования. Другими словами, блок 240 управления CPB получает остаточную битовую скорость CPB, как показано на концептуальной схеме на фиг. 1. Кроме того, когда происходит опустошение CPB, блок 240 управления CPB выводит информацию о повторении на входной буфер 210, блок 220 кодирования, блок 250 управления количеством повторений и выходной буфер 230, чтобы сигнализировать, что произошло опустошение CPB.
Когда блок 250 управления количеством повторений получает информацию о повторении от блока 240 управления CPB, блок 250 управления количеством повторений прибавляет 1 к значению количества повторений и уведомляет блок 260 регулировки параметров об обновленном количестве повторений. Дополнительно, когда кодирование группы GOP, которая является кодируемой в настоящее время, закончено без приема информации о повторении от блока 240 управления CPB и значение количества повторений больше или равно 1, блок 250 управления количеством повторений вычитает 1 из значения количества повторений и уведомляет блок 260 регулировки параметров о количестве повторений. Когда кодирование GOP завершено и значение количества повторений равно 0, блок 250 управления количеством повторений уведомляет блок 260 регулировки параметров, что количество повторений равно 0.
Когда блок 260 регулировки параметров принимает количество повторений от блока 250 управления количеством повторений, блок 260 регулировки параметров вводит параметр кодирования, определенный в соответствии с количеством повторений, в блок 220 кодирования. Соответственно, блок 220 кодирования выполняет кодирование той же самой группы GOP, используя параметр кодирования, при котором генерированная битовая скорость уменьшается по мере увеличения количества повторений повторного кодирования.
Как описано выше, в настоящем варианте осуществления вводится концепция количества повторений, значение которого увеличивается, когда происходит повторное кодирование, и уменьшается в то время, когда кодирование GOP завершается, и блок 250 управления количеством повторений управляет количеством повторений. Этот количество повторений имеет предварительно определенное верхнее предельное значение, такое как "3", и повторное кодирование одной и той же GOP может выполняться, пока количество повторений не достигнет верхнего предельного значения. Значение смещения параметра квантования и степени фильтрации предварительного фильтра во время кодирования изменяется в соответствии со значением количества повторений.
Когда количество повторений равно 0, используется параметр кодирования по умолчанию. Когда количество повторений не равно 0 и, например, верхнее предельное значение количества повторений равно 3, параметры кодирования для повторного кодирования, соответствующие количествам повторений 1, 2 и 3, могут быть подготовлены заранее в виде таблицы параметров кодирования, и параметр кодирования, полученный из таблицы параметров кодирования, может использоваться для повторного кодирования.
Поток процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 9. Далее в настоящем документе соответствие блок-схеме последовательности выполнения операций на фиг. 9 описывается как S201, S202,..., и т.д.
Будут описаны следующие три случая процесса кодирования определенной GOP.
Случай 1: При кодировании GOP опустошение CPB не произошло.
Случай 2: Опустошение CPB произошло при кодировании GOP много раз, и его можно избежать при повторном кодировании.
Случай 3: Опустошение CPB произошло много раз при кодировании GOP, количество повторений попытки достигло верхнего предельного значения, и опустошения CPB нельзя избежать даже на повторном кодировании.
Пример процесса в случае 1
Сначала будет описан случай 1, в котором опустошение CPB при кодировании группы GOP не произошло. Когда изображение GOP вводится во входной буфер 210, входной буфер 210 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 220 кодирования (S201). Кроме того, блок 220 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 230 (выходной буфер 230 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 240 управления CPB (S202).
Здесь, например, если количество повторений, как предполагается, имеет начальное значение 0, параметр кодирования по умолчанию используется для кодирования, и процесс фильтрации блока 221 предварительного фильтра применяется к целевому изображению кодирования со степенью фильтрации, соответствующей параметру кодирования по умолчанию. Коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 222 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию. Когда количество повторений равно 1 или больше, кодирование выполняется, используя предварительную фильтрацию и процесс квантования, основываясь на степени фильтрации фильтра и параметре квантования, определенных в соответствии с количеством повторений.
Блок 240 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 220 кодирования. В этом примере, так как опустошение CPB не произошло, блок 240 управления CPB не выводит информацию о повторении (S203). Когда кодируемое целевое изображение является последним изображением входного видеосигнала, выходной буфер 230 выводит хранящиеся кодированные потоки и процесс кодирования завершается (S204). Альтернативно, если целевое изображение кодирования является последним изображением группы GOP, выходной буфер 230 выводит сохраненные кодированные потоки, входной буфер 210 удаляет хранящееся в нем изображение, и процесс переходит к процессу кодирования первого изображения в следующей группе GOP (S205-S207).
Когда кодирование GOP завершается без возникновения опустошения CPB, как в случае 1, блок 250 управления количеством повторений уменьшает значение текущего количества повторений на 1, за исключением случая, в котором количество повторений равно 0 (S206). Когда повторное кодирование происходит в GOP раньше, чем для GOP, для которой в настоящий момент кодирование завершено, количество повторений может быть не равно 0. Блок 250 управления количеством повторений уведомляет блок 260 регулировки параметров об измененном количестве повторений, и блок 260 регулировки параметров устанавливает в блоке 220 кодирования параметр кодирования, соответствующий сообщенному количеству повторений. Начинается кодирование первого изображения следующей группы GOP.
Пример процесса в случае 2
Далее будет описан случай 2, в котором опустошение CPB произошло много раз при кодировании GOP, и его можно избежать при повторном кодировании. Здесь будет описан случай, в котором количество повторений в то время, когда началось кодирование GOP, предполагается равным 1 и повторное кодирование выполняется дважды в одной и той же группе GOP.
Когда изображение GOP вводится во входной буфер 210, входной буфер 210 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 220 кодирования (S201). Кроме того, блок 220 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 230 (выходной буфер 230 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 240 управления CPB (S202). Здесь для кодирования используется параметр кодирования, соответствующий количеству повторений, равному 1.
Блок 240 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 220 кодирования. В результате, когда блок 240 управления CPB обнаруживает опустошение CPB для изображения, блок 240 управления CPB выводит информацию о повторении на блок 220 кодирования, блок 250 управления количеством повторений, входной буфер 210 и выходной буфер 230 (S203).
Так как текущее количество повторений равно 1 и не достигло 3, что является верхним предельным значением (S208), входной буфер 210 выводит первое изображение хранящейся группы GOP, которая является кодируемой, на блок 220 кодирования (S209). При этом блок 250 управления количеством приращивает количество повторений на 1 повторение, и количество повторений, значение которого равно 2, выводится на блок 260 регулировки параметров (S210).
Блок 260 регулировки параметров считывает параметр кодирования, когда количество повторений равно 2, из таблицы параметров кодирования и устанавливает параметр кодирования в блоке 220 кодирования (S211). Выходной буфер 230 удаляет кодированный поток группы GOP, которая является кодируемой.
В блоке 220 кодирования изображения GOP последовательно вводятся из входного буфера 210 и кодирование выполняется, только когда опустошение CPB не происходит. При этом кодировании, когда опустошение CPB происходит снова в той же самой GOP, количество повторений приращивается на 1, чтобы стать равным 3, посредством процесса, подобного описанному выше. Соответственно, параметр кодирования изменяется на параметр кодирования, соответствующий количеству повторений, равному 3, и затем кодирование снова последовательно выполняется на той же самой GOP, начиная с ее первого изображения. При кодировании этой GOP, когда опустошение CPB не произошло, количество повторений уменьшается на 1 блоком 250 управления количеством повторений, чтобы стать равным 2, и выполняется кодирование следующей GOP. В этом случае операции входного буфера 210 и выходного буфера 230 подобны операциям в описанном выше примере.
На фиг. 11 представлена концептуальная схема переходного процесса количества повторений и параметра кодирования в примере случая 2. В примере на фиг. 11, когда вторая группа GOP2 кодируется в состоянии, в котором количество повторений равно 1, опустошение CPB происходит при кодировании шестого изображения. Соответственно, количество повторений устанавливается равным 2, и GOP2 кодируется повторно, начиная с ее первого изображения I, снова используя параметр кодирования, соответствующий количеству повторений, равному 2. Даже на этом повторном кодировании опустошение CPB происходит в седьмом изображении и повторное кодирование выполняется, используя параметр кодирования, соответствующий количеству повторений, равному 3, при котором генерируемая битовая скорость является малой. При повторном кодировании, выполняемом снова, так как опустошение CPB не произошло, количество повторений уменьшается на 1, когда кодирование GOP2 закончено, и процесс переходит к кодированию следующей GOP3, используя параметр кодирования, соответствующий количеству повторений, равному 2.
На фиг. 8 представлена концептуальная схема переходного процесса изменения остаточной битовой скорости CPB при выполнении повторного кодирования. Линия, обозначенная жирной линией, является остаточной битовой скоростью CPB после повторного кодирования, как в первом варианте осуществления. При повторном кодировании, так как степень размывания усиливается предварительным фильтром, и параметр квантования больше, чем параметр кодирования по умолчанию, генерируемая битовая скорость подавляется, происходит переходной процесс, как показано, например, на фиг. 8, и опустошение CPB пресекается.
Пример процесса в случае 3
Наконец, будет описан случай 3, в котором опустошение CPB произошло много раз при кодировании одной и той же GOP и его нельзя избежать даже при повторном кодировании. Количество повторений, как предполагается, достигло 3 во время кодирования определенной GOP, подобно случаю 2. Дополнительно, когда блок 240 управления CPB обнаруживает, что опустошение CPB происходит при кодировании одной и той же GOP (S203), блок 250 управления количеством повторений обнаруживает, что количество повторений достигло верхнего предельного значения (S208), и кодирование завершается. В этом случае кодирование может быть не завершено и может быть разрешено отбрасывание кадра, так чтобы кодированные данные изображения, в котором произошло опустошение CPB, исключались без завершения кодирования и следующее изображение кодировалось.
Третий вариант осуществления
Далее в настоящем документе будет описан третий вариант осуществления настоящего изобретения. На фиг. 12 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с третьим вариантом осуществления настоящего изобретения.
Сначала изображение, следующее за изображением, для которого кодирование было закончено во входном видеосигнале, устанавливается в качестве цели кодирования (этап S301). Входное изображение, установленное в качестве цели кодирования, кодируется, используя H.264 или любую другую из предварительно определенных схем кодирования (этап S302). Делается определение в отношении того, произошло ли опустошение CPB (этап S303). Если опустошение CPB произошло, процесс переходит к этапу S308. Дополнительно, определение в отношении того, произошло ли опустошение CPB, может быть сделано, используя способ, применяемый в стандарте H.264.
Если опустошение CPB не произошло, делается определение в отношении того, завершено ли кодирование последнего изображения (этап S304). Если кодирование последнего изображения завершено, процесс кодирования заканчивается.
В противном случае делается определение в отношении того, завершено ли кодирование группы изображений, следующих в порядке кодирования (этап S305). Если кодирование группы изображений, следующих в порядке кодирования, не завершено, процесс возвращается к этапу S301, на котором процесс кодирования продолжается, выполняясь подобным образом на следующем изображении.
Когда кодирование группы изображений, следующих в порядке кодирования, завершается, определение делается в отношении того, удовлетворяются ли следующие условия, и количество повторений уменьшается на 1, только когда условия удовлетворяются (этап S306).
Условие 1: Количество повторений равно 1 или больше.
Условие 2: Остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения.
Когда количество повторений равно 0 или когда остаточная битовая скорость CPB меньше предварительно определенного порогового значения, количество повторений не уменьшается и первоначальное значение сохраняется.
Затем, основываясь на количестве повторений, устанавливается параметр кодирования, который может быть определен заранее в соответствии с количеством повторений (этап S307), и процесс возвращается на этап S301, где процесс кодирования выполняется, начиная с первого изображения следующей группы изображений, следующих в порядке кодирования.
Если на этапе S303 обнаруживается, что происходит опустошение CPB, делается определение в отношении того, достигло ли значение текущего количества повторений предварительно определенного максимального значения (этап S308). Если количество повторений имеет максимальное значение, опустошение CPB может быть неизбежным, даже если группа изображений, следующих в порядке кодирования, повторно кодируется. Соответственно, кодирование заканчивается.
Если количество повторений не достигло максимального значения, первое изображение в текущей группе изображений, следующих в порядке кодирования, устанавливается в качестве цели кодирования, чтобы повторно кодировать текущую группу изображений, следующих в порядке кодирования (этап S309). Кроме того, количество повторений приращивается на 1 (этап S310). Затем, основываясь на количестве повторений, один или оба из двух параметров кодирования (параметр квантования и степень предварительной фильтрации) изменяются (для параметра квантования изменяется размер шага, который должен стать больше, а для степени фильтрации изменяется степень размытия, которая должна стать больше) (этап S311), и процесс переходит к этапу S301, на котором группа изображений, следующих в порядке кодирования, которая является кодируемой, кодируется повторно.
В настоящем изобретении, в основном, выполняется один процесс кодирования, и группа изображений, следующих в порядке кодирования (например, GOP), повторно кодируется, только когда произошло опустошение CPB, подавляя при этом генерируемую битовую скорость ступенчатым способом до тех пор, пока не перестанет происходить опустошение CPB, в отличие от предшествующего уровня техники (b), на котором все кадры входного видео кодируются дважды. Во время повторного и последующего кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB, который определяется в соответствии с количеством повторений. Соответственно, объем вычислений может быть уменьшен, и ухудшение качества видео за счет повторного кодирования может быть уменьшено по сравнению с предшествующим уровнем техники (b), при котором все изображения входного видео кодируются дважды.
Как описано выше, в настоящем варианте осуществления параметры кодирования изменяются в соответствии с количеством повторений на момент повторного кодирования. Здесь во время кодирования предварительный фильтр применяется к входному видео и параметрами кодирования, которые должны изменяться, являются параметр квантования и степень фильтрации предварительного фильтра. Могут изменяться оба параметра кодирования или только один любой из них.
Для параметра квантования предварительно определенное значение смещения, возрастающее ступенчатым образом в соответствии с количеством повторений, прибавляется к значению параметра квантования, определенному во время обычного кодирования, и повторное кодирование выполняется, используя больший параметр квантования.
Для предварительного фильтра в настоящем варианте осуществления используется гауссов фильтр, как в первом варианте осуществления. Гауссов фильтр может быть создан посредством выборки гауссова распределения, представленного уравнением (1) в отношении x и y.
0
с
c
1
2
0
с
с-1
В уравнении (1), когда σ равно 0, гауссов фильтр не применяется, и, например, параметр кодирования по умолчанию σ=0, и параметр кодирования для повторного кодирования равен σ, если значение подстчета повторений равно c. σ имеет тем большее значение, чем больше значение c. 0<σ<σ< ……… Дополнительно, в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Дополнительно, например, параметр σ кодирования по умолчанию может изменяться в соответствии со степенью сложности каждого изображения, а σ может быть получен прибавлением предварительно определенного смещения к σ.
В варианте осуществления, который будет описан ниже, выполняется кодирование в соответствии со стандартом H.264, выбранным в качестве схемы кодирования. Дополнительно, группой изображений, следующих в порядке кодирования, является группа GOP. Концептуальная схема GOP, когда она кодирована, показана на фиг. 5. Одна группа GOP содержит 10 изображений, и изображения B и изображения P поочередно выстраиваются в порядке отображения, при котором изображение I является первым изображением, как в первом варианте осуществления.
Пример конфигурации устройства, соответствующего третьему варианту осуществления, показан на фиг. 13. Входной буфер 310 хранит входной видеосигнал и выводит видеосигнал в качестве цели кодирования в блок 320 кодирования. Дополнительно, когда входной буфер 310 принимает от блока 340 управления CPB, который будет описан ниже, информацию, указывающую, что из-за возникновения опустошения CPB должно быть выполнено повторное кодирование (информация о повторении), входной буфер 310 выводит видеосигнал из первого изображения в GOP, которая является кодируемой, снова на блок 320 кодирования. Дополнительно, когда кодирование GOP завершается без приема информации повторения, входной буфер 310 удаляет хранящийся видеосигнал GOP.
Блок 320 кодирования кодирует видеосигнал, поступающий от входного буфера 310, и выводит кодированный поток в выходной буфер 330. Дополнительно, блок 320 кодирования выводит битовую скорость (информацию о битовой скорости), генерированную при кодировании входного видеосигнала, на блок 340 управления CPB. Дополнительно, когда блок 320 кодирования принимает информацию о повторении от блока 340 управления CPB, видеосигнал из первого изображения в GOP, которая является кодируемой, вводится из входного буфера 310 снова и параметр кодирования для повторного кодирования вводится из блока 370 регулировки параметров. Соответственно, блок 320 кодирования выполняет повторное кодирование, используя введенный параметр кордирования для повторного кодирования.
Выходной буфер 330 выводит кодированный поток GOP на этапе, на котором сохраняются все кодированные потоки GOP. При этом, когда информация о повторении принимается от блока 340 управления CPB, выходной буфер 330 удаляет хранящийся кодированный поток группы GOP, которая является кодируемой.
Блок 340 управления CPB получает остаточную битовую скорость CPB, измененную во времени, используя информации о битовой скорости, введенную из блока 320 кодирования. Другими словами, блок 340 управления CPB получает остаточную битовую скорость CPB, как показано на концептуальной схеме на фиг. 1. Кроме того, когда происходит опустошение CPB, блок 340 управления CPB выводит информацию о повторении на входной буфер 310, блок 320 кодирования, блок 350 управления количеством повторений и выходной буфер 330, чтобы сигнализировать, что произошло опустошение CPB. Дополнительно, блок 340 управления CPB уведомляет блок 360 прогнозирования состояния CPB об остаточной битовой скорости CPB.
Когда блок 350 управления количеством повторений получает информацию о повторении от блока 340 управления CPB, блок 350 управления количеством повторений прибавляет 1 к значению количества повторений и уведомляет блок 370 регулировки параметров об обновленном количестве повторений.
Дополнительно, когда кодирование группы GOP, которая является кодируемой в настоящее время, закончено без приема информации о повторении от блока 340 управления CPB и если значение количества повторений больше или равно 1, блок 350 управления количеством повторений вычитает 1 из значения количества повторений и уведомляет блок 370 регулировки параметров о количестве повторений. Однако, когда информация об изменении/неизменении параметра, сообщенная блоком 360 прогноза состояния CPB, указывает, что "изменение параметра отсутствует", блок 350 управления количеством повторений не вычитает 1 из количества повторений, даже когда количество повторений больше или равно 1. Дополнительно, даже когда количество повторений равно 0, блок 350 управления количеством повторений не вычитает 1 из количества повторений, и уведомляет блок 370 регулировки параметров о значении текущего количества повторений.
Когда блок 370 регулировки параметров принимает количество повторений от блока 350 управления количеством повторений, блок 370 регулировки параметров вводит параметр кодирования, определенный в соответствии с количеством повторений, в блок 320 кодирования. Соответственно, блок 320 кодирования выполняет кодирование той же самой группы GOP, используя параметр кодирования, при котором генерированная битовая скорость уменьшается по мере увеличения количества повторений повторного кодирования.
Как описано выше, в настоящем варианте осуществления вводится концепция количества повторений, значение которого увеличивается, когда происходит повторное кодирование, и уменьшается, когда кодирование GOP завершается, и блок 350 управления количеством повторений управляет количеством повторений. Это количество повторений имеет предварительно определенное верхнее предельное значение, такое как "3", и повторное кодирование одной и той же группы GOP может выполняться до тех пор, пока количество повторений не достигнет верхнего предельного значения. Значение смещения параметра квантования и степени фильтрации предварительного фильтра во время кодирования изменяются в соответствии со значением количества повторений.
Когда значение повторений равно 0, используется параметр кодирования по умолчанию. Когда количество повторений не равно 0 и, например, верхнее предельное значение количества повторений равно 3, параметры кодирования для повторного кодирования, соответствующие количествам повторений 1, 2 и 3, могут быть подготовлены заранее в виде таблицы параметров кодирования, и параметр кодирования, полученный из таблицы параметров кодирования, может использоваться для повторного кодирования.
Поток процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 12. Далее в настоящем документе соответствие блок-схеме последовательности выполнения операций на фиг. 12 описывается как S301, S302,..., и т.д.
Будут описаны следующие три случая процесса кодирования определенной GOP.
Случай 1: При кодировании GOP опустошение CPB не произошло.
Случай 2: При кодировании GOP опустошение CPB произошло много раз, и его можно избежать при повторном кодировании.
Случай 3: При кодировании GOP опустошение CPB произошло много раз и количество повторений достигло верхнего предельного значения, и опустошения CPB нельзя избежать даже на повторном кодировании.
Пример процесса в случае 1
Сначала будет описан случай 1, в котором опустошение CPB при кодировании группы GOP не произошло. Когда изображение GOP вводится во входной буфер 310, входной буфер 310 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 320 кодирования (S301). Кроме того, блок 320 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 330 (выходной буфер 330 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 340 управления CPB (S302).
Здесь, например, если количество повторений, как предполагается, имеет начальное значение 0, параметр кодирования по умолчанию используется для кодирования, и процесс фильтрации блока 321 предварительного фильтра применяется к целевому изображению кодирования со степенью фильтрации предварительного фильтра, соответствующей параметру кодирования по умолчанию. Дополнительно, коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 322 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию. Когда количество повторений равно 1 или больше, кодирование выполняется, используя предварительную фильтрацию и процесс квантования, основываясь на степени фильтрации фильтра и параметре квантования, определенных в соответствии с количеством повторений.
Блок 340 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 320 кодирования. В этом примере, так как опустошение CPB не произошло, блок 340 управления CPB не выводит информацию о повторении (S303). Когда кодируемое целевое изображение является последним изображением входного видеосигнала, выходной буфер 330 выводит хранящийся кодированный поток, и процесс кодирования завершается (S304). Альтернативно, если целевое изображение кодирования является последним изображением группы GOP, выходной буфер 330 выходит сохраненный кодированный поток, входной буфер 310 удаляет хранящееся в нем изображение, и процесс переходит к процессу кодирования первого изображения в следующей группе GOP (S305-S307).
Как в случае 1, когда кодирование GOP завершается, не вызывая возникновение опустошения CPB, блок 340 управления CPB 340 сообщает блоку 360 прогноза состояния CPB информацию об остаточной битовой скорости CPB в то время, когда завершается кодирование GOP. Блок 360 прогноза состояния CPB определяет, равна или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение. Когда остаточная битовая скорость CPB равна или больше, чем пороговое значение, блок 360 прогноза состояния CPB сообщает блоку 350 управления количеством повторений в качестве информации об изменении/не изменении параметра, что параметр кодирования должен быть изменен. С другой стороны, когда остаточная битовая скорость CPB меньше порогового значения, блок 360 прогноза состояния CPB сообщает блоку 350 управления количеством повторений в качестве информации об изменении/не изменении параметра, что параметр кодирования не должен изменяться. Блок 350 управления количеством повторений уменьшает значение текущего количества повторений на 1, только когда информация об изменении/не изменении параметра указывает, что параметр кодирования должен быть изменен (S306).
Другими словами, когда повторное кодирование происходит в GOP раньше, чем в GOP, для которой в настоящий момент кодирование завершено, количество повторений может быть не равно 0. В этом случае блок 350 управления количеством повторений изменяет количество повторений в соответствии с уведомлением информации об изменении/неизменении параметра от блока 360 прогноза состояния CPB и сообщает блоку 370 регулировки параметров 370 измененное количество повторений. Блок 370 регулировки параметров устанавливает параметр кодирования в блоке 320 кодирования в соответствии с сообщенным количеством повторений и начинается кодирование первого изображения следующей GOP.
Пример процесса в случае 2
Далее будет описан случай 2, в котором опустошение CPB произошло много раз при кодировании GOP и его можно избежать при повторном кодировании. Здесь будет описан случай, в котором количество повторений в то время, когда началось кодирование GOP, равно 1 и повторное кодирование выполняется дважды в одной и той же группе GOP.
Когда изображение GOP вводится во входной буфер 310, входной буфер 310 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 320 кодирования (S301). Кроме того, блок 320 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 330 (выходной буфер 330 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 340 управления CPB (S302). Здесь для кодирования используется параметр кодирования, соответствующий количеству повторений, равному 1.
Блок 340 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 320 кодирования. В результате, когда блок 340 управления CPB обнаруживает опустошение CPB для изображения, блок 340 управления CPB выводит информацию о повторении на блок 320 кодирования, блок 350 управления количеством повторений, входной буфер 310 и выходной буфер 330 (S303).
Так как текущее количество повторений равно 1 и не достигло верхнего предельного значения 3 (S308), входной буфер 310 выводит первое изображение хранящейся GOP, которая является кодируемой, на блок 320 кодирования (S309). При этом количество повторений приращивается на 1 блоком 350 управления количеством повторений, и количество повторений, значение которого равно 2, выводится на блок 370 регулировки параметров (S310).
Блок 370 регулировки параметров считывает параметр кодирования, когда количество повторений равно 2, из таблицы параметров кодирования и устанавливает параметр кодирования в блоке 320 кодирования (S311). Выходной буфер 330 удаляет кодированный поток группы GOP, которая является кодируемой.
В блоке 320 кодирования изображения GOP последовательно вводятся из входного буфера 310 и кодирование выполняется, только когда опустошение CPB не происходит. При этом кодировании, когда опустошение CPB происходит снова в той же самой GOP, количество повторений приращивается на 1, чтобы быть равным 3, посредством процесса, подобного описанному выше процессу. Соответственно, параметр кодирования изменяется на параметр кодирования, соответствующий количеству повторений, равному 3, и затем кодирование снова последовательно выполняется на той же самой GOP, начиная с ее первого изображения.
При кодировании GOP, когда опустошение CPB более не происходит, блок 340 управления CPB сообщает блоку 360 прогноза состояния CPB информацию об остаточной битовой скорости CPB. Если остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения, блок 360 прогноза состояния CPB устанавливает информацию об изменении/неизменении параметра как "изменение" и в противном случае устанавливает информацию изменения/неизменения параметра как "без изменения". Блок 360 прогноза состояния CPB сообщает блоку 350 управления количеством повторений информацию об изменении/неизменении параметра.
Когда сообщенной информации об изменении/неизменении параметра является сообщение "изменение", количество повторений уменьшается на 1 блоком 350 управления количеством повторений, чтобы количество повторений равнялось 2, и выполняется кодирование следующей GOP. В этом случае операции входного буфера 310 и выходного буфера 330 подобны операциям в описанном выше примере. Когда информацией об изменении/неизменении параметра является сообщение "нет изменения", количество повторений остается равным 3 и выполняется кодирование следующей GOP.
На фиг. 11 представлена концептуальная схема переходного процесса количества повторений и параметра кодирования в примере случая 2. В примере на фиг. 11, когда вторая группа GOP2 кодируется в состоянии, в котором количество повторений равно 1, опустошение CPB происходит при кодировании шестого изображения, как во втором варианте осуществления. Соответственно, количество повторений устанавливается равным 2 и GOP2 кодируется повторно, начиная с ее первого изображения I, снова используя параметр кодирования, соответствующий количеству повторений, равному 2. Даже на этом повторном кодировании опустошение CPB происходит в седьмом изображении и повторное кодирование выполняется, используя параметр кодирования, соответствующий количеству повторений, равному 3, при котором генерируемая битовая скорость является малой.
Поскольку опустошение CPB при выполнении снова повторного кодирования не происходит, делается определение в отношении того, равна ли или больше остаточная битовая скорость, чем предварительно определенное пороговое значение. Здесь, поскольку остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения, количество повторений уменьшается на 1, когда кодирование GOP2 закончено, и процесс переходит к кодированию следующей GOP3, используя параметр кодирования, соответствующий количеству повторений, равному 2.
Концептуальная схема переходного процесса изменения остаточной битовой скорости CPB при выполнении повторного кодирования представлена на фиг. 8. Линия, обозначенная жирной линией, является остаточной битовой скоростью CPB после повторного кодирования, как в первом и втором вариантах осуществления. Так как степень размывания усиливается предварительным фильтром, и параметр квантования больше, чем для параметра кодирования по умолчанию при повторном кодировании, генерируемая битовая скорость подавляется и происходит переходной процесс, как показано, например, на фиг. 8, так что опустошение CPB пресекается.
Пример процесса в случае 3
Наконец, будет описан случай 3, в котором опустошение CPB произошло много раз при кодировании одной и той же GOP, количество повторений достигло верхнего предельного значения, и опустошения CPB нельзя избежать даже на повторном кодировании. Количество повторений, как предполагается, достигло 3 во время кодирования определенной GOP, подобно случаю 2. Дополнительно, когда блок 340 управления CPB обнаруживает, что опустошение CPB происходит при кодировании одной и той же GOP (S303), блок 350 управления количеством повторений обнаруживает, что количество повторений достигло верхнего предельного значения (S308), и кодирование завершается. Дополнительно, в этом случае кодирование может быть не завершено, и может быть разрешено отбрасывание кадра, так чтобы кодированные данные изображения, в котором произошло опустошение CPB, исключались без завершения кодирования и кодировалось следующее изображение.
Четвертый вариант осуществления
Далее в настоящем документе будет описан четвертый вариант осуществления настоящего изобретения. На фиг. 14 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с четвертым вариантом осуществления настоящего изобретения.
Сначала изображение, следующее за изображением, для которого кодирование было закончено во входном видеосигнале, устанавливается в качестве цели кодирования (этап S401). Входное изображение, установленное в качестве цели кодирования, кодируется, используя H.264 или любую другую из предварительно определенных схем кодирования (этап S402). Производится определение в отношении того, происходит ли опустошение CPB из-за кодирования входного изображения (этап S403). Если опустошение CPB происходит, процесс переходит к этапу S411. Дополнительно, определение в отношении того, произошло ли опустошение CPB, может быть сделано, используя способ, применяемый в стандарте H.264.
Если опустошение CPB не произошло, делается определение в отношении того, закончено ли кодирование последнего изображения (этап S404). Если кодирование последнего изображения закончено, процесс кодирования закончен.
В противном случае делается определение в отношении того, является ли кодированное изображение первым изображением I группы изображений, следующих в порядке кодирования (этап S405). Если текущее кодируемое изображение является первым изображением I группы изображений, следующих в порядке кодирования, изображение I устанавливается в качестве точки повторения (этап S406). Это является процессом обновления точки повторения после того, как было подтверждено, что опустошение CPB не произошло в следующем изображении I, так как точка повторения все еще установлена на первое изображение непосредственно предшествующей группы изображений, следующих в порядке кодирования, когда остаточная битовая скорость CPB меньше, чем предварительно определенное пороговое значение на этапе S409, который будет описан ниже. Дополнительно, когда на этапе S410 точка повторения установлена, точка повторений устанавливается в то же самое положение снова, но недостаток в процессе не возникает. Затем процесс возвращается к этапу S401, на котором выполняется кодирование следующего изображения.
Если кодированное изображение не является первым изображением в группе изображений, следующих в порядке кодирования, то делается определение в отношении того, завершено ли кодирование группы изображений, следующих в порядке кодирования (этап S407). Если кодирование группы изображений, следующих в порядке кодирования, не завершено, процесс возвращается к этапу S401, на котором процесс кодирования продолжается, выполняясь подобным образом на следующем изображении. Если кодирование группы изображений, следующих в порядке кодирования, завершается и параметр кодирования был изменен благодаря повторному кодированию группы изображений, следующих в порядке кодирования (повторение), параметр кодирования восстанавливается до значения во время обычного кодирования (этап S408).
Дополнительно делается определение в отношении того, равна ли или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение во время завершения кодирования группы изображений, следующих в порядке кодирования (этап S409). Когда остаточная битовая скорость CPB равна или больше, чем предварительно определенное пороговое значение, точка повторения устанавливается на первое изображение I следующей группы изображений, следующих в порядке кодирования (этап S410). Затем процесс возвращается к этапу S401, где выполняется кодирование следующей группы изображений, следующих в порядке кодирования, начиная с ее первого изображения.
Когда остаточная битовая скорость CPB меньше, чем предварительно определенное пороговое значение, точка повторения не обновляется и процесс возвращается к этапу S401, на котором выполняется кодирование следующей группы изображений, следующих в порядке кодирования.
Если на этапе S403 определяется, что опустошение CPB произошло, делается определение в отношении того, была ли повторно кодирована группа изображений, следующих в порядке кодирования (было ли закончено повторение) (этап S411). Если повторение было закончено, опустошение CPB может быть неизбежным, даже когда группа изображений, следующих в порядке кодирования, была повторно кодирована. Соответственно, кодирование заканчивается. Если повторение не было завершено, изображение для точки повторения устанавливается в качестве цели кодирования, чтобы повторно кодировать текущую группу изображений, следующих в порядке кодирования (этап S412). Кроме того, один или оба из двух параметров кодирования (параметр квантования и степень предварительной фильтрации) изменяются (для параметра квантования изменяется размер шага, который должен стать больше, а для степени фильтрации изменяется степень размытия, которая должна стать больше) (этап S413), и процесс возвращается к этапу S402, на котором группа изображений, следующих в порядке кодирования, которая является кодируемой, кодируется повторно.
Другими словами, группа изображений, следующих в порядке кодирования (например, GOP), кодируется дважды, только когда произошло опустошение CPB, в отличие от предшествующего уровня техники (b), на котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется с параметром кодирования, пригодным для пресечения опустошения CPB. Только соответствующая группа изображений, следующих в порядке кодирования, повторно кодируется (как исключение, повторное кодирование может выполняться, начиная непосредственно с предшествующей группы изображений, следующих в порядке кодирования), причем только тогда, когда произошло опустошение CPB, пресекая таким образом опустошение CPB. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), на котором все изображения входного видео кодируются дважды.
На фиг. 15 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с разновидностью четвертого варианта осуществления настоящего изобретения. Настоящее изобретение может быть осуществлено посредством замены процесса на этапе S408, показанном на фиг. 14, на процесс этапов S481-S483, показанных на фиг. 15. Процессы, отличные от этапа S408, по существу, подобны тем, которые показаны на фиг. 14.
Следуя процессу этапа S407, показанному на фиг. 14, делается определение в отношении того, был ли изменен параметр кодирования за счет повторной попытки (этап S481). Если параметр кодирования не был изменен за счет повторной попытки, процесс переходит к этапу S409. Если параметр кодирования был изменен из-за повторения, то делается определение в отношении того, равна ли или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение (этап S482). Если остаточная битовая скорость CPB меньше, чем предварительно определенное пороговое значение, параметр кодирования остается таким, как параметр кодирования, используемый при повторном кодировании, и параметр кодирования восстанавливается до первоначального параметра кодирования по умолчанию, только когда остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения (этап S483). Затем процесс переходит к этапу S409, на котором делается определение в отношении того, равна ли остаточная битовая скорость CPB или больше, чем второе предварительно определенное пороговое значение, но этот процесс и процесс этапа S410 подобны процессу этапов S409 и S410, показанных на фиг. 14. Дополнительно, первое пороговое значение и второе пороговое значение могут быть одними и теми же или разными значениями.
В варианте, показанном на фиг. 15, параметр кодирования восстанавливается до значения во время обычного кодирования, только когда остаточная битовая скорость CPB превышает предварительно определенное значение на момент времени, когда кодирование группы изображений, следующих в порядке кодирования, завершено, как описано выше. Причина этого следующая. Даже когда кодирование группы изображений, следующих в порядке кодирования, завершено, если остаточная битовая скорость CPB мала, восстановление параметра кодирования до значения во время обычного кодирования увеличивает генерируемую битовую скорость, так что опустошение CPB, очень вероятно, будет происходить при кодировании изображений последующей группы изображений, следующих в порядке кодирования. В процессе на фиг. 15, если остаточная битовая скорость CPB мала, параметр кодирования не изменяется. Соответственно, возникновение повторного кодирования пресекается при кодировании следующей группы изображений, следующих в порядке кодирования, и объем вычислений дополнительно снижается по сравнению с процессом, показанным на фиг. 14.
Как описано выше, в настоящем варианте осуществления параметр кодирования изменяется во время повторного кодирования. Здесь во время кодирования предварительный фильтр применяется к входному видео и параметрами кодирования, которые должны быть изменены, являются параметр квантования и степень фильтрации предварительного фильтра. Могут изменяться оба параметра кодирования или любой один из них.
Для параметра квантования предварительно определенное значение смещения прибавляется к значению параметра квантования во время обычного кодирования, и повторное кодирование выполняется, используя такой больший параметр квантования.
Для предварительного фильтра используется гауссов фильтр, как в первом варианте осуществления. Гауссов фильтр может быть создан посредством выборки гауссова распределения, представленного уравнением (1) в отношении x и y.
0
1
0
1
0
Когда σ равно 0, гауссов фильтр не применяется, и, например, параметр кодирования по умолчанию σ=0, и параметр кодирования для повторного кодирования σ>0. Дополнительно, в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Дополнительно, то, насколько может повышаться степень размывания во время повторного кодирования, может быть произвольно определено заранее. Дополнительно, например, параметр σ кодирования по умолчанию может изменяться в соответствии со степенью сложности каждого изображения, а σ может быть получен прибавлением предварительно определенного смещения к σ.
Что касается кодирования, то кодирование выполняется в соответствии со стандартом Н.264. Дополнительно, в настоящем варианте осуществления группой изображений, следующих в порядке кодирования, является группа GOP. Концептуальная схема GOP, когда она кодирована, показана на фиг. 5. Одна группа GOP содержит 10 изображений, и изображения B и изображения P поочередно выстраиваются в порядке отображения, при котором изображение I является первым изображением, как в первом варианте осуществления.
Пример конфигурации устройства, соответствующего четвертому варианту осуществления настоящего изобретения, показан на фиг. 16. Входной буфер 410 хранит входной видеосигнал и выводит видеосигнал в качестве цели кодирования в блок 420 кодирования. Дополнительно, когда входной буфер 410 принимает от блока 440 управления CPB, который будет описан ниже, информацию, указывающую, что из-за возникновения опустошения CPB должно быть выполнено повторное кодирование (информация о повторении), входной буфер 410 выводит видеосигнал, начиная с первого изображения GOP, установленного как точка повторения, снова на блок 420 кодирования. Дополнительно, когда информация о точке повторения вводится от блока 460 управления точкой повторения, входной буфер 410 удаляет хранящийся видеосигнал группы GOP, более ранней, чем точка повторения.
Блок 420 кодирования кодирует видеосигнал, поступающий из входного буфера 410, и выводит кодированный поток в выходной буфер 430. Дополнительно, блок 420 кодирования выводит битовую скорость (информацию о битовой скорости), генерированную при кодировании входного видеосигнала, на блок 440 управления CPB. Дополнительно, когда блок 420 кодирования принимает информацию о повторении от блока 440 управления CPB, видеосигнал, начиная с первого изображения в GOP, указанного точкой повторения, вводится из входного буфера 410 снова и параметр кодирования для повторного кодирования вводится из блока 470 регулировки параметров. Соответственно, повторное кодирование выполняется, используя введенный параметр кодирования для повторного кодирования.
Выходной буфер 430 выводит кодированный поток, определенный как подлежащий выводу, то есть кодированный поток как результат кодирования, определенный как не требующий повторного кодирования, основываясь на информации о точке повторения, полученной от блока 460 управления точкой повторения. При этом, когда выходной буфер 430 принимает информацию о повторении от блока 440 управления CPB, выходной буфер 430 удаляет хранящиеся кодированные потоки группы GOP, которая является кодируемой.
Блок 440 управления CPB получает остаточную битовую скорость CPB, измененную во времени, используя информацию о битовой скорости, введенную от блока 420 кодирования. Кроме того, когда происходит опустошение CPB, блок 440 управления CPB выводит информацию о повторении на входной буфер 410, блок 420 кодирования, блок 470 управления количеством повторений и выходной буфер 430, чтобы сигнализировать, что произошло опустошение CPB.
Блок 450 предсказания состояния CPB определяет, равна или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение. Когда остаточная битовая скорость CPB равна или больше, чем пороговое значение, блок 450 прогноза состояния CPB сообщает блоку 460 управления точкой повторения в качестве информации об изменении/неизменении параметра, что точкой повторения следующей GOP является ее следующее изображение I. Напротив, когда остаточная битовая скорость CPB меньше порогового значения, блок 450 прогноза состояния CPB сообщает блоку 460 управления точкой повторения в качестве информации об изменении/неизменении параметра, что точкой повторения первого изображения следующей GOP является первое изображение (изображение I) группы GOP, непосредственно предшествующей такой GOP.
Когда информация изменения/неизменения при повторении указывает, что точкой повторения первого изображения группы GOP, которая будет теперь кодироваться, является первое изображение непосредственно предшествующей группы GOP, блок 460 управления точкой повторения сообщает входному буферу 410, что точка повторения является первым изображением текущей кодируемой GOP, начиная с кодирования следующего изображения, когда повторное кодирование не происходит при кодировании первого изображения. Дополнительно, когда информация изменения/неизменения повторения указывает, что точка повторения является первым изображением GOP, которая теперь должна кодироваться, блок 460 управления точкой повторения сообщает входному буферу 410 и выходному буферу 430 о точке повторения. Здесь информация уведомления упоминается как информация о точке повторения. Как описано выше, входной буфер 410 вводит видеосигнал из изображения, основываясь на информации о точке повторения во время повторного кодирования, на блок 420 кодирования и выходной буфер 430 выводит только кодированный поток, определенный как подлежащий выводу, основываясь на информации о точке повторения.
Когда блок 470 регулировки параметров принимает информацию о повторении от блока 440 управления CPB, блок 470 регулировки параметров вводит параметр кодирования для повторного кодирования на блок 420 кодирования, как описано выше. Соответственно, блок 420 кодирования выполняет кодирование той же самой GOP, используя во время повторного кодирования параметр кодирования, при котором генерированная битовая скорость уменьшается.
Поток процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 14. Далее в настоящем документе соответствие блок-схеме последовательности выполнения операций на фиг. 14 описывается как S401, S402,..., и т.д.
Будут описаны следующие четыре случая процесса кодирования определенных групп GOP, в которых первая GOP является GOP1 и последующей GOP является GOP2.
Случай 1: Кодирование GOP 1 было завершено без возникновения опустошения CPB при кодировании GOP1, и опустошение CPB не произошло даже при кодировании первого изображения следующей GOP2.
Случай 2: Кодирование GOP1 было завершено, и опустошение CPB произошло при кодировании первого изображения следующей GOP2, так что необходимо повторное кодирование.
Случай 3: Опустошение CPB произошло при кодировании промежуточного изображения GOP2, так что необходимо повторное кодирование.
Случай 4: Опустошение CPB произошло при кодировании GOP2, и его невозможно избежать даже при повторном кодировании.
Пример процесса в случае 1
Сначала будет описан случай 1, в котором опустошение CPB при кодировании группы GOP1 не произошло. Когда изображение GOP1 вводится во входной буфер 410, входной буфер 410 сохраняет изображение и вводит изображение в качестве целевого изображения для кодирования в блок 420 кодирования (S401). Кроме того, блок 420 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 430 (выходной буфер 430 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 440 управления CPB (S402).
Здесь параметр кодирования по умолчанию используется для кодирования, и процесс фильтрации блока 421 предварительного фильтра применяется к целевому изображению кодирования со степенью фильтрации, соответствующей параметру кодирования по умолчанию. Дополнительно, коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 422 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию.
Блок 440 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 420 кодирования. В этом примере, так как опустошение CPB не произошло, блок 440 управления CPB не выводит информацию о повторении (S403). Когда кодируемое целевое изображение является последним изображением входного видеосигнала, выходной буфер 430 выводит хранящиеся кодированные потоки и процесс кодирования завершается (S404).
Когда целевое изображение кодирования является первым изображением в GOP1 (S405), блок 460 управления точкой повторения устанавливает первое изображение в GOP1 (изображение I) в качестве точки повторения (S406) и затем блок 420 кодирования выполняет кодирование следующего изображения.
Альтернативно, если целевое изображение кодирования является последним изображением GOP, блок 470 регулировки параметров изменяет параметр кодирования на параметр кодирования по умолчанию, когда параметр кодирования для повторного кодирования был использован при повторном кодировании (S408).
При этом блок 440 управления CPB выводит информацию об остаточной битовой скорости CPB на блок 450 прогноза состояния CPB и блок 450 прогноза состояния CPB определяет, равна ли или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение (S409). Блок 450 прогноза состояния CPB сообщает блоку 460 управления точкой повторения результат определения в качестве информации об изменении/неизменении точки повторения, описанной выше. Когда информация об изменении/неизменении точки повторения указывает, что точка повторения не должна изменяться (остаточная битовая скорость CPB меньше порогового значения), блок 460 управления точкой повторения сообщает входному буферу 410 точку повторения, являющуюся первым изображением в GOP1, в качестве информации о точке повторения. Затем процесс переходит к процессу кодирования первого изображения I в группе GOP2 (S402). Когда при кодировании изображения I (S403) опустошение CPB не происходит, блок 460 управления точкой повторения сообщает входному буферу 410 и выходному буферу 430 точку повторения, являющуюся первым изображением в GOP2 (S406). Другими словами, когда повторное кодирование происходит в последующем изображении GOP2, повторное кодирование выполняется, начиная с первого изображения в GOP2.
Когда остаточная битовая скорость CPB достаточна в то время, когда описанное выше кодирование GOP1 завершается, информация об изменении/неизменении точки повторения, указывающая, что точка повторения должна быть изменена, выводится из блока 450 прогноза состояния CPB на блок 460 управления точкой повторения и блок 460 управления точкой повторения сообщает входному буферу 410 точку повторения, являющуюся первым изображением в GOP2, в качестве информации о точке повторения (S410). В этом случае, даже когда опустошение CPB происходит в любом изображении более поздней группы GOP2, повторное кодирование выполняется, начиная с первого изображения в GOP2.
Пример процесса в случае 2
Далее будет описан случай 2, в котором опустошение CPB произошло при кодировании первого изображения GOP и его можно избежать при повторном кодировании. Когда информация об изменении/неизменении точки повторения в то время, когда кодирование GOP1 завершено, указывает, что точка повторения не должна изменяться, поскольку остаточная битовая скорость CPB меньше, как в случае 1, блок 460 управления точкой повторения сообщает входному буферу 410 точку повторения, являющуюся первым изображением в GOP1.
Затем процесс переходит к процессу кодирования первого изображения I в группе GOP2. Когда блок 440 управления CPB обнаруживает, что в изображении произошло опустошение CPB (S403), входной буфер 410 последовательно вводит изображения, начиная с первого изображения GOP1, в блок 420, основываясь на информации о повторении, полученной от блока 440 управления CPB 440, и блок 420 кодирования выполняет повторное кодирование. В этом случае в качестве параметра кодирования используется параметр кодирования для повторного кодирования, установленный блоком 470 регулировки параметров (S413). При этом повторном кодировании процесс предварительной фильтрации применяется к целевому изображению кодирования посредством блока 421 предварительного фильтра со степенью фильтрации предварительного фильтра, соответствующей параметру кодирования для повторного кодирования (степень размывания больше, чем для параметра кодирования по умолчанию). Дополнительно, коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 422 квантования, используя параметр квантования, соответствующий параметру кодирования для повторного кодировать (размер шага квантования больше, чем для параметра кодирования по умолчанию).
Когда кодирование завершается до последнего изображения группы GOP1 посредством повторного кодирования GOP1, точка повторения устанавливается на первом изображении в GOP1 или на первом изображении в GOP2, используя остаточную битовую скорость CPB в это время, и затем выполняется процесс кодирования первого изображения в GOP2.
Пример процесса в случае 3
В описанном выше случае 2 будет описан пример, в котором повторное кодирование необходимо, так как при кодировании первого изображения в GOP2 произошло опустошение CPB. При этом, когда опустошение CPB произошло в изображении, отличном от первого изображения в GOP2, повторное кодирование выполняется аналогичным образом, начиная с первого изображения в GOP2, используя параметр кодирования для повторного кодирования.
Концептуальная схема изменения параметра кодирования при выполнении повторного кодирования на промежуточном изображении в GOP2 представлена на фиг. 7. В примере, показанном на фиг. 7, как и в первом варианте осуществления, поскольку опустошение CPB происходит при кодировании шестого изображения группы GOP2, устанавливается параметр кодирования для повторного кодирования, чтобы подавить генерируемую битовую скорость, GOP2 повторно кодируется, начиная с ее первого изображения I. Так как возникновение опустошения CPB пресекается за счет повторного кодирования, параметр кодирования для повторного кодирования восстанавливается до параметра кодирования по умолчанию при кодировании следующей группы GOP3 и процесс кодирования продолжается.
На фиг. 8 представлена концептуальная схема переходного процесса изменения остаточной битовой скорости CPB при выполнении повторного кодирования. Линия, обозначенная жирной линией, является остаточной битовой скоростью CPB после повторного кодирования, как в первом-третьем вариантах осуществления. Так как степень размывания усиливается предварительным фильтром и параметр квантования при повторном кодировании больше, чем для параметра кодирования по умолчанию, генерируемая битовая скорость подавляется и выполняется переходной процесс, как показано, например, на фиг. 8, так что опустошение CPB пресекается.
Пример процесса в случае 4
Наконец, будет описан случай 4, в котором опустошение CPB произошло при кодировании GOP2 и его нельзя избежать даже при повторном кодировании. В этом случае операция, при которой блок 440 управления CPB обнаруживает опустошение CPB и выполняется повторное кодирование GOP2, выполняется подобно операции в приведенном выше случае 3. Когда опустошение CPB произошло во время повторного кодирования GOP2, кодирование завершается (S411). Дополнительно, кодирование может быть не завершено, и может быть разрешено отбрасывание кадра, так чтобы кодированные данные изображения, в котором произошло опустошение CPB, исключались без завершения кодирования и кодировалось следующее изображение.
Пятый вариант осуществления
Далее в настоящем документе будет описан пятый вариант осуществления настоящего изобретения. На фиг. 17 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с пятым вариантом осуществления настоящего изобретения.
Для М-го изображения и N-го изображения (N>M), следующих в порядке кодирования, N-M упоминается как расстояние между изображениями. Сначала получается максимальное расстояние между изображениями, являющееся расстоянием между изображениями, которое может прослеживаться до максимума в пределах ограничения по памяти во время повторного кодирования, основываясь на информации о доступном объеме памяти, предоставляемой извне, и сохраняется (S500).
Затем изображение, следующее за изображением, для которого кодирование было завершено во входном видеосигнале (первое изображение входного видеосигнала, когда начинается кодирование), устанавливается в качестве цели кодирования (этап S501). Входное изображение, установленное в качестве цели кодирования, кодируется, используя H.264 или любую другую из предварительно определенных схем кодирования (этап S502). Производится определение в отношении того, произошло ли опустошение CPB из-за кодирования входного изображения (этап S503). Если опустошение CPB произошло, процесс переходит к этапу S507. Дополнительно, определение в отношении того, произошло ли опустошение CPB, может быть сделано, используя способ, применяемый в стандарте H.264.
Если опустошение CPB не произошло, делается определение в отношении того, закончено ли кодирование последнего изображения (этап S504). Если кодирование последнего изображения закончено, процесс кодирования заканчивается.
В противном случае делается определение в отношении того, завершено ли кодирование группы изображений, следующих в порядке кодирования (этап S505). Если кодирование группы изображений, следующих в порядке кодирования, не завершено, процесс возвращается к этапу S501, на котором процесс кодирования продолжается, чтобы он был выполнен подобным образом на следующем изображении. Если кодирование группы изображений, следующих в порядке кодирования, завершено и параметр кодирования был изменен благодаря повторному кодированию (повторению) группы изображений, следующих в порядке кодирования, параметр кодирования восстанавливается до значения во время обычного кодирования (этап S506) и процесс возвращается к этапу S501, на котором процесс кодирования выполняется, начиная с первого изображения следующей группы изображений, следующих в порядке кодирования.
Если на этапе S503 определяется, что опустошение CPB произошло, делается определение в отношении того, была ли повторно кодирована текущая группа изображений, следующих в порядке кодирования (было ли завершено повторное кодирование) (этап S507). Если повторение было закончено, опустошение CPB может быть неизбежным, даже когда изображения в группе изображений, следующих в порядке кодирования, повторно кодируются. Соответственно, кодирование заканчивается. Если повторение не было завершено, точка повторения устанавливается для повторного кодирования изображения в текущей группе изображений, следующих в порядке кодирования. Другими словами, самое дальнее изображение, содержащееся в группе изображений, следующих в порядке кодирования, которая является кодируемой в пределах диапазона максимального расстояния между изображениями, вычисленного на этапе S500, устанавливается в качестве цели кодирования (этап S508). Кроме того, один или оба из двух параметров кодирования (параметр квантования и степень предварительной фильтрации) изменяются (для параметра квантования изменяется размер шага, который должен стать больше, а для степени фильтрации изменяется степень размытия, которая должна стать больше) (этап S509), и процесс возвращается к этапу S502, на котором повторное кодирование выполняется, начиная с изображения группы изображений, следующих в порядке кодирования, установленного в качестве точки повторения.
В соответствии с процессом повторного кодирования, описанного выше, множество изображений в группе изображений, следующих в порядке кодирования (например, GOP), кодируются дважды, только когда произошло опустошение CPB, в отличие от предшествующего уровня техники (b), на котором все кадры входного видео кодируются дважды. Во время повторного кодирования кодирование выполняется, используя параметр кодирования для пресечения опустошения CPB. Повторно кодируется только множество изображений в соответствующей группе изображений, следующих в порядке кодирования, чтобы пресечь опустошение CPB, только когда произошло опустошение CPB. Соответственно, объем вычислений может быть уменьшен по сравнению с предшествующим уровнем техники (b), на котором все изображения входного видео кодируются дважды. Дополнительно, память, требующаяся в качестве входного буфера и выходного буфера, может иметь размер, соответствующий только лишь предварительно определенному количеству изображений, так чтобы могло быть достигнуто снижение объема памяти.
На фиг. 18 представлена блок-схема последовательности выполнения операций способа управления кодированием видео в соответствии с разновидностью пятого варианта осуществления настоящего изобретения. Настоящее изобретение может быть осуществлено посредством замены процесса на этапе S506, показанном на фиг. 17, на процесс этапов S561-S563, показанных на фиг. 18. Процессы, отличные от этапа S506, подобны тем, которые показаны на фиг. 17.
Следуя процессу этапа S505, показанному на фиг. 17, делается определение в отношении того, был ли изменен параметр кодирования за счет повторения (этап S561). Если параметр кодирования не был изменен за счет повторения, процесс переходит к этапу S501, показанному на фиг. 17. Если параметр кодирования был изменен из-за повторения, то делается определение в отношении того, равна ли или больше остаточная битовая скорость CPB, чем предварительно определенное пороговое значение (этап S562). Если остаточная битовая скорость CPB меньше, чем предварительно определенное пороговое значение, параметр кодирования остается таким же, как параметр кодирования, использованный при повторном кодировании. Параметр кодирования восстанавливается до первоначального параметра кодирования по умолчанию, только когда остаточная битовая скорость CPB равна или больше предварительно определенного порогового значения (этап S563). Затем процесс возвращается к этапу S501, показанному на фиг. 17, на котором выполняется кодирование следующей группы изображений, следующих в порядке кодирования.
В варианте, показанном на фиг. 18, параметр кодирования восстанавливается до значения во время обычного кодирования, только когда остаточная битовая скорость CPB превышает предварительно определенное значение на момент времени, когда кодирование группы изображений, следующих в порядке кодирования, завершено. Причина этого следующая. Если остаточная битовая скорость CPB мала, даже когда кодирование группы изображений, следующих в порядке кодирования, завершено, восстановление параметра кодирования до значения во время обычного кодирования увеличивает генерируемую битовую скорость и, соответственно, опустошение CPB, очень вероятно, должно произойти при кодировании следующей группы изображений, следующих в порядке кодирования. В процессе, показанном на фиг. 18, если остаточная битовая скорость CPB мала, параметр кодирования не изменяется, так что появление повторного кодирования пресекается при кодировании следующей группы изображений, следующих в порядке кодирования, и объем вычислений дополнительно снижается по сравнению с процессом, показанным на фиг. 17.
В настоящем варианте осуществления параметр кодирования изменяется на момент повторного кодирования, как описано выше. Здесь предварительный фильтр применяется к входному видео во время кодирования и параметрами кодирования, которые должны быть изменены, являются параметр квантования и степень фильтрации предварительного фильтра. Могут изменяться оба параметра кодирования или любой из них.
Для параметра квантования предварительно определенное значение смещения прибавляется к значению параметра квантования во время обычного кодирования, и повторное кодирование выполняется, используя больший параметр квантования.
Для предварительного фильтра в настоящем варианте осуществления используется гауссов фильтр, как в первом варианте осуществления. Гауссов фильтр может быть создан посредством выборки гауссова распределения, представленного уравнением (1) в отношении x и y.
0
1
0
1
0
В уравнении (1), когда σ равно 0, гауссов фильтр не применяется, и, например, параметр кодирования по умолчанию σ=0, и параметр кодирования для повторного кодирования σ>0. Дополнительно, в настоящем варианте осуществления тип фильтра нижних частот не имеет значения. Дополнительно, то, насколько может повышаться степень размывания во время повторного кодирования, может быть произвольно определено заранее. Например, параметр σ кодирования по умолчанию может изменяться в соответствии со степенью сложности каждого изображения, а σ может быть получено прибавлением предварительно определенного смещения к σ.
Что касается кодирования, то кодирование выполняется в соответствии со стандартом Н.264. Дополнительно, в настоящем варианте осуществления группа изображений, следующих в порядке кодирования, является группой GOP, и концептуальная схема GOP при кодировании показана на фиг. 5. Одна группа GOP содержит 10 изображений, и изображения B и изображения P поочередно выстраиваются в порядке отображения, при котором изображение I является первым изображением, как в первом варианте осуществления.
Пример конфигурации устройства, соответствующего пятому варианту осуществления настоящего изобретения, показан на фиг. 19. Блок 600 определения максимального расстояния между изображениями уведомляется об объеме доступной памяти (информация о доступном объеме памяти) извне и получает максимальное расстояние между изображениями, которое может прослеживаться до максимума во время повторного кодирования, основываясь на доступном объеме памяти. В настоящем варианте осуществления входной видеосигнал группы GOP, которая является кодируемой, хранится во входном буфере 510 и кодированный поток GOP, которая является кодируемой, хранится в выходном буфере 530 для копирования при повторном кодировании. Блок 600 определения максимального расстояния между изображениями получает расстояние между изображениями, в котором сумма требуемого объема памяти в наихудшем случае входного буфера 510 и выходного буфера 530 и другого используемого объема памяти меньше или равна доступному объему памяти, и в то же время уменьшает значение максимального расстояния между изображениями, начиная с длины GOP, являющейся максимальным расстоянием между изображениями, чтобы определить максимальное расстояние между изображениями.
Здесь приведен пример, в котором вычисляется требуемый объем памяти при получении максимального расстояния между изображениями. Сначала определяется требуемый объем памяти входного буфера 510, как указано ниже.
Требуемый объем памяти входного буфера = (максимальное расстояние между изображениями +1)×(объем данных одного изображения)
При этом требуемый объем памяти выходного буфера 530 является максимальной битовой скоростью, которая может генерироваться, не вызывая опустошения CPB при ограничениях размера CPB и битовой скорости. Конкретно, требуемый объем памяти является максимальной битовой скоростью, при которой может возникнуть случай, в котором данные, введенные в CPB в соответствии с битовой скоростью, были полностью использованы (остаточная битовая скорость CPB равна 0 после кодирования GOP) в состоянии, в котором остаточная битовая скорость CPB непосредственно перед началом кодирования GOP равна размеру CPB. В качестве уравнения для вычисления, использующего количество битов, требуемый объем памяти выходного буфера представляется следующим уравнением.
Требуемый объем памяти выходного буфера = (битовая скорость/количество изображений в секунду)×(максимальное расстояние между изображениями +1)+(размер CPB в виде количества битов)
Дополнительно, может оказаться необходимым вычислить объем данных для нижеследующих данных. В случае H.264 декодированное изображение, созданное во время кодирования GOP, должно храниться как опорное изображение (если декодированное изображение не сохраняется, нет никакого опорного изображения, когда кодирование выполняется, начиная с точки повторения во время повторного кодирования), чтобы осуществить повторное кодирование. Изображение в GOP не обращается к изображению, более раннему, чем GOP. Соответственно, когда опорное изображение сохраняется в DPB (буфер декодированного изображения), память становится достаточной для изображений I и P во всех ситуациях, когда память обеспечивается следующим образом.
Когда повторное кодирование происходит в последнем изображении в GOP, может быть подготовлена память, соответствующая количеству изображений I и P в группе изображений, следующих в порядке кодирования, более ранней, чем изображение, с которого начинается повторное кодирование (изображение на максимальном расстоянии между изображениями) в порядке кодирования.
На фиг. 20 представлена концептуальная схема для объяснения этого требуемого объема памяти. На фиг. 20 GOP содержит 10 изображений и максимальное расстояние между изображениями равно 6. Количество изображений, которое должно храниться во входном буфере 510, максимально равно 7. При этом в примере на фиг. 20, декодированные изображения первого изображения I и следующего изображения Р также должны быть сохранены в памяти в качестве опорных изображений для повторного кодирования. При сравнении этого случая со случаем, в котором максимальное расстояние между изображениями равно длине GOP, DPB для двух изображений должен дополнительно хранить первое изображение I и второе изображение Р в случае, показанном на фиг. 20, но количество изображений, которое должно храниться во входном буфере 510, уменьшается на 3. Другими словами, поскольку максимальное расстояние между изображениями меньше, объем памяти для опорных изображений увеличивается, но количество изображений, которое должно храниться во входном буфере 510, дополнительно снижается. Соответственно, можно видеть, что малое максимальное расстояние между изображениями уменьшает требуемый объем памяти.
Дополнительно, в H.264 может делаться ссылка на вектор движения опорного изображения, и, соответственно, может быть необходима память для вектора движения. В дополнение, вычисление требуемой памяти зависит, например, от конфигурации кодера. Расстояние между изображениями, в котором сумма этих объемов памяти меньше или равна доступному объему памяти, получают для определения максимального расстояния между изображениями.
Дополнительно, при осуществлении настоящего изобретения максимальное расстояние между изображениями может быть вычислено внешним образом и передано в блок 600 определения максимального расстояния между изображениями вместо сообщения извне блоку 600 определения максимального расстояния между изображениями доступного объема памяти и вычисления максимального расстояния между изображениями.
Блок 600 определения максимального расстояния между изображениями сообщает блоку 560 управления точкой повторения информацию об определенном максимальном расстоянии между изображениями.
Входной буфер 510 сохраняет входной видеосигнал и выводит видеосигнал в качестве цели кодирования на блок 520 кодирования. Дополнительно, когда входной буфер 510 принимает от блока 540 управления CPB, который будет описан ниже, информацию, указывающую, что из-за возникновения опустошения CPB должно быть выполнено повторное кодирование (информация о повторении), входной буфер 510 выводит на блок 520 кодирования видеосигнал, начиная с точки повторения, снова сообщенной блоком 560 управления точкой повторения. Дополнительно, когда входному буферу 510 сообщается информация о точке повторения от блока 560 управления точкой повторения, входной буфер 510 удаляет хранящийся видеосигнал, соответствующей изображениям, хранящимся до точки повторения.
Блок 520 кодирования кодирует видеосигнал, поступающий из входного буфера 510 и выводит кодированный поток в выходной буфер 530. Дополнительно, когда кодирование изображения завершено, блок 520 кодирования 520 выводит битовую скорость (информацию о битовой скорости), генерированную, когда кодируется входной видеосигнал, на блок 540 управления CPB и выводит информацию, указывающую, что кодирование изображения завершено (информации о завершении кодирования изображения), на блок 560 управления точкой повторения. Дополнительно, когда блок 520 кодирования принимает информацию о повторении от блока 540 управления CPB, видеосигнал, начиная с изображения, соответствующего точке повторения в GOP, которая является кодируемой, вводится из входного буфера 510 снова, и параметр кодирования для повторного кодирования вводится из блока 550 регулировки параметров. Соответственно, блок 520 кодирования выполняет повторное кодирование, используя введенный параметр кодирования для повторного кодирования.
Выходной буфер 530 сохраняет кодированный поток, являющийся результатом кодирования группы GOP. Когда выходному буферу 530 сообщается от блока 560 управления точкой повторения информации о точке повторения, выходной буфер 530 выводит хранящиеся кодированные потоки, соответствующие изображениям до точки повторения, и удаляет данные из выходного буфера 530. Дополнительно, когда информация о повторении принимается от блока 540 управления CPB, выходной буфер 530 удаляет хранящиеся кодированные потоки группы GOP, которая является кодируемой.
Блок 540 управления CPB получает остаточную битовую скорость CPB, измененную во времени, используя информации о битовой скорости, введенную от блока 520 кодирования. То есть блок 540 управления CPB получает остаточную битовую скорость CPB, как показано на концептуальной схеме на фиг. 1. Кроме того, когда произошло опустошение CPB, блок 540 управления CPB выводит информацию о повторении на входной буфер 510, блок 520 кодирования, блок 550 регулировки параметров и выходной буфер 530, чтобы сигнализировать, что произошло опустошение CPB.
Когда блок 550 регулировки параметров принимает информацию о повторении от блока 540 управления CPB, блок 550 регулировки параметров вводит параметр кодирования для повторного кодирования на блок 520 кодирования, как описано выше. Соответственно, блок 520 кодирования выполняет кодирование той же самой GOP, используя во время повторного кодирования параметр кодирования, при котором генерированная битовая скорость уменьшается.
Блок 560 управления точкой повторения сообщает входному буферу 510 и выходному буферу 530 информацию о точке повторения, указывающую, какое изображение является точкой повторения, когда произошло опустошение CPB из-за кодирования следующего изображения, основываясь на информации о завершении кодирования изображения и информации о максимальном расстоянии между изображениями.
Поток процесса кодирования в настоящем варианте осуществления будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 17. Далее в настоящем документе соответствие блок-схеме последовательности выполнения операций на фиг. 17 описывается как S501, S502,..., и т.д.
Будут описаны следующие три случая процесса кодирования определенной GOP.
Случай 1: При кодировании GOP опустошение CPB не произошло.
Случай 2: Опустошение CPB произошло при кодировании GOP, и его можно избежать при повторном кодировании.
Случай 3: Опустошение CPB произошло при кодировании GOP, и его невозможно избежать даже при повторном кодировании.
Пример процесса в случае 1
Сначала будет описан случай 1, в котором опустошение CPB при кодировании группы GOP не произошло. Когда изображение GOP вводится во входной буфер 510, входной буфер 510 сохраняет изображение и вводит изображение в качестве целевого изображения кодирования в блок 520 кодирования (S501). Кроме того, блок 520 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 530 (выходной буфер 530 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 540 управления CPB. Дополнительно, блок 520 кодирования выводит информацию о завершении кодирования изображения на блок 560 управления точкой повторения (S502).
Здесь параметр кодирования по умолчанию используется для кодирования и процесс фильтрации блока 521 предварительного фильтра применяется к целевому изображению кодирования со степенью фильтрации, соответствующей параметру кодирования по умолчанию. Дополнительно, коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 522 квантования, используя параметр квантования в соответствии с параметром кодирования по умолчанию.
Блок 540 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 520 кодирования. В этом примере, так как опустошение CPB не произошло, блок 540 управления CPB не выводит информацию о повторении (S503). Когда целевое изображение кодирования является последним изображением входного видеосигнала, выходной буфер 530 выводит хранящиеся кодированные потоки и процесс кодирования завершается (S504). Альтернативно, если целевое изображение кодирования является последним изображением группы GOP, выходной буфер 530 выводит хранящийся кодированный поток, входной буфер 510 удаляет хранящееся в нем изображение и выполняется процесс кодирования первого изображения в следующей группе GOP (S505). Здесь, поскольку повторное кодирование в GOP не произошло, параметр кодирования не изменяется и выполняется процесс кодирования первого изображения в следующей группе GOP (S506).
Пример процесса в случае 2
Далее будет описан случай 2, в котором при кодировании GOP произошло опустошение CPB и его можно избежать при повторном кодировании. Когда изображение GOP вводится во входной буфер 510, входной буфер 510 сохраняет изображение и вводит изображение в качестве целевого изображения кодирования в блок 520 кодирования (S501). Кроме того, блок 520 кодирования кодирует изображение, выводит кодированный поток в выходной буфер 530 (выходной буфер 530 хранит кодированный поток вместо того, чтобы вывести кодированный поток) и выводит информацию о битовой скорости для изображения на блок 540 управления CPB (S502). Здесь при кодировании используется параметр кодирования по умолчанию.
Блок 540 управления CPB вычисляет остаточную битовую скорость CPB для изображения, основываясь на информации о битовой скорости, введенной от блока 520 кодирования. В результате, когда блок 540 управления CPB обнаруживает опустошение CPB для изображения, блок 540 управления CPB выводит информацию о повторении на блок 520 кодирования, блок 550 регулировки параметров, входной буфер 510 и выходной буфер 530 (S503).
Когда повторение для группы GOP, которая является кодируемой, (S507) еще не произошло, входной буфер 510 выводит изображение группы GOP, которая является кодируемой, хранящийся в положении, указанном точкой повторения, на блок 520 кодирования (S508) и блок 550 регулировки параметров выводит параметр кодирования для повторного кодирования на блок 520 кодирования (S509). Дополнительно, выходной буфер 530 удаляет кодированный поток группы GOP, которая является кодируемой. Кроме того, блок 520 кодирования кодирует изображения, следующие за введенной точкой повторения, используя параметр кодирования для повторного кодирования.
Здесь параметр кодирования для повторного кодирования используется для кодирования и процесс предварительной фильтрации в блоке 521 предварительного фильтра применяется к целевому изображению кодирования со степенью фильтрации предварительного фильтра, соответствующей параметру кодирования для повторного кодирования (степень размывания больше, чем для параметра кодирования по умолчанию). Дополнительно, коэффициент DCT, генерируемый в настоящем изображении, квантуется блоком 522 квантования, используя параметр квантования, соответствующий параметру кодирования для повторного кодирования (размер шага квантования больше, чем для параметра кодирования по умолчанию).
Затем изображения группы GOP последовательно вводятся из входного буфера 510 в блок 520 кодирования 520 и подвергаются процессу кодирования блоком 520 кодирования только тогда, когда опустошение CPB не происходит. Кроме того, когда кодирование последнего изображения группы GOP завершено (S505), кодированный поток GOP выводится из выходного буфера 530 и блок 520 кодирования устанавливает параметр кодирования на параметр кодирования по умолчанию (S506). Процесс переходит к процессу кодирования следующей GOP. Дополнительно, операция при завершении кодирования последнего изображения входного видео выполняется подобно операции в случае 1, описанном выше.
Концептуальная схема изменения параметра кодирования при выполнении повторного кодирования представлена на фиг. 7. В примере, показанном на фиг. 7, как и в первом варианте осуществления, поскольку опустошение CPB произошло при кодировании шестого изображения группы GOP2, устанавливается параметр кодирования для повторного кодирования, чтобы подавить генерируемую битовую скорость, и GOP2 повторно кодируется, начиная с ее первого изображения I в пределах диапазона максимального расстояния между изображениями. Так как возникновение опустошения CPB пресекается за счет повторного кодирования, параметр кодирования для повторного кодирования восстанавливается до параметра кодирования по умолчанию при кодировании следующей группы GOP3 и процесс кодирования продолжается.
Концептуальная схема переходного процесса изменения остаточной битовой скорости CPB при выполнении повторного кодирования представлена на фиг. 8. Линия, обозначенная жирной линией, является остаточной битовой скоростью CPB после повторного кодирования, как в первом-четвертом вариантах осуществления. При повторном кодировании, так как степень размывания усиливается предварительным фильтром и параметр квантования больше, чем параметр кодирования по умолчанию, генерируемая битовая скорость подавляется, происходит переходной процесс, как показано, например, на фиг. 8, так что опустошение CPB пресекается.
На фиг. 21 представлено снижение объема памяти входного буфера и выходного буфера посредством ограничения точки повторения до максимального расстояния между изображениями. Случай, в котором точка повторения устанавливается в соответствии с настоящим изобретением, будет описан как "случай А". Например, изображение, с которого начинается повторное кодирование, когда произошло опустошение CPB, также всегда рассматривают как первое изображение группы изображений, следующих в порядке кодирования, (например, GOP), в отличие от настоящего варианта осуществления. Этот случай упоминается как "случай В". Случай А будет сравниваться со случаем В. Например, в случае A, если в настоящий момент кодированное изображение является девятым изображением P группы GOP2', как показано на фиг. 21, и максимальное расстояние между изображениями равно "5", точка повторения является четвертым изображением (изображение P) группы GOP2' и три изображения A21, начиная с первого изображения группы GOP2' раньше точки повторения, не используются для повторного кодирования. По этой причине данные во входном буфере 510 и выходном буфере 530, соответствующие этим изображениям, сохранять не требуется (могут быть удалены). С другой стороны, в случае, таком как случай B, поскольку необходимо хранить данные, соответствующие изображениям, во входном буфере 510 и выходном буфере 530, пока кодирование в группе GOP2 не будет завершено, начиная от первого изображения в GOP2', требуемый объем памяти увеличивается. В настоящем варианте осуществления (случай A), поскольку максимальное расстояние между изображениями вычисляется так, чтобы установить точку повторения, можно снизить объем памяти, по сравнению со случаем B.
Пример процесса в случае 3
Далее будет описан случай 3, в котором опустошение CPB произошло при кодировании GOP и его нельзя избежать даже при повторном кодировании. В этом случае операция, при которой блок 540 управления CPB обнаруживает опустошение CPB и повторно кодирует GOP, выполняется подобно операции в случае 2. Когда опустошение CPB происходит во время повторного кодирования GOP, повторное кодирование прекращается (S507). Дополнительно, кодирование может быть не завершено, и может быть разрешено отбрасывание кадра, так чтобы кодированные данные изображения, в котором произошло опустошение CPB, исключались без завершения кодирования и следующее изображение кодировалось.
Процесс кодирования видео, соответствующий первому-пятому вариантам осуществления, описанным выше, может быть реализован компьютером и программой программного обеспечения, и программа может быть записана на компьютерно-читаемом записывающем носителе или быть предоставлена через сеть.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение может быть применено к технологии кодирования видео для кодирования видеосигнала, так чтобы опустошение гипотетического буфера, такого как буфер кодированных изображений, в гипотетическом декодере не происходило и качество видео для кодированного видео могло быть улучшено.
Ссылочные позиции
110, 210, 310, 410, 510 Входной буфер
120, 220, 320, 420, 520 Блок кодирования
121, 221, 321, 421, 521, Блок предварительного фильтра
122, 222, 322, 422, 522 Блок квантования
130, 230, 330, 430, 530 Выходной буфер
140, 240, 340, 440, 540 Блок управления CPB
150, 260, 370, 470, 550 Блок регулировки параметров
250, 350 Блок управления количеством повторений
360, 450 Блок прогноза состояния CPB
460, 560 Блок управления точкой повторения
600 Блок определения максимального расстояния между изображениями