УСТРОЙСТВО ОБРАБОТКИ ВИДЕОПОТОКОВ, А ТАКЖЕ СПОСОБ УПРАВЛЕНИЯ, ПРОГРАММА И НОСИТЕЛЬ ЗАПИСИ ДЛЯ НЕГО
VIDEO STREAM PROCESSING APPARATUS, AS WELL AS CONTROL METHOD, PROGRAMME AND RECORDING MEDIUM FOR SAID APPARATUS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к устройству обработки видеопотоков для одновременного отображения множества видеоконтентов на экране, а также относится к способу управления, программе и носителю записи для него.
УРОВЕНЬ ТЕХНИКИ
С увеличением количества каналов и распространения широкополосной связи благодаря цифровому формату вещания количество видеоконтентов, имеющихся в распоряжении в мире, таких как ТВ-вещание, DVD-пакеты и распространение через сеть Интернет, имеет тенденцию увеличиваться. Кроме того, вследствие развития носителей записи, таких как накопитель на жестком диске и т.д., в конфигурациях большой емкости, стало возможным дома записывать и хранить больший объем видеоконтента, и стиль просмотра видео в домашних условиях постепенно изменяется, так что любой привлекательный контент должен записываться в качестве временной меры.
Для того чтобы дать пользователю возможность отыскивать целевой контент из огромного количества видео, является эффективным так называемое множественное представление для показа большого количество видеоизображений в виде списка. В частности, в последнее время привлекло внимание множественное представление видеоминиатюр, которое дает возможность интуитивного выбора целевого видео.
Для того чтобы осуществлять множественное представление видеоминиатюр, необходимо одновременно декодировать и воспроизводить множество видеопотоков, которые были кодированы из видеосигналов в цифровой форме, чтобы сжимать объем данных. Технология для этой цели, например, была представлена в патентном документе 1.
Фиг.14 - структурная схема, показывающая устройство обработки видеопотоков, основанное на традиционной технологии, раскрытой в патентном документе 1. В селекторе 1401 входов j видеопотоков, обозначенных контроллером 1411 декодирования, выбираются из входных видеопотоков. Декодеры определены в соответствии с количеством j, и выходные потоки подаются в определенные декодеры. Что касается объемов обработки декодеров, декодеры, имеющие разные объемы обработки, активируются в соответствии с количеством видеопотоков для выполнения процессов декодирования, так что объемы обработки декодеров 1403 и 1404 устанавливаются как половина от таковых у декодера 1402, подобным образом, объемы обработки декодеров 1405 и 1407 устанавливаются, чтобы быть одной j-й, в силу чего множество видеопотоков декодируется без изменения общего объема обработки.
Патентный документ 1: японский патент № 3865190.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
ПРОБЛЕМЫ, КОТОРЫЕ ДОЛЖНЫ БЫТЬ РЕШЕНЫ ИЗОБРЕТЕНИЕМ
В описанной выше традиционной технологии назначаются процессы декодирования с объемами обработки в соответствии с количеством видеопотоков. Является известным обстоятельством, что объем обработки, занимаемый для декодирования видеопотоков, меняется в зависимости от времени, и есть тенденция, что объем обработки для кадра, который кодировался посредством внутрикадрового предсказания, является большим, чем для кадра, который кодировался посредством межкадрового предсказания. Когда при параллельном декодировании множества видеопотоков, кадры, которые кодировались посредством внутрикадрового предсказания и поэтому нуждаются в больших объемах обработки, появляются одновременно для выполнения декодирования, нагрузки временно концентрируются, вызывая проблему задержки обработки. Для решения этой проблемы традиционная технология не может помогать отбору минимально допустимого запаса для объема обработки, чтобы справляться с обработкой кадров, которые кодировались посредством внутрикадрового предсказания и поэтому нуждаются в больших объемах обработки, следовательно, оценивается, что объем обработки на каждый видеопоток должен быть больше. Как результат, возникает проблема, что выбирается средство декодирования, имеющее меньший объем обработки, чем необходимый.
Настоящее изобретение предназначено для решения вышеприведенной проблемы, следовательно, цель состоит в том, чтобы сделать эффективным использование ограниченных ресурсов и улучшить качество воспроизведения или количество воспроизводимых потоков посредством назначения надлежащих объемов обработки для процессов декодирования, без выбора средства декодирования, имеющего меньший объем обработки, чем необходимый.
СРЕДСТВО ДЛЯ РЕШЕНИЯ ПРОБЛЕМ
Устройство обработки видеопотоков согласно настоящему изобретению представляет собой устройство обработки видеопотоков, включающее в себя селектор входов для выбора множества видеопотоков и секцию декодирования для параллельного выполнения процессов декодирования выбранных видеопотоков, и содержит: анализатор потоков для анализа выбранных видеопотоков для извлечения кодированной информации в отношении одного кадра видео; и секцию планирования для настройки выполнения процессов декодирования выбранных видеопотоков в соответствии с кодированной информацией, так что нагрузки процессов декодирования в секции декодирования делаются равномерными по времени.
Устройство дополнительно включает в себя контроллер отображения выходных данных для определения и изменения формы отображения видеопотоков на дисплейном экране и отличается тем, что секция планирования определяет и изменяет приоритетные очередности в порядке воспроизведения видеопотоков в соответствии с формой воспроизведения на дисплейном экране, которая определялась и изменялась контроллером отображения выходных данных.
Устройство обработки также отличается тем, что анализатор потоков извлекает информацию, которая означает, что типы кодированных кадров в видеопотоках являются кодированием с внутрикадровым предсказанием либо кодированием с межкадровым предсказанием, а секция планирования настраивает временные характеристики выполнения процессов декодирования, чтобы распределять процессы декодирования кадров, кодированных посредством внутрикадрового предсказания, по времени.
Устройство также отличается тем, что секция планирования оценивает нагрузку на процесс декодирования кодированного кадра в секции декодирования, чтобы определять, является ли декодирование кадра выполнимым, и управлять выполнением процессов декодирования кадров, кодированных посредством внутрикадрового предсказания и кодированных посредством межкадрового предсказания.
Устройство также отличается тем, что анализатор потоков рассчитывает количество кодов кодированного кадра в видеопотоке, а секция планирования оценивает по количеству кодов тип кодирования кадра, который должен быть кодированием с внутрикадровым предсказанием или кодированием с межкадровым предсказанием, и настраивает временные характеристики выполнения процессов декодирования, чтобы распределять процессы декодирования кадров, которые оценены как кодированные посредством внутрикадрового предсказания, по времени.
Устройство также отличается тем, что секция планирования оценивает по количеству кодов нагрузку на процесс декодирования кадра в секции декодирования, чтобы определять секцию декодирования, которая может декодировать кадр, на основании производительности.
Способ управления для устройства обработки видеопотоков согласно настоящему изобретению является способом управления для устройства обработки видеопотоков, включающего в себя селектор входов для выбора множества видеопотоков и секцию декодирования для параллельного выполнения процессов декодирования выбранных видеопотоков, и содержит этапы: анализа выбранных видеопотоков для извлечения кодированной информации об одном кадре видео; и настройки выполнения процессов декодирования выбранных видеопотоков в соответствии с кодированной информацией, так что нагрузки процессов декодирования в секции декодирования делаются равномерными по времени.
К тому же программа согласно настоящему изобретению отличается тем, что побуждает компьютер выполнять вышеприведенный способ управления для устройства обработки видеопотоков.
К тому же носитель записи согласно настоящему изобретению отличается тем, что на нем записана вышеприведенная программа машиночитаемым образом.
ПРЕИМУЩЕСТВО ИЗОБРЕТЕНИЯ
Согласно настоящему изобретению, сконфигурированному из каждого технического средства, описанного выше, поскольку порядок выполнения процессов декодирования настраивается адаптивно, в соответствии с кодированными типами кадров, которые составляют видеопотоки, и поскольку необходимые объемы обработки назначаются для декодирования, декодирование может управляться без использования средства декодирования с предопределенным объемом обработки. Соответственно, нет необходимости обеспечивать большой объем обработки для одного видеопотока в соответствии с объемом обработки I-изображения, отсюда назначение подходящих объемов обработки процессам декодирования без выбора какого бы то ни было средства декодирования, которое является меньшим по объему обработки, чем необходимо, дает возможность улучшения качества воспроизведения и увеличения количества видеопотоков, которые могут воспроизводиться, с эффективным использованием ограниченных ресурсов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - структурная схема, показывающая конфигурационный пример устройства обработки видеопотоков согласно первому варианту осуществления настоящего изобретения.
Фиг.2 - структурная схема, показывающая конфигурационный пример анализатора потоков согласно первому варианту осуществления настоящего изобретения.
Фиг.3 - структурная схема, показывающая конфигурационный пример секции планирования согласно первому варианту осуществления настоящего изобретения.
Фиг.4 - блок-схема последовательности операций способа, показывающая полную последовательность операций секции планирования согласно первому варианту осуществления настоящего изобретения.
Фиг.5 - блок-схема последовательности операций способа, показывающая поток обработки по ST405 на фиг.4.
Фиг.6 - блок-схема последовательности операций способа, показывающая поток обработки по ST409 на фиг.4.
Фиг.7 - схема, показывающая пример формы отображения видеопотоков в соответствии с первым вариантом осуществления настоящего изобретения.
Фиг.8 - схема, показывающая пример таблицы процессов согласно первому варианту осуществления настоящего изобретения.
Фиг.9 - график, показывающий очередность выполнения процессов декодирования согласно первому варианту осуществления настоящего изобретения.
Фиг.10 - структурная схема, показывающая конфигурационный пример устройства обработки видеопотоков согласно второму варианту осуществления настоящего изобретения.
Фиг.11 - структурная схема, показывающая конфигурационный пример секции планирования согласно второму варианту осуществления настоящего изобретения.
Фиг.12 - блок-схема последовательности операций способа, показывающая полную последовательность операций секции планирования согласно второму варианту осуществления настоящего изобретения.
Фиг.13 - схема, показывающая пример таблицы процессов согласно второму варианту осуществления настоящего изобретения.
Фиг.14 - структурная схема, показывающая конфигурационный пример устройства обработки видеопотоков согласно предшествующему уровню техники.
ОПИСАНИЕ НОМЕРОВ ССЫЛОК
100 - устройство обработки видеопотоков
101 - селектор входов
102 - анализатор потоков
,
103111, 112 - секция декодирования
104 - секция памяти выходных данных
105 - секция коммутации выходов
106 - секция вывода отображения
107, 113 - секция планирования
108 - контроллер отображения выходных данных
110 - секция коммутации входов
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Ниже варианты осуществления настоящего изобретения будут описаны со ссылкой на чертежи. Одинаковыми ссылочными позициями обозначены идентичные компоненты.
<Первый вариант осуществления>
Фиг.1 - структурная схема, показывающая конфигурационный пример устройства 100 обработки видеопотоков согласно первому варианту осуществления настоящего изобретения.
Как показано на фиг.1, устройство 100 обработки видеопотоков включает в себя селектор 101 входов, анализатор 102 потоков, секцию 103 декодирования, секцию 104 памяти выходных данных, секцию 105 коммутации выходов, секцию 106 вывода отображения, секцию 107 планирования и контроллер 108 отображения выходных данных.
Компоненты, которые составляют конфигурацию по настоящему изобретению, реализованы аппаратными средствами, сконфигурированными из микропроцессора, памяти, шины, интерфейса, периферийного оборудования и т.д., и программным обеспечением, которое является выполняемым на аппаратных средствах.
В этой конфигурации устройство 100 обработки видеопотоков декодирует множество видеопотоков, которые параллельно подаются через селектор 101 входов, и выдает таковые из секции 106 вывода отображения в таком стиле, чтобы они были видны и одновременно просматривались на дисплейном экране. Здесь форма отображения видеопотоков, то есть каким образом видеопотоки отображаются, определяется контроллером 108 отображения выходных данных. Отображение на дисплейном экране может выдаваться в качестве представления воспроизведения одного видеопотока, двухкадрового представления основного кадра и вспомогательного кадра или множественного представления списка видимых видео, которые используются в записывающих устройствах большой емкости, системе видео по запросу или тому подобном. Видеопотоки, которые должны отображаться, выбираются селектором 101 входов с помощью секции 107 планирования.
Селектор 101 входов присоединен к внешним устройствам, таким как средство хранения (например, накопитель на жестком диске и т.д.), составленное из носителя записи и устройства его считывания, и/или средство связи (например, LAN (локальная сеть), и т.д.) для отправки и приема данных через тракт связи, выбирает n (n - натуральное число) видеопотоков из видеопотоков, принимаемых из внешних источников, и выводит видеопотоки с #1 по #n в анализатор 102 потоков. Здесь символы с 1 до n обозначают порядок воспроизведения; чем меньше номер, тем выше приоритет в порядке воспроизведения задан видеопотоку. Вкратце 1 представляет очередность наивысшего приоритета, тогда как n представляет очередность наименьшего приоритета.
Выбранные видеопотоки с #1 по #n выводятся из селектора 101 входов в анализатор 102 потоков. Анализатор 102 потоков извлекает кодированную информацию (в особенности, информацию части заголовка) для одного кадра или одного поля видео из видепотоков с #1 по #n. Эта кодированная информация используется в секции 107 планирования. Кодированные данные для одного кадра или одного поля после извлечения кодированной информации сохраняются во внутреннем буфере и считываются секцией 103 декодирования в зависимости от состояния процесса. Кадр составлен из множества строк, которые представляют информацию отображения видеосигналов. В случае перемеженного видео кадр составлен из двух полей. В технологиях декодирования, таких как MPEG (Экспертной группы по движущемуся изображению) и тому подобное, термин изображение обычно используется в качестве термина, представляющего кадр или поле. Ниже, если не указан иной способ действий, кадр, включающий в себя понятие поля, обсуждается в качестве такого же значения, как изображение.
Фиг.2 показывает конфигурационный пример анализатора 102 потоков. Анализатор 102 потоков включает в себя разделитель 201, секцию 202 буфера, детектор 203 начального кода и декодер 204 заголовка.
Видеопоток, введенный в анализатор 102 потока, мультиплексирован с многочисленными разновидностями потоков, таких как видео (которое будет указываться ссылкой ниже как движущееся изображение), звуковая, текстовая, другая дополнительная информация и т.д. Из указанных только поток движущегося изображения разделяется разделителем 201. Детектор 203 начального кода детектирует конкретную кодограмму, представляющую начальный код у потока движущегося изображения, чтобы находить часть заголовка на уровне кадра. Декодер 204 заголовка декодирует часть заголовка для извлечения кодированной информации (например, типа кодирования изображения). Наряду с буферизацией кодированных данных кадра в буферной части 202, и когда детектор 203 начального кода детектировал два начальных кода до и после, данные, фигурирующие между этими начальными кодами, являются кодированными данными кадра.
Под управлением секции 107 планирования секция 103 декодирования считывает кодированные данные кадра из буферной части 202 анализатора 102 потоков и декодирует данные для восстановления данных кадра. Данные кадра после восстановления из кодированных данных выводятся в секцию 104 памяти выходных данных. Данные кадра сохраняются в секции 104 памяти выходных данных. Декодеры #i (i - натуральное число от 1 до n), предусмотренные в секции 103 декодирования, сконструированы так, чтобы выполнять множество алгоритмов декодирования, разных по количеству операций, и также могут быть наделены приоритетными очередностями по отношению к обработке.
В соответствии с управлением из контроллера 108 отображения выходных данных секция 105 коммутации выходов выбирает данные кадра видеопотоков, которые должны выводиться в секцию 106 вывода отображения из секции 104 памяти выходных данных. Данные с #1 до #n кадра считываются в соответствии с компоновкой или порядком отображения.
Как описано выше, при выборе видеоконтентов для отображения выбранных контентов, секцией 107 планирования выполняется управление для установления нагрузок процессов декодирования множества видеопотоков равномерными по времени. Далее секция 107 планирования будет описана со ссылкой на фиг.с 3 по 6.
Фиг.3 - структурная схема, показывающая конфигурационный пример секции 107 планирования. Как показано на фиг.3, секция 107 планирования включает в себя контроллер 301 декодирования, диспетчер 302 процессов, блок 303 оценки нагрузки и блок 304 определения порядка воспроизведения. Контроллер 301 декодирования управляет работой секции 103 декодирования. Диспетчер 302 процессов управляет состоянием выполнения процессов декодирования в декодерах с #1 по #n в секции 103 декодирования для декодирования видеопотоков с #1 по #n, чтобы настраивать временные характеристики выполнения и т.п. Блок 303 оценки нагрузки оценивает объемы обработки процессов декодирования в секции 103 декодирования и, например, оценивает нагрузку на ЦПУ (центральное процессорное устройство, CPU). Блок 304 определения порядка воспроизведения на основании назначения из контроллера 108 отображения выходных данных определяет порядок воспроизведения видеопотоков.
На Фиг.4-6 показаны блок-схемы последовательностей операций способов, показывающие поток обработки секции 107 планирования. Общее выполнение последовательности операций секции 107 планирования описано ниже со ссылкой на фиг.4.
Видеопотоки, которые должны воспроизводиться, и порядок отображения назначаются контроллером 108 отображения выходных данных, и секция 107 планирования начинает свою работу. Сначала, на этапе (ST) 400, блок 304 определения порядка воспроизведения определяет порядок воспроизведения видеопотоков. Это определяется на основании формы отображения (например, размещения, компоновки экрана, порядка отображения миниатюр) видеопотоков, заданной из контроллера 108 отображения выходных данных. Один из примеров формы отображения показан на фиг.7. Этот пример показывает конфигурацию, в которой 30 миниатюр, соответствующих видеопотокам, скомпонованы в матрице с пятью строками и шестью столбцами. Порядок отображения миниатюр должен задавать очередность, в которой отображаются эти 30 миниатюр. На фиг.7 полужирный контур, который охватывает миниатюру, является курсором, который используется для выбора миниатюры. Порядок воспроизведения, например, может быть очередностью отображения, или чем ближе к центру расположена миниатюра, тем выше может быть задана приоритетная очередность в порядке воспроизведения. Селектор 101 входов выбирает видеопотоки в соответствии с порядком воспроизведения. Кроме того, диспетчер 302 процессов создает таблицу процессов (ST401). Фиг.8 показывает пример таблицы процессов. В этом примере таблица процессов включает в себя столько же записей, как количество видеопотоков, каждая запись имеет поля для номера 801 потока, состояния 802 выполнения и типа 803 кодирования изображения.
Диспетчер 302 потоков определяет, выполняются или нет процессы декодирования кадров, в порядке воспроизведения видеопотоков (в очередности от #1 до #n). Прежде всего, для того чтобы проверить состояние выполнения процесса декодирования для видеопотока #i, подвергается обращению таблица процессов (ST402). Затем по результату обращения на ST403 определяется, находится или нет выполнение в состоянии приостановки. Если выполнение находится в состоянии приостановки, управление переходит на ST404. Иначе управление переходит на ST407. На ST404 диспетчер 302 процессов получает из анализатора 102 потоков кодированную информацию о кадрах видеопотока #i, который должен обрабатываться. На ST405 процесс декодирования выполняется с учетом кодированной информации и состояния выполнения других процессов декодирования. На этом этапе диспетчер 302 процессов проверяет, является ли процесс декодирования выполнимым. Если он является выполнимым, контроллер 301 осуществляет управление, чтобы выполнять процесс декодирования в секции 103 декодирования. Иначе процесс декодирования приостанавливается. На ST406 определяется, был ли обработан каждый видеопоток (для всех i) на протяжении с ST403 по 405. Если все видеопотоки с #1 по #n были обработаны, управление переходит на следующий этап ST407. Иначе управление переходит на ST403.
Приведенное выше описание является последовательностью операций, имеющей отношение к управлению для запуска процесса декодирования в секции 103 декодирования. На ST407 определяется, завершена ли эта последовательность операций. Конец последовательности операций соответствует тому, когда завершен процесс декодирования для всех видеопотоков, и завершению посредством внешних факторов, таких как команда пользователя и т.д. Если нет никакого фактора завершения (в случае, где «Нет» выбрано на ST407), управление переходит на следующий этап ST408. Последовательность операций вперед от этого момента является управлением, которое начинается после окончания процесса декодирования, которое выполняется в секции 103 декодирования.
На ST408 диспетчер 302 процессов определяет, было ли выдано уведомление об окончании процесса декодирования из секции 103 декодирования. Если уведомление об окончании выдано, управление переходит на ST409. Иначе управление переходит на ST407. То есть, если уведомления об окончании нет, этот этап повторяется, наряду с ожиданием, чтобы было выдано уведомление об окончании. На ST409 диспетчер 302 процессов определяет еще раз, является ли выполнимым процесс декодирования, который определялся ожидающим на вышеупомянутом ST405. Если он выполним, процесс декодирования выполняется. Иначе процесс декодирования приостанавливается. На ST410 определяется, был ли завершен процесс для каждого видеопотока #i на S409. Если видеопотоки с #1 по #n были обработаны, управление переходит на ST402. Иначе управление переходит на ST409.
Как описано выше, можно выполнять исполнимые процессы декодирования надлежащим образом, на основании состояния выполнения процесса декодирования видеопотоков.
Фиг.5 - блок-схема последовательности операций способа, показывающая поток обработки вышеупомянутого этапа ST 405. На ST405, прежде всего, на основании кодированной информации, последовательность операций разветвляется в зависимости от способа кодирования с предсказанием кадров (ST500). Здесь способ кодирования с предсказанием является кодированием с внутрикадровым предсказанием для кодирования кадра в пределах кадра, не учитывая кадры до и после, или кодированием с межкадровым предсказанием для кодирования разности между кадрами на основании предсказания между кадрами. Здесь способ кодирования с предсказанием кадров упоминается как тип кодирования изображения, а кадр, который был закодирован посредством внутрикадрового предсказания, называется I- изображением. На ST500, если кодированный кадр видеопотока #i является I- изображением, выбирается Да, так что управление переходит на ST501. Иначе выбирается Нет, и управление переходит на ST502.
На ST501 диспетчер 302 процессов обращается к таблице процессов для проверки типа кодирования изображения в отношении процесса декодирования другого видеопотока, который уже выполняется. Если не выполняется никакой процесс декодирования другого I-изображения, процесс декодирования видеопотока #i рассматривается в качестве исполнимого. Если процесс декодирования I-изображения уже выполняется, процесс декодирования видеопотока #i рассматривается в качестве неисполнимого.
На ST502 блок 303 оценки нагрузки оценивает величину нагрузки на секцию 103 декодирования, а диспетчер 302 процессов определяет, выполним ли процесс декодирования кадра, на основании величины нагрузки. Здесь блок 303 оценки нагрузки, обращаясь к таблице процессов диспетчера 302 процессов, оценивает повышение величины нагрузки на процесс декодирования видеопотока #i. Поскольку величина нагрузки также зависит от алгоритма для процесса декодирования, иного чем тип кодирования изображения, величина нагрузки оценивается надлежащим образом посредством оценки объемов обработки для множества алгоритмов декодирования с учетом порядка воспроизведения (то есть номера i видеопотока). Диспетчер 302 процессов определяет, что процесс декодирования для видеопотока #i выполним, если можно выполнять декодирование без задержки. Если больше невозможно повышать величину нагрузки, процесс декодирования для видеопотока #i определяется невыполнимым. Здесь в качестве технологии для снижения нагрузки может выполняться управление, нацеленное на декодирование исключительно I-изображений, если приоритетная очередность в порядке воспроизведения низка (когда значение i является большим в настоящем варианте осуществления). Кроме того, в описании до этого предполагается, что диспетчер 302 процессов приспособлен, чтобы производить такое управление, что временные характеристики выполнения декодирования I-изображений не будут перекрываться друг с другом. Однако можно планировать такое управление, чтобы процессы декодирования множества I-изображений перекрывались в пределах диапазона, позволенного объемом обработки секции 103 декодирования.
Как выполняется на ST501 и ST502, в зависимости от типов кодирования изображения, критерии определения того, является ли процесс декодирования выполнимым, определяются отдельно. В таком случае, когда процесс декодирования определен выполнимым (ST503), контроллер 301 декодирования выполняет процесс декодирования посредством назначения алгоритма для процесса декодирования и приоритетной очередности (например, высокой, средней, низкой и т.д.) во время выполнения и устанавливает состояние выполнения видеопотока #i, чтобы было «выполнением» (ST504). Когда процесс невыполним, состояние выполнения видеопотока #i устанавливается, чтобы быть «ожиданием». В заключение состояние выполнения по таблице процессов обновляется (ST506), и работа заканчивается на ST504.
Фиг.6 - блок-схема последовательности операций способа, показывающая поток обработки по вышеупомянутому этапу ST409. На ST409 процесс декодирования со своим состоянием выполнения, установленным, чтобы быть «ожиданием», выполняется в соответствии с порядком воспроизведения видеопотоков. Прежде всего, диспетчер 302 процессов, обращаясь к таблице процессов, извлекает состояние выполнения видеопотока #i (ST600). Определяется, является или нет извлеченное состояние выполнения «ожиданием» (ST601), и если оно находится в режиме ожидания, управление переходит на ST602. Иначе ST409 заканчивается. На ST602, подобно вышеупомянутым с ST500 по ST503, определяется, выполним ли приостанавливавшийся процесс декодирования видеопотока #i. Операции с ST603 по ST605 являются такими же, как на с ST504 по ST506, так что описание опущено.
Фиг.9(A) показывает примерный случай для обработки n видеопотоков в качестве примера обработки секции 107 планирования. На фиг.9(A) буква алфавита I обозначает I-изображение, P - P-изображение (указывающий кадр, который кодируется с предсказанием в прямом направлении среди кадров, кодируемых посредством межкадрового предсказания), а B - B-изображение (указывающий кадр, который кодируется с предсказанием двунаправленно или кодируется по двум направлениям среди кадров, кодируемых посредством межкадрового предсказания). Предполагается, что в каждом видеопотоке #i повторяется схема IBBPBBPBBPBBPBB••• типов кодирования изображения. Горизонтальная ось представляет время, и предполагается, что процесс декодирования каждого кадра должен заканчиваться в пределах фиксированного периода времени. То есть, в этом случае, объем обработки в единицу времени является разным в зависимости от типа кодирования изображения.
Сначала секция 107 планирования выполняет процесс декодирования I-изображения в головной части видеопотока #1 в момент t1 времени, в то время как процессы для других видеопотоков установлены в режим ожидания. Затем, когда истекло фиксированное время и процесс декодирования I-изображения видеопотока #1 завершен, процесс декодирования I-изображения видеопотока #2, бывшего в режиме ожидания, выполняется в момент t2 времени. Здесь процессы для видеопотоков с #3 по #n вновь устанавливаются в режим ожидания. Хотя видеопоток #1 приостановлен, целевым объектом, который должен декодироваться следующим, является P-изображение. Поэтому секция 107 планирования реализует процесс декодирования видеопотока #1 переводом приостановленного режима в режим выполнения. Подобно приведенному выше процессы декодирования в видеопотоках с #3 по #n выполняются один за другим в и после момента t3 времени и обрабатываются параллельно в пределах диапазона, дозволенного объемом обработки. Если все видеопотоки декодируются одновременно при одинаковых условиях, процессы декодирования I-изображений, которым необходимы относительно большие объемы обработки, одновременно перекрываются друг с другом, как показано на фиг.9(B), так что количество видепотоков, которые могут декодироваться в один и тот же момент времени, будет ограничиваться (здесь m<n). Из компьютерного имитационного моделирования известно, что соотношение объемов обработки, требуемой для процессов декодирования I-изображения, P- изображения и B-изображения, может грубо оцениваться являющимся 9:5:6. Когда есть емкость обработки, которая предоставляет восьми видеопотокам возможность декодироваться, когда все видеопотоки обрабатываются одновременно в параллель, как показано на фиг.9(B), двенадцать видеопотоков (1 I-изображение, 4 P-изображений и 7 B-изображений) могут декодироваться посредством сдвига времени, как на фиг.9(A).
Здесь анализатор 102 потоков извлекает информацию, полученную декодированием части заголовка кадра, в качестве кодированной информации кадра, который должен быть декодирован, а секция 107 планирования определяет, выполняется ли процесс декодирования кадра, на основании кодированной информации (типа кодирования изображения и т.д.) кадра. Количество данных (количество кодов) кодированного кадра обычно является большим для I-изображения и относительно меньшим для P и B-изображений по сравнению с таковым для I-изображения. Это происходит потому, что все макроблоки кодируются в I-изображении, однако, в зависимости от состояния во время кодирования, тогда как P- и B-изображения не включают в себя никаких данных для макроблоков, для которых пропускалось кодирование. Соответственно, можно определять тип кодирования изображения у кадра, который собирается декодироваться, по разнице в количестве кодов. Отсюда можно создавать соответствие между количеством кодов и типом кодирования изображения без необходимости декодировать кодированную информацию анализатором 102 потоков. Как результат, можно, чтобы секция 107 планирования планировала процессы декодирования на основании количества кодов кадра или оценки типа кодирования изображения, которая сделана соответствием количеству кодов, вместо использования типа кодирования изображения в качестве кодированной информации. Здесь можно получать количество кодов кадра посредством подсчета количества данных, обрабатываемых детектором 203 начального кода. Формат видеопотока, введенного в устройство обработки видеопотоков по настоящему изобретению, может быть снабжен полем для хранения информации, которая опосредованно или непосредственно указывает объем обработки, требуемый для декодирования кадра, такой как тип кодирования изображения или количество кодов на кадр. Кроме того, в устройстве для формирования видеопотоков вышеприведенная информация может прикрепляться в качестве дополнительной информации к кадрам, включенным в пакет, с тем чтобы формировать видеопоток, когда видеопоток является пакетированным.
Кроме того, как описано выше, секция 107 планирования определяет порядок воспроизведения видеопотоков на основании классификации видеопотоков и компоновки экрана, снабжаемого из контроллера 108 отображения выходных данных. Порядок воспроизведения может определяться не только после запуска процесса декодирования, но когда контроллер 108 отображения выходных данных изменяет режим отображения в соответствии с состоянием управления, которое пользователь выдает на устройство обработки видеопотоков во время процесса декодирования, секция 107 планирования может изменять порядок воспроизведения во время процесса декодирования в соответствии с ним. Например, в множественном представлении миниатюр движущегося изображения, выдаваемых из секции 106 вывода отображения, в то время как расстояние множественного представления (расстояние от выбранной области) от области (положения курсора), которой пользователь уделяет внимание, является большим, приоритетная очередность в порядке воспроизведения может понижаться. В качестве альтернативы приоритетная очередность в порядке воспроизведения может понижаться, когда сцена не является важной. Важность или неважность в отношении сцены, например, может определяться историей просмотров пользователя/степенью интереса/степенью соответствия теме, которую пользователь разыскивает в данное время, и тому подобным.
Как описано до этого, согласно настоящему варианту осуществления времена выполнения процессов декодирования настраиваются и распределяются в соответствии с типами кодирования изображения, так что процессы декодирования I-кадров, которые накладывают тяжелую нагрузку обработки, будут перекрываться как можно меньше в одной и той же временной зоне. Соответственно, можно эффективно выполнять воспроизведение множества видеопотоков, не уменьшая объема обработки, назначенного на процессы декодирования, больше чем необходимо, даже при ограниченных ресурсах. Как результат, можно увеличивать количество видеопотоков, которые могут воспроизводиться одновременно, и улучшать качество воспроизведения.
<Второй вариант осуществления>
Фиг.10 - структурная схема, показывающая конфигурационный пример устройства 200 обработки видеопотоков согласно второму варианту осуществления настоящего изобретения. Как показано на фиг.10, устройство 200 обработки видеопотоков включает в себя селектор 101 входов, анализатор 102 потоков, секцию 110 коммутации входов, секции 111 и 112 декодирования, секцию 104 памяти выходных данных, секцию 105 коммутации выходов, секцию 106 вывода отображения, секцию 113 планирования и контроллер 108 отображения выходных данных. Здесь секции 111 и 112 декодирования имеют такую же конфигурацию, как у вышеупомянутой секции 103 декодирования.
Кроме того, фиг.11 - структурная схема, показывающая конфигурационный пример секции 113 планирования. Секция 113 планирования включает в себя контроллер 301 декодирования, блок 303 оценки нагрузки, блок 304 определения порядка воспроизведения и диспетчер 305 процессов. Диспетчер 305 процессов управляет секцией 110 коммутации входов, чтобы тем самым настраивать ввод видеопотоков с #1 по #n в секции 111 и 112 декодирования и назначать процессы декодирования внутри секций 111 и 112 декодирования для декодирования.
При этой конфигурации устройство 200 обработки видеопотоков декодирует множество видеопотоков, параллельно вводимых через селектор 101 входов, и выдает потоки из секции 106 вывода отображения в таком стиле, чтобы были видны и одновременно просматривались на дисплейном экране. Функционирование до этого является таким же, как по первому варианту осуществления. Разница состоит в том, что предусмотрено множество секций декодирования, и секция коммутации входов используется для настройки, какая секция декодирования должна выполнять процесс декодирования каждого из множества входных видеопотоков.
Селектор 101 входов выбирает n видеопотоков из принимаемых видеопотоков, с тем чтобы выводить их в качестве видеопотоков с #1 по #n в анализатор 102 потоков. Анализатор 102 потоков обрабатывает видеопотоки с #1 по #n и рассчитывает количества кодов кодированных данных для одного кадра. Видеопотоки сохраняются во внутренней памяти, с тем чтобы считываться секцией 103 декодирования, в зависимости от состояния обработки. Работа вплоть до этого является такой же, как в первом варианте осуществления.
Количества кодов для одного кадра из видеопотоков с #1 по #n вводятся в секцию 113 планирования. Фиг.12 показывает блок-схему последовательности операций, которую секция 113 планирования выполняет в это время. В секции 113 планирования блок 304 определения порядка воспроизведения определяет порядок воспроизведения видеопотоков (ST1200), а диспетчер 305 потоков создает таблицу процессов (ST1201). Пример таблицы процессов показан на фиг.13. В этом примере таблица включает в себя столько же записей, как количество видеопотоков, каждая запись имеет поля для номера 1301 потока, номер 1302 секции декодирования и объем обработки, 1303.
Затем, на ST1202, диспетчер 305 процессов извлекает кодированную информацию (количество кодов) об одном кадре видеопотока #i. В таком случае блок 303 оценки определяет объем обработки процесса декодирования, предполагаемый из количества кодов, полученных из диспетчера 305 процессов, и оценивает текущие нагрузки на секции 111 и 112 декодирования на основании объема обработки 1313 в таблице процессов.
На ST1204 в соответствии с результатом оценки из блока 303 оценки нагрузки диспетчер 305 процессов определяет, является ли процесс декодирования выполнимым, и выбирает, если процесс выполняется, на какую из множества секций декодирования назначен процесс декодирования. Процессы декодирования, например, в свою очередь, могут назначаться на множество секций декодирования, могут назначаться взвешиванием в соответствии с предопределенными емкостями обработки, могут назначаться на одну секцию декодирования до тех пор, пока итоговая сумма не превышает максимальной емкости обработки, или может назначаться на ту, которая является наименьшей по производительности, сопровождаемой последовательно второй наименьшей. Здесь, когда определено, что процесс декодирования выполним (в случае Да на ST1204), управление переходит на ST1205. Когда определено, что процесс декодирования невыполним (в случае Нет на ST1204), процесс декодирования устанавливается в режим ожидания, и управление переходит на ST1207.
На ST1205 диспетчер 305 процессов управляет секцией 110 коммутации входов, так что кодированные данные видеопотока #i вводятся в секцию декодирования, которая выбиралась ранее на ST1204. Контроллер 301 декодирования указывает алгоритм для процесса декодирования и приоритетную очередность во время выполнения и приводит в исполнение процесс декодирования. После выполнения диспетчер 305 процессов обновляет таблицу процессов (ST1206). На ST1208 диспетчер 305 процессов определяет, были или нет воспроизведены (декодированы) все видеопотоки с #1 по #n. Когда воспроизведение всех видеопотоков было завершено (в случае Да), работа заканчивается. Когда воспроизведение всех видеопотоков не было завершено (в случае Нет на ST1208), управление переходит на ST1202.
С другой стороны, на ST1207 определяется, выдано ли уведомление об окончании декодирования из секций 111 и 112 декодирования. Если уведомление об окончании было выдано (в случае Да), управление переходит на ST1203. Иначе (в случае Нет) этот цикл повторяется, чтобы дожидаться уведомления.
Как описано до этого, можно выполнять процессы декодирования посредством выбора надлежащих секций декодирования на основании объемов обработки, необходимой для процессов декодирования видеопотоков.
Должно быть отмечено, цель настоящего изобретения также может достигаться установкой носителя записи, на котором записаны управляющие программы программного обеспечения для осуществления функционирования по варианту осуществления настоящего изобретения, в устройство, которое выполняет управляющие программы посредством микропроцессора или ЦСП (цифрового сигнального процессора, DSP). В этом случае управляющие программы программного обеспечения рассматриваются для осуществления функционирования по настоящему варианту осуществления, а носитель записи с записанными управляющими программами составляет настоящее изобретение.
Хотя вариант осуществления настоящего изобретения был описан до этого, устройство обработки видеопотоков, его способ управления, программа и носитель записи по настоящему изобретению не должны ограничиваться вышеприведенным вариантом осуществления, и само собой разумеется, что различные модификации могут быть добавлены в пределах диапазона, не выходящего из сущности настоящего изобретения.