Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству и способу кодирования, устройству и способу декодирования и системе передачи и, в частности, относится к устройству и способу кодирования данных, устройству и способу декодирования данных, и системе передачи, в которых данные изображения, которые подвергают кодированию со сжатием и передают, могут быть выведены как декодированные изображения на стороне приема через короткое время.
Уровень техники
Обычно широко используют способ кодирования со сжатием данных изображения, который представляет собой способ JPEG (Объединенная группа экспертов по машинной обработке фотографических изображений), который был стандартизирован ISO (MOC, Международная организация по стандартизации). При использовании способа JPEG данные изображения разделяют на блоки, и каждую из разделенных областей подвергают обработке ДКП (DCT, дискретное косинусное преобразование), для получения коэффициентов ДКП, и полученные коэффициенты ДКП подвергают квантованию и затем энтропийному кодированию, реализуя, в результате, высокое качество и высокую степень сжатия.
Кроме того, в последние годы были проведены исследования способа кодирования, в котором изображение разделяют на множество полос с помощью фильтров, называемых гребенками фильтров, в которых скомбинированы фильтры высокой частоты и фильтры низкой частоты, и кодирование выполняют для каждого из разделенных банков. В каждом из таких способов кодирования способ кодирования, называемый кодированием с вейвлет преобразованием, в частности, рассматривается как новая технология, которая представляет собой вероятный кандидат на замену ДКП кодирования со сжатием изображения, поскольку ей не присущи проблемы, которые имеет описанное выше ДКП, которое представляет собой искажение блока при высокой степени сжатия.
Например, в JPEG 2000, международная стандартизация которого была завершена в январе 2001 г., используется способ кодирования с сжатием, в котором вейвлет преобразование комбинируется с высокоэффективным энтропийным кодированием, с использованием битовой плоскости, основанной на моделировании бита и арифметическом кодировании. В таком способе JPEG 2000 реализуется существенное улучшение по сравнению с обычным JPEG по эффективности кодирования. В патентном документе 1 описан способ вейвлет преобразования, в котором эффективность кодирования была дополнительно улучшена.
[Патентный документ 1] Публикация №9-130800 проходящей экспертизу заявки на японский патент.
Такой международный стандарт определяет только сторону декодера, и сторона кодера может быть разработана произвольно.
Сущность изобретения
Проблемы, решаемые изобретением
Следует отметить, что в описанном выше способе 2000 JPEG, например, обычная необходимая информация заголовка не может быть описана в соответствии с алгоритмом до тех пор, пока не будет закончено кодирование всех пикселей на экране. То есть такая информация заголовка описывает информацию, необходимую для декодирования, такую как размер сжатых данных, полученных в результате кодирования, и существует потребность добавления маркера в конце кодированных данных, но такая информация не может быть завершена до тех пор, пока не будет закончено все кодирование для одного экрана.
Эта проблема присуща не только JPEG 2000, но также относится к JPEG, а также к MPEG (Экспертная группа по вопросам движущегося изображения), которая представляет собой способ сжатия данных движущегося изображения.
В соответствии с этим, существует проблема, возникающая при использовании обычных технологий сжатия данных изображения, состоящая в том, что вывод кодированного потока кода, который представляет собой результат кодирования со сжатием, необходимо выполнять после шифрования изображения всего кадра или поля, в случае чересстрочного представления изображения.
В соответствии с этим, существует проблема, которую невозможно решить, состоящая в том, что возникает задержка по времени на один кадр, или одно поле, в случае изображения с чересстрочным представлением, между стороной передачи и стороной приема данных изображения.
В соответствии с этим, цель настоящего изобретения состоит в создании устройства и способа кодирования, устройства и способа декодирования и системы передачи данных, которые позволяют выполнять кодирование со сжатием и декодирование данных изображения, и выводить декодированные данные изображения с меньшей задержкой.
Средство решения проблем
Устройство кодирования в соответствии с первым аспектом настоящего изобретения представляет собой устройство кодирования, предназначенное для кодирования данных изображения, включающее в себя: средство фильтра, предназначенное для иерархической обработки фильтрования данных изображения и генерирования множества подполос, состоящих из данных коэффициента, разделенных по полосе частот; средство сохранения, предназначенное для накопительного сохранения данных коэффициента, генерируемых средством фильтра; и средство реконфигурирования коэффициента, предназначенное для реконфигурирования данных коэффициента, сохраненных в средстве сохранения, для вывода в заданном порядке.
Средство фильтра может выполнять обработку фильтрования с приращением по строкам, начиная с верхней стороны экрана, данных изображения в направлении к нижней стороне.
Средство фильтра может выполнять обработку фильтрования данных изображения с приращением по блокам строк, которые представляют собой данные изображения, состоящие из множества строк, необходимых для генерирования одной строки, соответствующей данным коэффициента для, по меньшей мере, подполосы компонента самой нижней полосы.
Средство фильтра может выполнять обработку фильтрования как в вертикальном направлении, так и в горизонтальном направлении, в соответствии с данными изображения.
По меньшей мере, один из множества выводов и множества уровней разрешения при обработке фильтрования, выполняемой средством фильтра, может быть определен в соответствии с целевым временем задержки.
Средство фильтра может выполнять обработку вейвлет фильтрования, в которой данные коэффициента подполосы компонента нижней полосы, полученные в результате указанной обработки фильтрования, дополнительно подвергают указанной обработке фильтрования.
Средство фильтра может выполнять обработку вейвлет фильтрования, с использованием методики подъема.
Когда средство фильтра выполняет обработку фильтрования уровня = Х+1 разрешения, используя методику подъема, она может быть выполнена в отношении данных коэффициента, рассчитанных как подполоса компонента нижней полосы, с обработкой фильтрования уровня = Х разрешения.
Средство сохранения может дополнительно включать в себя: средство первого буфера, предназначенное для сохранения данных коэффициента подполосы компонента нижней полосы, генерируемых в процессе обработки вейвлет фильтрования, выполняемой средством фильтра; и средство второго буфера, предназначенное для содержания данных коэффициента подполосы компонента верхней полосы, генерируемых в процессе обработки вейвлет фильтрования, выполняемой средством фильтра.
Средство второго буфера может содержать данные коэффициента подполос для других компонентов полосы, кроме самой нижней полосы, до тех пор, пока данные коэффициента подполосы компонента самой нижней полосы не будут сгенерированы средством фильтра.
Средство реконфигурирования коэффициента может выполнять реконфигурирование данных коэффициента таким образом, что подполосы выводят в порядке от компонентов нижней полосы до компонентов верхней полосы.
Средство реконфигурирования коэффициента может выполнять реконфигурирование данных изображения с приращением по блокам строк, которые представляют собой данные изображения с количеством строк, необходимым для генерирования одной строки, соответствующей данным коэффициента для, по меньшей мере, подполосы компонента самой нижней полосы.
Устройство кодирования может дополнительно включать в себя средство энтропийного кодирования, предназначенное для выполнения энтропийного кодирования данных коэффициента.
Средство энтропийного кодирования может последовательно выполнять энтропийное кодирование данных коэффициента, реконфигурированных средством реконфигурирования коэффициента.
Средство реконфигурирования коэффициента может реконфигурировать данные коэффициента с тем, чтобы выводить подполосы в порядке от компонентов нижней полосы до компонентов верхней полосы; при этом средство энтропийного кодирования последовательно выполняет энтропийное кодирование данных реконфигурированного коэффициента в порядке от компонентов нижней полосы, до компонентов верхней полосы, как только данные коэффициента будут реконфигурированы средством реконфигурирования коэффициента.
Средство энтропийного кодирования может выполнять энтропийное кодирование данных коэффициента, сгенерированных средством фильтрования; при этом средство сохранения сохраняет данные коэффициента, полученные после энтропийного кодирования с использованием средства энтропийного кодирования.
Средство сохранения может сохранять данные коэффициента, генерируемые как подполосы других компонентов полосы, кроме самой нижней полосы, и которые были получены после энтропийного кодирования средством энтропийного кодирования, до тех пор, пока данные коэффициента для подполосы компонента самой нижней полосы не будут подвергнуты энтропийному кодированию с помощью средства энтропийного кодирования.
Средство реконфигурирования коэффициента может реконфигурировать данные коэффициента, сохраненные средством сохранения и полученные после энтропийного кодирования с помощью средства энтропийного кодирования, так чтобы подполосы выводились в порядке от компонентов нижней полосы до компонентов верхней полосы, и может выводить реконфигурированные данные коэффициента в порядке от компонентов нижней полосы до компонентов верхней полосы после того, как эти данные коэффициента будут реконфигурированы.
Средство энтропийного кодирования может выполнять групповое энтропийное кодирование множества строк данных коэффициента в пределах одной подполосы.
Средство энтропийного кодирования может выполнять кодирование строк всех подполос, составляющих блок строк, которые представляют собой группу данных коэффициента, соответствующих данным изображения множества строк, необходимых для генерирования одной строки данных коэффициента, по меньшей мере, для подполосы компонента самой нижней полосы, в отношении потока данных коэффициента, выстроенного в одномерном направлении, в порядке от нижней полосы до верхней полосы.
Средство энтропийного кодирования может включать в себя: средство квантования, предназначенное для квантования данных коэффициента, генерируемых средством фильтра; и средство кодирования источника, предназначенное для выполнения кодирования источника по коэффициентам результата квантования, полученным по данным коэффициента, квантованным средством квантования.
Устройство кодирования может дополнительно включать в себя: средство пакетирования, предназначенное для добавления заданного заголовка к данным результата кодирования, полученным средством энтропийного кодирования, выполняющим энтропийное кодирование, в порядке от компонентов нижней полосы до компонентов верхней полосы, для данных коэффициента каждого блока строк, которые представляют собой набор данных коэффициента, соответствующих данным изображения множества строк, необходимых для генерирования одной строки данных коэффициента, по меньшей мере, от подполосы компонента самой нижней полосы, и пакетирования заголовка и тела данных; и средство передачи, предназначенное для передачи пакета, сгенерированного средством пакетирования; при этом средство энтропийного кодирования, средство пакетирования и средство передачи выполняют соответствующую обработку одновременно и параллельно; средство энтропийного кодирования выполняет энтропийное кодирование данных коэффициента с приращением по блокам строк; при этом средство пакетирования выполняет пакетирование данных результата кодирования для каждого из блоков строк, как только данные результата кодирования для каждого блока строк будут сгенерированы в результате энтропийного кодирования, выполняемого средством энтропийного кодирования; и средство передачи передает полученный пакет, как только данные результата кодирования для каждого блока строк будут пакетированы средством пакетирования.
В заголовке может быть записана информация идентификации, предназначенная для идентификации блока строк на экране, длина данных тела данных и информация кодирования.
Средство энтропийного кодирования может включать в себя: средство квантования, предназначенное для квантования данных коэффициента, генерируемых средством фильтра; и средство кодирования источника, предназначенное для выполнения кодирования источника по коэффициентам результата квантования, полученным для данных коэффициента, квантованных средством квантования; причем информация кодирования включает в себя размер шага квантования для квантования, выполняемого средством квантования.
Информация о размере шага квантования может включать в себя информацию о размере шага квантования для каждой подполосы.
Способ кодирования в соответствии с первым аспектом настоящего изобретения представляет способ кодирования для устройства кодирования, для кодирования данных изображения, причем способ включает в себя: этап фильтрования, предназначенный для иерархического выполнения обработки фильтрования в отношении данных изображения, и генерирования множества подполос, состоящих из данных коэффициента, распределенных по полосе частот; этап управления сохранением для накопительного сохранения данных коэффициента, сгенерированных в результате обработки на этапе фильтрования, в модуле сохранения; и этап реконфигурирования коэффициента, предназначенный для реконфигурирования данных коэффициента, сохраненных в модуле сохранения, которым управляют путем обработки, выполняемой на этапе управления сохранением для вывода в заданном порядке.
Устройство декодирования в соответствии со вторым аспектом настоящего изобретения представляет собой устройство декодирования, предназначенное для декодирования кодированных данных изображения, в котором были кодированы данные изображения, включающее в себя: средство сохранения, предназначенное для сохранения данных коэффициента множества подполос, состоящих из данных коэффициента, распределенных по полосе частот, полученных путем иерархической обработки первой фильтрования данных изображения, передаваемых с приращением по строкам; средство реконфигурирования коэффициента, предназначенное для реконфигурирования данных коэффициента, сохраненных средством сохранения, для вывода в заданном порядке; и средство фильтра, предназначенное для выполнения второй обработки фильтрования данных коэффициента, реконфигурированных с помощью средства реконфигурирования и выведенных из средства сохранения, и синтезирования данных коэффициента из множества подполос, распределенных по полосе частот, для генерирования данных изображения.
Средство реконфигурирования коэффициента может реконфигурировать данные коэффициента так, чтобы подполосы выводились в порядке от компонентов нижней полосы, до компонентов верхней полосы.
Средство реконфигурирования коэффициента может выполнять реконфигурирование данных коэффициента, сохраненных в средстве сохранения, с приращением по блокам строк, которые представляют собой набор данных коэффициента, соответствующих данным изображения из множества строк, необходимых для генерирования одной строки, соответствующей данным коэффициента, для, по меньшей мере, подполосы компонента самой нижней полосы.
Средство фильтра может выполнять вторую обработку фильтрования с приращением по строкам, начиная с верхней стороны экрана в направлении к нижней его стороне, генерируя, таким образом, данные изображения.
Средство фильтра выполняет вторую обработку фильтрования данных коэффициента с приращением по блокам строк, которые представляют собой набор данных коэффициента, соответствующих данным изображения, состоящих из множества строк, необходимых для генерирования одной строки, соответствующей данным коэффициента, для, по меньшей мере, подполосы компонента самой нижней полосы.
Средство фильтра может выполнять вторую обработку фильтрования с использованием методики подъема.
Устройство декодирования может дополнительно включать в себя средство энтропийного декодирования, предназначенное для выполнения энтропийного декодирования кодированных данных с приращением по строкам для каждой подполосы; при этом средство сохранения сохраняет данные коэффициента, полученные при энтропийном декодировании, выполняемом средством энтропийного декодирования.
Средство энтропийного декодирования может выполнять декодирование кодированных данных, при котором строки всех подполос, составляющих блок строк, который представляет собой группу данных коэффициента, соответствующих данным изображения, состоящего из множества строк, необходимых для генерирования одной строки данных коэффициента, по меньшей мере, подполосы компонента самой нижней полосы, были кодированы и выстроены в одном измерении.
Средство энтропийного декодирования может включать в себя: средство декодирования источника, предназначенное для выполнения декодирования источника для кодированных данных; и средство инверсного квантования, предназначенное для выполнения инверсного квантования данных коэффициента, полученных в результате декодирования источника с помощью средства декодирования источника.
Способ декодирования по второму аспекту настоящего изобретения представляет собой способ декодирования для устройства декодирования, предназначенный для декодирования данных кодированных изображений, в котором были кодированы данные изображения, причем способ включает в себя: этап управления сохранением, предназначенный для сохранения в модуле сохранения данных коэффициента множества подполос, распределенных по полосе частот, полученных в результате иерархической обработки первого фильтрования данных изображения, передаваемых с приращением по строкам; этап реконфигурирования коэффициента, предназначенный для реконфигурирования данных коэффициента, сохраненных в модуле сохранения, под управлением, выполняемым при обработке, выполняемой на этапе управления сохранением, для вывода в заданном порядке; и этап фильтрования, предназначенный для выполнения второй обработки фильтрования в отношении данных коэффициента, реконфигурированных с использованием обработки, выполняемой на этапе реконфигурирования, и вывода из модуля сохранения, и синтезирования данных коэффициента, состоящих из множества подполос, распределенных по полосе частот, для генерирования данных изображения.
Система передачи в соответствии с третьим аспектом настоящего изобретения представляет собой систему передачи, включающую в себя: устройство кодирования, предназначенное для кодирования данных изображения, и устройство декодирования, предназначенное для декодирования кодированных данных, в которой данные изображения были кодированы; причем система передачи предназначена для передачи кодированных данных между устройством кодирования и устройством декодирования; в которой устройство кодирования включает в себя средство первого фильтра, предназначенное для иерархического выполнения первой обработки фильтрования данных изображения и генерирования множества подполос, состоящих из данных коэффициента, распределенных по полосе частот, средство сохранения, предназначенное для накопительного сохранения данных коэффициента, сгенерированных первым средством фильтра, и средство реконфигурирования коэффициента, предназначенное для реконфигурирования данных коэффициента, сохраненных средством сохранения, для вывода в заданном порядке; и в котором устройство декодирования включает в себя средство второго фильтра, предназначенное для выполнения второй обработки фильтрования для данных коэффициента, реконфигурированных средством реконфигурирования коэффициента и выведенных из средства сохранения, которые были переданы из устройства кодирования через канал передачи данных и синтезирования данных коэффициента, состоящих из множества подполос, распределенных по полосе частот, для генерирования данных изображения.
В соответствии с первым аспектом настоящего изобретения обработку фильтрования выполняют иерархически в отношении данных изображения, при этом генерируют множество подполос, состоящих из данных коэффициента, полученных в результате разбиения частотного диапазона, сгенерированные данные коэффициента сохраняют с накоплением и сохраненные данные коэффициента реконфигурируют для вывода в заданном порядке.
В соответствии со вторым аспектом настоящего изобретения сохраняют данные коэффициента из множества подполос, полученных в результате разбиения частотного диапазона, полученных в результате иерархической обработки первого фильтрования данных изображения, передаваемых с приращением в виде строк, сохраненные данные реконфигурируют для вывода их в заданном порядке, обработку второго фильтрования выполняют в отношении реконфигурированных и выводимых данных коэффициента, и данные коэффициента множества подполос, полученных в результате разбиения частотного диапазона, синтезируют для генерирования данных изображения.
В соответствии с третьим аспектом настоящего изобретения в устройстве кодирования иерархически выполняют первую обработку фильтрования для данных изображения, генерируют множество подполос, составленных из данных коэффициента, полученных в результате разбиения частотного диапазона, сгенерированные данные коэффициента сохраняют с накоплением и сохраненные данные коэффициента реконфигурируют для вывода в заданном порядке; и в устройстве декодирования обработку второго фильтрования выполняют для данных коэффициента, реконфигурированных в заданном порядке и переданных из устройства кодирования через путь передачи, и синтезируют данные коэффициента множества подполос, полученных в результате разбиения частотного диапазона, для генерирования данных изображения.
Преимущества
В соответствии с настоящим изобретением обработку фильтрования выполняют иерархически в отношении данных изображения, при этом генерируют множество подполос, составленных данными коэффициента, полученными в результате разбиения частотного диапазона, сгенерированные данные коэффициента сохраняют с накоплением и сохраненные данные коэффициента реконфигурируют для вывода в заданном порядке, так, чтобы во время декодирования данные коэффициента можно было обрабатывать в порядке, в котором они поступают, и время задержки от кодирования данных изображения до декодирования кодированных данных и вывода данных изображения, предпочтительно, можно было уменьшить.
Краткое описание чертежей
На фиг.1 показана блок-схема, иллюстрирующая конфигурацию примера устройства кодирования изображения, в котором применяется настоящее изобретение.
На фиг.2 показана схема, описывающая вейвлет преобразование.
На фиг.3 показана схема, схематично описывающая вейвлет преобразование.
На фиг.4 показана схема, схематично описывающая вейвлет преобразование в случае применения методики подъема фильтра 5×3.
На фиг.5 показана схема, схематично описывающая вейвлет преобразование в случае применения методики подъема фильтра 5×3.
На фиг.6 показана схема, описывающая пример выполнения фильтрования путем подъема с использованием фильтра 5×3, до уровня = 2 разделения.
На фиг.7 показана схема, описывающая поток вейвлет преобразования и инверсного вейвлет преобразования в соответствии с настоящим изобретением.
На фиг.8 показана блок-схема последовательности операций, предназначенная для описания примера обработки кодирования.
На фиг.9 показана блок-схема, иллюстрирующая пример устройства декодирования изображения, в котором применяется настоящее изобретение.
На фиг.10 показана блок-схема последовательности операций, предназначенная для описания примера обработки декодирования.
На фиг.11 показана схема, описывающая параллельную работу компонентов устройства кодирования изображения и устройства декодирования изображения, в которых применено настоящее изобретение.
На фиг.12 показана блок-схема, иллюстрирующая конфигурацию примера устройства кодирования изображения, в котором применено настоящее изобретение.
На фиг.13 показана схема, описывающая поток обработки в случае выполнения обработки реконфигурирования вейвлет коэффициентов на стороне устройства кодирования изображения.
На фиг.14 показана схема, описывающая поток обработки в случае выполнения обработки реконфигурирования вейвлет коэффициентов на стороне устройства декодирования изображения.
На фиг.15 показана блок-схема, иллюстрирующая конфигурацию примера устройства кодирования изображения, в котором применено настоящее изобретение.
На фиг.16 показана блок-схема, иллюстрирующая конфигурацию примера устройства декодирования изображения, в котором также применено настоящее изобретение.
На фиг.17 показана схема, описывающая пример того, как выполняют обмен кодированными данными.
На фиг.18 показана схема, иллюстрирующая пример конфигурации пакета.
На фиг.19 показана блок-схема, иллюстрирующая пример конфигурации устройства кодирования изображения, в котором применено настоящее изобретение.
На фиг.20 показана схема, описывающая подполосы.
На фиг.21 показана схема, иллюстрирующая пример квантованных коэффициентов, которые должны быть кодированы.
На фиг.22 показана блок-схема, иллюстрирующая пример конфигурации модуля энтропийного кодирования.
На фиг.23 блок-схема последовательности операций устройства кодирования.
На фиг.24 показана блок-схема последовательности операций, описывающая обработку энтропийного кодирования.
На фиг.25 показана блок-схема последовательности операций, предназначенная для описания обработки кодирования набора w.
На фиг.26 показана блок-схема, иллюстрирующая пример конфигурации устройства декодирования изображения.
На фиг.27 показана блок-схема, иллюстрирующая пример конфигурации устройства энтропийного декодирования.
На фиг.28 показана блок-схема, иллюстрирующая пример конфигурации модуля разделения кода.
На фиг.29 показана блок-схема, иллюстрирующая пример конфигурации модуля разделения кода.
На фиг.30 показана блок-схема последовательности операций, предназначенная для описания обработки декодирования.
На фиг.31 показана блок-схема последовательности операций, предназначенная для описания обработки энтропийного декодирования.
На фиг.32 показана блок-схема последовательности операций, предназначенная для описания обработки декодирования набора w.
На фиг.33 показана блок-схема, иллюстрирующая другой пример конфигурации модуля энтропийного кодирования.
На фиг.34 показана схема, иллюстрирующая пример квантованных коэффициентов, предназначенных для кодирования.
На фиг.35 показана блок-схема последовательности операций, предназначенная для описания обработки кодирования набора w.
На фиг.36 показана блок-схема последовательности операций, предназначенная для описания обработки декодирования набора w.
На фиг.37 показана блок-схема, иллюстрирующая конфигурацию примера цифровой триаксиальной системы, к которой применено настоящее изобретение.
На фиг.38 показана блок-схема, иллюстрирующая пример конфигурации системы беспроводной передачи, в которой применено настоящее изобретение.
На фиг.39 показана схема, иллюстрирующая пример конфигурации домашней игровой консоли, в который применено настоящее изобретение.
На фиг.40 показана схема, иллюстрирующая пример конфигурации системы обработки информации, в которой применено настоящее изобретение.
Список ссылочных позиций
1 устройство кодирования изображения
10 модуль вейвлет преобразования
11 модуль буфера промежуточных расчетов
12 модуль буфера реконфигурирования коэффициентов
13 модуль реконфигурирования коэффициентов
14 модуль управления скоростью
15 модуль энтропийного кодирования
20 устройство декодирования изображения
21 модуль энтропийного декодирования
22 модуль буфера коэффициента
23 модуль инверсного вейвлет преобразования
30 устройство кодирования изображения
31 модуль буфера реконфигурирования кодирования
32 модуль реконфигурирования кодирования
41 устройство кодирования изображения
42 устройство декодирования изображения
43 модуль буфера реконфигурирования коэффициента
111 устройство кодирования изображения
121 модуль вейвлет преобразования
122 модуль квантования
123 модуль энтропийного кодирования
161 модуль определения строки
162 модуль кодирования КПД
163 модуль расчета максимального значащего разряда
164 модуль кодирования КПД
165 модуль выделения значащего разряда
166 модуль кодирования КПД
167 модуль выделения знака
168 модуль кодирования КПД
169 модуль соединения кода
211 устройство декодирования изображения
221 модуль энтропийного декодирования
222 модуль инверсного квантования
223 модуль инверсного вейвлет преобразования
251 модуль разделения кода
252 модуль определения строки
253 модуль генерирования
254 модуль декодирования КПД
255 модуль декодирования КПД
256 модуль декодирования КПД
257 модуль синтеза квантованного коэффициента
258 модуль переключения
271 модуль управления
272 запоминающее устройство
291 модуль управления
401 буфер
500 модуль передачи
501 триаксиальный кабель
502 модуль управления камерой
510 модуль кодирования видеосигнала
511 модуль декодирования видеосигнала
526 модуль декодирования видеосигнала
527 модуль кодирования видеосигнала
600 модуль передачи
601 устройство приема
602 модуль кодирования видеосигнала
612 блок беспроводного модуля
621 блок беспроводного модуля
624 модуль декодирования видеосигнала
700 устройство видеокамеры
701 домашняя игровая консоль
Подробное описание изобретения
Первый вариант выполнения в соответствии с настоящим изобретением будет описан со ссылкой на чертежи. На фиг.1 представлен один пример конфигурации устройства кодирования изображения, применимый к первому варианту выполнения настоящего изобретения. Устройство 1 кодирования изображения содержит модуль 10 вейвлет преобразования, модуль 11 буфера промежуточных расчетов, модуль 12 буфера реконфигурирования коэффициента, модуль 13 реконфигурирования коэффициента, модуль 14 управления скоростью и модуль 15 энтропийного кодирования.
Введенные данные изображения временно накапливают в модуле 11 буфера промежуточных расчетов. Модуль 10 вейвлет преобразования выполняет вейвлет преобразование данных изображения, которые накоплены в модуле 11 буфера промежуточных расчетов. То есть модуль 10 вейвлет преобразования считывает данные изображения из буфера 11 промежуточных расчетов и выполняет обработку фильтрования с использованием фильтра анализа для генерирования данных коэффициента с компонентами нижней полосы и компонентами верхней полосы и сохраняет сгенерированные данные коэффициента в модуле 11 буфера промежуточных расчетов. Модуль 10 вейвлет преобразования имеет фильтр горизонтального анализа и фильтр вертикального анализа и выполняет обработку фильтрования анализа для группы данных изображения как в горизонтальном направлении экрана, так и в вертикальном направлении экрана. Модуль 10 вейвлет преобразования снова считывает данные коэффициента компонента нижней полосы, которые сохранены в модуле 11 буфера промежуточных расчетов, выполняет обработку фильтрования в отношении считываемых данных коэффициента с использованием фильтра анализа и дополнительно сгенерированных данных коэффициента с использованием компонентов верхней полосы и компонентов нижней полосы. Сгенерированные данные коэффициента сохраняют в модуле 111 буфера промежуточных расчетов.
Модуль 10 вейвлет преобразования считывает данные коэффициента из модуля 11 буфера промежуточных расчетов, когда эта обработка повторяется, и уровень разделения достигает заданного уровня, и записывает считанные данные коэффициента в модуль 12 буфера реконфигурирования коэффициента.
Модуль 13 реконфигурирования коэффициента считывает данные коэффициента, записанные в модуль 12 буфера реконфигурирования коэффициента в заданном порядке, и передает в модуль 15 энтропийного кодирования. Модуль 15 энтропийного кодирования кодирует переданные данные коэффициента, используя способ энтропийного кодирования, такой как, например, способ кодирования Хаффмана или арифметическое кодирование.
Модулем 15 энтропийного кодирования управляют так, чтобы он работал совместно с модулем 14 управления скоростью, в котором скорость передачи битов в выходных данных после кодирования со сжатием, в общем, имеет постоянное значение. То есть модуль 14 управления скоростью передает сигнал управления в модуль 15 энтропийного кодирования, в котором скорость передачи битов данных, подвергаемых кодированию со сжатием модулем 15 энтропийного кодирования, заканчивает обработку кодирования модуля 15 энтропийного кодирования в точке достижения его целевого значения или непосредственно перед достижением его целевого значения на основе информации данных кодирования из модуля 15 энтропийного кодирования. Модуль 15 энтропийного кодирования выводит данные кодирования в точке, в которой обработка кодирования заканчивается, в соответствии с сигналом управления, передаваемым из модуля 14 управления скоростью.
Обработка, выполняемая в модуле 10 вейвлет преобразования, будет подробно описана ниже. Вначале будет приведено общее описание вейвлет преобразования. С помощью вейвлет преобразования данных изображения, которое, в общем, представлено на фиг.2, выполняется обработка разделения данных изображения на пространственные частоты из верхних полос и нижних полос, рекурсивно повторяемая в отношении данных с пространственной частотой нижней полосы, полученной в результате разделения. Таким образом, путем размещения данных с пространственной частотой нижней полосы в меньшей области может быть более эффективно выполнено кодирование со сжатием.
Следует отметить, что на фиг.2 показан пример для случая, в котором обработка разделения в области компонента самой нижней полосы данных изображения повторяется три раза в области L компонента нижней полосы или области Н компонента верхней полосы, в результате чего получают уровень = 3 разделения. На фиг.2 "L" и "Н" обозначают компоненты нижней полосы и компоненты верхней полосы соответственно, и порядок "L" и "Н" показывает полосу как результат горизонтального разделения передней стороны и полосу как результат вертикального разделения задней стороны. Кроме того, цифры, предшествующие "L" и "Н", обозначают уровень разделения их области.
Кроме того, как можно видеть на примере, показанном на фиг.2, обработку выполняют поэтапно от области в правой нижней части экрана в направлении области, верхней левой части, в которую передают компоненты нижней полосы. То есть на примере, показанном на фиг.2, область, разделенная на четыре части, в которой область ЗИН в нижней правой части экрана, которая имеет компоненты последней нижней полосы (включает в себя большую часть компонентов верхней полосы), имеет область в верхней левой части экрана, разделенную на четыре и дополнительно разделенную на четыре части, и эта область в верхней левой части экрана дополнительно разделена на четыре части. Область в самом дальнем верхнем левом углу представляет собой область 0LL, которая имеет компоненты самой нижней полосы.
Преобразование и разделение компонентов нижней полосы выполняют многократно, поскольку энергия изображения концентрируется в компонентах нижней полосы. Это также можно видеть на примере подполосы, сформированной, как показано на фиг.3В, в соответствии с переходом уровня разделения из состояния уровня = 1 разделения, как представлено на примере, показанном на фиг.3А в состояние уровня = 3 разделения, как показано на примере, показанном на фиг.3В. Например, уровень разделения вейвлет преобразования на фиг.2 равен 3, и, следовательно, формируется 10 подполос.
Модуль 10 вейвлет преобразования обычно выполняет описанную выше обработку, используя гребенку фильтров, выполненную с фильтром нижней полосы и фильтром верхней полосы. Следует отметить, что цифровой фильтр обычно имеет импульсный отклик, то есть коэффициент фильтра с множеством длин выводов, и поэтому требуется заранее выполнять буферизацию данных коэффициента или входных данных изображения только в количестве, требуемом для выполнения обработки фильтра. Кроме того, аналогично случаю выполнения вейвлет преобразования с использованием множества этапов, коэффициент вейвлет преобразования, генерируемый на предыдущем этапе, должен размещаться в буфере, только такое количество раз, которое может быть выполнена обработка в этом фильтре.
Далее, как конкретный пример вейвлет преобразования, применимого в первом варианте выполнения настоящего изобретения, будет описан способ, в котором используется фильтр 5×3. Способ, в котором используется фильтр 5×3, представляет собой отличный способ, в котором вейвлет преобразование может быть выполнено с меньшим количеством отводов фильтра, и также используется со стандартом JPEG 2000, как описано со ссылкой на обычную методику.
Импульсный отклик (выражение Z-преобразования) фильтра 5×3 выполнен с фильтром Н0 (z) нижней полосы и фильтром H1 (z) верхней полосы, как показано в следующих выражениях (1) и (2). Из выражений (1) и (2) можно определить, что фильтр Н0 (z) нижней полосы должен иметь 5 отводов, и можно определить, что H1 (z) верхней полосы должен иметь 3 отвода.
В соответствии с этими выражениями (1) и (2) коэффициенты компонентов нижней полосы и компонентов верхней полосы могут быть непосредственно рассчитаны. Теперь, используя методику подъема, можно уменьшить количество расчетов для обработки фильтра. Обзор обработки анализа на стороне фильтра с использованием вейвлет преобразования, в случае применения методики подъема для фильтра 5×3, будет представлен со ссылкой на фиг.4.
На фиг.4, на каждом участке самого верхнего этапа, участке среднего этапа и участке самого нижнего этапа, показаны колонки пикселей входных данных, вывод компонента верхней полосы и вывод компонента нижней полосы. На самом верхнем этапе нет необходимости ограничиваться колонкой пикселей входного изображения, но также может использоваться коэффициент, полученный при предыдущей обработке фильтра. Здесь участок самого верхнего этапа представляет собой колонку пикселей входного изображения, в которой квадратной меткой обозначен пиксель или строка с четным номером (начиная с 0), и круглой меткой обозначен пиксель или строка с нечетным номером.
Вначале, на первом этапе генерируют коэффициент di 1 компонента верхней полосы из колонки входных пикселей в соответствии со следующим выражением (3).
Затем, в качестве второго этапа генерируют коэффициент si 1 компонента нижней полосы из следующего выражения (4), используя пиксель входного изображения с нечетным номером.
Используя сторону анализа фильтра, данные входного изображения, таким образом, разделяют на компоненты нижней полосы и компоненты верхней полосы, путем обработки фильтрации.
Обзор обработки на стороне синтеза в фильтре для выполнения инверсного вейвлет преобразования, которое восстанавливает коэффициент, генерированный при вейвлет преобразовании, будет приведен со ссылкой на фиг.5. Фиг.5 соответствует фиг.4, описанной выше, в ней используется фильтр 5×3, и представлен пример применения методики подъема. На фиг.5 участок самого верхнего этапа представляет входной коэффициент, генерируемый с использованием вейвлет преобразования, в котором круглой меткой обозначен коэффициент верхней полосы, и квадратной меткой обозначен коэффициент нижней полосы.
Вначале, на первом этапе, в соответствии со следующим выражением (5), генерируют коэффициент si 1 с четным номером (начиная с 0) из входных коэффициентов компонента нижней полосы и компонента верхней полосы.
Затем, на втором этапе, в соответствии со следующим выражением (6), генерируют коэффициент di 0 с нечетным номером из коэффициента si 0 с четным номером, сгенерированным на описанном выше первом этапе, и коэффициент di 1 входных компонентов верхней полосы.
Используя сторону синтеза фильтра, таким образом, при обработке фильтрования синтезируют коэффициент компонентов нижней полосы и компонентов верхней полосы, и выполняют инверсное вейвлет преобразование.
Далее будет описан способ вейвлет преобразования в соответствии с первым вариантом выполнения настоящего изобретения. На фиг.6 показан пример обработки фильтрования с использованием подъема фильтра 5×3, которая выполнялась до уровня = 2 разделения, со ссылкой на фиг.4. На фиг.6 участок, показанный с левой стороны схемы, как фильтр анализа, представляет собой фильтр для модуля 10 вейвлет преобразования на стороне устройства 1 декодирования изображения. Кроме того, участок, показанный как фильтр синтеза с правой стороны схемы, представляет собой фильтр для модуля инверсного вейвлет преобразования на описанной ниже стороне устройства декодирования изображения.
Используя приведенное ниже описание в отношении пикселя в левом верхнем углу экрана устройства дисплея или тому подобное, в качестве ведущего пикселя, можно сказать, что, например, эти пиксели сканируют от левого конца до правого конца экрана, для конфигурирования одной строки, и сканирование строк выполняется от верхнего конца экрана в направлении нижнего конца, в результате чего конфигурируют один экран.
На фиг.6 колонка с левого конца представляет данные изображения, установленные так, что они соответствуют строке данных исходного изображения, выровненной в вертикальном направлении. То есть обработка фильтра с модулем 10 вейвлет преобразования выполняется по пикселям на экране, сканируемом вертикально, с использованием вертикального фильтра. Здесь показана обработка фильтра для первой колонки - третьей колонки уровня = 1 разделения с левого конца, и с четвертой по шестую колонки представляют обработку фильтра уровня = 2 разделения. Вторая колонка с левого конца представляет компонент верхней полосы, выводимый на основе изображения исходных данных изображения на левой стороне, и третья колонка с левого конца представляет компонент нижней полосы, выводимый на основе данных исходного изображения и выводимого компонента верхней полосы. Обработка фильтра, в которой уровень = 2 разделения, выполняется как выход обработки фильтра для уровня = 1 разделения, как показано в колонке 4 - колонке 6 с левого конца.
При обработке фильтра, в которой уровень = 1 разделения, данные коэффициента компонента верхней полосы рассчитывают на основе исходных пикселей данных изображения в качестве первого этапа обработки фильтра, и данные коэффициента компонента нижней полосы рассчитывают на основе данных коэффициента компонента верхней полосы, рассчитанных при обработке фильтра первого этапа и по исходным пикселям данных изображения. Обработка фильтра для одного примера уровня = 1 разделения показана в первой - третьей колонках с левой стороны (сторона анализа фильтра) на фиг.6. Рассчитанные данные коэффициента компонента верхней полосы сохраняют в модуле 12 буфера реконфигурирования коэффициента, как описано со ссылкой на фиг.1. Кроме того, рассчитанные данные коэффициента компонента нижней полосы сохраняют в модуле 11 буфера промежуточных расчетов.
На фиг.6 модуль 12 буфера реконфигурирования коэффициента представлен как участок, окруженный штрихпунктирной линией, и модуль 11 буфера промежуточных расчетов показан как участок, окруженный пунктирной линией.
Обработку фильтра, в которой уровень = 2 разделения, выполняется на основе результата уровня = 1 разделения, содержащегося в модуле 11 буфера промежуточных расчетов. При обработке фильтра с уровнем = 2 разделения данные коэффициента, рассчитанные как коэффициенты компонента нижней полосы при обработке фильтра на уровне = 1 разделения, используют как данные коэффициента, включающие в себя компоненты нижней полосы и компоненты верхней полосы, и при этом выполняют обработку фильтра, аналогичную обработке фильтра для уровня = 1 разделения. Данные коэффициента компонента верхней полосы и данные коэффициента компонента нижней полосы, рассчитанные при обработке фильтра с уровнем = 2 разделения, сохраняют в модуле 12 буфера реконфигурирования коэффициента, описанном со ссылкой на фиг.1.
В модуле 10 вейвлет преобразования обработка фильтра, как описано выше, выполняется в каждом из горизонтального направления и вертикального направления на экране. Например, вначале выполняют обработку фильтра с уровнем = 1 разделения в горизонтальном направлении, и сгенерированные данные коэффициента с компонентами верхней полосы и компонентами нижней полосы сохраняют в модуле 11 буфера промежуточных расчетов. Затем выполняют обработку фильтра с уровнем = 1 разделения в вертикальном направлении в отношении данных коэффициента, сохраненных в модуле 11 буфера промежуточных расчетов. Используя такую обработку в горизонтальном и вертикальном направлениях, в которой уровень = 1 разделения, формируют четыре области, которые представляют собой область 'НН и область HL, каждая из которых сформирована с помощью данных коэффициента, в результате дальнейшего разделения компонента верхней полосы на компоненты верхней полосы и компоненты нижней полосы, и область LH и область LL, каждая из которых сформирована данными коэффициента, путем дальнейшего разделения компонента нижней полосы на компоненты верхней полосы и компоненты нижней полосы.
При уровне = 2 разделения обработку фильтра выполняют в отношении данных коэффициента компонентов нижней полосы, сгенерированных с уровнем = 1 разделения, в каждом из горизонтального направления и вертикального направления. То есть при уровне = 2 разделения область LL, сформированную путем разделения на уровне = 1 разделения, дополнительно делят на четыре области, дополнительно формируя таким образом область НН, область HL, область LH и область LL в пределах области LL.
В первом варианте выполнения обработку фильтра с вейвлет преобразованием пошагово выполняют множество раз, разделяя обработку с приращением по несколько строк в вертикальном направлении экрана. Используя, например, фиг.6 при первоначальной обработке, используемой как обработка, начинаемая с первой строки на экране, выполняют обработку фильтра для семи строк, и обработку, выполняемую, как вторая обработка, начинаемая после этого с восьмой строки, выполняет обработку фильтра с приращением по четыре строки. Количество строк основано на необходимом количестве строк, для генерирования одной строки, соответствующей компонентам самой нижней полосы, после разделения на два компонентов верхней полосы и компонентов нижней полосы.
После этого набор строк, необходимый для генерирования одной строки, соответствующей (данные коэффициента, соответствующие одной строке подполосы компонента самой нижней полосы) компонентам нижней полосы, включающим в себя другие подполосы, называется блоком строк (или участком). Здесь строка относится к одному ряду, который соответствует данным пикселя или данным коэффициента, сформированным в пределах изображения или поля, или в пределах каждой подполосы, соответствующей данным изображения перед вейвлет преобразованием. То есть блок строки (участок) относится к группе данных пикселей, которые соответствуют количеству строк, необходимых для генерирования данных коэффициентов, соответствующих одной строке подполосы компонента самой нижней полосы после вейвлет преобразования исходных данных изображения, перед вейвлет преобразованием, или группе данных коэффициента каждой подполосы, полученных путем вейвлет преобразования их группы данных пикселя.
В соответствии с фиг.6, коэффициент С5, полученный по результатам обработки фильтра уровня = 2 разделения, рассчитывают на основе коэффициент Са, сохраненного в модуле 11 буфера промежуточных расчетов, и коэффициент С4 сравнивают на основе коэффициента Са, коэффициента Сb и коэффициента Сс, сохраненных в буфере 11 промежуточных расчетов. Кроме того, коэффициент Сс рассчитывают на основе коэффициента С2 и коэффициента С3, сохраненных в модуле 12 буфера реконфигурирования коэффициента, а также на основе данных пикселя в пятой строке. Кроме того, коэффициент С3 рассчитывают на основе данных пикселя пятой строки - седьмой строки. Таким образом, для получения коэффициента С5 компонента нижней полосы с уровнем = 2 разделения необходимы данные пикселей в первой строке - седьмой строке.
И, наоборот, при обработке фильтра во второй раз и после этого, можно использовать данные коэффициента, уже рассчитанные до предыдущей обработки фильтра и сохраненные в модуле 12 буфера реконфигурирования коэффициента, что уменьшает необходимое количество строк.
Другими словами, в соответствии с фиг.6, для результатов обработки фильтра коэффициентов компонента нижней полосы, полученных на уровне 2 разделения, рассчитывают коэффициент С9, который представляет собой следующий коэффициент, следующий после коэффициента С5, на основе коэффициента С4 и коэффициента С8, а также коэффициента Сс, сохраненных в модуле 11 буфера промежуточных расчетов. Коэффициент С4 уже был рассчитан с использованием описанной выше обработки фильтра, выполняемой первый раз, и сохранен в модуле 12 буфера реконфигурирования коэффициента. Аналогично, коэффициент Сс уже был рассчитан при описанной выше обработке фильтра выполняемой первый раз, и сохранен в модуле 11 буфера промежуточных расчетов. В соответствии с этим при такой обработке фильтра, выполняемой второй раз, выполняется только обработка фильтра, предназначенная для нового расчета коэффициента С8. Такая новая обработка фильтра выполняется с использованием также восьмой строки - одиннадцатой строки.
Таким образом, при обработке фильтра, выполняемой второй раз, и после этого можно использовать данные, уже рассчитанные до обработки фильтра, выполненной в предыдущий раз, и сохраненные в модуле 11 буфера промежуточных расчетов и в модуле 12 буфера реконфигурирования коэффициента, что позволяет каждый раз выполнять обработку с приращением, составляющим только четыре строки.
Следует отметить, что в случае, когда количество строк на экране не соответствует кодированному количеству строк, строки данных исходного изображения дуплицируют определенным образом, так, чтобы они соответствовали кодированному количеству строк, после чего выполняют обработку фильтрацией.
Хотя подробное описание будет приведено ниже, в соответствии с настоящим изобретением, декодированное изображение может быть получено с небольшой задержкой, в случае передачи кодированных данных путем выполнения поэтапной обработки фильтрации, с получением только данных коэффициента, соответствующих одной строке компонента самой нижней полосы, разделенной на несколько раз по строкам всего экрана (с приращением по блокам строк).
Для выполнения вейвлет преобразования, необходимы первый буфер, используемый для выполнения самого вейвлет преобразования, и второй буфер, предназначенный для сохранения коэффициента, генерируемого во время выполнения обработки вплоть до заданного уровня разделения. Первый буфер соответствует модулю 11 буфера промежуточного расчета, и на фиг.6 показан окруженным штрихпунктирной линией. Коэффициент, сохраненный во втором буфере, используется в случае декодирования, и представляет, таким образом, объект обработки энтропийного кодирования на последующем этапе.
Обработка в модуле 13 реконфигурирования коэффициента будет описана ниже. Как описано выше, данные коэффициента, рассчитанные в модуле 10 вейвлет преобразования, сохранены в модуле 12 буфера реконфигирирования коэффициента, реконфигурированном с помощью модуля 13 реконфигирирования коэффициента, и считанные, и переданные в модуль 15 энтропийного кодирования.
Как описано выше, при использовании вейвлет преобразования, коэффициенты генерируют от стороны компонента верхней полосы на сторону компонента нижней полосы. В примере по фиг.6, при выполнении в первый раз, коэффициент С1 компонента верхней полосы, коэффициент С2 и коэффициент С3 последовательно генерируют при обработке фильтра с уровнем = 1 разделения, из данных пикселя исходного изображения. Обработка фильтра с уровнем = 2 разделения затем выполняется для данных коэффициента компонента нижней полосы, полученных при обработке фильтра с уровнем = 1 разделения, в результате чего последовательно генерируют коэффициент С4 компонента нижней полосы и коэффициент С5. То есть первый раз данные коэффициента генерируют в порядке - коэффициент С1, коэффициент С2, коэффициент С3, коэффициент С4 и коэффициент С5. Генерирование данных коэффициента всегда выполняется в этом порядке (в порядке от верхней полосы до нижней полосы) на основе принципа вейвлет преобразования.
И, наоборот, на стороне декодирования, для немедленного декодирования с малой задержкой, необходимо генерировать и выводить изображение из компонента нижней полосы. Поэтому реконфигурирование данных коэффициента, генерируемых на стороне кодирования со стороны компонента самой нижней полосы до стороны компонента верхней полосы, и передача их на сторону декодирования, являются предпочтительными.
Далее приведено подробное описание со ссылкой на фиг.6. С правой стороны на фиг.6 показана сторона фильтра синтеза, выполняющего инверсное вейвлет преобразование. Обработка синтеза, выполняемая в первый раз (обработка инверсного вейвлет преобразования), включающая в себя первую строку данных выходного изображения на стороне декодирования, выполняется с использованием коэффициента С4, коэффициента С5 и коэффициента С1 компонента самой нижней полосы и генерируемых при обработке фильтра, выполняемой в первый раз на стороне кодирования.
То есть при выполняемой в первый раз обработке синтеза данные коэффициента передают со стороны кодирования на сторону декодирования в порядке коэффициент С5, коэффициент С4 и коэффициент С1, в результате чего на стороне декодирования выполняют обработку с использованием коэффициента С5 и коэффициента С4, для генерирования коэффициент Cf, используя обработку с уровнем = 2 синтезирования, которая представляет собой обработку синтезирования, соответствующую уровню = 2 разделения, и сохраняют коэффициент Cf в буфере. Обработку синтезирования для коэффициента Cf и коэффициента С1 затем выполняют с обработкой уровня = 1 синтезирования, которая представляет собой обработку синтезирования, соответствующую уровню = 1 разделения, в результате чего выводят первую строку.
Таким образом, при первоначально выполнении обработки синтезирования данные коэффициента, сгенерированные на стороне кодирования, в порядке коэффициент С1, коэффициент С2, коэффициент С3, коэффициент С4 и коэффициент С5, и сохраненные в модуле 12 буфера реконфигурирования коэффициента, реконфигурируют в порядке коэффициент С5, коэффициент С4, коэффициент С1 и т.д., и передают на сторону декодирования.
Следует отметить, что при использовании стороны фильтра синтеза, показанной с правой стороны на фиг.6, коэффициенты, переданные со стороны кодирования, обозначают с использованием номера коэффициента на стороне кодирования, вставленном в круглых скобках, и они представляют номер строки фильтра синтезирования за пределами круглых скобок. Например, коэффициент С1 (5) обозначает, что на стороне фильтра анализа с левой стороны на фиг.6 он представляет собой коэффициент С5, и на стороне фильтра синтеза он представляет собой первую строку.
Обработка синтезирования на стороне декодирования с использованием данных коэффициента, генерированных с помощью обработки фильтра, выполняемой второй раз, и после этого на стороне кодирования, может выполняться с использованием данных коэффициента, передаваемых из синтезирования в случае обработки синтезирования предыдущего раза или со стороны кодирования. В примере, показанном на фиг.6, при обработке синтезирования, выполняемой во второй раз на стороне декодирования, которую выполняют с использованием коэффициента С8 компонента нижней полосы и коэффициента С9, генерируемого с использованием обработки фильтра, выполняемой второй раз, на стороне кодирования, дополнительно требуется декодировать коэффициент С2 и коэффициент С3, генерируемые при обработке фильтра, выполняемой первый раз на стороне кодирования, и декодируют со второй по пятую строки.
То есть с помощью обработки синтезирования, выполняемой второй раз, данные коэффициента передают со стороны кодирования на сторону декодирования в порядке коэффициент С9, коэффициент С8, коэффициент С2, коэффициент С3. На стороне декодирования, используя обработку с уровнем = 2 синтезирования, генерируют коэффициент Cg, с использованием коэффициента С8 и коэффициента С9, и коэффициента С4, передаваемых от стороны кодирования при обработке синтезирования, выполняемой первый раз. Коэффициент Сh генерируют, используя содействующий коэффициент Cg и описанный выше коэффициент С4, и коэффициент Cf генерируют с использованием процесса синтезирования, выполняемого в первый раз, и сохраняют в буфере, и коэффициент Ch сохраняют в буфере.
При обработке с уровнем = 1 синтезирования, обработку синтезирования выполняют с использованием коэффициента Cg и коэффициента Сh, генерируемых при обработке с уровнем = 2 синтезирования, и сохраненных буфере, коэффициента С2, передаваемого со стороны кодирования (представляется как коэффициент С6 (2) в фильтре синтезирования), и коэффициента С3 (представляется как коэффициент С7 (3) с фильтром синтезирования), и при этом декодируют со второй строки по пятую строку.
Таким образом, при обработке синтеза, выполняемой во второй раз, данные коэффициента, генерируемые на стороне кодирования, как коэффициент С2, коэффициент С3 (коэффициент С4, коэффициент С5), коэффициент С6, коэффициент С7, коэффициент С8, коэффициент С9, реконфигурируют и передают на сторону декодирования в порядке коэффициент С9, коэффициент С8, коэффициент С2, коэффициент С3 и т.д.
Таким образом, при использовании обработки третьего синтезирования и после нее так же, аналогично, данные коэффициента, сохраненные в модуле 12 буфера реконфигурирования, реконфигурируют определенным образом и передают в модуль декодирования, в котором строки декодируют с приращениями четыре строки.
Следует отметить, что при обработке синтезирования на стороне декодирования, соответствующей обработке фильтра, включающей строки с нижнего конца экрана на стороне кодирования, все данные коэффициента, сгенерированные до этого момента и сохраненные в буфере, должны быть выведены, что, таким образом, увеличивает количество выводимых строк. В соответствии с примером, показанным на фиг.6, в последний раз были выведены восемь строк.
Следует отметить, что обработка реконфигурирования данных коэффициента модулем 13 реконфигурирования коэффициента устанавливает адреса считывания в случае считывания данных коэффициента, сохраненных в модуле 12 буфера реконфигурирования коэффициента, например, в заданном порядке.
Указанная выше обработка будет подробно описана со ссылкой на фиг.7. На фиг.7 показан пример выполнения обработки фильтра с помощью вейвлет преобразования вплоть до уровня = 2 разделения, в которой используется фильтр 5×3. С модулем 10 вейвлет преобразования, в качестве одного примера, показанного в позиции А на фиг.7, выполняют обработку фильтра в первый раз для первой строки - седьмой строки данных входного изображения в каждом из горизонтального и вертикального направлений (In - 1 в позиции А на фиг.7).
При обработке фильтра, выполняемой в первый раз, при уровне = 1 разделения, генерируют данные коэффициента для трех строк, соответствующие коэффициенту С1, коэффициенту С2 и коэффициенту С3, и в качестве одного примера, приведенного в позиции В на фиг.7, каждый из них располагают в области НН, области HL и области LH, сформированных с уровнем = 1 разделения (WT-1 в позиции В на фиг.7).
Кроме того, область LL, сформированную с уровнем = 1 разделения, дополнительно разделяют на четыре части при выполнении обработки фильтра в горизонтальном и вертикальном направлениях с уровнем = 2 разделения. С коэффициентом С5 и коэффициентом С4, сгенерированными с уровнем = 2 разделения, одну строку располагают в области LL по коэффициенту С5 в области LL с уровнем = 1 разделения, и одну строку располагают в каждой области НИ, области HL и области LH, по коэффициенту С4.
При использовании обработки фильтра, выполняемой во второй раз и далее модулем 10 вейвлет преобразования, обработку фильтра выполняют с приращением по четыре строки (IN - 2..., как показано в позиции А на фиг.7), данные коэффициента генерируют с приращением две строки с уровнем = 1 разделения, и данные коэффициента генерируют с приращениями одна строка с уровнем = 2 разделения.
В соответствии с примером второго раза, показанным на фиг.6, данные коэффициента, соответствующие двум строкам для коэффициента С6 и коэффициента С7, генерируют при обработке фильтра на уровне = 1 разделения, и в качестве одного примера, показанного в позиции В на фиг.7, и располагают так, что они следуют после данных коэффициента, которые были сгенерированы при обработке фильтра, выполненной первый раз в области НН, области HL и области LH, сформированных с уровнем = 1 разделения. В области LL с уровнем = 1 разделения коэффициент С9, соответствующий одной строке, сгенерированной при обработке фильтра с уровнем = 2 разделения, располагается в области LL, и коэффициент С8, соответствующий одной строке, располагается в каждой из области НН, области HL и области LH.
В случае декодирования данных, подвергавшихся вейвлет преобразованию, как показано в позиции В на фиг.7, в качестве одного примера, показанного в позиции С на фиг.7, выводится первая строка при обработке синтезирования, выполняемой в первый раз на стороне декодирования (Out-1 в позиции С на фиг.7), которая соответствует обработке фильтра, выполняемой первый раз с использованием первой строки - седьмой строки на стороне кодирования. После этого четыре строки одновременно выводят на стороне декодирования (Out-2 в позиции С на фиг.7), которая соответствует обработке фильтра второго раза, до тех пор, пока не наступит последний раз на стороне кодирования. Восемь строк выводят на стороне декодирования, которая соответствует обработке фильтра, для последнего раза на стороне кодирования.
Данные коэффициента, генерируемые модулем 10 вейвлет преобразования со стороны компонента верхней полосы на сторону компонента нижней полосы, последовательно сохраняют в модуле 12 буфера реконфигурирования коэффициента. В модуле 13 реконфигурирования коэффициента, когда данные коэффициента накапливаются в модуле 12 буфера реконфигурирования коэффициента, до тех пор, пока не станет возможным выполнение описанного выше реконфигурирования коэффициента, данные коэффициента реконфигурируют в необходимом порядке и считывают из модуля 12 буфера реконфигурирования коэффициента. Считанные данные коэффициента последовательно передают в модуль 15 энтропийного кодирования.
Модуль 15 энтропийного кодирования управляет операцией кодирования так, чтобы скорость следования битов выходных данных стала равной целевому значению скорости следования битов на основе сигнала управления, передаваемого из модуля 14 управления скоростью следования, и выполняет энтропийное кодирование в отношении переданных данных коэффициента. Кодированные данные, после энтропийного кодирования, передают на сторону декодирования. В качестве способа кодирования можно рассмотреть известную методику, такую как кодирование Хаффмана, или арифметическое кодирование. Конечно, такой способ не должен ограничиваться этими подходами, и можно использовать любой другой способ кодирования, который позволяет выполнять обработку инверсного кодирования.
Следует отметить, что если модуль 15 энтропийного кодирования вначале выполняет квантование в отношении данных коэффициента, считываемых из модуля 13 реконфигурирования коэффициента, и выполняет обработку кодирования источника информации, такую как кодирование Хаффмана, или арифметическое кодирование в отношении полученного коэффициента квантования, можно ожидать дополнительных преимуществ в связи с улучшением сжатия. В качестве способа такого квантования можно использовать любой способ и, например, общеиспользуемое средство, то есть средство разделения данных для W коэффициента на размер А шага квантования так, как показано в следующем выражении (7).
Как описано со ссылкой на фиг.6 и фиг.7, в первом варианте выполнения в соответствии с настоящим изобретением, модуль 10 вейвлет преобразования выполняет обработку вейвлет преобразования с последовательным приращением множества строк (с приращением блоков строк) данных изображения. Кодированные данные, кодированные с помощью модуля энтропийного 15 кодирования, выводят с последовательными приращениями в виде таких блоков строк. То есть в случае выполнения обработки, вплоть до уровня = 2 разделения, с использованием фильтра 5×3, для вывода одного экрана данных, вывод получают как одну строку для первого раза, четыре строки для каждого второго раза и далее до последнего раза, и восемь строк выводят в последний раз.
Следует отметить, что в случае пополнения для данных коэффициента после реконфигурирования с использованием модуля 13 реконфигурирования коэффициента энтропийного кодирования, например, в случае выполнения энтропийного кодирования для строки первого коэффициента С5 с обработкой фильтра, выполняемой в первый раз, как показано, например, на фиг.6, отсутствует историческая строка, то есть отсутствует строка, уже генерированная данными коэффициента. В соответствии с этим, в таком случае, только одну строку подвергают энтропийному кодированию. И, наоборот, в случае кодирования строки коэффициента С1, строки с коэффициентом С5 и коэффициентом С4 становятся историческими строками. Такое множество строк, приближающихся друг к другу, можно рассмотреть как строки, которые можно конфигурировать, используя аналогичные данные, таким образом, выполнение энтропийного кодирования одновременно для множества строк является эффективным.
Кроме того, как описано выше, в отношении модуля 10 вейвлет преобразования, описан пример выполнения обработки фильтра с вейвлет преобразованием, с использованием фильтра 5×3, но не должен ограничиваться этим примером. Например, при использовании модуля 10 вейвлет преобразования можно использовать фильтр с большим количеством отводов, такой как, например, фильтр 9×7. В этом случае, если количество отводов больше, количество строк накапливаемых фильтром также увеличивается, в результате чего время задержки от ввода данных изображения до вывода кодированных данных становится большим.
Кроме того, в приведенном выше описании уровень разделения вейвлет преобразования был описан как уровень = 2 разделения для целей описания, но не должен ограничиваться этим, и уровни разделения могут быть дополнительно увеличены. Чем сильнее уровень разделения будет увеличен, тем лучшую и большую степень сжатия можно реализовать. Например, в общем случае, при использовании вейвлет преобразования, обработка фильтра повторяется вплоть до уровня = 4 разделения. Следует отметить, что по мере увеличения уровня разделения время задержки также существенно увеличивается.
В соответствии с этим, в случае применения первого варианта выполнения настоящего изобретения в действительной системе, желательно определять количество отводов фильтра или уровня разделения с учетом времени задержки или качества изображения декодированного изображения, требуемого в системе. Количество отводов фильтра или уровень разделения не обязательно должны иметь фиксированное значение, но их также можно выбирать соответствующим образом.
Далее, со ссылкой на блок-схему последовательности операций, представленную на фиг.8, будет описан конкретный пример потока обработки для всего процесса кодирования в соответствии с устройством 1 кодирования изображения, такого, как описано выше.
После начала обработки кодирования, на этапе S1, модуль 10 вейвлет преобразования устанавливает номер А блока строк, предназначенного для обработки в исходную установку. В нормальных случаях номер А устанавливается равным "1". После окончания установки на этапе S2 модуль 10 вейвлет преобразования получает данные изображения для количества строк, необходимого (то есть одного блока строк) для генерирования одной строки А-й строки из верхней части подполосы самой нижней полосы, на этапе S3 выполняет обработку фильтра вертикального анализа для выполнения фильтрования анализа так, чтобы данные изображения были выстроены в вертикальном направлении экрана, как его данные изображения, и на этапе S4 выполняет обработку фильтрования горизонтального анализа для выполнения фильтрования анализа в отношении данных изображения, выстроенных в горизонтальном направлении экрана.
На этапе S5 модуль 10 вейвлет преобразования определяет, была ли выполнена обработка фильтрования анализа до последнего уровня, и в случае определения, что уровень разделения не достиг последнего уровня, обработку возвращают на этап S3, на котором обработку фильтрования анализа на этапе S3 и этапе S4 повторяют для текущего уровня разделения.
В случае, когда на этапе S5 определяют, что обработка фильтрования анализа была выполнена до последнего уровня, модуль 10 вейвлет преобразования переводит обработку на этап S6.
На этапе S6 модуль 13 реконфигурирования коэффициента реконфигурирует коэффициент блока А строки (блок А-й строки формирует верхнюю часть изображения (поля, в случае способа чересстрочного представления)) в порядке от нижней полосы до верхней полосы. На этапе S7 модуль 15 энтропийного кодирования подвергает коэффициент энтропийному кодированию с построчным приращением. После окончания энтропийного кодирования на этапе S8 модуль 15 энтропийного кодирования выполняет внешнее преобразование кодированных данных блока А строки.
Модуль 10 вейвлет преобразования выполняет последовательное приращение значения для номера А на "единицу" на этапе S9, подвергая обработке следующий блок строк, и на этапе S10 определяет, имеются или нет необработанные входные строки изображения для данного изображения (поля, в случае способа чересстрочного представления), предназначенные для обработки. В случае, если будет определено, что существуют необработанные входные строки изображения, обработка возвращается на этап S2, и после этого обработка повторяется для нового блока строк, предназначенных для обработки.
Как описано выше, обработка на этапах S2-S10 многократно выполняется для кодирования каждого блока строк. В случае определения на этапе S10, что больше нет необработанных входных строк изображения, модуль 10 вейвлет преобразования заканчивает обработку кодирования для этого изображения. Новый процесс кодирования начинается для следующего изображения.
В случае обычного способа вейвлет преобразование, вначале выполняется обработка фильтрования горизонтального анализа для всего изображения (поля, в случае способа чересстрочного представления), затем выполняют обработку фильтрования вертикального анализа для всего изображении. Аналогично, обработку фильтрования горизонтального анализа и обработку фильтрования вертикального анализа затем последовательно выполняют для всего полученного компонента нижней полосы. Как указано выше, обработку фильтрования анализа повторяют рекурсивно, до тех пор, пока уровень разделения не достигнет конечного уровня. В соответствии с этим, результаты каждого процесса фильтрования анализа должны содержаться в буфере, но в таком случае требуется, чтобы буфер содержал результаты фильтрования всего изображения (поля, в случае способа чересстрочного представления) или всего компонента нижней полосы на уровне разделения в этот момент времени, что требует большой емкости запоминающего устройства (количество содержащихся данных очень велико).
Кроме того, в этом случае, если вейвлет преобразование для всего изображения (поля, в случае способа чересстрочного представления) не заканчивается, на следующих этапах нельзя выполнять реконфигурирование коэффициента или энтропийное кодирование, что, таким образом, значительно увеличивает задержку по времени.
И, наоборот, в случае модуля 10 вейвлет преобразования устройства 1 кодирования изображения, обработку фильтрования вертикального анализа и обработку фильтрования горизонтального анализа постоянно выполняют с приращением в виде блоков строк до последнего уровня, как описано выше, так, что по сравнению с обычным способом, количество данных, которое должно содержаться (размещено в буфере) одновременно (в течение одного периода времени), будет небольшим, что существенно уменьшает емкость запоминающего устройства, выделяемую для буфера. Кроме того, путем выполнения обработки фильтрования анализа до последнего уровня последующие этапы для обработки реконфигурирования коэффициента или обработки энтропийного кодирования также могут выполняться (то есть реконфигурирование коэффициента или энтропийное кодирование могут выполняться с приращением по блокам строк). В соответствии с этим время задержки может быть значительно уменьшено по сравнению с обычным способом.
На фиг.9 показан один пример конфигурации устройства декодирования изображения, соответствующего устройству 1 кодирования изображения, показанному на фиг.1. Кодированные данные, выводимые из модуля 15 энтропийного кодирования (выход кодированных данных на фиг.1) устройства 1 кодирования изображения, показанного на фиг.1, передают в модуль 21 энтропийного декодирования устройства 20 декодирования изображения по фиг.9 (вход кодированных данных на фиг.9), выполняют декодирование в отношении энтропийного кодирования и получают данные коэффициента. Данные коэффициента сохраняют в модуле 22 буфера коэффициента. В модуле 23 инверсного вейвлет преобразования используют данные коэффициента, сохраненные в модуле 22 буфера коэффициента, для выполнения обработки фильтра синтезирования с использованием фильтра синтезирования, как описано, например, со ссылкой на фиг.5 и фиг.6, и снова сохраняют результаты обработки фильтра синтезирования в модуле 22 буфера коэффициента. Модуль 23 инверсного вейвлет преобразования повторяет эту обработку в соответствии с уровнем разделения для получения декодированных данных изображения (выходных данных изображения).
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг.10, будет описан конкретный пример потока обработки всего процесса декодирования, выполняемого устройством 20 декодирования изображения, такого как представлено выше.
После начала процесса декодирования на этапе S31 модуль 21 энтропийного декодирования получает кодированные данные, и на этапе S32 подвергает кодированные данные энтропийному декодированию с приращением по строкам. На этапе S33 модуль 22 буфера коэффициента содержит коэффициенты, декодированные и полученные таким образом. На этапе S34 модуль 23 инверсного вейвлет преобразования определяет, был ли накоплен в модуле 22 буфера коэффициента коэффициент, соответствующий одному блоку строк, и если определяется, что он не был накоплен, обработка возвращается на этап S31, после чего выполняется обработка, и модуль 23 инверсного вейвлет преобразования ожидает до тех пор, пока не накопится коэффициент, соответствующий одному блоку строк модуле 22 буфера коэффициента.
В случае, если на этапе S34 будет определено, что коэффициент, соответствующий одному блоку строк, был накоплен в модуле 22 буфера коэффициента, модуль 23 инверсного вейвлет преобразования переводит обработку на этап S35 и считывает коэффициент, соответствующий одному блоку строк, который содержится в модуле 22 буфера коэффициента.
Модуль 23 инверсного вейвлет преобразования подвергает считанный коэффициент обработке фильтрования вертикального синтезирования, при которой выполняется обработка фильтрования синтезирования относительно коэффициентов, выстроенных в вертикальном направлении экрана, и на этапе S37 выполняет обработку фильтрования горизонтального синтезирования, при которой выполняется обработка фильтрования синтезирования в отношении коэффициентов, выстроенных в горизонтальном направлении экрана, и на этапе S38 определяет, была ли закончена обработка фильтрования синтезирования для уровня 1 (уровень, на котором значение уровня разделения равно "единице"), то есть определяет, было ли выполнено инверсное преобразование для состояния перед вейвлет преобразованием, и если будет определено, что уровень 1 не был достигнут, обработка возвращается на этап S36, в результате чего обработка фильтрования на этапе S36 и этапе S37 повторяется.
На этапе S38, если будет определено, что обработка инверсного преобразования закончилась до уровня 1, модуль 23 инверсного вейвлет преобразования переводит обработку на этап S39 и выводит данные изображения, полученные при обработке инверсного преобразования.
На этапе S40 модуль 21 энтропийного декодирования определяет, следует или нет закончить обработку декодирования, и в случае определения, что ввод кодированных данных происходит с перерывами и что обработка декодирования не должна быть закончена, обработка возвращается на этап S31, и обработка после этого повторяется. Кроме того, на этапе S40, в случае, когда ввод кодированных данных заканчивается и т.д., так, что обработка декодирования заканчивается, модуль 21 энтропийного декодирования заканчивает обработку декодирования.
В случае использования обычного способа инверсного вейвлет преобразования вначале выполняют фильтрацию горизонтального синтезирования для всех коэффициентов на обрабатываемом уровне разделения в горизонтальном направлении экрана, и затем выполняют вертикальное фильтрование синтезирования в вертикальном направлении экрана. То есть каждый раз, когда выполняют обработку фильтрования синтезирования, результат обработки фильтрования синтезирования требуется содержать в буфере, но в таком случае в буфере требуется содержать результаты фильтрования синтезирования для уровня разделения в этот момент времени и также все коэффициенты на следующем уровне разделения, что требует большой емкости запоминающего устройства (количество данных, которые должны содержаться, велико).
Кроме того, в этом случае вывод данных изображения не выполняется до тех пор, пока не будет выполнено все инверсное вейвлет преобразование в пределах изображения (поля, в случае способа чересстрочного представления), поэтому время задержки от входа до выхода значительно увеличивается.
И, наоборот, в случае модуля 23 инверсного вейвлет преобразования такого устройства 20 декодирования изображения, как описано выше, обработка фильтрования вертикального синтезирования и обработка фильтрования горизонтального синтезирования выполняются постоянно с приращением по блокам строк, вплоть до уровня 1, в результате чего, по сравнению с обычным способом, количество данных, которое требуется размещать в буфере одновременно (в течение одного периода времени), будет мало, что, таким образом, способствует уменьшению объема запоминающего устройства, которое требуется выделять для буфера. Кроме того, при выполнении обработки фильтрования синтезирования (обработки инверсного вейвлет преобразования), вплоть до уровня 1, данные изображения могут выводиться последовательно, пока не будут получены все данные изображения в пределах изображения (с приращением в виде блоков строк), таким образом, по сравнению с обычным способом, время задержки можно значительно уменьшить.
Работой различных элементов устройства 1 кодирования изображения, показанного на фиг.1, или устройства 20 декодирования изображения, показанного на фиг.9 (обработка кодирования по фиг.8 или обработка декодирования по фиг.10), управляют в соответствии с заданной программой, с использованием, например, не представленного ЦПУ (центральное процессорное устройство). Программа сохранена заранее, например, в не показанном ПЗУ (постоянное запоминающее устройство). Однако устройство этим не ограничивается, и все устройство может работать при взаимодействии сигналов синхронизации или сигналов управления между каждым элементом, содержащим устройство кодирования изображения или устройство декодирования изображения. Кроме того, устройство кодирования изображения или устройство декодирования изображения могут быть реализованы с использованием программных средств, работающих в компьютерном устройстве.
Далее будет описан второй вариант выполнения в соответствии с настоящим изобретением. Во втором варианте выполнения используется компоновка, в которой в системе, такой, как описана выше в первом варианте выполнения, различные элементы устройства 1 кодирования изображения и устройства 20 декодирования изображения работают одновременно, выполняя, таким образом, обработку кодирования со сжатием и обработку декодирования изображения с меньшей задержкой.
Следует отметить, что в соответствии со вторым вариантом выполнения устройство 1 кодирования изображения и устройство 20 декодирования изображения, описанные выше в первом варианте выполнения со ссылкой на фиг.1 - фиг.10, а также способ кодирования и способ декодирования могут применяться таким же образом, поэтому их описание здесь не будет приведено.
На фиг.11 схематично представлены одновременно выполняемые операции, например, различными элементами устройства 1 кодирования изображения и устройства 20 декодирования изображения, в соответствии со вторым вариантом выполнения настоящего изобретения. Фиг.11 соответствует описанной выше фиг.7. Вейвлет преобразование WT-1, выполняемое в первый раз, выполняется (позиция В на фиг.11) в модуле 15 энтропийного кодирования в отношении вводимых In-1 данных изображения (позиция на фиг.11). Как описано со ссылкой на фиг.6, вейвлет преобразование WT-1, выполняемое в первый раз, начинается в момент времени, в который поступают первые три строки, и генерируется коэффициент С1. То есть от момента ввода данных In - 1 изображения до начала вейвлет преобразования WT-1 генерируется задержка, соответствующая трем строкам.
Сгенерированные данные коэффициента сохраняют в модуле 12 буфера реконфигурирования коэффициента. После этого данные входного изображения подвергают вейвлет преобразованию, и когда обработка, выполняемая первый раз, заканчивается, обработка переходит к вейвлет преобразованию WT-2, выполняемому во второй раз.
Данные In-2 изображения вводят с целью вейвлет преобразования WT-2, выполняемого во второй раз, и вейвлет преобразование WT-2 выполняют одновременно, реконфигурируя Ord-1 трех коэффициентов, которые представляют собой коэффициент С1, коэффициент С4 и коэффициент С5, с использованием модуля 13 реконфигурирования коэффициента (С по фиг.11).
Следует отметить, что задержки от конца вейвлет преобразования WT-1 до начала реконфигурирования Ord-1 могут представлять собой задержки, соответствующие конфигурации устройства или системы, например задержки, связанные с передачей сигнала управления, представляющего инструкцию на начало процесса реконфигурирования, в модуль 13 реконфигурирования коэффициента, задержку, необходимую для начала обработки, выполняемой модулем 13 реконфигурирования коэффициента в отношении сигнала управления, или задержку, необходимую для обработки программы, и не представляют собой фактическую задержку обработки кодирования.
Данные коэффициента считывают из буфера 12 реконфигурирования коэффициента, в порядке, в котором заканчивается реконфигурирование, передают в модуль 15 энтропийного кодирования и подвергают энтропийному кодированию ЕС-1 (позиция D на фиг.11). Энтропийное кодирование ЕС-1 может начинаться без ожидания окончания всего реконфигурирования трех коэффициентов; коэффициента С1, коэффициента С4 и коэффициента С5. Например, в момент времени окончания реконфигурирования для одной строки от коэффициента С5, который выводят первым, энтропийное кодирование может начаться для коэффициента С5. В этом случае задержка от начала обработки реконфигурирования Ord-1 до начала обработки энтропийного кодирования ЕС-1 соответствует одной строке.
Кодированные данные, на которых заканчивается энтропийное кодирование ЕС-1, выполняемое модулем 15 энтропийного кодирования, передают в устройство 20 декодирования изображения через определенного рода путь передачи (Е на фиг.11). Что касается пути передачи для передачи кодированных данных, можно рассмотреть, например, сеть передачи данных, такую как Интернет. В этом случае кодированные данные передают по IP (ПИ, протокол Интернет). Однако компоновка не ограничивается этим, и другие пути передачи кодированных данных могут представлять собой интерфейс передачи данных, такой как IEEE 1394 (ИИЭР, Институт инженеров по электротехнике и радиоэлектронике), или беспроводный канал передачи данных, представленный стандартом IEEE 802.11 или тому подобное.
После ввода данных изображения, состоящих из нескольких строк, соответствующих обработке, выполняемой первый раз, в устройство 1 кодирования изображения, последовательно вводят данные изображения в нижней кромке экрана. В устройстве 1 кодирования изображения, в соответствии с вводом In-n данных изображения (n равно 2 или больше), как описано выше, вейвлет преобразование WT-n, реконфигурирование Ord-n, и энтропийное кодирование ЕС-n выполняют с приращением по четыре строки. Реконфигурирование Ord и энтропийное кодирование ЕС для обработки последнего раза в устройстве 1 кодирования изображения выполняют для шести строк. Эту обработку выполняют одновременно в устройстве 1 кодирования изображения, как, например, показано в позиции А на фиг.11 - позиции D на фиг.11.
Кодированные данные, которые кодированы с использованием энтропийного кодирования ЕС-1 в устройстве 1 кодирования изображения, передают через путь передачи данных в устройство декодирования изображения и передают в модуль 21 энтропийного декодирования. Модуль 21 энтропийного декодирования последовательно подвергает переданные кодированные данные, которые кодированы с использованием энтропийного кодирования ЕС-1 по iEC-1, энтропийному кодированию и восстанавливает данные коэффициента (позиция F на фиг.11). Данные восстановленного коэффициента последовательно сохраняют в модуле 22 буфера коэффициента. После сохранения данных коэффициента в модуле 22 буфера коэффициента в количестве, составляющем только количество, которое можно подвергать инверсному вейвлет преобразованию, модуль 23 инверсного вейвлет преобразования считывает данные коэффициента из модуля 22 буфера коэффициента и выполняет инверсное вейвлет преобразование iWT-1, используя считанные данные коэффициента (позиция G на фиг.11).
Как описано со ссылкой на фиг.6, модуль iWT-1 инверсного вейвлет преобразования с модулем 23 инверсного вейвлет преобразования может начать работу в момент времени, когда коэффициент С4 и коэффициент С5 сохранены в модуле 22 буфера коэффициента. В соответствии с этим задержка от начала декодирования iEC-1, вводимая модулем 21 энтропийного декодирования, до начала инверсного вейвлет преобразования iWT-1, выполняемого модулем 23 инверсного вейвлет преобразования, соответствует двум строкам.
После инверсного вейвлет преобразования iWT-1 для этих трех строк, соответствующих окончанию вейвлет преобразования, выполняемого первый раз в модуле 23 инверсного вейвлет преобразования, выполняют вывод Out-1 данных изображения, сгенерированных в результате инверсного вейвлет преобразования iWT-1 (позиция Н на фиг.11). При выводе Out-1 выполняют вывод данных изображения первой строки, как описано со ссылкой на фиг.6 и на фиг.7.
После ввода данных кодированного коэффициента, соответствующих трем строкам, в результате обработки, выполняемой первый раз в устройстве 1 кодирования изображения, для устройства 20 декодирования изображения, последовательно вводят данные коэффициента, кодированные при энтропийном кодировании ЕС-n (n равно 2 или больше). В устройстве 20 декодирования изображения выполняют энтропийное декодирование iEC-n и инверсное вейвлет преобразование iWT-n в отношении входных данных коэффициента с приращением, равным четырем строкам, как описано выше, и последовательно выполняют вывод Out-n восстановленных данных изображения, восстановленных с помощью инверсного вейвлет преобразования iWT-n. Энтропийное декодирование iEC и инверсное вейвлет преобразование iWT, соответствующее последнему разу, устройства кодирования изображения выполняют для шести строк и выводят Out восемь строк. Эти процессы выполняют одновременно в устройстве декодирования изображения, как представлено на примерах в позиции F на фиг.11 - позиции Н на фиг.11.
Как описано выше, благодаря одновременному выполнению различной обработки в устройстве 1 кодирования изображения и в устройстве 20 декодирования изображения, в порядке от верхнего участка экрана до его нижнего участка, обработка сжатия изображения и обработка декодирования изображения могут выполняться с небольшой задержкой.
Время задержки от ввода изображения до вывода изображения, в случае выполнения вейвлет преобразования, вплоть до уровня = 2 разделения, с использованием фильтра 5×3, рассчитывают со ссылкой на фиг.11. Время задержки от ввода первой строки данных изображения в устройство 1 кодирования изображения до вывода первой строки данных изображения из устройства 20 декодирования изображения представляет собой общую сумму элементов, представленных ниже. Следует отметить, что задержки, отличающиеся в соответствии с конфигурацией системы, такие как задержки на пути передачи данных или задержки, соответствующие фактическому времени обработки различных частей устройства, здесь исключены.
(1) Задержка D WT от ввода первой строки до окончания вейвлет преобразования WT-1, соответствующего семи строкам.
(2) Время D Ord, которое соответствует реконфигурированию Ord-1 всего для трех строк.
(3) Время D EC, в соответствии с энтропийным кодированием ЕС-1, которое соответствует трем строкам.
(4) Время D iEC в соответствии с энтропийным декодированием iEC-1, которое соответствует трем строкам.
(5) Время D iWT в соответствии с инверсным вейвлет преобразованием iWT-1, которое соответствует трех строкам.
Задержки, вводимые описанными выше различными элементами, будут рассчитаны со ссылкой на фиг.11. Задержка D WT в пункте (1) соответствует по времени десяти строкам. Каждое время D-Ord в пункте (2), время D EC в пункте (3), время D iEC в пункте (4) и время D iWT в пункте (5) соответствует времени трех строк. Кроме того, в устройстве 1 кодирования изображения энтропийное кодирование ЕС-1 может быть начато после начала реконфигурирования Ord-1 одной строки. Аналогично, в устройстве 20 декодирования изображения инверсное вейвлет преобразование iWT-1 может быть начато после начала энтропийного декодирования iEC-1 двух строк. Кроме того, энтропийное декодирование iEC-1 может начать обработку в момент времени кодирования, соответствующий окончанию обработки одной строки при энтропийном кодировании ЕС-1.
В соответствии с этим примером, задержка по времени от ввода первой строки данных изображения в устройство кодирования изображения до вывода первой строки данных изображения из устройства декодирования соответствует 10+1+1+2+3=17 строкам.
Более конкретный пример будет приведен для учета задержки времени. В случае, когда входные данные изображения представляют собой чересстрочный видеосигнал для HDTV (ТВВЧ, телевидение высокой четкости), один кадр конфигурируют, например, с разрешающей способностью 1920 пикселей на 1080 строк, и одно поле составляет 1920 пикселей на 540 строк. В соответствии с этим, если частота кадров равна 30 Гц, одно поле, состоящее из 540 строк, вводят в устройство 1 кодирования изображения в момент времени 16,67 мс (=1 секунда/60 полей).
В соответствии с этим, время задержки при вводе данных изображения, соответствующих семи строкам, составляет 0,216 мс (=16,67 мс × 7/540 строк), что представляет собой чрезвычайно малое время, например, по сравнению со временем возобновления одного поля. Кроме того, что касается суммарных значений описанной выше задержки D WT в пункте (1), времени D Ord в пункте (2), времени D EC в пункте (3), времени D iEC в пункте (4), и времени D iWT в пункте (5), количество обрабатываемых строк мало, поэтому время задержки чрезвычайно сокращено. Если элементы, выполняющие различную обработку, скомпонованы в виде аппаратных средств, время обработки может быть дополнительно сокращено.
Далее будет описан третий вариант выполнения настоящего варианта выполнения. В описанных выше первом и втором вариантах выполнения данные коэффициента реконфигурируют после выполнения вейвлет преобразования в устройстве 1 кодирования изображения. В отличие от этого, в третьем варианте выполнения в соответствии с настоящим изобретением реконфигурирование данных выполняют после энтропийного кодирования. То есть в устройстве кодирования изображения в данном случае энтропийное кодирование выполняют для коэффициентов, сгенерированных после выполнения вейвлет преобразования для входных данных изображения, и обработку реконфигурирования выполняют для данных после энтропийного кодирования. Таким образом, путем выполнения реконфигурирования данных коэффициента, после выполнения энтропийного кодирования, можно уменьшить объем сохранения, требуемый для буфера реконфигурирования коэффициента.
Например, в случае, когда точность бита входных данных изображения составляет 8 бит, если вейвлет преобразование выполняют до множественного уровня разделения, точность бита генерируемых данных коэффициента становится приблизительно 12 бит, например. В случае выполнения обработки реконфигурирования коэффициента перед обработкой энтропийного кодирования модуль буфера реконфигурирования коэффициента должен сохранять заданное количество строк, соответствующее данным коэффициента с точностью бита 12 бит. В результате компоновки данных коэффициента, сгенерированных при вейвлет преобразовании, которые подвергаются обработке реконфигурирования после энтропийного кодирования, буфер реконфигурирования коэффициента может сохранять данные, сжатые в результате энтропийного кодирования, что требует только небольшой емкости запоминающего устройства.
На фиг.12 показан пример устройства кодирования изображения в соответствии с третьим вариантом выполнения настоящего изобретения. Участок на фиг.12, общий с описанной выше фиг.1, имеет те же номера ссылочных позиций, и его подробное описание не будет приведено.
Данные входного изображения временно сохраняют в модуле 11 буфера промежуточного расчета устройства 30 кодирования изображения. Модуль 10 вейвлет преобразования выполняет заданное вейвлет преобразование в отношении данных изображения, сохраненных в модуле 11 буфера промежуточного расчета, как описано в отношении первого варианта выполнения. Данные коэффициента, сгенерированные с использованием вейвлет преобразования, передают в модуль 15 энтропийного кодирования. Модуль 15 энтропийного кодирования работает совместно с модулем 14 управления скоростью следования данных, и им управляют так, чтобы скорость передачи битов выходных данных кодирования со сжатием была примерно равна фиксированному значению, и выполняют обработку энтропийного кодирования в отношении передаваемых данных коэффициента. То есть модуль 15 энтропийного кодирования кодирует полученные коэффициенты в том же порядке, в каком они были получены, независимо от порядка коэффициентов.
Кодированные данные, в которых данные коэффициента, сгенерированные с помощью вейвлет преобразования, подвергают энтропийному кодированию с использованием модуля 15 энтропийного кодирования, временно сохраняют в модуле 31 буфера реконфигурирования кодирования. Модуль 32 реконфигурирования кодирования реконфигурирует и считывает кодированные данные из модуля 31 буфера реконфигурирования кодирования до тех пор, пока кодированные данные, которые должны быть реконфигурированы, не будут сохранены в модуле 31 буфера реконфигурирования кодирования. Как уже было описано в отношении первого варианта выполнения, данные коэффициента, сгенерированные модулем 10 вейвлет преобразования, генерируют в порядке от компонентов верхней полосы до компонентов нижней полосы со стороны верхнего конца экрана в направлении к стороне нижнего конца. Для вывода данных изображения на стороне декодирования с малой задержкой данные кодирования, сохраненные в модуле 31 буфера реконфигурирования кодирования, реконфигурируют в порядке от компонентов нижней полосы до компонентов верхней полосы данных коэффициента с использованием вейвлет преобразования и считывают.
Кодированные данные, считанные из модуля 31 буфера реконфигурирования кодирования, передают в путь передачи, например, как выходные кодированные данные.
Следует отметить, что данные, кодированные и выведенные устройством 30 кодирования изображения в соответствии с третьим вариантом выполнения, могут быть декодированы устройством 20 декодирования изображения, в соответствии с первым вариантом выполнения, описанным со ссылкой на фиг.9, аналогично случаю, описанному в первом варианте выполнения. То есть кодированные данные, вводимые в устройство 20 декодирования изображения, например, через путь передачи данных, подвергают декодированию при энтропийном кодировании в модуле 21 энтропийного декодирования, и данные коэффициента восстанавливают. Восстановленные данные коэффициента последовательно сохраняют в модуле 22 буфера коэффициента. Модуль 23 инверсного вейвлет преобразования подвергает данные коэффициента, сохраненные в модуле 22 буфера коэффициента, инверсному вейвлет преобразованию и выводит данные изображения.
Далее будет описан четвертый вариант выполнения в соответствии с настоящим изобретением. В описанных выше первом варианте выполнения - третьем варианте выполнения выполняют обработку реконфигурирования данных коэффициента, генерируемых при вейвлет преобразовании на стороне устройства кодирования изображения, как, например, показано на фиг.13. В отличие от этого, в четвертом варианте выполнения настоящего изобретения обработку реконфигурирования данных коэффициента, генерируемых при вейвлет преобразовании, выполняют на стороне устройства декодирования изображения, как, например, показано на фиг.14.
При обработке реконфигурирования данных коэффициента, генерируемых при вейвлет преобразовании, как описано в указанном выше третьем варианте выполнения, требуется относительно большой объем сохранения в буфере реконфигурирования коэффициента, а также требуется высокая производительность при обработке для выполнения самой обработки реконфигурирования коэффициента. В этом случае также, если производительность обработки на стороне устройства кодирования изображения выше, чем определенная величина, даже если обработку реконфигурирования коэффициента выполняют на стороне устройства кодирования изображения, не возникают проблемы, как описано в первом - третьем вариантах выполнения.
Здесь представлены ситуации, в которых устройство кодирования изображения установлено в устройстве с относительно малыми вычислительными возможностями, таком как мобильные терминалы, такие как терминалы сотового телефона или КПК (карманный персональный компьютер). Например, широкое распространение получили выпущенные недавно продукты, в которых функция фотографии добавлена в терминал сотового телефона (называются терминалом сотового телефона с функцией камеры). Можно рассмотреть ситуацию, в которой данные изображения, которые представляют собой изображения, снятые устройством сотового телефона с функцией камеры, подвергают кодированию сжатия с использованием вейвлет преобразования и энтропийного кодирования и передают через беспроводный или кабельный канал передачи данных.
Такие мобильные терминалы имеют ограниченные возможности обработки своего ЦПУ и также имеют верхний предел емкости памяти. Поэтому нагрузка, связанная с обработкой при использовании описанного выше реконфигурирования коэффициента, представляет собой проблему, которую нельзя игнорировать.
Таким образом, в качестве одного примера, показанного на фиг.14, при построении обработки реконфигурирования на стороне устройства декодирования изображения нагрузка на сторону устройства кодирования изображения может быть уменьшена, что позволяет устанавливать устройство кодирования изображения в устройствах с относительно малыми возможностями обработки, таких как мобильный терминал.
На фиг.15 показан пример конфигурации устройства кодирования изображения, применимого к четвертому варианту выполнения. Следует отметить, что на фиг.15 участки, общие с описанной выше фиг.1, обозначены теми же номерами ссылочных позиций, и их подробное описание здесь не приведено.
Конфигурация устройства 41 кодирования изображения, показанная на фиг.15, представлена как конфигурация, в которой модуль 13 реконфигурирования коэффициента и модуль 12 буфера реконфигурирования коэффициента устранены из конфигурации устройства 1 кодирования изображения, показанной на описанной выше фиг.1. Другими словами, в четвертом варианте выполнения в устройстве 41 кодирования изображения используется конфигурация, в которой применяется комбинация модуля 10 вейвлет преобразования, модуля 11 буфера промежуточных расчетов, модуля 15 энтропийного кодирования и модуля 14 управления скоростью следования битов.
Входные данные изображения временно накапливают в модуле 11 буфера промежуточного расчета. Модуль 10 вейвлет преобразования выполняет вейвлет преобразование данных изображения, накаливаемых в модуле 11 буфера промежуточного расчета, и последовательно передает сгенерированные данные коэффициента в порядке генерируемых данных коэффициента в модуль 15 энтропийного кодирования. То есть генерируемые данные коэффициента передают в модуль 15 энтропийного кодирования в порядке от компонентов верхней полосы до компонентов нижней полосы в соответствии с порядком вейвлет преобразования. Модуль 15 энтропийного кодирования выполняет энтропийное кодирование в отношении переданных коэффициентов, при этом скоростью следования битов выходных данных управляют с помощью модуля 14 управления скоростью следования битов. Данные коэффициента, генерируемые при вейвлет преобразовании, выводят как кодированные данные, которые были подвергнуты энтропийному кодированию.
На фиг.16 показан один пример конфигурации устройства декодирования изображения в соответствии с четвертым вариантом выполнения. Следует отметить, что на фиг.16 участки, общие с описанной выше фиг.9, обозначены теми же номерами ссылочных позиций, и их подробное описание здесь не приведено.
Кодированные данные, выводимые из модуля 15 энтропийного кодирования, устройства 41 кодированного изображения, описанного на фиг.15, подают в модуль 21 энтропийного декодирования устройства 42 декодирования изображения на фиг.16, подвергают энтропийному кодированию, и они становятся данными коэффициента. Данные коэффициента сохраняют в модуле 43 буфера реконфигурирования коэффициента через модуль 22 буфера коэффициента. После накопления данных коэффициента в модуле 43 буфера реконфигурирования коэффициента до тех пор, пока не будут сконфигурированы данные коэффициента, модуль 23 инверсного вейвлет преобразования выполняет реконфигурирование данных коэффициента, сохраненных в модуле 43 буфера реконфигурирования коэффициента, в порядке от компонентов нижней полосы до компонентов верхней полосы, и считывает данные коэффициента, затем выполняет обработку инверсного вейвлет преобразования, используя данные коэффициента в считанном порядке. В случае использования фильтра 5×3, его компоновка будет такой, как показана на описанной выше фиг.14.
То есть при выполнении обработки от начала одного фрейма, например, в момент времени декодирования коэффициента С1, коэффициента С4 и коэффициента С5, при энтропийном кодировании, сохраненных в модуле 43 буфера реконфигурирования коэффициента, модуль 23 инверсного вейвлет преобразования считывает данные коэффициента из модуля 43 буфера реконфигурирования коэффициента и выполняет обработку инверсного вейвлет преобразования. Данные, подвергаемые инверсному вейвлет преобразованию в модуле 23 инверсного вейвлет преобразования, последовательно выводят как данные выходного изображения.
Следует отметить, что в случае четвертого варианта выполнения, так же, как описано в отношении описанного выше второго варианта выполнения со ссылкой на фиг.11, одновременно выполняют обработку в различных элементах устройства 41 кодирования изображения и передачу данных кодирования по пути передачи данных и обработку в различных элементах устройства 42 декодирования изображения.
Далее будет описан пятый вариант выполнения настоящего изобретения. В пятом варианте выполнения кодированные данные, передаваемые между устройством кодирования изображения и устройством декодирования изображения в соответствии с первым вариантом выполнения - четвертым вариантом выполнения, компонуют в виде пакетов.
На фиг.17 показана принципиальная схема, описывающая пример того, как выполняют обмен кодированными данными. В случае примера, показанного на фиг.17, аналогично другим вариантам выполнения, описанным выше, данные изображения подвергают вейвлет преобразованию при вводе в виде последовательных приращений в виде блоков строк, соответствующих только заданному количеству строк (подполоса 51). В случае достижения заданного уровня разделения вейвлет преобразования строки коэффициента от подполосы самой нижней полосы до подполосы самой верхней полосы реконфигурируют в обратном порядке по сравнению с порядком, в котором они были сгенерированы, то есть в порядке от нижней полосы до верхней полосы.
В подполосе 51 на фиг.17 каждый из участков, разделенных на структуры диагональных строк, вертикальных строк и волнистых строк, имеет разные блоки строк (как показано стрелками, белое пространство подполосы 51 также разделено на последовательные приращения блоков строк, и его обрабатывают). Коэффициенты блоков строк после реконфигурирования подвергают энтропийному кодированию, как описано выше, при этом генерируют кодированные данные.
Здесь, если устройство кодирования изображения передает кодированные данные в этом же виде, например, в устройстве декодирования изображения могут возникнуть трудности, связанные с идентификацией границ различных блоков строк (или может потребоваться сложная обработка). Таким образом, в настоящем варианте выполнения используется компоновка, в которой устройство кодирования изображения прикрепляет заголовок к кодированным данным через приращение, равное, например, блокам строк, и передает пакет, сформированный из заголовка и кодированных данных.
Другими словами, после того как устройство кодирования изображения сгенерирует кодированные данные (данные кодера) для первого блока строк (Lineblock-1), кодированные данные пакетируют и передают как пакет 61 передачи в устройство декодирования изображения, как показано на фиг.17. После приема устройством декодирования изображения пакета (принятого пакета 71) его кодированные данные декодируют.
Аналогично, после генерирования устройством кодирования изображения второго блока строк (Lineblock-2) кодированных данных кодированные данные пакетируют и передают как пакет 62 передачи в устройство декодирования изображения. После приема устройством декодирования изображения пакета (принятого пакета 72) его кодированные данные декодируют. И снова, аналогично, после того как устройство кодирования изображения сгенерирует третий блок строк (Lineblock-3) кодированных данных, кодированные данные пакетируют и передают как пакет 63 передачи в устройство декодирования изображения. После приема устройством декодирования изображения пакета (принятый пакет 73), его кодированные данные декодируют.
Устройство кодирования изображения и устройство декодирования изображения повторяют описанную выше обработку до конечного Х-ого блока строк (Lineblock-X) (пакет 64 передачи, принятый пакет 74). Таким образом, в устройстве декодирования изображения генерируют декодированное изображение 81.
На фиг.18 представлен пример конфигурации заголовка. Как описано выше, пакет содержит заголовок (Header) 91 и кодированные данные, Header 91 включает в себя описание номера (NUM) 93 блока строк и длины (LEN) 94 кодированных данных.
Устройство декодирования изображения может легко идентифицировать границы каждого блока строк путем считывания этой информации, включенной в заголовок, добавленный к принятым кодированным данным, уменьшая, таким образом, нагрузку при обработке декодирования или время обработки.
Следует отметить, что, как показано на фиг.18, также может быть добавлено описание размера (от Δ1 до Δn) 92 шага квантования с приращениями в подполосах, конфигурирующих блок строк. Таким образом, устройство декодирования изображения может выполнять инверсное квантование с приращениями в подполосах, что, таким образом, позволяет выполнять дополнительный подробный контроль качества изображения.
Кроме того, устройство кодирования изображения и устройство декодирования изображения могут быть скомпонованы так, что они будут одновременно (в виде магистральной обработки) выполнять описанные выше различные процессы кодирования, пакетирования, обмена пакетами и декодирования, как описано в четвертом варианте выполнения, с приращениями размера в блоке строк.
Таким образом, время задержки до момента, когда выходное изображение будет получено в устройстве декодирования изображения, можно значительно уменьшить. Например, на фиг.17 показан пример работы с использованием движущихся изображений, представленных с чередованием (60 полей/секунду). В этом примере время для одного поля составляет 1 секунда - 60 = приблизительно 16,7 мс, но благодаря одновременному выполнению различной обработки, вывод изображения может быть получен со временем задержки приблизительно 5 мс.
Далее будет описан шестой вариант выполнения в соответствии с настоящим изобретением. В шестом варианте выполнения будет описан конкретный пример энтропийного кодирования в устройстве кодирования изображения и энтропийного декодирования в устройстве декодирования изображения, в различных описанных выше вариантах выполнения. В различных описанных выше вариантах выполнения может использоваться любой способ энтропийного кодирования, но при использовании такого способа, представленного в настоящем варианте выполнения, устройство кодирования изображения может выполнять кодирование с более простыми расчетами, что уменьшает время задержки, использование вычислительного ресурса и емкости запоминающего устройства буфера и т.п.
Следует отметить, что, как описано выше, в различных вариантах выполнения, кодирование может выполняться после квантования данных коэффициента в случае энтропийного кодирования, но то же можно сказать для настоящего варианта выполнения, в результате энтропийное кодирование может выполняться после выполнения квантования данных коэффициента, или данные коэффициента могут подвергаться энтропийному кодированию без квантования. Однако, как будет описано ниже, способ с выполнением квантования способствует повышению качества изображения, поэтому ниже будет описано только энтропийное кодирование с выполненным квантованием. Другими словами, энтропийное кодирование без выполнения квантования не приведено в этом описании, но описание энтропийного кодирования с выполненным квантованием может в нем использоваться.
Кроме того, ниже, в следующем описании, может быть не приведено реконфигурирование коэффициента. В различных описанных выше вариантах выполнения представлено описание для случая энтропийного кодирования реконфигурированных данных коэффициента, для случая реконфигурирования кодированных данных после энтропийного кодирования и для случая реконфигурирования данных коэффициента после энтропийного декодирования. Однако используемое здесь реконфигурирование, в принципе, представляет собой процесс выполнения обработки инверсного вейвлет преобразования с высокой скоростью и, в основном, не связано с обработкой энтропийного кодирования (и обработкой энтропийного декодирования). Кроме того, даже в случае выполнения реконфигурирования коэффициента его реконфигурирование выполняется в пределах блоков строк, поэтому, в принципе, оно не влияет на энтропийное кодирование, которое будет описано в настоящем варианте выполнения, хотя конкретное его содержание будет описано ниже. Другими словами, способ энтропийного кодирования в соответствии с настоящим примером может использоваться аналогично в случае данных коэффициента кодирования, порядок которых был изменен, или в случае кодирования данных коэффициента перед реконфигурированием. В соответствии с этим, описание реконфигурирования коэффициента не будет приведено для упрощения следующего ниже описания.
Другими словами, ниже энтропийное кодирование в соответствии с настоящим вариантом выполнения будет описано для случая, в котором выполняется обработка квантования в модуле 15 энтропийного кодирования устройства 41 кодирования изображения по четвертому варианту выполнения, показанному на фиг.15. Следует отметить, что по аналогичным причинам устройство декодирования изображения также будет описано только в соответствии с таким устройством кодирования изображения, и описание в отношении случаев реконфигурирования коэффициента или без выполнения инверсного квантования не будет приведено.
На фиг.19 показана блок-схема, иллюстрирующая конфигурацию примера устройства кодирования изображения, в котором используется настоящее изобретение.
Устройство 111 кодирования изображения имеет модуль 121 вейвлет преобразования, модуль 122 квантования и модуль 123 энтропийного кодирования.
Модуль 121 вейвлет преобразования, например, соответствует модулю 10 вейвлет преобразования по фиг.15 и выполняет аналогичную обработку. То есть изображение (данные), используемое как сигнал компонента, который подвергли необходимому сдвигу уровня постоянного тока, вводят, например, в модуль 121 вейвлет преобразования.
Модуль 121 вейвлет преобразования выполняет вейвлет преобразование входного изображения и разделяет это изображение на множество подполос. Модуль 121 вейвлет преобразования передает вейвлет коэффициент подполосы, полученный в результате вейвлет преобразования, в модуль 122 квантования.
Модуль 122 квантования выполняет квантование вейвлет коэффициентов, переданных из модуля 121 вейвлет преобразования, и передает полученные коэффициенты квантования как его результат в модуль 123 энтропийного кодирования.
Модуль 123 энтропийного кодирования выполняет энтропийное кодирование в отношении коэффициентов квантования, переданных из модуля 122 квантования, и выводит полученные, таким образом, коды как кодированное изображение (данные). Изображения, выводимые из модуля 123 энтропийного кодирования, могут после выполнения обработки управления скоростью следования битов, например, быть пакетированы и записаны или переданы в другие устройства (не показаны), подключенные к устройству 111 кодирования изображения.
То есть модуль 122 квантования и модуль 123 энтропийного кодирования соответствуют, например, модулю 15 энтропийного кодирования и модулю 14 управления скоростью следования битов на фиг.15.
Далее, со ссылкой на фиг.20 и фиг.21, будет описан модуль 123 энтропийного кодирования по фиг.19.
Например, как показано на фиг.20, одна подполоса конфигурирована из шести строк, от строки L1 до строки L6, и положение, соответствующее пикселю на строке в системе координат ху, обозначается как (х, у). Теперь, в каждой из диаграмм строки координата х в положении левого конца обозначается как 0, и координата у в строке L1 обозначается как 0.
Коэффициенты квантования в выражении в плоскости битов и в каждом положении (х, у) для подполос вводят в порядке растрового сканирования от строки L1 до строки L6, от модуля 122 квантования до модуля 123 энтропийного кодирования.
Другими словами, вначале коэффициент квантования, соответствующий левой оконечной координате (0, 0) строки L1, вводят в модуль 123 энтропийного кодирования. Далее коэффициент после квантования, соответствующий координате, расположенной рядом справа (1, 0) от координаты (0, 0), вводят в модуль 123 энтропийного кодирования, и коэффициенты после квантования, соответствующие соответствующим координатам, распложенным рядом с координатами, в которые были введены коэффициенты после квантования, последовательно вводят в модуль 123 энтропийного кодирования до тех пор, пока не будет получена координата на правом конце строки L1. После ввода всех коэффициентов, прошедших квантование в координатах на строке L1, коэффициенты после квантования, соответствующие каждой координате на строке L2, от координаты левого конца строки L2 (0, 1) последовательно до координаты на правом конце, вводят в модуль 123 энтропийного кодирования, и аналогично от строки L3 до строки L6, квантованные коэффициенты, соответствующие координатам на каждой строке, вводят в модуль 123 энтропийного кодирования.
Например, на фиг.21, как показано в верхнем левой части схемы, после ввода двенадцати квантованных коэффициентов в модуль 123 энтропийного кодирования, в порядке от координаты на левом конце строки L1 на фиг.20, модуль 123 энтропийного кодирования кодирует квантованные коэффициенты с приращениями, равными заданному количеству w (w=4 на фиг.21), которое определено заранее.
Далее квантованные коэффициенты, представленные в верхней левой части на фиг.21, каждый из которых выражен абсолютными значениями его кода, разделенными на двоичные цифры (выражение в плоскости бита), и на примере, показанном на фиг.21, квантованные коэффициенты "-0101", "+0011", "-0110", "+0010", "+0011", "+0110", "0000", "-ООН", "+1101","-0100", "+0111" и "-1010" на одной строке (строке L1 на фиг.20) вводят в данном порядке в модуль 123 энтропийного кодирования.
Каждый квантованный коэффициент состоит из кода квантованного коэффициента, выраженного как "+" (положительный) или "-" (отрицательный) (ниже называется знаком (Sign) квантованных коэффициентов), и абсолютного значения квантованного коэффициента, выраженного в двоичной форме. На фиг.21, в битах, представляющих значения каждой цифры абсолютного значения квантованных коэффициентов, бит на верхней стороне на чертеже представляет бит наивысшего порядка (бит разряда с наивысшим порядком). В соответствии с этим, в квантованном коэффициенте "-0101" его знак равен "-", и абсолютное значение, выраженное в двоичной форме, равно "0101", поэтому десятичное представление такого квантованного коэффициента составляет "-5".
Вначале, модуль 123 энтропийного кодирования определяет, равны ли 0 все квантованные коэффициенты (абсолютные значения) одной входной строки, и в соответствии с результатами определения выводит код, обозначающий, равны ли 0 все квантованные коэффициенты строки, предназначенные для кодирования. В случае определения, что все квантованные коэффициенты равны 0, модуль 123 энтропийного кодирования выводит 0 в качестве кода, обозначающего, равны или нет 0 все квантованные коэффициенты строки, и заканчивает кодирование квантованных коэффициентов строки, выполняемое в настоящее время. Кроме того, в случае, когда определяется, что значение всех квантованных коэффициентов не равно 0 (не только для квантованных коэффициентов, равных 0), модуль 123 энтропийного кодирования выводит 1 как код, обозначающий, что все или нет квантованные коэффициенты строки равны 0.
В случае, когда вводят двенадцать квантованных коэффициентов, показанных в верхней левой части чертежа, переменная задержка квантованных коэффициентов вводимой строки равна не только 0, тогда модуль 123 энтропийного кодирования выводит 1 в виде кода, как показано в верхней правой части чертежа.
После того как код 1, обозначающий, что не все квантованные коэффициенты равны О, будет выведен как код, обозначающий, все или нет квантованные коэффициенты строки равны 0, далее модуль 123 энтропийного кодирования выполняет кодирование первых четырех (w) входных квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010".
Модуль 123 энтропийного кодирования сравнивает максимальные значащие разряды четырех последовательных квантованных коэффициентов, введенных в этот момент времени (значение переменной В на фиг.21), с максимальными значащими разрядами четырех (w) квантованных, кодированных (введенных) в предыдущий раз, определяет, был ли изменен максимальный значащий разряд, и выводит код, обозначающий максимальные значащие разряды квантованных коэффициентов.
Теперь максимальные значащие разряды представляют собой максимальные значащие разряды квантованного коэффициента, имеющего наибольшие значения, из четырех (w) квантованных коэффициентов, которые должны быть кодированы вместе. Другими словами, максимальный значащий разряд обозначает, с квантованным коэффициентом, имеющим наибольшее абсолютное значение, из четырех квантованных коэффициентов, в каком разряде находится 1 с наибольшим порядком. В соответствии с этим, максимальный значащий разряд из четырех квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010", которые должны быть кодированы вместе, например, равен "3", что представляет собой разряд, в котором находится 1 наибольшего порядка, для квантованного коэффициента "-0110", имеющего наибольшее абсолютное значение.
Кроме того, код, обозначающий максимальные значащие разряды квантованных коэффициентов, состоит из кода, идентифицирующего, изменился ли максимальный значащий разряд, код, обозначающий, увеличился или уменьшился максимальный значащий разряд, и код, обозначающий величину изменения максимального значащего разряда, в случае, когда максимальный значащий разряд не изменился, код, обозначающий, увеличился или уменьшился ли максимальный значащий разряд, и код, обозначающий величину изменения максимального значащего разряда, не выводят.
В случае, когда максимальный значащий разряд изменился, по результатам сравнения максимальных значащих разрядов, модуль 123 энтропийного кодирования выводит код 1, обозначающий, что максимальный значащий разряд изменился, и в случае, когда максимальный значащий разряд не изменился, выводит код 0, обозначающий, что максимальный значащий разряд не изменился.
Кроме того, что касается определения того, изменился ли или нет максимальный значащий разряд, в случае, когда четыре квантованных коэффициента вводят в первый раз, то есть в случае, когда вводят первые квантованные коэффициенты подполосы, предназначенной для кодирования (например, в случае, когда четыре квантованных коэффициента вводят с левой стороны, в порядке строки L1 по фиг.20), при этом отсутствуют квантованные коэффициенты подполосы, которые были кодированы ранее, поэтому максимальный значащий разряд ранее кодированных четырех (w) квантованных коэффициентов устанавливается равным 0.
В соответствии с этим, модуль 123 энтропийного кодирования сравнивает максимальный значащий разряд четырех квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010", введенных в этот раз, который представляет собой 3, с максимальным значащим разрядом четырех квантованных коэффициентов, кодированных в предыдущий раз, который равен 0, и выводит код 1, поскольку максимальный значащий разряд изменился.
Кроме того, модуль 123 энтропийного кодирования выводит код, обозначающий, увеличился ли или уменьшился максимальный значащий разряд после кода 1, обозначающего, что максимальный значащий разряд изменился. Здесь модуль 123 энтропийного кодирования выводит 0, в случае, когда максимальный значащий разряд увеличился, и выводит 1, когда максимальный значащий разряд уменьшился.
Предыдущий максимальный значащий разряд был равен 0, и текущий максимальный значащий разряд равен 3, поэтому, как показано в верхней правой части на чертеже, модуль 123 энтропийного кодирования выводит код 0, обозначающий, что максимальный значащий разряд увеличился.
Кроме того, после вывода кода, обозначающего, увеличился ли или уменьшился максимальный значащий разряд, модуль 123 энтропийного кодирования выводит код, обозначающий, насколько максимальный значащий разряд увеличился или уменьшился, с помощью, например, кода, обозначающего величину изменения максимального значащего разряда. В частности, при величине изменения максимального значащего разряда (то есть при величине увеличения или величине уменьшения), равной n, модуль 123 энтропийного кодирования выводит (n-1) код Os и выводит код 1 после этих Os.
В случае кодирования первых четырех квантованных коэффициентов, показанных на фиг.3, величина изменения максимального значащего разряда равна 3 (=3-0), в результате чего модуль 123 энтропийного кодирования выводит две (=3-1) Os, и дополнительно выводит 1 в качестве кода.
Затем модуль 123 энтропийного кодирования выводит код для максимальных значащих разрядов, обозначающих абсолютное значение каждого из четырех (w), квантованных коэффициентов, которые должны быть кодированы в это время. То есть модуль 123 энтропийного кодирования выводит в отношении каждого квантованного коэффициента код, обозначающий величину каждого разряда для абсолютного значения квантованного коэффициента, от наибольшего разряда значащих разрядов, обозначенных максимальным значащим разрядом, в порядке к наименьшему разряду.
Квантованные коэффициенты, которые должны быть кодированы в это время, представляют собой "-0101", "+0011", "-0110" и "+0010", поэтому модуль 123 энтропийного кодирования вначале выводит код для максимальных значащих разрядов, обозначающих абсолютное значение квантованного коэффициента "-0101", введенного первым. Здесь максимальный значащий разряд равен 3, поэтому модуль 123 энтропийного кодирования выводит значение "1" наибольшего разряда из значащих разрядов, обозначенных максимальным значащим разрядом квантованного коэффициента "-0101" (то есть третий разряд), значение "0" разряда, на единицу меньшее наибольшего разряда (второй разряда) и значение "1" для наименьшего другого разряда. Таким образом выводят код "101" для значащих разрядов, обозначающих абсолютное значение квантованного коэффициента "-0101".
Таким же образом модуль 123 энтропийного кодирования выводит в данном порядке коды "011", "110" и "010" для значащих разрядов, обозначающих абсолютные величины квантованных коэффициентов "+0011", "-0110" и "+0010". В соответствии с этим, "101011110010" выводят как код для максимальных значащих разрядов, обозначающих абсолютные значения каждого из "-0101", "+0011", "-0110" и "+0010". Таким образом, модуль 123 энтропийного кодирования кода выводит код длиной, соответствующей максимальным значащим разрядам четырех квантованных коэффициентов, которые должны быть кодированы как код, обозначающий абсолютные значения квантованных коэффициентов.
Наконец, модуль 123 энтропийного кодирования выводит код, обозначающий знак каждого из четырех (w) квантованных коэффициентов, в которых абсолютное значение не равно 0. Теперь, в случае, когда знак квантованного коэффициента представляет собой "+" (положительный), модуль 123 энтропийного кодирования выводит код 0, и в случае, когда знак квантованного коэффициента "-" (отрицательный), выводит код 1.
Квантованные коэффициенты, которые должны быть кодированы в этот раз, представляют собой "-0101", "+0011", "-0110" и "+0010", и знаки этих квантованных коэффициентов представляют собой по порядку отрицательный, положительный, отрицательный, положительный, как показано в верхней правой части чертежа, при этом модуль 123 энтропийного кодирования выводит "1010" как код, обозначающий знак каждого из квантованных коэффициентов.
После кодирования введенных в первый раз четырех квантованных коэффициентов модуль 123 энтропийного кодирования снова кодирует следующие последовательные четыре квантованных коэффициента "+0011", "+0110", "0000" и "-0011".
Таким же образом, как и в случае кодирования квантованных коэффициентов, введенных первыми (в предыдущий раз), модуль 123 энтропийного кодирования вначале сравнивает максимальный значащий разряд четырех (w) квантованных коэффициентов, вновь введенных в этот раз, с максимальными значащими разрядами четырех (w) квантованных коэффициентов, кодированных в предыдущий раз.
Максимальный значащий разряд четырех (w) квантованных коэффициентов, введенных в этот раз, "+0011", "+0110", "0000" и "-0011", равен "3", что представляет собой разряд, в котором располагается 1 наивысшего порядка, для квантованного коэффициента "+0110", имеющего наибольшее абсолютное значение, и он имеет такое же значение, что и максимальные значащие разряды квантованных коэффициентов, кодированных в предыдущий раз, поэтому модуль 123 энтропийного кодирования выводит код 0, обозначающий, что максимальный значащий разряд не изменился.
Далее, модуль 123 энтропийного кодирования выводит код "011110000011", в котором код для максимальных значащих разрядов "011", "110", "000" и "011" обозначает абсолютные значения каждого из четырех (w) квантованных коэффициентов "+0011", "+0110", "0000" и "-0011", которые должны быть кодированы в этот раз, выстроенных в указанном порядке.
После вывода кода, обозначающего абсолютные значения квантованных коэффициентов, модуль 123 энтропийного кодирования выводит код, обозначающий знак каждого из четырех (w) квантованных коэффициентов, абсолютное значение которых не равно 0.
Квантованные коэффициенты, которые должны быть кодированы в этот раз, представляют собой "+0011", "+0110", "0000" и "-0011", и третий квантованный коэффициент "0000" имеет абсолютное значение ноль, в результате чего модуль 123 энтропийного кодирования выводит код "001", обозначающий знаки этих квантованных коэффициентов, которые не равны 0, "+0011", "+0110" и "-0011" (положительный, положительный, отрицательный).
После кодирования четырех квантованных коэффициента "+0011", "+0110", "0000" и "-0011" модуль 123 энтропийного кодирования затем кодирует следующие последовательные четыре квантованных коэффициента "+1101", "-0100", "+0111" и "-0101".
Модуль 123 энтропийного кодирования вначале сравнивает максимальный значащий разряд четырех (w) квантованных коэффициентов, вновь введенных в этот раз, с максимальными значащими разрядами четырех квантованных коэффициентов, кодированных в предыдущий раз.
Максимальный значащий разряд четырех (w) квантованных коэффициентов, введенных в этот раз, "+1101", "-0100", "+0111" и "-0101" равен "4", что представляет собой разряд, в котором располагается 1 наибольшего порядка для квантованного коэффициента "+1101", имеющего наибольшее абсолютное значение, и он отличается от максимальных значащих разрядов "3" квантованных коэффициентов, кодированных в предыдущий раз, в результате чего модуль 123 энтропийного кодирования выводит код 1, обозначающий, что максимальный значащий разряд изменился.
Кроме того, предыдущий максимальный значащий разряд был равен 3, и максимальный значащий разряд в этот раз равен 4, в результате чего модуль 123 энтропийного кодирования выводит код 0, обозначающий, что максимальный значащий разряд увеличился, как показано с правой стороны на чертеже.
Кроме того, модуль 123 энтропийного кодирования выводит код, обозначающий, насколько увеличился максимальный значащий разряд. В этом случае величина изменения максимального значащего разряда равна 1 (=4-3), в результате чего модуль энтропийного кодирования выводит 0 (=1-1), нули, и дополнительно выводит 1 (то есть выводит код 1).
Далее модуль 123 энтропийного кодирования выводит код "11010100011010", в котором код для максимальных значащих разрядов "1101", "0100", "0111" и "1010", обозначающий абсолютные значения каждого из четырех (w) квантованных коэффициентов "+1101", "-0100", "+0111" и "-1010", которые должны быть кодированы в этот раз, был выстроен в указанном порядке.
После вывода кода, обозначающего абсолютные значения квантованных коэффициентов, модуль 123 энтропийного кодирования выводит код, обозначающий знак каждого из четырех (w) квантованных коэффициентов, для которых квантованный коэффициент не равен 0.
Квантованные коэффициенты, предназначенные для кодирования в этот раз, представляют собой "+1101", "-0100", "+0111" и "-010", и знаки этих квантованных коэффициентов представляют собой в указанном порядке положительный, отрицательный, положительный, отрицательный, как показано в нижней правой части на чертеже, при этом модуль 123 энтропийного кодирования выводит код "0101", обозначающий знак каждого из квантованных коэффициентов.
Модуль 123 энтропийного кодирования, таким образом, кодирует последовательное заданное количество (w) входных квантованных коэффициентов. Таким образом, после кода, обозначающего, были ли выведены все или нет квантованные коэффициенты в строке, предназначенные для кодирования, равные 0, и код, обозначающий, что не все квантованные коэффициенты строки равны 0, выводят из модуля 123 энтропийного кодирования, затем выводят код, обозначающий максимальные значащие разряда для w квантованных коэффициентов, код, обозначающий абсолютные значения (выражение в плоскости битов) w квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов.
Что касается кода, обозначающего максимальные значащие разряда из этих w квантованных коэффициентов, код, обозначающий абсолютные значения w квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов, код, обозначающий максимальные значащие разряда следующих w квантованных коэффициентов, код, обозначающий абсолютные значения w квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов, повторно выводят до тех пор, пока все квантованные коэффициенты в этой строке не будут кодированы.
Далее приведено описание кодирования квантованных коэффициентов в порядке растрового сканирования, но порядок, в котором квантованные коэффициенты кодируют, не обязательно должен представлять собой порядок растрового сканирования. Например, в случае кодирования квантованных коэффициентов подполосы, показанном на фиг.20, может быть составлена компоновка, в которой квантованные коэффициенты кодированы в положениях (0, 0), (0, 1), (0, 2) и (0, 3) (то есть в положениях с левого конца на чертеже каждой из строки L1 до строки L4), и следующие квантованные коэффициенты кодируют в положениях (1, 0), (1, 1), (1, 2) и (1, 3) и так далее, причем квантованные коэффициенты в четырех положениях, вертикально совмещенных на чертеже, используются как w квантованных коэффициентов и кодированных в указанном порядке w одновременно.
Модуль 123 энтропийного кодирования, показанный на фиг.1, который выполняет такую обработку, как описанная выше, выполнен, как более подробно показано на фиг.22.
Модуль 123 энтропийного кодирования включает в себя модуль 161 определения строки, модуль 162 кодирования КПД (VLC, код переменной длины), модуль 163 расчета максимального значащего разряда, модуль 164 кодирования КПД, модуль 165 выделения значащего разряда, модуль 166 кодирования КПД, модуль 167 выделения знака, модуль 168 кодирования КПД и модуль 169 соединения кода.
Квантованные коэффициенты, выводимые из модуля 122 квантования (фиг.19), передают (вводят) в модуль 161 определения строки, модуль 163 расчета максимального значащего разряда, модуль 165 выделения значащего разряда и модуль 167 выделения знака.
Модуль 161 определения строки определяет, равны ли 0 все квантованные коэффициенты одной строки, предназначенной для кодирования, введенные из модуля 122 квантования, и предоставляет информацию, обозначающую результаты этого определения, в модуль 162 кодирования КПД.
На основе информации, обозначающей результаты определения, выполненного с помощью модуля 161 определения строки, модуль 162 кодирования КПД выводит код, обозначающий, равны ли 0 все квантованные коэффициенты строки, предназначенные для кодирования, в модуль 169 соединения кода.
Модуль 163 расчета максимального значащего разряда рассчитывает максимальные значащие разряды для w непрерывных квантованных коэффициентов, введенных из модуля 122 квантования, и предоставляет информацию, обозначающую результаты своих расчетов, в модуль 164 кодирования КПД и модуль 165 выделения значащего разряда.
На основе информации, обозначающей результаты расчета, из модуля 163 расчета максимального значащего разряда, модуль 164 кодирования КПД передает код, обозначающий максимальные значащие разряда для w квантованных коэффициентов, в модуль 169 соединения кода.
На основе информации, обозначающей результаты расчета, из модуля 163 расчета максимального значащего разряда, модуль 165 выделения значащего разряда выделяет значащий разряд для w квантованных коэффициентов, передаваемых из модуля 122 квантования, и передает (данные) о выделенных значащих разрядах квантованных коэффициентов в модуль 166 кодирования КПД и модуль 167 выделения знака.
Модуль 166 кодирования КПД кодирует абсолютные значения этих квантованных коэффициентов на основе значащих разрядов квантованных коэффициентов из модуля 165 выделения значащего разряда и передает абсолютные значения квантованных коэффициентов, полученных в результате, в модуль 169 соединения кода.
Модуль 167 выделения знака выделяет знаки квантованных коэффициентов, передаваемых из модуля 122 квантования, на основе значащих разрядов по квантованным коэффициентам, из модуля 165 выделения значащего разряда и передает (данные) выделенные знаки в модуль 168 кодирования КПД.
Модуль 168 кодирования КПД кодирует (данные) выделенные знаки, передаваемые из модуля 167 выделения знака, и передает код, обозначающий знаки квантованных коэффициентов, полученных таким образом, в модуль 169 соединения кода.
Модуль 169 соединения кода соединяет код, обозначающий, равны ли 0 все квантованные коэффициенты строки, код, обозначающий максимум значащих разрядов, код, обозначающий абсолютное значение квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов, переданных из модуля 162 кодирование КПД, модуля 164 кодирования КПД, модуля 166 кодирования КПД и модуля 168 кодирования КПД соответственно, и выводит в качестве кодированного изображения (данных).
Далее обработка кодирования, выполняемая устройством 111 кодирования изображения (фиг.19), будет описана со ссылкой на блок-схему последовательности операций, показанную на фиг.23. Эта обработка кодирования начинается после ввода изображения (данных), предназначенного для кодирования, в модуль 121 вейвлет преобразования.
На этапе S111 модуль 121 вейвлет преобразования подвергает входное изображение вейвлет преобразованию, разделяет входное изображение на множество подполос, и передает вейвлет коэффициенты каждой подполосы в модуль 122 квантования.
На этапе S112 модуль 122 квантования выполняет квантование вейвлет коэффициентов, переданных из модуля 121 вейвлет преобразования, и передает полученные в результате квантованные коэффициенты в модуль 123 энтропийного кодирования. Таким образом, квантованные коэффициенты каждого из положений в подполосе в выражении плоскости бита, которое было описано со ссылкой, например, на фиг.21, вводят в модуль 123 энтропийного кодирования.
На этапе S113 модуль 123 энтропийного кодирования выполняет обработку энтропийного кодирования и заканчивает обработку кодирования. Хотя подробно обработка энтропийного кодирования будет описана ниже, при обработке энтропийного кодирования, как описано со ссылкой на фиг.21, модуль 123 энтропийного кодирования одновременно кодирует последовательное заданное количество (w) квантованных коэффициентов, переданных из модуля 122 квантования, и выводит, в виде кодированного изображения (данных), код, обозначающий, равны ли 0 все квантованные коэффициенты в строке, которая предназначена для кодирования, код, обозначающий максимальные значащие разряды w квантованных коэффициентов, код, обозначающий абсолютные значения квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов.
Таким образом, устройство 111 кодирования изображения кодирует и выводит входное изображение.
Далее, со ссылкой на фиг.24, будет описана обработка энтропийного кодирования, соответствующая обработке, выполняемой на этапе S113 по фиг.23.
На этапе S112, показанном на фиг.23, квантованные коэффициенты, выводимые из модуля 122 квантования, передают (вводят) в модуль 161 определения строки, модуль 163 расчета максимального значащего разряда, модуль 165 выделения значащего разряда, модуль 167 выделения знака, модуль 123 энтропийного кодирования (фиг.22).
На этапе S141 модуль 161 определения строки принимает переменную у, обозначающую строку подполосы, которая должна быть теперь кодирована как у=0, и сохраняет это значение.
Например, в случае кодирования квантованных коэффициентов подполосы, показанных на фиг.20, модуль 161 определения строки принимает переменную у, обозначающую строки (строку L1 - строку L6) как у=0. Следует отметить, что строка у, обозначенная переменной у, обозначает строку, в которой координата у в каждом положении (х, у) на строке подполосы равна у. В соответствии с этим, в случае, когда переменная у, которую сохраняет модуль 161 определения строки, равна, например, у=0, строка, обозначенная этой переменной, становится строкой L1, в которой координата у в каждом положении строки равна 0.
На этапе S142 модуль 163 расчета максимального значащего разряда принимает переменную Binit, обозначающую максимальные значащие разряды из w квантованных коэффициентов, введенных первыми на строке (у-1), которая представляет строку, расположенную перед строкой у, обозначенную переменной у, сохраненной в модуле 161 определения строки, как Binit=0, и сохраняет это значение.
Например, в случае, когда строка (у-1) представляет собой строку L1, показанную на фиг.20, значение переменной Binit, обозначающее максимальный значащий разряд w квантованных коэффициентов, введенных первыми на строке (у-1), представляет собой максимальный значащий разряд из w квантованных коэффициентов от левой кромки строки L1 на чертеже, то есть w квантованных коэффициентов в положениях (0, 0), (1, 0), ..., (w-1, 0). Кроме того, в случае, когда переменная у, сохраненная в модуле 161 определения строки, равна у=0, строка (у-1) не существует, в результате значение переменной Binit представляет собой Binit=0.
На этапе S143 модуль 161 определения строки определяет, равны ли 0 (абсолютные значения) всех квантованных коэффициентов строки у, обозначенной переменной у, сохраненной в нем. Например, в случае, когда строка у представляет собой строку L1, показанную на фиг.20, модуль 161 определения строки определяет, что все квантованные коэффициенты равны 0, в случае, когда все квантованные коэффициенты в положениях (х, у) на строке L1 равны 0.
В случае, когда на этапе S143 будет определено, что все квантованные коэффициенты равны 0, модуль 161 определения строки генерирует информацию, обозначающую, что все квантованные коэффициенты равны 0, и передает ее в модуль 62 кодирования КПД и модуль 163 расчета максимального значащего разряда, и поток обработки переходит на этап S144.
На этапе S144, на основе информации, обозначающей, что все квантованные коэффициенты равны 0, модуль 162 кодирования КПД выводит (передает) код 0, обозначающий, что все квантованные коэффициенты в строке, которая должна быть кодирована, равны 0, в модуль 169 соединения кода. Модуль 169 соединения кода принимает код 0, переданный из модуля 162 кодирования КПД, и выводит его без изменения как код, полученный в результате кодирования квантованных коэффициентов строки у.
На этапе S145 модуль 163 расчета максимального значащего разряда устанавливает значение переменой Binit, сохраненной в нем, равным Binit=0, и обновляет переменную Binit на основе информации, обозначающей, что все квантованные коэффициенты равны 0, из модуля 161 определения строки.
На этапе S146 модуль 161 определения строки определяет, имеются ли или нет необработанные строки в строках кодируемой подполосы. То есть модуль 161 определения строки определяет, были ли кодированы квантованные коэффициенты для всех строк кодируемой подполосы. Например, в случае кодирования квантованных коэффициентов подполосы, показанном на фиг.20, модуль 161 определения строки определяет, что отсутствуют необработанные строки в точке, в которой были кодированы квантованные коэффициенты во всех положениях на строке L1-L6.
В случае, когда на этапе S146 будет определено, что существует необработанная строка, модуль 161 определения строки переводит поток обработки на этап S147, для кодирования квантованных коэффициентов в каждом положении в следующей строке, то есть, в строке (у+1).
На этапе S147 модуль 161 определения строки выполняет последовательное приращение переменной у, обозначающей сохраненную строку как у=у+1, возвращает поток обработки на этап S143 и снова выполняет описанную выше последующую обработку.
И, наоборот, в случае, когда на этапе S146 определяется, что больше нет необработанных строк, квантованные коэффициенты для всех строк, составляющих подполосу, были кодированы, и, таким образом, модуль 161 определения строки заканчивает обработку энтропийного кодирования, поток возвращается на этап S 113 по фиг.23, и обработка кодирования заканчивается.
Кроме того, в случае, когда на этапе S143 на фиг.24 определяется, что не все квантованные коэффициенты строки у равны 0 (существует квантованный коэффициент, который не равен 0), модуль 161 определения строки генерирует информацию, обозначающую, что не все квантованные коэффициенты равны 0 (существует квантованный коэффициент, который не равен 0), передает ее в модуль 161 кодирования КПД и модуль 163 расчета максимального значащего разряда и переводит поток обработки на этап S148.
На этапе S148, на основе информации из модуля 161 определения строки, обозначающей, что не все квантованные коэффициенты равны 0, модуль 162 кодирования КПД выводит (передает) код 1, обозначающий, что не все квантованные коэффициенты строки, предназначенные для кодирования, равны 0, в модуль 169 соединения кода.
На этапе S149, на основе информации, обозначающей, что все квантованные коэффициенты равны 0, поступающей из модуля 161 определения строки, модуль 163 расчета максимального значащего разряда устанавливает значение переменной х, обозначающее координату х положения на строке у первого квантованного коэффициента, который предназначен для ввода в w квантованных коэффициентов, которые должны быть теперь кодированы, равным х=0, и сохраняет переменную х.
Например, в случае, когда строка у представляет собой строку L1, показанную на фиг.20, значение переменной х, которое сохраняет модуль 163 расчета максимального значащего разряда, обозначает w непрерывных положений (х, 0), (х+1, 0),...,(x+w-1, 0), на кодируемой строке L1, координату х в самом дальнем верхнем левом положении, (х, 0).
Кроме того, на этапе S149, модуль 163 расчета максимального значащего разряда устанавливает значение переменной В, которое обозначает максимальные значащие разряды w квантованных коэффициентов, кодированных в предыдущее время, равным В=Binit, и сохраняет переменную В. То есть модуль 163 расчета максимального значащего разряда обновляет значение переменной В как значение переменной Binit, сохраненной в нем, и сохраняет значение обновленной переменной В.
После обновления значения переменной В, модуль 163 расчета максимального значащего разряда передает информацию, обозначающую обновленную переменную В (максимального значащего разряда) в модуль 164 кодирования КПД и модуль 165 выделения значащего разряда. Кроме того, каждый из модуля 164 кодирования КПД и модуля 165 выделения значащего разряда сохраняет значение переменной В, поданное из модуля 163 расчета максимального значащего разряда.
На этапе S150 модуль 123 энтропийного кодирования выполняет обработку кодирования набора w. Хотя подробно обработка кодирования набора w будет описана ниже, при обработке кодирования набора w модуль 123 энтропийного кодирования кодирует w непрерывных квантованных коэффициентов на строке у, обозначенной переменной у, сохраненной в модуле 161 определения строки.
Далее, используя положение на строке у идентифицированной переменной у, сохраненной в модуле 161 определения строки, и переменной х, сохраненной в модуле 163 расчета максимального значащего разряда как (х, у), w последовательных положений на строке у представляет собой последовательные положения (х, у), (х+1, у),...,(x+w-1, у) на строке у. То есть при обработке кодирования набора w, модуль 123 энтропийного кодирования кодирует квантованные коэффициенты в каждом из положений
(x, y), (x+1, y),...,(x+w-1, у).
На этапе S151 модуль 163 расчета максимального значащего разряда определяет, остаются или нет необработанные квантованные коэффициенты на строке у. То есть модуль 163 расчета максимального значащего разряда определяет, были ли кодированы все квантованные коэффициенты в положениях на строке у, обозначенной переменной у, сохраненной в модуле 161 определения строки.
В случае, когда на этапе S151 определяется, что существуют необработанные квантованные коэффициенты на строке у, модуль 163 расчета максимального значащего разряда переводит поток обработки на этап S152 для кодирования следующих w квантованных коэффициентов.
На этапе S152 модуль 163 расчета максимального значащего разряда принимает значение х, сохраненное в нем как х=х+w, и возвращает поток обработки на этап S150. В соответствии с этим, квантованные коэффициенты для каждого из положений (х+w, у), (х+w+1, у),...,(х+2w-1, у) на строке у кодируют при обработке на следующем этапе S150.
Кроме того, в случае, когда на этапе S151 определяется, что больше нет необработанных квантованных коэффициентов на строке у, квантованные коэффициенты во всех положениях на строке у были кодированы, в результате чего модуль 163 расчета максимального значащего разряда возвращает поток обработки на этап S146, и выполняется последующая обработка.
Таким образом, модуль 123 энтропийного кодирования кодирует квантованные коэффициенты в каждом из положений подполосы, каждый по заданному номеру, в порядке растрового сканирования.
Таким образом, путем кодирования квантованных коэффициентов в каждом положении подполосы по заданному номеру каждый, в порядке растрового сканирования, вводимые квантованные коэффициенты могут быть обработаны в порядке, в котором их вводят, и в результате может быть уменьшена задержка, связанная с кодированием квантованных коэффициентов.
Далее будет описана обработка кодирования набора w, соответствующая обработке, выполняемой на этапе S50, показанном на фиг.24.
На этапе S181 модуль 163 расчета максимального значащего разряда принимает положение строки у, идентифицированное переменной х, сохраненной в нем как (х, у), и w непрерывных положений (х, у), (х+1, у),...,(x+w-1, у), принимает значащие разряды квантованных коэффициентов, имеющие наибольшее абсолютное значение, как значение переменной Bnew, обозначающей максимальные значащие разряды w квантованных коэффициентов, которые теперь должны быть кодированы, и сохраняют это переменное значение Bnew.
Кроме того, модуль 163 расчета максимального значащего разряда передает полученный максимальный значащий разряд w квантованных коэффициентов, то есть значение переменной Bnew, в модуль 164 кодирования КПД и модуль 165 выделения значащего разряда.
Например, в случае, когда квантованные коэффициенты в w последовательных положениях представляют собой квантованные коэффициенты "-0101", "+0011", "-0110" и "+0010", показанные на фиг.21, из этих квантованных коэффициентов, квантованный коэффициент с наибольшим абсолютным значением представляет собой "-0110", и его значащий разряд равен "3", что представляет собой разряд, в котором расположена 1 наибольшего порядка, для "-0110", в результате чего значение переменной Bnew устанавливают равным 3.
На этапе S182 модуль 164 кодирования КПД определяет, равно или нет В=Bnew. То есть модуль 164 кодирования КПД определяет, является или нет значение переменной В, обозначающей наибольший значащий разряд среди w квантованных коэффициентов, кодированных в предыдущий раз, тем же, что и значение переменной Bnew, обозначающее наибольший значащий разряд w квантованных коэффициентов, которые теперь должны быть кодированы, которые были переданы из модуля 163 расчета максимального значащего разряда.
В случае, когда на этапе S182 определяют, что В=Bnew, модуль 164 кодирования КПД переводит поток обработки на этап S183 и выводит в модуль 169 соединения кода код 0, обозначающий максимальный значащий разряд w квантованных коэффициентов, которые должны быть кодированы с этого момента. После вывода кода 0, обозначающего максимальный значащий разряд, модуль 164 кодирования КПД пропускает обработку от этапа S 184 до этапа S188, и переводит поток обработки на этап S189.
И, наоборот, в случае, когда на этапе S182 определяют, что условие В=Bnew не выполняется, модуль 164 кодирования КПД переводит поток обработки на этап S184 и (поскольку максимальный значащий разряд изменился), выводит код 1 в модуль 169 соединения кода, что обозначает, что максимальный значащий разряд изменился.
На этапе S185 модуль 164 кодирования КПД получает целые числа n и m, которые удовлетворяют следующему выражению (8).
Здесь символ "∧" в выражении (8) представляет экспоненту. В соответствии с этим, (-1)∧m обозначает (-1) в степени m.
Например, в случае, когда Bnew=3 и B=0, n=2 и m=0, получают как значения n и m, которые удовлетворяют выражению (8). При сравнении переменной Bnew с переменной В, чем больше разность между абсолютным значением переменной Bnew и между абсолютным значением переменной В, тем больше значение n в выражении (8). Кроме того, в случае, когда значение переменной Bnew больше, чем значение переменной В, значение m равно 0, и, наоборот, в случае, когда значение переменной Bnew меньше, чем значение переменной В, значение m равно 1. В соответствии с этим, значение m в выражении (8), можно сказать, обозначает, увеличился ли или уменьшился ли максимальный значащий разряд.
На этапе S186 модуль 164 кодирования КПД выводит в модуль 169 соединения кода значение m, которое удовлетворяет выражению (8), в виде кода из 1 бита, как код, обозначающий, увеличился ли или уменьшился ли максимальный значащий разряд. Например, в случае, когда значение m, которое удовлетворяет выражению (8), равно 0, модуль 164 кодирования КПД выводит код 0, обозначающий, что максимальный значащий разряд увеличился.
На этапе S187 модуль 164 кодирования КПД выводит такое количество нулей, в качестве значения n, удовлетворяющего выражению (8), после которого следует 1 единица, как код, обозначающий количество изменений в максимальной значащей цифре, в модуль 169 соединения кода. То есть модуль 164 кодирования КПД выводит n 0 и одну 1, как код, обозначающий количество изменений в максимальной значащей цифре.
Например, в случае, когда значение n, которое удовлетворяет выражению (8), равно 2, модуль 164 кодирования КПД выводит значение "001", как код, обозначающий величину изменения максимального значащего разряда, в модуль 169 соединения кода.
Таким образом, модуль 164 кодирования КПД выводит в модуль 169 соединения кода, код, обозначающий, что максимальный значащий разряд изменился, код, обозначающий, увеличился ли или уменьшился максимальный значащий разряд, и код, обозначающий величину изменения максимального значащего разряда, как код, обозначающий максимальный значащий разряд из w квантованных коэффициентов, которые должны быть кодированы, начиная с этого момента.
На этапе S188 модуль 163 расчета максимального значащего разряда устанавливает значение сохраненной переменной В, равным В=Bnew, и переводит поток обработки на этап S189. То есть модуль 163 расчета максимального значащего разряда обновляет значение сохраненной переменной В так, что оно равняется значению переменной Bnew, сохраненной в нем. Кроме того, модуль 164 кодирования КПД и модуль 165 выделения значащего разряда также устанавливают значение сохраненной переменной В равным В=Bnew.
После того как переменная В будет установлена как В=Bnew на этапе S188, или код, обозначающий максимальный значащий разряд квантованных коэффициентов, будет выведен на этапе S183, на этапе S189 модуль 163 расчета максимального значащего разряда устанавливает значение сохраненной переменной Binit, равным Binit=В, в случае, когда значение сохраненной переменной х равно 0.
То есть в случае, когда значение сохраненной переменной х равно 0, модуль 163 расчета максимального значащего разряда обновляет переменную Binit путем учета значения переменной Binit, обозначающей максимальный значащий разряд w квантованных коэффициентов, введенных первыми на строку (у-1), сохраненную в ней, значение переменной В, обозначающее максимальный значащий разряд w квантованных коэффициентов, кодированных в предыдущий раз.
Таким образом, в случае когда переменная х=0, значение переменной Binit установлено равным Binit=В, в результате чего кодирование квантованных коэффициентов может быть выполнено для w квантованных коэффициентов, начиная от х=0 в следующей строке (например, строке (у+1)), используя корреляционную взаимосвязь с максимальной значащей цифрой w квантованных коэффициентов, начинающихся от х=0 в предыдущей строке (например, строке у).
На этапе S190 модуль 165 выделения значащего разряда принимает заданную переменную i и изменяет переменную i от 0 до (w-1) для выделения значащих разрядов квантованных коэффициентов из квантованных коэффициентов в положениях (x-i, у) на строке у. Модуль 165 выделения значащего разряда передает выделенные (данные) значащие разряды квантованных коэффициентов в модуль 166 кодирования КПД и модуль 167 выделения знака. Кроме того, модуль 166 кодирования КПД выводит коды, обозначающие абсолютные значения w квантованных коэффициентов в модуль 169 соединения кода, на основе значащих разрядов, передаваемых из модуля 165 выделения значащих разрядов (кодирование значащих разрядов).
Теперь значение х в положениях (x+i, у) представляет собой значение переменной х, сохраненной в модуле 163 расчета максимального значащего разряда. Например, в случае, когда значение переменной х, сохраненной в модуле 163 расчета максимального значащего разряда, равно 0, значение переменной В, сохраненной в модуле 165 выделения значащего разряда, равно 3, и, кроме того, модуль 122 квантования передает в модуль 165 выделения значащего разряда w (четыре) квантованных коэффициента "-0101", "+0011", "-0110", "+0010", показанных на фиг.21, соответствующих квантованным коэффициентам в каждом из положений (X+i, у) (0<i<3), то есть положений (0, у), (1, у), (2, у) и (3, у), модуль 165 выделения значащих разрядов выделяет значащие разряды из этих квантованных коэффициентов.
В этом случае значение переменной В, сохраненной в модуле 165 выделения значащего разряда, равно 3, и значащие разряды представляют собой 3 разряда, в результате чего модуль 165 выделения значащего разряда выделят из квантованного коэффициента "-0101", который соответствует положению (х, у), значение "101", которое представляет собой три разряда самого низкого порядка.
Таким же образом, модуль 165 выделения значащего разряда последовательно выделяет из квантованных коэффициентов "-0011", "-0110" и "0010" в положении (х+1, у), в положении (х-2, у) и в положении (х+3, у), значения "011", "110" и "010", которые представляют собой три числа для его самого низкого порядка. В соответствии с этим, (код) значащие разряды "101", "011", "110" и "010" среди квантованных коэффициентов "-0101", "-0011", "-0110" и "+0010" выводят в модуль 166 кодирования КПД и модуль 167 выделения знака. Модуль 166 кодирования КПД кодирует код "101", "011", "110" и "010", передаваемый из модуля 165 выделения значащего разряда, и выводит код "101011110010", обозначающий абсолютное значение w квантованных коэффициентов в модуль 169 соединения кода.
На этапе S191 модуль 167 выделения знака принимает заданное значение i и значение переменной i от 0 до (w-1), так, что выделяет знаки квантованных коэффициентов, из квантованных коэффициентов в положениях (x+i, у) на строке у, в тех квантованных коэффициентах, абсолютное значение которых не равно 0, переданных из модуля 122 квантования, и передает выделенные (данные) знаки в модуль 168 кодирования КПД. Модуль 168 кодирования КПД кодирует знаки, поступающие из модуля 167 выделения знака, и выводит код, обозначающий знаки квантованных коэффициентов, полученных в результате, в модуль 169 соединения кода.
После ввода кода, обозначающего знаки квантованных коэффициентов, из модуля 168 кодирования КПД, модуль 169 соединения кода соединяет код, обозначающий, все ли квантованные коэффициенты строки равны 0, код, обозначающий максимальные значащие разряды квантованных коэффициентов, код, обозначающий абсолютное значение квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов, переданных из модуля 162 кодирования КПД, модуля 164 кодирования КПД, модуля 166 декодирования КПД, и модуля 168 кодирования КПД, соответственно, выводит соединенный код как кодированное изображение, заканчивает обработку кодирования набора w, возвращает поток обработки на этап S150, показанный на фиг.24, и выполняет обработку, начиная с этапа S151, и далее.
Теперь значение х в положениях (x+i, у) представляет собой значение переменной х, сохраненное в модуле 163 расчета максимального значащего разряда. Например, в случае, когда значение переменной х, сохраненное в модуле 163 расчета максимального значащего разряда равно 0, и модуль 122 квантования передает w (четыре) квантованных коэффициента "-0101", "+0011", "-0110", "+0010", показанные на фиг.21, соответствующие квантованным коэффициентам в каждом из положений (X+i, у) (0<i<3), то есть, в положениях (0, у), (1, у), (2, у) и (3, у) ни один из "-0101", "+0011", "-0110" и "+0010" не равен 0, в результате чего модуль 167 выделения знака выделяет знаки из этих квантованных коэффициентов.
В этом случае модуль 167 выделения знака выделяет знак "-" квантованного коэффициента из квантованного коэффициента "-0101", соответствующего положению (х, y).
Таким же образом, модуль 167 выделения знака последовательно выделяет знаки "+", "-", "+" квантованных коэффициентов из квантованных коэффициентов "+0011", "-0110", "+0010", соответствующих положениям (х+1, у), (х+2, у) и (х+3, у). Таким образом, знаки "-", "+", "-", "+" квантованных коэффициентов "-0101", "+0011", "-0110", "+0010" выводят из модуля 167 выделения знака в модуль 168 кодирования КПД. Модуль 168 кодирования КПД кодирует знаки "-", "+", "-" и "+" квантованных коэффициентов, передаваемых из модуля 167 выделения знака.
Например, после ввода знака "-" модуль 168 кодирования КПД выводит код 1 и после ввода знака "+" выводит код 0, в результате кодирования введенных знаков. В этом случае знаки "-", "+", "-" и "+" квантованных коэффициентов вводят в модуль 168 кодирования КПД, в результате чего модуль 168 кодирования КПД выводит код "1010", состоящий из кода "1", "0", "1", "0", как код, обозначающий знаки квантованных коэффициентов, в модуль 169 соединения кода.
Таким образом, модуль 123 энтропийного кодирования кодирует квантованные коэффициенты подполосы в виде наборов заданных модулей и выводит код, обозначающий максимальные значащие разряды квантованных коэффициентов, код, обозначающий абсолютные значения квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов.
Таким образом, благодаря кодированию квантованных коэффициентов подполосы в виде наборов заданных модулей исключается необходимость выполнения многократной обработки в плоскости бита на основе множества путей кодирования, в отличие от случая кодирования изображения, например, в JPRG 2000, и также выполняется кодирование с переменной длиной кода, в результате чего количество обработки при кодировании может быть заметно уменьшено. В соответствии с этим, кодирование изображения может быть выполнено с более высокой скоростью, и может быть реализовано устройство кодирования, предназначенное для кодирования изображения с высокой разрешающей способностью в режиме реального времени без больших затрат.
Кроме того, отсутствует необходимость в явном кодировании длины кода в устройстве 111 кодирования изображения, в случае кодирования изображения, в результате чего количество кода можно уменьшить, и при этом отсутствует необходимость в управлении информацией в отношении длины кода.
Следует отметить, что хотя выше было приведено описание для w квантованных коэффициентов, значащий разряд квантованного коэффициента, имеющего наибольшее абсолютное значение, используется как значение переменной Bnew, обозначающей максимальный значащий разряд, однако, достаточно, чтобы значение переменной Bnew представляло собой значение, равное или большее, чем значащая разряд квантованного коэффициента, имеющего наибольшее абсолютное значение w среди квантованных коэффициентов. Если значение переменной Bnew будет больше, количество кодов увеличивается для кода, обозначающего абсолютное значение квантованных коэффициентов, но величина увеличения кода для кода, обозначающего абсолютное значение квантованных коэффициентов, может быть уменьшена путем установки значения переменной Bnew в значение, равное или больше, чем значащий разряд квантованного коэффициента, имеющего наибольшее абсолютное значение.
Далее приведено описание устройства декодирования изображения, для декодирования изображения, кодированного с помощью устройства 111 кодирования изображения.
На фиг.26 показана блок-схема, иллюстрирующая пример конфигурации устройства декодирования изображения.
Устройство 211 декодирования изображения выполнено как модуль 221 энтропийного декодирования, модуль 222 инверсного квантования и модуль 223 инверсного вейвлет преобразования, при этом кодированное изображение (данные) вводят в модуль 221 энтропийного декодирования.
Модуль 221 энтропийного декодирования выполняет энтропийное декодирование кода, который представляет собой входное кодированное изображение, и передает полученные квантованные коэффициенты, полученные, таким образом, в модуле 222 инверсного квантования.
Модуль 222 инверсного квантования выполняет инверсное квантование квантованных коэффициентов, передаваемых из модуля 221 энтропийного декодирования, и передает вейвлет коэффициенты для каждой подполосы, полученные путем инверсного квантования, в модуль 223 вейвлет преобразования.
Модуль 223 инверсного вейвлет преобразования подвергает вейвлет коэффициенты для каждой подполосы, передаваемые из модуля 222 инверсного квантования, инверсному вейвлет преобразованию, и выводит изображение, полученное в результате, как декодированное изображение.
Кроме того, модуль 221 энтропийного декодирования устройства 211 декодирования изображения, которое выполняет такую обработку, выполнен, как более подробно показано, например, на фиг.27.
Более подробно модуль 221 энтропийного декодирования имеет модуль 251 разделения кода, модуль 252 определения строки, модуль 253 генерирования, модуль 254 декодирования КПД, модуль 255 декодирования КПД, модуль 256 декодирования КПД, модуль 257 синтезирования квантованного коэффициента и модуль 258 переключения.
Модуль 251 разделения кода разделяет код, который представляет собой кодированное изображение, которое было введено на основе информации, передаваемой из каждого из модуля 252 определения строки, модуля 254 декодирования, КПД, модуля 255 декодирования КПД и модуля 256 декодирования КПД, и передает разделенный код заданной длины в модуль 252 определения строки, модуль 254 декодирования КПД, модуль 255 декодирования КПД или модуль 256 декодирования КПД.
То есть модуль 251 разделения кода разделяет входной код на код, который обозначает, равны ли 0 или нет все квантованные коэффициенты одной кодированной строки, код, обозначающий максимальный значащий разряд w кодированных квантованных коэффициентов, код, обозначающий абсолютные значения w кодированных квантованных коэффициентов, и код, обозначающий знаки кодированных квантованных коэффициентов, и передает их, соответственно, в каждый из модуля 252 определения строки, модуля 254 декодирования, КПД, модуля 255 декодирования КПД и модуля 256 декодирования КПД.
Модуль 252 определения строки определяет, равны ли 0 или нет все квантованные коэффициенты одной строки кодированной подполосы, на основе кода, переданного из модуля 251 разделения кода, и передает информацию, обозначающую результаты своего определения в модуль 251 разделения кода, модуль 253 генерирования и модуль 254 декодирования КПД.
Модуль 253 генерирования генерирует код, обозначающий одну строку, соответствующую квантованным коэффициентам, которые равны 0, на основе информации, обозначающей результаты определения, из модуля 252 определения строки, и передает его в модуль 258 переключения.
Модуль 254 декодирования КПД декодирует код, переданный из модуля 251 разделения кода, обозначающий максимальный значащий разряд w кодированных квантованных коэффициентов, получает максимальный значащий разряд w кодированных квантованных коэффициентов и передает информацию, обозначающую полученный максимальный значащий разряд в модуль 251 разделения кода, модуль 255 декодирования КПД и модуль 257 синтеза квантованного коэффициента.
Модуль 255 декодирования КПД декодирует код, который обозначает абсолютные значения квантованных коэффициентов, переданных в модуль 251 разделения кода, на основе информации, обозначающей максимальный значащий разряд, из модуля 254 декодирования КПД, и передает (данные) значащие разряды w квантованных коэффициентов, полученных им, в модуль 256 декодирования КПД и в модуль 257 синтеза квантованного коэффициента. Кроме того, модуль 255 декодирования КПД передает информацию, обозначающую результаты декодирования кода, которая обозначает абсолютные значения квантованных коэффициентов, в модуль 251 разделения кода.
На основе значащих разрядов квантованных коэффициентов, переданных из модуля 255 декодирования КПД, модуль 256 декодирования КПД декодирует код, который обозначает знаки квантованных коэффициентов, переданных из модуля 251 разделения кода, и передает (данные) знаков квантованных коэффициентов, полученных, таким образом, в модуле 257 синтеза квантованного коэффициента. Кроме того, модуль 256 декодирования КПД передает информацию, которая обозначает результаты декодирования кода, обозначающую знаки квантованных коэффициентов, в модуль 251 разделения кода.
Модуль 257 синтеза квантованного коэффициента синтезирует значащие разряды квантованных коэффициентов, переданных из модуля 255 декодирования КПД, и знаки квантованных коэффициентов, переданные из модуля 256 декодирования КПД, на основе информации, обозначающей максимальный значащий разряд, переданной из модуля 254 декодирования КПД, и передает w квантованных коэффициентов, полученных, таким образом, в модуль 258 переключения.
Модуль 258 переключения выводит квантованные коэффициенты из модуля 253 генерирования или из модуля 257 синтеза квантованного коэффициента.
На фиг.28 показана блок-схема, иллюстрирующая более подробную конфигурацию модуля 251 разделения кода.
Модуль 251 разделения кода имеет модуль 271 управления и запоминающее устройство 272. После ввода кода, который представляет собой кодированное изображение, модуль 271 управления передает входной код в запоминающее устройство 272 для временного сохранения.
Модуль 271 управления затем считывает код заданной длины из кода, временно сохраненного в запоминающем устройстве 272, на основе информации, переданной из каждого модуля 252 определения строки, модуля 254 декодирования КПД, модуля 255 декодирования КПД и модуля 256 декодирования КПД, и передает в модуль 252 определения строки, модуль 254 декодирования КПД, модуль 255 декодирования КПД или модуль 256 декодирования КПД.
Кроме того, модуль 251 разделения кода может быть выполнен, как показано на фиг.29, помимо примера конфигурации, показанного на фиг.28.
Модуль 251 разделения кода, показанный на фиг.29, имеет модуль 291 управления, переключатель 292 и узел 293-1 - узел 293-4.
После ввода кода, который представляет собой кодированные изображения, модуль 291 управления управляет переключателем 292 на основе информации, передаваемой из каждого из модуля 252 определения строки, модуля 254 декодирования КПД, модуля 255 декодирования КПД и модуля 256 декодирования КПД, и передает в модуль 252 определения строки, модуль 254 декодирования КПД, модуль 255 декодирования КПД или модуль 256 декодирования КПД, код заданной длины.
То есть каждый узел 293-1 - узел 293-4 соединен с модулем 252 определения строки, модулем 254 декодирования КПД, модулем 255 декодирования КПД и модулем 256 декодирования КПД, соответственно, и модуль 291 управления выбирает один из узла 293-1 - узла 293-4 как место назначения передачи кода, и управляет соединением между переключателем 292 и выбранным узлом.
Переключатель 292 соединяет узел, выбранный на основе управления модулем 291 управления, с входом, в результате чего код, вводимый в модуль 251 разделения кода, передают в модуль 252 определения строки, модуль 254 декодирования КПД, модуль 255 декодирования КПД или модуль 256 декодирования КПД, как место назначения подачи кода, через переключатель 292 и узел, соединенный с переключателем 292.
Далее обработка, выполняемая устройством 211 декодирования изображения, будет описана со ссылкой на блок-схему последовательности операций, показанную на фиг.30. Такая обработка декодирования начинается после ввода кода, который представляет собой кодированное изображение, в модуль 221 энтропийного декодирования.
На этапе S231, модуль 221 энтропийного декодирования выполняет обработку энтропийного декодирования, выполняет энтропийное декодирование кода, который представляет собой введенное кодированное изображение, и передает квантованные коэффициенты, полученные, таким образом, в модуль 222 инверсного квантования. Хотя подробно обработка энтропийного декодирования будет описана ниже, при такой обработке энтропийного декодирования, модуль 221 энтропийного декодирования декодирует квантованные коэффициенты в последовательных положениях на строке кодированной подполосы w одновременно и передает декодированные квантованные коэффициенты в модуль 222 инверсного квантования.
На этапе S232 модуль 222 инверсного квантования выполняет инверсное квантование квантованных коэффициентов, передаваемых из модуля 221 энтропийного декодирования, и передает вейвлет коэффициенты каждой подполосы, полученные в результате инверсного квантования, в модуль 223 инверсного вейвлет преобразования.
На этапе S233 модуль 223 инверсного вейвлет преобразования подвергает вейвлет коэффициенты каждой подполосы, которые были переданы из модуля 222 инверсного квантования, инверсному вейвлет преобразованию, и выводит полученное изображение, как его результат, на чем обработка декодирования заканчивается.
Таким образом, устройство 211 декодирования изображения декодирует и выводит кодированное изображение.
Далее обработка энтропийного декодирования, соответствующая обработке, выполняемой на этапе S231 по фиг.30, будет описана со ссылкой на блок-схему последовательности операций, показанную на фиг.31.
На этапе S261 модуль 252 определения строки принимает переменную у, обозначающую строку подполосы, которая будет теперь декодирована как у=0, и сохраняет ее.
На этапе S262 модуль 254 декодирования КПД принимает переменную Binit, обозначающую максимальные значащие разряды w квантованных коэффициентов, введенных первыми на строке (у-1), которая представляет собой одну строку, следующую перед строкой у, обозначенной переменной у, сохраненной в модуле 252 определения строки, как Binit=0, и сохраняет ее.
Например, в случае, когда строка (у-1) представляет собой строку L1, показанную на фиг.20, значение переменной Binit, обозначающее максимальный значащий разряд w квантованных коэффициентов, введенных первыми на строке (у-1), представляет собой максимальный значащий разряд w квантованных коэффициентов с левой кромки строки L1 на чертеже. Кроме того, в случае, когда переменная у, сохраненная в модуле 152 определения строки, представляет собой у=0, строка (у-1) не существует, в результате чего значение переменной Binit представляет собой Binit=0.
Кроме того, на этапе S262 модуль 251 разделения кода передает в модуль 252 определения строки с первым 1-битовым кодом входного кода, в качестве кода, обозначающего, равны ли теперь 0 все квантованные коэффициенты строки, предназначенные для декодирования.
На этапе S263 модуль 252 определения строки определяет, генерирует ли 0 1-битный код, считанный в (переданный) из модуля 251 разделения кода, информацию, обозначающую результат определения, и передает в модуль 253 генерирования, в модуль 254 декодирования КПД и в модуль 251 разделения кода.
В случае, когда на этапе S263 определяется, что код равен 0, это означает, что все квантованные коэффициенты строки у равны 0, поэтому модуль 252 определения строки переводит поток обработки на этап S264. На этапе S264 модуль 253 генерирования принимает все квантованные коэффициенты на строке у, равные 0, на основе информации, обозначающей результат определения из модуля 252 определения строки. Модуль 253 генерирования затем генерирует код, обозначающий квантованные коэффициенты строки у, и передает их в модуль 258 переключения.
Например, в случае, когда один квантованный коэффициент представлен четырьмя разрядами, как показано на фиг.21, и существуют пять квантованных коэффициентов на одной строке, модуль 253 генерирования генерирует 20 (=4×5) нулей, как код, обозначающий квантованные коэффициенты строки у, и передает их в модуль 258 переключения. Модуль 258 переключения выводит 20 непрерывно следующих 0, переданных из модуля 253 генерирования, как код, обозначающий квантованные коэффициенты одной строки, в модуль 222 инверсного квантования.
На этапе S265 модуль 254 декодирования КПД устанавливает значение переменной Binit, сохраненное в нем, как Binit=0, на основе информации, обозначающей результаты определения, из модуля 252 определения строки, и обновляет переменную Binit.
На этапе S266 модуль 252 определения строки определяет, имеются или нет необработанные строки среди строк декодируемой подполосы. То есть модуль 252 определения строки определяет, были ли декодированы квантованные коэффициенты в положениях на всех строках декодируемой подполосы.
В случае, когда на этапе S266 определяется, что имеется необработанная строка, модуль 252 определения строки переводит поток обработки на этап S267, для декодирования квантованных коэффициентов в каждом положении на следующей строке (у+1) строки у, обозначенной переменной у, сохраненной в нем самом.
На этапе S267 модуль 252 определения строки выполняет приращение переменной у, обозначающей сохраненную строку у=у+1, возвращает поток на этап S263 и выполняет последующую обработку.
И наоборот, в случае, когда на этапе S266 определяется, что больше нет необработанных строк, квантованные коэффициенты для всех строк, составляющих подполоса, были декодированы, и, в результате, модуль 252 определения строки заканчивает обработку энтропийного декодирования, поток возвращается на этап S231 по фиг.30, и выполняется обработка, начиная с этапа S232.
Кроме того, в случае, когда на этапе S263 по фиг.31 определяют, что код не равен 0, модуль 252 определения строки переводит поток обработки на этап S268. На этапе S268, на основе информации, обозначающей результаты определения, из модуля 252 определения строки, модуль 254 декодирования КПД устанавливает значение переменной х, обозначающей координату х положения на строке у первого квантованного коэффициента, который должен быть будет введен в w квантованных коэффициентов, которые будут теперь декодированы, равным х=0, и сохраняет эту переменную х.
Кроме того, на этапе S268 модуль 254 декодирования КПД принимает значение переменной В, обозначающее максимальный значащий разряд w квантованных коэффициентов, декодированных в предыдущий раз, как В=Binit, и сохраняет эту переменную В. То есть модуль 254 декодирования КПД обновляет переменную В, используя значение переменной В, как значение сохраненной переменной Binit и сохраняет значение обновленной переменной В.
Кроме того, на этапе S268, модуль 251 разделения кода передает в модуль 254 декодирования КПД следующий 1-битный код входного кода, как код, обозначающий, был ли изменен максимальный значащий разряд w квантованных коэффициентов, которые должны быть кодированы, начиная с данного момента времени, на основе информации, обозначающей результаты определения из модуля 252 определения строки.
На этапе S269 модуль 221 энтропийного декодирования выполняет обработку декодирования набора. Хотя подробно обработка декодирования набора w будет описана ниже, при обработке декодирования набора w модуль 221 энтропийного декодирования декодирует w непрерывных квантованных коэффициентов на строке у, обозначенной переменной у, сохраненной в модуле 252 определения строки.
На этапе S270 модуль 254 декодирования КПД определяет, имеются ли необработанные квантованные коэффициенты на строке у. То есть модуль 254 декодирования КПД определяет, все ли квантованные коэффициенты в положениях строки у, обозначенные переменной у, сохраненные в модуле 252 определения строки, были декодированы.
В случае, когда на этапе S270 определяется, что существуют необработанные квантованные коэффициенты на строке у, модуль 254 декодирования КПД переводит поток обработки на этап S271 для декодирования следующих w квантованных коэффициентов.
На этапе S271 модуль 254 декодирования КПД принимает значение переменной х, сохраненное в нем, как х=х+w, и возвращает поток обработки на этап S269. В соответствии с этим квантованные коэффициенты в каждом из положений (x+w, у), (x+w+1, у),...,(x+2w-1, у) на строке у декодированы при обработке, выполняемой на следующем этапе S269.
Кроме того, в случае, когда на этапе S270 определяется, что больше нет необработанных квантованных коэффициентов на строке у, квантованные коэффициенты во всех положениях на строке у были декодированы, в результате чего модуль 254 декодирования КПД возвращает поток обработки на этап S266, и выполняется последующая обработка.
Таким образом, модуль 221 энтропийного декодирования декодирует квантованные коэффициенты в каждом положении подполосы на заданное количество каждый, в порядке растрового сканирования.
Таким образом, путем декодирования квантованных коэффициентов в каждом из положений подполосы на заданное количество каждый в порядке растрового сканирования, входные квантованные коэффициенты могут быть обработаны в порядке, в котором их вводят, и задержка из-за кодирования квантованного коэффициента может быть уменьшена.
Далее будет описана обработка декодирования набора w, соответствующая обработке, выполняемой на этапе S269, представленном на фиг.31, со ссылкой на блок-схему последовательности операций, представленную на фиг.32.
Как описано выше, на этапе S268 по фиг.31, в модуль 251 разделения кода - модуль 254 декодирования КПД передает 1-битный код, обозначающий, изменился ли максимальный значащий разряд w квантованных коэффициентов, предназначенных для декодирования.
На этапе S311 по фиг.32, модуль 254 декодирования КПД определяет, равен ли 0 считанный (переданный) 1-битный код.
В случае, когда на этапе S311 определяется, что считанный код равен 0, максимальный значащий разряд не изменился, в результате чего модуль 254 декодирования КПД генерирует информацию, означающую, что максимальный значащий разряд не изменился, и передает ее в модуль 251 разделения кода, модуль 255 декодирования КПД, и модуль 257 синтеза квантованного коэффициента, пропускает обработку на этапе S312-S314, и переводит поток обработки на этап S315.
То есть в случае, когда код, обозначающий, изменился или нет максимальный значащий разряд, равен 0, вводимый символ, следующий после 1-битного кода, равного 0, обозначающего, изменился ли максимальный значащий разряд, не является кодом, обозначающим, что максимальный значащий разряд увеличился или уменьшился, и кодом, обозначающим величину изменения максимального значащего разряда, но скорее представляет собой код, обозначающий абсолютное значение квантованных коэффициентов, в результате чего этапы S312 - этап S314, которые обозначают обработку кода, обозначающего, увеличился ли или уменьшился ли максимальный значащий разряд, и кода, обозначающего величину изменения максимального значащего разряда, пропускают.
И наоборот, в случае, когда на этапе S311 определяют, что считанный код не равен 0, максимальный значащий разряд изменился, в результате чего модуль 254 декодирования КПД переводит поток обработки на этап S312, считывает 1-битный код из модуля 251 разделения кода и сохраняет его значение как заданную переменную m.
На этапе S313 модуль 254 декодирования КПД считывает код из модуля 521 разделения кода до тех пор, пока код не станет равным 1 (до тех пор, пока не считается код 1), и сохраняет количество кодов, равных 0, считанных до этого момента, как переменную n. Например, в случае, когда третий код, который модуль 254 декодирования КПД считал из модуля 251 разделения кода, равен 1, то есть в случае, когда модуль 254 декодирования КПД считал код "001", количество кодов 0, считанных до момента, когда модуль 254 декодирования КПД считал 1, равно 2, в результате чего модуль 254 декодирования КПД сохраняет 2, что представляет собой количество считанных кодов 0, и значение переменной n.
На этапе S314 модуль 254 декодирования КПД получает значение В, обозначающее максимальные значащие разряды из следующего выражения (9), и сохраняет значение полученной переменной В.
Теперь, левая сторона выражения (9) представляет значение переменной В, которое должно быть вновь получено, при этом в позиции В с правой стороны представлено значение сохраненной переменной В. Кроме того, символ "∧" в выражении (9) представляет экспоненту. В соответствии с этим, (-1)∧m обозначает (-1) в m-й степени.
Модуль 254 декодирования КПД выполняет расчет по выражению (9) и изменяет сохраненную переменную В на основе сохраненной переменной В, переменной m и переменной n. После обновления переменной В, обозначающей максимальный значащий разряд, модуль 254 декодирования КПД генерирует информацию, обозначающую обновленный максимальный значащий разряд, и передает ее в модуль 251 разделения кода, модуль 255 декодирования КПД и модуль 257 синтеза квантованного коэффициента.
После получения нового максимального значащего разряда на этапе S314 или определения на этапе S311, что 1-битный код, который был считан, равен 0, модуль 254 декодирования КПД переводит поток обработки на этап S315, и в случае, когда значение сохраненной переменной х равно 0, устанавливает значение сохраненной переменной Binit как Binit=В.
То есть в случае, когда значение сохраненной переменной х равно 0, модуль 254 декодирования КПД принимает сохраненное значение переменной Binit, обозначающее максимальный значащий разряд w квантованных коэффициентов, введенных первыми на строке (у-1), как значение переменных, обозначающих максимальный значащий разряд w квантованных коэффициентов, которые должны быть декодированы, начиная с этого момента времени, и обновляет переменную Binit.
Таким образом, в случае, когда переменная х=0, значение переменной Binit установлено как Binit=В, в результате чего кодирование квантованных коэффициентов может быть выполнено для w квантованных коэффициентов, начиная от х=0 в следующей строке (например, строке (у+1)), используя корреляционную взаимосвязь с максимальным значащим разрядом w квантованных коэффициентов, начиная от х=0 в предыдущей строке (например, строке у).
На этапе S316 модуль 255 декодирования КПД принимает заданную переменную i и изменяет переменную i от 0 до (w-1), в результате чего считывается код из модуля 251 разделения кода, с приращениями В бит, и передает (выводит) B бит считанного кода в модуль 256 декодирования КПД, и модуль 257 синтеза квантованного коэффициента, как код, обозначающий значащие разряды квантованных коэффициентов в положениях (x+i, у) на строке у. Кроме того, модуль 255 декодирования КПД генерирует информацию, обозначающую значащие разряды квантованных коэффициентов, и передает ее в модуль 251 разделения кода.
Теперь значение х в положениях (x+i, у) представляет собой значение переменной х, сохраненной в модуле 254 декодирования КПД. Например, в случае, когда значение переменной х, сохраненной в модуле 254 декодирования КПД, равно 0, и значение переменной В, сохраненной в модуле 255 декодирования КПД, равно 3, модуль 255 декодирования КПД считывает по 3 бита кода из модуля 251 разделения кода, с переменной i=0, и выводит код 3 считанных битов, как значащий разряд квантованного коэффициента в положении (0, у).
Таким же образом, модуль 255 декодирования КПД считывает другие 3 бита кода из модуля 251 разделения кода, с переменной i=1, и выводит код 3 считанных битов, как значащий разряд квантованного коэффициента в положении (1, у), считывает следующие 3 бита кода, выводимые из модуля 251 разделения кода, с переменной i=2 и выводит код этих 3 битов, считанных, как значащий разряд квантованного коэффициента в положении (2, у), и считывает следующие 3 бита кода из модуля 151 разделения кода с переменной i=3, и выводит код 3 считанных битов, как значащий разряд квантованного коэффициента в положении (3, у).
На этапе S317 модуль 256 декодирования КПД принимает заданную переменную i и изменяет эту переменную i от 0 до (w-1) и в случае, когда значащие разряды (абсолютные значения) квантованных коэффициентов в положениях (x+i, у) на строке у не равны 0, считывает 1 бит кода из модуля 251 разделения кода. Модуль 256 декодирования КПД затем декодирует этот считанный код и передает (выводит) полученный в результате код в модуль 257 синтеза квантованного коэффициента, как знаки квантованных коэффициентов. Кроме того, модуль 256 декодирования КПД генерирует информацию, обозначающую знаки квантованных коэффициентов, и передает ее в модуль 251 разделения кода.
Теперь значение х в положениях (x+i, у) принимает значение переменной х, сохраненной в модуле 254 декодирования КПД. Например, в случае, когда значение переменной х, сохраненной в модуле 254 декодирования КПД, равно 0, и (обозначение кода) значащий разряд, не равный 0, передают из модуля 255 декодирования КПД, модуль 256 декодирования КПД принимает переменную i=0 и считывает 1 бит кода из модуля 215 разделения кода и, в случае, когда код равен 0, передает код, обозначающий знак "-" квантованного коэффициента в положении (0, у), в модуль 257 синтеза квантованного коэффициента, и в случае, когда код равен 1, передает код, обозначающий знак "+" квантованного коэффициента в положении (0, у), в модуль 257 синтеза квантованного коэффициента.
Кроме того, в случае, когда абсолютное значение (обозначение кода) значащего разряда, переданного из модуля 255 декодирования КПД, равно 0, знак квантованного коэффициента в положении (0, у) отсутствует, в результате чего модуль 256 декодирования КПД не считывает код из модуля 251 разделения кода.
Таким же образом, в случае, когда (абсолютное значение) значащий разряд, переданный из модуля 255 декодирования КПД, не равен 0, модуль 256 декодирования КПД принимает переменную i=1 и считывает 1 бит кода из модуля 215 разделения кода, и в случае, когда код равен 0, передает код, обозначающий знак "-" в модуль 257 синтеза квантованного коэффициента, и в случае, когда код равен 1, передает код, обозначающий знак "+".
Кроме того, в случае, когда значащий разряд, переданный следующим из модуля 255 декодирования КПД, не равен 0, модуль 256 декодирования КПД принимает переменную i=2 и считывает 1 бит кода из модуля 215 разделения кода, и в случае, когда код равен 0, передает код, обозначающий знак "-", в модуль 257 синтеза квантованного коэффициента, и в случае, когда код равен 1, передает код, обозначающий знак "+". Кроме того, в случае, когда значащий разряд, переданный следующим из модуля 255 декодирования КПД, не равен 0, модуль 256 декодирования КПД принимает переменную i=3 и считывает 1 бит кода из модуля 215 разделения кода, и в случае, когда этот код равен 0, передает код, обозначающий знак "-", в модуль 257 синтеза квантованного коэффициента, и в случае, когда код равен 1, передает код, обозначающий знак "+".
На этапе S318 модуль 257 синтеза квантованного коэффициента синтезирует значащие разряды, передаваемые из модуля 255 декодирования КПД и знаки, передаваемые из модуля 255 декодирования КПД, выводит полученные в результате квантованные коэффициенты в модуль 222 инверсного квантования через модуль 258 переключения, заканчивает обработку декодирования набора w и возвращает поток на этап S269 на фиг.31, и выполняет обработку, начиная с этапа S270.
Например, количество разрядов в абсолютных значениях квантованных коэффициентов, предназначенных для вывода, определяется заранее. В случае, когда количество разрядов абсолютного значения квантованных коэффициентов, предназначенных для вывода, которое определено заранее, представляет собой 4 разряда, и максимальный значащий разряд, обозначенный информацией, обозначающей максимальный значащий разряд из модуля 254 декодирования КПД, равен 3, значащий разряд "101" передают из модуля 255 декодирования КПД, и после того, как код, обозначающий знак "-", будет передан из модуля 255 декодирования КПД, модуль 257 синтеза квантованного коэффициента, выводит квантованный коэффициент "-0101".
То есть количество разрядов абсолютного значения квантованных коэффициентов, предназначенных для вывода, представляет 4 разряда, и значащие разряды представляют собой "101" (три разряда), в результате чего модуль 257 синтеза квантованного коэффициента принимает один бит высшего порядка значащих разрядов "101", как 0 для 4-значного абсолютного значения квантованного коэффициента pf "0101". Кроме того, знак "-" квантованного коэффициента и абсолютное значение "0101" квантованного коэффициента синтезируют так, что получается код "-0101", который выводят как квантованный коэффициент.
Следует отметить, что в случае, когда значащий разряд, передаваемый из модуля 255 декодирования КПД, равен 0, модуль 257 синтеза квантованного коэффициента выводит квантованный коэффициент без знака. Например, в случае, когда количество цифр абсолютного значения квантованных коэффициентов, предназначенных для вывода, которое определено заранее, равно 4 разрядам, и максимальный значащий разряд по информации, обозначающей максимальный значащий разряд из модуля 254 декодирования КПД, равен 3, и значащий разряд "000" передают из модуля 255 декодирования КПД, модуль 257 синтеза квантованного коэффициента выводит квантованный коэффициент "0000".
Таким образом, модуль 221 энтропийного декодирования декодирует квантованные коэффициенты подполосы в виде множества заданных модулей.
Таким образом, декодирование кодированных квантованных коэффициентов подполосы в виде множества заданных модулей устраняет необходимость выполнения обработки множество раз в плоскости бита на основе множества путей кодирования, в отличие от случая декодирования изображения при использовании JPEG 2000, в результате чего декодирование изображения может выполняться быстрее. В соответствии с этим, устройство кодирования, предназначенное для декодирования изображения с высокой разрешающей способностью в режиме реального времени, может быть реализовано без лишних затрат.
Таким образом на примере устройства 111 кодирования изображения, описанного выше, приведено описание того, что абсолютные значения заданных w квантованных коэффициентов кодируют в порядке кодирования (или декодирования) абсолютных значений квантованных коэффициентов, но кодирование (или декодирование) изображения может выполняться быстрее благодаря одновременному параллельному кодированию (или декодированию) w квантованных коэффициентов, используя команды расчета ОКМД (SIMD, один поток команд и множество потоков данных) совместно с ЦПС (DSP, цифровой процессор сигналов) общего назначения или ЦПУ общего назначения.
Затем пример инструкций работы ОКМД включает в себя ММР (ММХ, Мультимедийное расширение), SSE (дополнительный набор потоковых команд ОКМД), например SSE2, SSE3, используемые с ЦПУ производства Intel Corporation и т.д.
В случае кодирования абсолютных значений квантованных коэффициентов с использованием таких инструкций работы ОКМД, модуль 123 энтропийного кодирования устройства 111 кодирования изображения выполнен так, как, например, показано на фиг.33.
Модуль 123 энтропийного кодирования, показанный на фиг.33, является таким же, что и модуль 123 энтропийного кодирования, показанный на фиг.22 в том, что в нем предусмотрены модуль 161 определения строки, модуль 162 кодирования КПД, модуль 163 расчета максимального значащего разряда, модуль 164 кодирования КПД, модуль 165 выделения значащего разряда, модуль 166 кодирования КПД, модуль 167 выделения знака и модуль 168 кодирования КПД, и отличается тем, что буфер 401 предусмотрен для модуля 169 соединения кода. Следует отметить, что участки, показанные на фиг.33, которые соответствуют представленным на фиг.22, обозначены с теми же номерами ссылочных позиций, и их описание здесь не приведено.
В буфере 401 модуля 169 соединения кода временно сохраняют код, обозначающий, равны 0 или нет все квантованные коэффициенты строки, код, обозначающий максимальный значащий разряд, код, обозначающий абсолютное значение квантованных коэффициентов, и код, обозначающий знак квантованных коэффициентов, соответственно, переданный из модуля 162 кодирования КПД, модуля 164 кодирования КПД, модуля 166 кодирования КПД и модуля 168 кодирования КПД.
Областью сохранения буфера 401 управляют с приращениями 32 бита, и код (данные), вводимый в буфер 401, сохраняется, будучи разделенным на код, используемый для обработки скалярных расчетов, и код, используемый для обработки векторных расчетов. То есть в одной области сохранения размером 32 бита сохраняется код, используемый для обработки скалярных расчетов, или код, используемый для обработки векторных расчетов, в качестве кода (данных), которые должны быть временно сохранены.
С помощью модуля 123 энтропийного кодирования, показанного на фиг.33, абсолютные значения квантованных коэффициентов кодируют параллельно, используя инструкции операции ОКМД, так, что код, обозначающий абсолютные значения квантованных коэффициентов, принимают как код, используемый для обработки векторных расчетов, и другой код выбирают как код, используемый для скалярного расчета обработки.
Следует отметить, что в следующем описании 32-битные области сохранения, предусмотренные для буфера 401, области сохранения, в которых сохраняют код, используемый для обработки скалярного расчета, будут называться скалярными областями, и области сохранения, в которых располагается код, используемый для обработки векторных расчетов, будут называться векторными областями.
Далее энтропийное кодирование, выполненное модулем 123 энтропийного кодирования, показанным на фиг.33, будет описано со ссылкой на фиг.34.
Например, предположим, что 12 квантованных коэффициентов "-0101", "+0011", "-0110", "+0010", "+0011", "+0110", "0000", "-0011", "+1101", "-0100", "+0111" и "-1010", показанных на фиг.21, вводят в модуль 123 энтропийного кодирования, как показано в верхней левой части на фиг.34.
Таким же образом, как описано со ссылкой на фиг.21, в модуль 169 соединения кода в модуль 123 энтропийного кодирования передают код "1", обозначающий, равны ли 0 все квантованные коэффициенты строки, которые предназначены для кодирования, и код "10001", обозначающий максимальные значащие разряды первых четырех вводимых квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010".
Затем код "110001", состоящий из кода "1", обозначающий, равны ли 0 или нет все квантованные коэффициенты строки, предназначенные для кодирования, и код "10001", обозначающий максимальные значащие разряды квантованных коэффициентов, сохраняют в 32-битной скалярной области, предусмотренной в буфере 401 модуля 169 соединения кода, как обозначено стрелкой А11.
В примере, показанном на фиг.34, код, предназначенный для сохранения в скалярной области, сохраняют в направлении слева направо на схеме в порядке от битов высшего порядка. После сохранения кода во всей одной скалярной области, то есть после того, как 32 бита кода будут сохранены в одной скалярной области, одну новую скалярную область предусматривают в буфере 401 и код, используемый при обработке скалярных расчетов, последовательно сохраняют во вновь предусмотренной скалярной области.
После того как код "110001", состоящий из кода "1", обозначающего, равны ли 0 или нет все квантованные коэффициенты строки, предназначенной для кодирования, и код "10001", обозначающий максимальные значащие разряды квантованных коэффициентов, будут сохранены в скалярной области, затем модуль 123 энтропийного кодирования сохраняет в векторной области код, эквивалентный максимальным значащим разрядам, представляющим абсолютные значения каждых из первых введенных w (четырех) квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010" одновременно (выстроенных параллельно).
Максимальные значащие разряды квантованных коэффициентов "-0101", "+0011", "-0110" представляют собой, как описано со ссылкой на фиг.21, "3", в результате чего код, представляющий абсолютное значение четырех квантованных коэффициентов, представляет собой "101", "011", "110" и "010", соответственно, и как показано стрелкой А12, коды "101", "011", "110" и "010", представляющие абсолютное значение квантованных коэффициентов, сохранены выстроенными в одной векторной области, предусмотренной в буфере 401.
Теперь векторную область дополнительно разделяют на четыре 8-битовых области, причем в каждой из четырех областей векторной области сохранен код, представляющий абсолютные значения четырех квантованных коэффициентов одинаковой длины (битовой длины) в направлении слева направо на чертеже, в порядке, начиная от битов более высокого порядка.
В векторной области, показанной стрелкой А12 на чертеже, код "101", обозначающий абсолютное значение квантованного коэффициента, сохраняют в направлении слева в 8-битовой области, находящейся с левой стороны, код "011" сохраняют в направлении слева в 8-битовой области, второй с левой стороны, код "110" сохраняют в направлении слева в области второй с правой стороны и код "010" сохраняют в направлении слева в области, находящейся в самой правой позиции.
Кроме того, таким же образом, как и в случае скалярной области, в векторной области, после сохранения кода, во всей одной векторной области, то есть после сохранения 32 битов кода в одной векторной области, одну новую векторную область предусматривают в буфере 401, и код, используемый при обработке векторных расчетов, последовательно сохраняют во вновь предоставленной скалярной области.
После того, как код, обозначающий абсолютные значения квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010", будет сохранен в векторной области, модуль 123 энтропийного кодирования сохраняет код, обозначающий знаки этих четырех квантованных коэффициентов в скалярной области, как показано стрелкой А13.
Как показано стрелкой A11, код "110001", состоящий из кода "1", обозначающий, равны ли 0 или нет все квантованные коэффициенты строки, предназначенные для кодирования, и код "10001", обозначающий максимальные значащие разряды квантованных коэффициентов, уже сохранены в скалярной области, таким образом, как показано стрелкой А13, код "1010", обозначающий знаки квантованных коэффициентов "-0101", "+0011", "-0110" и "+0010", сохранен с правой стороны кода "110001", уже сохраненного в скалярной области (последовательно справа от кода "110001").
Затем, после кодирования первых четырех квантованных коэффициентов, модуль 123 энтропийного кодирования кодирует следующие четыре квантованных коэффициента "+0011", "+0110", "0000" и "-0011".
Вначале модуль 123 энтропийного кодирования сравнивает максимальные значащие разряды "3" четырех квантованных коэффициентов, кодированных в предыдущий раз, с максимальными значащими разрядами "3" следующих четырех квантованных коэффициентов "+0011", "+0110", "0000" и "-0011", кодированных в этот раз, и поскольку максимальные значащие разряды не изменились, сохраняет код "0", обозначающий, что максимальные значащие разряды не изменились, как код, обозначающий максимальные значащие разряды, как показано стрелкой А14, в скалярной области последовательно справа от уже сохраненного кода "1100011010".
Затем модуль 123 энтропийного кодирования сохраняет каждый из кодов "011", "110", "000" и "011", представляющий абсолютное значение каждого из w (четырех) квантованных коэффициентов "+0011", "+0110", "0000" и "-0011", вводимых в этот раз, в векторную область, как показано стрелкой А15, одновременно.
Как показано стрелкой А12, в 8-битовой области векторной области с левой стороны на чертеже, в 8-битовой области, второй слева, в 8-битовой области, второй справа и в 8-битовой области в самой правой позиции уже сохранены коды "101", "011", "110" и "010", в результате чего модуль 123 энтропийного кодирования сохраняет каждый из кодов "011", "110", "000" и "011", представляющих абсолютное значение каждого из квантованных коэффициентов, введенных в этот раз, последовательно справа от соответствующих кодов "101", "011", "110" и "010", уже сохраненных в векторной области, как показано стрелкой А15.
Затем модуль 123 энтропийного кодирования принимает код "001", обозначающий знаки квантованных коэффициентов, в котором абсолютное значение не равно 0 для четырех квантованных коэффициентов "+0011", "+0110", "0000" и "-0011", введенных в этот раз, и сохраняет его последовательно справа от кода "11000110100", уже сохраненного в скалярной области.
После кодирования четырех квантованных коэффициента "+0011", "+0110", "0000" и "-0011", модуль 123 энтропийного кодирования выполняет кодирование следующих четырех квантованных коэффициентов "+1101", "-0100", "+0111" и "-1010".
Вначале модуль 123 энтропийного кодирования сравнивает максимальные значащие разряды "4" четырех квантованных коэффициентов "+1101", "-0100", "+0111" и "-1010", введенных в этот раз, со значением "3" четырех квантованных коэффициентов, кодированных в предыдущий раз, и сохраняет код "101", обозначающий максимальные значащие разряды, состоящий из "1", что обозначает, что максимальные значащие разряды изменились, "0", что обозначает, что максимальные значащие разряды увеличились, и "1", что обозначает величину увеличения максимальных значащих разрядов, как показано стрелкой А17 в скалярной области.
В данном случае код "11000110100001", уже сохранен в скалярной области, как показано стрелкой А16, в результате чего модуль 123 энтропийного кодирования сохраняет код "101", обозначающий максимальные значащие разряды справа от кода "11000110100001" на чертеже.
Затем, после сохранения кода, обозначающего максимальные значащие разряды четырех квантованных коэффициентов "+1101", "-0100", "+0111" и "-1010", модуль 123 энтропийного кодирования сохраняет каждый из кодов "1101", "0100", "0111" и "1010", представляющих абсолютное значение каждого из них, в векторной области, как показано стрелкой А18, одновременно.
Как показано стрелкой А15, в 8-битовой области векторной области на чертеже, во второй слева 8-битовой области, во второй справа 8-битовой области и самой правой 8-битовой области, уже сохранены "101011", "011110", "110000" и "010011", соответственно, в результате каждая из 8-битовой области слева, 8-битовой области второй слева, 8-битовой области второй справа и 8-битовой области в самом правом положении, могут сохранять только два бита кода.
В соответствии с этим, модуль 123 энтропийного кодирования обеспечивает (предоставляет) новую векторную область в буфере 401, как показано стрелкой А18, сохраняет код из двух битов высшего порядка "11", "01", "01" и "10", для кодов "1101", "0100", "0111", "1010", представляющих абсолютное значение квантованных коэффициентов, введенных в этот раз, последовательно с правой стороны от кодов "101011", "011110", "110000" и "010011", уже сохраненных в векторной области, и сохраняет два бита младшего порядка "01", "00", "11" и "10" для кодов "1101", "0100", "0111", "1010", представляющих абсолютное значение квантованных коэффициентов, введенных в этот раз, с левой стороны каждой из 8-битовой области, вновь предусмотренной векторной области (из двух векторных областей, обозначенных стрелкой А18, в векторной области в нижней части на чертеже) на чертеже, 8-битовой области второй слева, 8-битовой области второй справа и 8-битовой области в самом правом положении, соответственно.
После сохранения кода, обозначающего абсолютное значение четырех квантованных коэффициентов "+1101", "-0100", "+0111" и "-1010", как показано стрелкой А19, модуль 123 энтропийного кодирования сохраняет код "0101", обозначающий знаки четырех квантованных коэффициентов, абсолютное значение которых не равно нулю, последовательно с правой стороны от кода " 11000110100001101", уже сохраненного в скалярной области.
Таким образом, после того как входные квантованные коэффициенты будут кодированы, модуль 123 энтропийного кодирования выводит по порядку код, сохраненный в скалярной области, показанной стрелкой А19, код, сохраненный к верхней векторной области на чертеже из двух векторных областей, показанных стрелкой А19, и код, сохраненный в нижней векторной области, в качестве кодированного изображения.
В этом случае код не сохранен в 11 битах с правой стороны на чертеже от скалярной области, показанной стрелкой А19. Кроме того, код не сохранен в области из правых шести битов каждой из 8-битовой области с левой стороны, 8-битовой области второй слева, 8-битовой области второй справа и 8-битовой области в самом правом положении, в векторной области в нижней части двух векторных областей, обозначенных стрелкой А19.
В случае вывода кода, сохраненного в скалярных областях и векторных областях, таким образом, как кодированное изображение, в случае, когда существуют области, в которых код не сохранен в скалярных областях и векторных областях, в момент времени, когда заканчивают кодирование входных квантованных коэффициентов, сохраняют произвольный код, такой как, например, код "0", после которого код, сохраненный в скалярных областях и векторных областях, кодируют и выводят как изображение.
В соответствии с этим, в примере, показанном стрелкой А19, например, код "11000110100001101010100000000000", сохраненный в скалярной области, код "10101111011110011100000101001110", сохраненный в верхней векторной области на чертеже, и код "01000000000000001100000010000000", сохраненный в нижней векторной области, выводят по порядку, как кодированное изображение. Теперь произвольный код, сохраненный в скалярных областях и векторных областях, в областях, где код не был сохранен в момент окончания кодирования квантованных коэффициентов, не будет считываться во время декодирования, таким образом, может быть сохранен код любого вида.
В случаях кодирования абсолютных значений квантованных коэффициентов, с использованием также инструкции операции ОКМД, после ввода изображения устройство 111 кодирования изображения выполняет обработку кодирования, описанную со ссылкой на блок-схему последовательности операций, показанную на фиг.23. Кроме того, при обработке энтропийного кодирования по фиг.24, соответствующей этапу S 113 на фиг.23, устройство 111 кодирования изображения выполняет такую же обработку, как и в случае без использования инструкций операции ОКМД для обработки от этапа S141 до этапа S149 на фиг.24, обработки этапа S151 и обработки этапа S152 (обработка описана со ссылкой на фиг.24), и для обработки кодирования набора w, соответствующей этапу S150, выполняет обработку разности со случаем, в котором не используются инструкции операции ОКМД.
Ниже приведено описание обработки кодирования набора w в случае устройства 111 кодирования изображения, которое кодирует абсолютные значения квантованных коэффициентов, используя инструкции операции ОКМД, которое приведено со ссылкой на блок-схему последовательности операций, показанную на фиг.35. Следует отметить, что каждая обработка на этапах от S411 до S419 соответствует каждой обработке, выполняемой на этапах от S181 до S189, показанных на фиг.25, и каждый из них выполняется одинаковым образом. В соответствии с этим, их описание было бы избыточным и поэтому не будет приведено.
Кроме того, в случае кодирования абсолютных значений квантованных коэффициентов с использованием инструкций операции ОКМД при обработке, описанной со ссылкой на фиг.24 и фиг.35, код, обозначающий, равны ли 0 все абсолютные значения квантованных коэффициентов строки, предназначенной для кодирования, переданных из модуля 162 кодирования КПД в модуль 169 соединения кода, код, обозначающий максимальные значащие разряды квантованных коэффициентов, переданных из модуля 164 кодирования КПД в модуль 169 соединения кода, и код, обозначающий знак квантованных коэффициентов, переданных из модуля 168 кодирования КПД, в модуль 169 соединения кода, каждый, сохраняют в скалярных областях, предусмотренных в буфере 401 модуля 169 соединения кода, как описано со ссылкой на фиг.34.
На этапе S420 модуль 165 выделения значащего разряда одновременно выделяет значащие разряды квантованных коэффициентов из w последовательных квантованных коэффициентов в положениях (х, у), (х+1, у),...,(x+w-1, у) на строке у, переданных из модуля 122 квантования. Модуль 165 выделения значащего разряда передает выделенные значащие разряды квантованных коэффициентов в модуль 166 кодирования КПД и модуль 167 выделения знака. Кроме того, модуль 166 кодирования КПД одновременно выводит код, обозначающий абсолютные значения w квантованных коэффициентов на основе значащих разрядов, переданных из модуля 165 выделения значащего разряда (кодирование значащих разрядов) в модуль 169 соединения кода.
Теперь значение х в положении (х, у) принимают как значение переменной х, сохраненной в модуле 163 расчета максимального значащего разряда, и значение у принимают как значение переменной у, сохраненной в модуле 161 определения строки. Например, когда модуль 165 выделения значащего разряда выделяет значащие разряды "101", "011", "110" и "010", как значащие разряды квантованных коэффициентов, код "101", "011", "110" и "010", обозначающий абсолютные значения четырех квантованных коэффициентов, передают из модуля 166 кодирования КПД в модуль 169 соединения кода, так, что модуль 169 соединения кода кодирует код, обозначающий абсолютные значения квантованных коэффициентов, переданных в него, и, как показано стрелкой А12 на фиг.34, сохраняет в векторной области.
На этапе S421 модуль 167 выделения знака принимает заданную переменную i и изменяет переменную i от 0 до (w-1) так, что он выделяет знаки квантованных коэффициентов из квантованных коэффициентов в положениях (x+i, у) на строке у, квантованные коэффициенты которых не равны 0, переданных из модуля 122 квантования, и передает выделенные (данные) знаки в модуль 168 кодирования КПД. Теперь значение х в положении (х, у) принимают как значение переменной х, сохраненной в модуле 163 расчета максимального значащего разряда, и значение у принимают как значение переменной у, сохраненной в модуле 161 определения строки.
Модуль 168 кодирования КПД кодирует знаки из модуля 167 выделения знака и выводит код, обозначающий знаки квантованных коэффициентов, полученных им, в модуль 169 соединения кода. Кроме того, как описано со ссылкой на фиг.34, модуль 169 соединения кода сохраняет код, обозначающий знаки квантованных коэффициентов, переданных из модуля 168 кодирования КПД, в скалярной области буфера 401.
После сохранения кода, обозначающего знаки квантованных коэффициентов в скалярной области буфера 401, модуль 169 соединения кода соединяет коды, сохраненные в скалярных областях и векторных областях буфера 401, как описано со ссылкой на фиг.34, выводит соединенный код как кодированное изображение, в результате чего обработка кодирования набора w заканчивается, и обработка возвращается на этап S150 по фиг.24, и выполняется обработка, начиная от этапа S 151.
Таким образом, модуль 123 энтропийного кодирования одновременно кодирует абсолютные значения заданного количества квантованных коэффициентов.
При использовании способа энтропийного кодирования в соответствии с JPEG 2000 квантованные коэффициенты подвергают арифметическому кодированию с приращениями битовых плоскостей на основе множества путей кодирования, в результате чего выполнение заданной обработки при энтропийном кодировании параллельно и одновременно является трудноосуществимым, но при использовании модуля 123 энтропийного кодирования отсутствует необходимость выполнения сложной обработки с приращением битовых плоскостей, что позволяет одновременно кодировать абсолютные значения множества квантованных коэффициентов.
Таким образом, одновременное кодирование абсолютных значений заданного количества квантованных коэффициентов позволяет одновременно выполнять множество процессов (параллельно), что позволяет кодировать изображения с более высокой скоростью.
Следует отметить, что в отношении обработки, выполняемой на этапе S421, приведено описание, указывающее, что кодирование знаков w квантованных коэффициентов выполняется по порядку, но кодирование знаков w квантованных коэффициентов может выполняться одновременно при использовании инструкций операций ОКМД, так же, как и в случае кодирования абсолютных значений квантованных коэффициентов. В этом случае каждый из кодов, обозначающих знаки w квантованных коэффициентов, полученных путем кодирования, сохраняют в векторной области буфера 401, которая была разделена на w.
Кроме того, хотя описание было приведено в отношении буфера 401, в котором одна скалярная область или векторная область представляет собой область 32 бита, и так, что 32-битовые области дополнительно разделяют на 8-битовые области для использования, размер и т.п. скалярной области или векторной области может быть произвольным. Например, может быть принята компоновка, в которой скалярная область или векторная область установлена как 128-битовая область, и 128-битовая область разделена на восемь 16-битовых областей для использования.
Кроме того, в случае декодирования изображения, кодированного с использованием инструкции операции ОКМД, модуль 251 разделения кода (фиг.27) устройства 211 декодирования изображения, которое декодирует изображение, выполнен, как показано, например, на фиг.28, и код, который представляет собой кодированное изображение, сохраняют по 32 бита одновременно в запоминающем устройстве 272, как описано со ссылкой на фиг.34.
В случае считывания кода из запоминающего устройства 272 и его вывода модуль 271 управления вначале принимает область сохранения, в которой первые 32 бита кода сохранены как скалярная область, и считывает и выводит по порядку, начиная с верхней части скалярной области, код, обозначающий, равны ли 0 или нет все абсолютные значения квантованных коэффициентов строки, предназначенной для декодирования, код, обозначающий максимальный значащий разряд квантованных коэффициентов, или код, обозначающий знаки квантованных коэффициентов.
Кроме того, в случае считывания кода, обозначающего абсолютные значения квантованных коэффициентов из запоминающего устройства 272, модуль 271 управления принимает 32-битовую область сохранения после области сохранения, принятой как скалярная область, в запоминающем устройстве 272 (соответственно, код еще не был считан из этой области), как векторную область, и считывает и выводит код, обозначающий абсолютные значения квантованных коэффициентов, из этой векторной области.
Следует отметить, что в случае, когда изображение кодировано, это изображение кодировано так, что во время считывания кода, обозначающего абсолютные значения квантованных коэффициентов в первый раз после декодирования, всегда присутствует код, обозначающий абсолютные значения квантованных коэффициентов (код, используемый для расчета векторов), сохраненный в следующей 32-битовой области сохранения, которая следует после области сохранения, используемой как скалярная область.
Кроме того, количество битов, из которых состоит каждая область сохранения, по которым разделяют код, который представляет собой кодированное изображение, и сохраняют в запоминающем устройстве 272, изменяется в соответствии с тем, какое количество битов установлено для одной скалярной области и векторной области, в случае кодирования изображения при использовании устройства 111 кодирования изображения. То есть размер каждой из множества областей сохранения в запоминающем устройстве 272, на которые разделен и сохранен код, который представляет собой кодированное изображение, представляет собой размер одной скалярной области и векторной области в случае кодирования изображения.
В случае декодирования абсолютных значений квантованных коэффициентов, используя инструкции операции ОКМД, также модуль 211 декодирования изображения выполняет обработку декодирования, описанную со ссылкой на блок-схему последовательности операций, показанную на фиг.30, после ввода кодированного изображения. Кроме того, обработка энтропийного декодирования, показанная на фиг.31, соответствует обработке, выполняемой на этапе S231 на фиг.30, в отношении каждой обработки этапов от S261 до S268 на фиг.31, обработки на этапе S270 и обработки на этапе S271, при этом устройство 211 декодирования изображения выполняет обработку так же, как и в случае, когда не используется команда управления ОКМД (обработка, описанная со ссылкой на фиг.31), и в обработка декодирования набора w, соответствующая этапу S269, выполняет обработку, отличающуюся от обработки в случае, когда не используются команды управления ОКМД.
Ниже приведено описание обработки декодирования набора w в случае, когда устройство 221 декодирования изображения декодирует абсолютное значение квантованных коэффициентов, используя инструкции операции ОКМД, со ссылкой на блок-схему последовательности операций, показанную на фиг.36.
Следует отметить, что обработка, выполняемая на этапах от S451 до этапа S455, соответствует обработке, выполняемой на этапах от S311 до этапа S315 на фиг.32, и каждая из них выполняется одинаково. В соответствии с этим избыточное их описание здесь не приведено.
Кроме того, в случае декодирования абсолютных значений квантованных коэффициентов, используя инструкции операции ОКМД, код, который представляет собой изображение, сохраняют в запоминающем устройстве 272 модуля 251 разделения кода, разделенным на три 32-битовых области, например, как показано стрелкой А19 на фиг.34. Модуль 252 определения строки, модуль 254 декодирования КПД и модуль 256 декодирования КПД, каждый, принимает из этих трех 32-битовых областей верхнюю область на фиг.34 как скалярную область и последовательно считывает и декодирует, начиная сверху из скалярной области (левая сторона на чертеже), код, обозначающий, равны ли 0 или нет все квантованные коэффициенты в строке, код, обозначающий максимальный значащий разряд квантованных коэффициентов, и код, обозначающий знаки квантованных коэффициентов.
На этапе S456 модуль 255 декодирования КПД одновременно считывает w наборов В последовательных битов кода из модуля 255 разделения кода и принимает каждый из w наборов В битов считанного кода, как код, обозначающий значащие разряды квантованных коэффициентов из w последовательных квантованных коэффициентов в положениях (х, у), (х+1, у),...,(x+w-1, у) на строке у, и передает (выводит) их в модуль 256 декодирования КПД и модуль 257 синтеза квантованного коэффициента. Кроме того, модуль 255 декодирования КПД генерирует информацию, обозначающую значащие разряды квантованных коэффициентов, и передает их в модуль 251 разделения кода. Теперь значение х в положении (х, у) принимается как значение переменной х, сохраненной в модуле 254 декодирования КПД, и значение у принимают как значение переменной у, сохраненное в модуле 252 определения строки.
Например, если можно сказать, что заданное число w равно 4, значение переменной В равно 3, и код, который представляет собой изображение, сохранен в запоминающем устройстве 272 модуля 251 разделения кода, путем разделения на три области сохранения по 32 бита, как показано стрелкой А19 на фиг.34, область сохранения размером 32 бита на самой верхней стороне фиг.34 уже принята как скалярная область, с помощью кода, обозначающего, равны ли 0 или нет все квантованные коэффициенты в строке, и кода, обозначающего максимальный значащий разряд квантованных коэффициентов, которые были считаны, и код, который еще не был считан из следующей области сохранения размером 32 бита (область сохранения вторая сверху), так, что модуль КПД 155 декодирования модуля принимает вторую сверху область сохранения, как векторную область, и одновременно считывает коды "101", "011", "110" и "010", обозначающие значащие разряды квантованных коэффициентов в положениях (х, Y), (х+1, у), (х+2, у) и (х+3, у), с левой стороны 8-битовой области векторной области на чертеже, 8-битовой области второй слева, 8-битовой области второй справа и 8-битовой области в самом правом положении.
После передачи кода, обозначающего значащие разряды w квантованных коэффициентов в модуль 256 декодирования КПД и в модуль 257 синтеза квантованного коэффициента после этого, выполняется обработка на этапе S457 и обработка на этапе S458, но эти обработки являются такими же, как и обработка, выполняемая на этапе S317, и обработка, выполняемая на этапе S318 по фиг.32, поэтому их описание здесь не приведено.
Таким образом, модуль 221 энтропийного декодирования одновременно декодирует абсолютные значения заданного количества квантованных коэффициентов.
Таким образом, одновременное декодирование абсолютных значений заданного количества квантованных коэффициентов позволяет одновременно выполнять множество процессов (параллельно), и изображения могут быть декодированы с более высокой скоростью.
Следует отметить, что хотя описание было приведено в отношении обработки, выполняемой на этапе S457, в которой декодирование каждого из кодов, обозначающих знаки w квантованных коэффициентов, выполняется по порядку, может быть составлена компоновка, в которой декодирование каждого из кодов, обозначающих знаки w квантованных коэффициентов, выполняется одновременно (параллельно), используя инструкции операции ОКМД.
Как описано выше, нет необходимости выполнять арифметическое кодирование квантованных коэффициентов с приращением плоскостей битов на основе множества путей кодирования, в отличие от случая кодирования (или декодирования) изображения с использованием обычного JPEG 2000, что позволяет быстрее выполнять кодирование (или декодирование) изображения, при более простой обработке.
При использовании обычного способа JPEG 2000 обработка выполняется для каждой битовой плоскости на основе множества путей кодирования так, что в случае выполнения такой обработки доступ к квантованным коэффициентам необходимо осуществлять такое количество раз, которое равно числу, полученному путем умножения квантованных коэффициентов на количество плоскостей битов, что означает, что объем обработки был большим.
Кроме того, в случае пакетирования кодированного изображения обработка пакетирования не может быть начата до тех пор, пока кодирование одного изображения не будет полностью закончено, поэтому генерируется задержка, эквивалентная интервалу ожидания такой обработки, соответственно. Кроме того, в способе JPEG2000, квантованные (кодированные) коэффициенты, соответствующие положениям в прямоугольной области, состоящей из параллельных сторон в направлении Х и направлении Y в подполосе, показанной на фиг.2, например, сохраняют в одном пакете, поэтому также генерируется задержка, соответствующая длине в направлении Y прямоугольной области. При использовании обычного способа JEPG 2000 такие задержки генерируются из-за кодирования, в результате чего трудно обеспечить обработку в режиме реального времени. При этом, хотя задержка может быть уменьшена, путем сокращения длины в направлении Y прямоугольной области в подполосе, в этом случае ухудшается эффективность кодирования.
И наоборот, при использовании устройства 111 кодирования изображения нет необходимости выполнять арифметическое кодирование квантованных коэффициентов для каждой плоскости битов на основе множества путей кодирования, как описано выше, и доступ к квантованным коэффициентам осуществляется только во время кодирования изображения при выводе кода, обозначающего абсолютные значения квантованных коэффициентов, при выводе кода, обозначающего максимальные значащие разряды, и выводе кода, обозначающего знаки квантованных коэффициентов, что позволяет более просто кодировать изображения.
Кроме того, возникают случаи, в которых код, обозначающий максимальный значащий разряд, и код, обозначающий знаки квантованных коэффициентов, равны 1 биту или 0 битов, так что в случае кодирования такого изображения изображение фактически может быть кодировано путем доступа к квантованным коэффициентам только дважды. Кроме того, в случае декодирования изображения доступ к квантованным коэффициентам требуется выполнять только один раз, что позволяет проще и быстрее декодировать изображения.
В устройстве 111 кодирования изображения и в устройстве 211 декодирования изображения квантованные коэффициенты подполосы кодируют и декодируют в порядке растрового сканирования, в связи с чем отсутствует необходимость размещения в буфере квантованных коэффициентов, что позволяет уменьшить задержку, возникающую из-за кодирования и декодирования.
Кроме того, фактическое кодирование и декодирование изображения в формате YUV 4:2:2 размером 1920 пикселей по горизонтали х 1080 пикселей по вертикали, при использовании инструкции операции ОКМД (в которой w=4) приводит к получению следующих результатов. Следует отметить, что во время выполнения кодирования изображение подвергается вейвлет преобразованию и разлагается на пять уровней или подполос, и затем кодируют квантованные коэффициенты, полученные по квантованным вейвлет коэффициентам для каждой подполосы. Кроме того, функциональные блоки, необходимые для кодирования и декодирования (например, модуль 123 энтропийного кодирования по фиг.33 и модуль 221 энтропийного декодирования по фиг.27), и функциональные блоки для кодирования и декодирования изображения в JPEG 2000 реализуются путем обеспечения выполнения ЦПУ (с тактовой частотой 3,0 ГГц) типа Pentium (зарегистрированный товарный знак) 4 (товарный знак компании Intel Corporation) заданных программ.
В случае кодирования одного кадра изображения при использовании обычного способа JPEG 2000 размер кода составил 291571 байт, и время, требуемое для кодирования, составило 0,26157 секунды. Кроме того, время, необходимое для декодирования кодированного изображения, составило 0,24718 секунд.
И наоборот, в случае кодирования одного кадра изображения с помощью модуля 123 энтропийного кодирования, показанного на фиг.33, размер кода составил 343840 байт, и время, требуемое для кодирования, составило 0,03453 секунды. Кроме того, время, необходимое для декодирования кодированного изображения с помощью модуля 221 энтропийного декодирования, показанного на фиг.27, составило 0,02750 секунд.
Движущиеся изображения часто отображают с частотой 30 кадров в секунду, что позволяет обрабатывать изображения в режиме реального времени, только если кодирование или декодирование может быть выполнено в течение 0,033 (=1/30) секунд на кадр. При использовании способа JPEG 2000 время, требуемое для кодирования, составляет 0,26157 секунд, и время, необходимое для декодирования, составляет 0,24718 секунд, что затрудняет реализацию обработки в режиме реального времени изображений, но в случае кодирования изображения при использовании модуля 123 энтропийного кодирования, показанного на фиг.33, время, требуемое для кодирования, составляет 0,03453 секунды, так что изображения можно обрабатывать практически приблизительно в режиме реального времени. Кроме того, в случае декодирования изображения с помощью модуля 221 энтропийного декодирования, показанного на фиг.27, время, требуемое для декодирования, составляет 0,02750 секунд, что позволяет эффективно обрабатывать изображения в режиме реального времени.
В приведенном выше описании был описан пример кодирования данных изображения или пример декодирования кодированных данных, в котором данные изображения были кодированы, но оно не ограничивается данными изображения, и его можно применять для случаев кодирования данных звука или тому подобного, или декодирования кодированных данных, в которых были закодированы данные звука, например. Например, в случае кодирования данных звука, код, обозначающий максимальные значащие разряды w заданных значений, выраженных кодом, введенным как данные звука, код, обозначающий абсолютные значения числовых значений, и код, обозначающий знаки цифровых значений, выводят как кодированные данные звука.
Дополнительное свойство настоящего варианта выполнения состоит в том, что со способом кодирования, описанным в настоящем варианте выполнения, можно кодировать квантованные коэффициенты без потерь. Соответственно, квантование с большим размером шага для коэффициентов более верхней полосы, так, чтобы они соответствовали свойствам восприятия человеческого зрения, позволяет существенно улучшить качество изображения на величину генерируемого кода. Кроме того, при уменьшении размеров шага квантования, что используется в определенном диапазоне пространства, обеспечивается возможность улучшить качество изображения в этом диапазоне пространства.
Кроме того, с помощью способа кодирования, описанного с настоящим вариантом выполнения, кодируется набор участка значащих разрядов по абсолютным значениям. Если сказать, что участок значащих разрядов абсолютных значений подвергается кодированию КПД и передаче, в случае, когда значащий разряд абсолютных значений равен N, необходима чрезвычайно большая таблица КПД, имеющая 2∧(N*W) записей (что не только увеличивает нагрузку и время обработки при расчетах, но также и требует увеличивать емкость запоминающего устройства, необходимую для содержания таблицы КПД). И наоборот, при использовании способа кодирования, описанного в настоящем варианте выполнения, нет необходимости использовать такую большую таблицу (что позволяет сократить не только нагрузку и время обработки для расчетов, но также и требуемую емкость запоминающего устройства).
Кроме того, при использовании арифметического кодирования с более высокой степенью сжатия, чем предусмотрено КПД, даже использование способа сжатия с арифметическим кодированием, таким как JPEG 2000, например, невозможно существенно улучшить степень сжатия по сравнению со случаем способа кодирования, описанного в данном варианте выполнения. То есть при использовании способа кодирования, описанного в настоящем варианте выполнения, обработка кодирования выполняется просто, при высоком значении степени сжатия.
При использовании способа кодирования, описанного в настоящем варианте выполнения, кодируют максимальные значащие разряды абсолютных значений w наборов коэффициентов, в результате размер генерируемого кода может быть уменьшен, используя факт, что значащие разряды расположенных рядом коэффициентов являются аналогичными.
Кроме того, при использовании способа кодирования, описанного в настоящем варианте выполнения, выполняется дифференциальное кодирование, при кодировании максимальных значащих разрядов абсолютных значений w наборов коэффициентов, в результате чего размер генерируемого кода можно уменьшить, используя тот факт, что значащие разряды соседних коэффициентов также являются аналогичными в этой точке.
Кроме того, обработку энтропийного кодирования с использованием модуля 123 энтропийного кодирования и обработку энтропийного декодирования, с помощью модуля 221 энтропийного декодирования, в соответствии с описанным выше шестым вариантом выполнения, можно применять для каждого из описанных выше с первого по пятый вариантах выполнения, в результате чего время задержки, потребляемую мощность, размер памяти буфера, необходимой для обработки, и т.д., можно дополнительно уменьшить для всей обработки кодирования изображения и обработки декодирования изображения. Например, модуль 123 энтропийного кодирования можно применять как модуль 15 энтропийного кодирования устройства 1 кодирования изображения, показанного на фиг.1 (то есть модуль 15 энтропийного кодирования может выполнять обработку энтропийного кодирования таким же образом, как и модуль 123 энтропийного кодирования). Кроме того, например, модуль 221 энтропийного декодирования можно применять как модуль 21 энтропийного декодирования в устройстве 20 декодирования изображения по фиг.9 (то есть модуль 21 энтропийного декодирования может выполнять обработку энтропийного декодирования так же, как и модуль 221 энтропийного декодирования).
То есть при применении обработки энтропийного кодирования в соответствии с шестым вариантом выполнения, в каждом из описанных выше с первого варианта выполнения по пятый вариант выполнения, обеспечивается возможность уменьшения размера генерируемого кода, благодаря выгодному использованию свойства порядка вывода коэффициентов из модуля вейвлет преобразования в каждом из вариантов выполнения (то есть, учитывая, что значащие разряды последовательных коэффициентов являются аналогичными). Кроме того, даже в случае реконфигурирования коэффициентов, модуль вейвлет преобразования выполняет вейвлет преобразование в отношении приращений блоков строк, в результате чего то свойство, что значащие разряды последовательных коэффициентов являются аналогичными, не существенно затрагивается, и размер генерируемого кода при обработке энтропийного кодирования изменяется незначительно.
Как описано выше, обработка энтропийного кодирования, в соответствии с шестым вариантом выполнения, и свойства обработанных данных коэффициента и ожидаемые ее преимущества аналогичны обработке вейвлет преобразования, описанной со ссылкой на описанные выше с первого варианта выполнения по пятый вариант выполнения, и имеют сильное сродство друг с другом. В соответствии с этим, во всей обработке кодирования изображения больше преимуществ можно ожидать при применении обработки энтропийного кодирования в соответствии с настоящим вариантом выполнения, при обработке вейвлет преобразования, описанной со ссылкой на описанный выше с первого варианта выполнения по пятый вариант выполнения, по сравнению с применением других способов кодирования.
Далее будет описан седьмой вариант выполнения настоящего изобретения. Этот седьмой вариант выполнения представляет собой пример цифровой триаксиальной системы, в которой применяется устройство кодирования изображения и устройство декодирования изображения в соответствии с описанными выше вариантами выполнения.
Триаксиальная система представляет собой систему, используемую в телевизионных широковещательных станциях, производственных студиях и т.д. С помощью такой системы в момент записи, передачи из студии или широковещательной передачи в прямом эфире из удаленного места используется одиночный триаксиальный кабель, соединяющий видеокамеру и модуль управления камерой, или коммутатор для передачи мультиплексированных сигналов, таких как сигналы изображения, сигналы звука, обратные сигналы изображения, сигналы синхронизации и т.д., и также для подачи питания.
Множество обычных триаксиальных систем были установлены для передачи описанных выше сигналов в форме аналоговых сигналов. С другой стороны, в последние годы, все системы становятся полностью цифровыми, и, соответственно, триаксиальные системы, используемые в телевизионных широковещательных станциях, также становятся цифровыми.
В хорошо известных цифровых триаксиальных системах цифровые видеосигналы, передаваемые по триаксиальному кабелю, до настоящего времени представляли собой видеосигналы без сжатия. Причина этого состоит в том, что спецификации, требуемые в отношении времени задержки сигнала, являются чрезвычайно строгими в телевизионных широковещательных станциях, в основном, например, требуется, чтобы время задержки от момента съемки до вывода на экран монитора было в пределах одного поля (16,67 мс). Системы кодирования со сжатием, такие как MPEG2 и MPEG4, в которых реализована высокая степень сжатия и высокое качество изображения, не используются в триаксиальных системах, поскольку время, эквивалентное нескольким кадрам, требуется для сжатия и кодирования видеосигнала, и декодирования сжатых видеосигналов, что означает слишком большую задержку по времени.
Способы кодирования и декодирования изображения в соответствии с настоящим изобретением, описанные выше, имеют чрезвычайно короткое время задержки ввода данных изображения, для получения выходного изображения, в пределах времени одного поля, то есть, от нескольких строк до нескольких десятков строк, и его, соответственно, можно применять в цифровой триаксиальной системе.
На фиг.37 иллюстрируется конфигурация примера цифровой триаксиальной системы, применимой в способе кодирования и декодирования изображения в соответствии с настоящим изобретением. Модуль 500 передачи и модуль 502 управления камерой соединены через триаксиальный кабель (коаксиальный трехпроводный кабель) 501. Цифровые видеосигналы и цифровые сигналы звука (ниже называются "сигналами основной линии") из модуля 500 передачи в модуль 502 управления камерой, которые фактически передают в режиме широковещательной передачи, или используют как содержание, и звуковые сигналы переговорного устройства и обратные цифровые видеосигналы из модуля 502 управления камерой модуля 503 видео камеры передают через триаксиальный кабель 501.
Модуль 500 передачи встроен, например, в непоказанное устройство видеокамеры. Конечно, могут быть выполнены другие компоновки, такие как модуль 500 передачи, соединенный с устройством видеокамеры, в качестве внешнего устройства для устройства видеокамеры. Модуль 502 управления камерой может представлять собой устройство, обычно называемое, например, МУК (CCU, модуль управления камерой).
Цифровые звуковые сигналы составляют малую нагрузку в смысле настоящего изобретения, поэтому их описание не будет здесь приведено для упрощения описания.
Модуль 503 видеокамеры выполнен, например, внутри непоказанного на чертеже устройства видеокамеры, и выполняет съемку с использованием непоказанного устройства отслеживания изображения, такого как ПЗС (CCD, прибор с зарядовой связью), света от предмета, который снимают через оптическую систему 550, включающую в себя объектив, механизм фокусирования, механизм оптического увеличения, механизм регулировки диафрагмы и т.д. Устройство съемки изображения преобразует принятый свет в электрические сигналы с использованием фотоэлектрического преобразования, и, кроме того, выполняет заданную обработку сигналов, для вывода цифровых видеосигналов основного диапазона. Эти цифровые видеосигналы отображают, например, в формате ПИД-ВР (HD-SDI, последовательный интерфейс данных с высокой разрешающей способностью) и выводят.
Также к модулю 503 видеокамеры подключен модуль 551 дисплея, используемый как монитор, и переговорное устройство 552, используемое для обмена звуком с внешними устройствами.
Модуль 500 передачи имеет модуль 510 кодирования видеосигнала, модуль 511 декодирования видеосигнала, модуль 512 цифровой модуляции и модуль 513 цифровой демодуляции, усилители 514 и 515, и модуль 516 разделения/синтеза видеоизображения.
Цифровые видеосигналы основного диапазона, отображенные, например, в формат ПИД-ВР, передают из модуля 503 видеокамеры в модуль 500 передачи. Цифровые видеосигналы сжимают и кодируют в модуле 510 кодирования видеосигнала так, что они становятся потоком кода, который передают в модуль 512 цифровой модуляции. Модуль 512 цифровой модуляции модулирует переданный поток кода в сигналы в формате, пригодном для передачи данных по триаксиальному кабелю 501 и выводят их. Сигналы выводимые из модуля 512 цифровой модуляции, передают в модуль 516 разделения/синтеза видеоизображения через усилитель 514. Модуль 516 разделения/синтеза видеоизображения передает переданные сигналы в триаксиальный кабель 501. Эти сигналы принимают в модуле 502 управления камерой через триаксиальный кабель 501.
Сигналы, выведенные из модуля 502 управления камерой, принимают в модуле 500 передачи через триаксиальный кабель 501. Принятые сигналы передают в модуль 516 разделения/синтеза, где разделяют часть цифровых видеосигналов и часть других сигналов. Из принятых сигналов часть цифровых видеосигналов передают через усилитель 515 в модуль 513 цифровой демодуляции, и сигналы, модулированные в сигналы в формате, пригодном для передачи по триаксиальному кабелю 501, демодулируют на стороне модуля 502 управления камерой, и восстанавливают поток кода.
Поток кода передают в модуль 511 декодирования видеосигнала, декодируют кодирование сжатия и получают цифровые видеосигналы в основном диапазоне. Декодированные цифровые видеосигналы отображают в формат ПИД-ВР и выводят, и передают в модуль 503 видеокамеры, как возвратные цифровые видеосигналы. Возвратные цифровые видеосигналы передают в модуль 551 отображения, соединенный с модулем 503 видеокамеры, и используют для отслеживания оператором камеры.
Модуль 502 управления камерой имеет модуль 520 разделения/синтеза видеоизображения, усилители 521 и 522, модуль 523 предварительной обработки, модуль 524 цифровой демодуляции и модуль 525 цифровой модуляции, и модуль 526 декодирования видеосигнала, а также модуль 527 кодирования видеосигнала.
Сигналы, выводимые из модуля 500 передачи, принимают в модуле 502 управления камерой через триаксиальный кабель 501. Принятые сигналы передают в модуль 520 разделения/синтеза видеоизображения. Модуль 520 разделения/синтеза видеоизображения передает переданные в него сигналы в модуль 524 цифровой демодуляции через усилитель 521 и модуль 523 предварительной обработки. Следует отметить, что модуль 523 предварительной обработки имеет модуль управления усилением, предназначенный для регулирования усиления входных сигналов, модуль фильтра, предназначенный для выполнения заданной фильтрования входных сигналов, и т.д.
Модуль 524 цифровой демодуляции демодулирует сигналы, модулированные в сигналы в формате, пригодном для передачи по триаксиальному кабелю 501 на стороне модуля 500 передачи, и восстанавливает поток кода. Поток кода передают в модуль 526 декодирования видеосигнала, где декодируют кодирование со сжатием для получения цифровых видеосигналов в основном диапазоне. Декодированные цифровые видеосигналы отображают в формат ПИД-ВР и выводят, и передают во внешнее устройство, как основные линейные сигналы.
Возвращаемые цифровые видеосигналы и цифровые сигналы звука применяют во внешних устройствах в модуле 502 управления камерой. Цифровые звуковые сигналы, передают по переговорному устройству 552 оператора камеры, например, для использования при передаче внешних звуковых инструкций оператору камеры.
Возвращаемые цифровые видеосигналы подвергают кодированию 527 видеосигнала, декодируют со сжатием и передают в модуль 525 цифровой модуляции. Модуль 525 цифровой модуляции модулирует передаваемый поток кода в сигналы в формате, пригодном для передачи по триаксиальному кабелю 501, и выводит их. Сигналы, выводимые из модуля 525 цифровой модуляции, передают в модуль 520 разделения/синтеза видеоизображения через модуль 523 предварительной обработки и усилитель 522. Модуль 520 разделения/синтеза видеоизображения мультиплексирует эти сигналы с другими сигналами и передает их по триаксиальному кабелю 501. Сигналы принимают в модуле 503 видеокамеры через триаксиальный кабель 501.
В таком седьмом варианте выполнения настоящего изобретения устройство кодирования изображения и устройство декодирования изображения, описанные в приведенных выше вариантах выполнения, соответственно, применяют в модуле 510 кодирования видеосигнала и в модуле 527 кодирования видеосигнала, и в модуле 511 декодирования видеосигнала, и в модуле 526 декодирования видеосигнала.
В частности, второй вариант выполнения настоящего изобретения скомпонован так, что обработка различных элементов в устройстве кодирования изображения и в устройстве декодирования изображения может выполняться параллельно, что может существенно снизить задержку по времени при выводе изображений, снимаемых модулем 503 видеокамеры из модуля 502 управления камерой, и задержку при возврате цифровых видеосигналов, передаваемых из внешних устройств и передаваемых из модуля 502 управления камерой в модуль 503 видеокамеры и, соответственно, применяемых в седьмом варианте выполнения настоящего изобретения.
Кроме того, в случае системы, показанной на фиг.37, возможности обработки сигналов и емкость памяти можно установить соответствующим образом в каждом из модуля 500 передачи и модуля 502 управления камерой, таким образом, что обработка по реконфигурированию данных коэффициента будет выполняться либо на стороне модуля 500 передачи, или на стороне модуля 502 управления камерой, и энтропийное кодирование может выполняться таким же образом, либо перед или после обработки реконфигурирования.
То есть на стороне модуля 500 передачи модуль 510 кодирования видеосигнала выполняет вейвлет преобразование и энтропийное кодирование в соответствии со способом настоящего изобретения для цифровых видеосигналов, передаваемых в него, и выводит поток кода. Как описано выше, после ввода определенного количества строк, соответствующих количеству отводов фильтра, используемого для вейвлет преобразования, и в соответствии с количеством введенных уровней разделений вейвлет преобразования модуль 510 кодирования видеосигнала начинает вейвлет преобразование. Кроме того, как описано выше со ссылкой на фиг.5, фиг.6, фиг.11 и т.д., после накопления данных коэффициента, необходимых для компонентов, в устройстве кодирования изображения и в устройстве декодирования изображения, обработка последовательно выполняется этими компонентами. После окончания обработки на нижней строке одного кадра или одного поля, начинается обработка следующего одного кадра или одного поля.
Это также справедливо для возвращаемых при передаче цифровых видеосигналов со стороны модуля 502 управления камерой на сторону 500 модуля передачи. То есть на стороне модуля 502 управления камерой модулем 527 кодирования видеосигнала выполняется вейвлет преобразование и энтропийное кодирование в соответствии с настоящим изобретением по переданным из внешних устройств возвращаемым цифровьм видеосигналам, и выводится поток кода.
При этом часто возникает случай, когда разрешено, чтобы возвращаемые цифровые видеосигналы имели более низкое качество изображения, чем цифровой видеосигнал для основной линии сигналов. В этом случае частота следования битов во время кодирования в модуле 527 кодирования видеосигнала может быть понижена. Например, модуль 527 кодирования видеосигнала выполняет управление модулем 14 управления частотой следования битов таким образом, чтобы частота следования битов при обработке энтропийного кодирования в модуле 15 энтропийного кодирования была ниже. Кроме того, можно рассмотреть такую компоновку, в которой, например, на стороне модуля 502 управления камерой, обработку преобразования выполняют на более высоком уровне разделения с модулем 10 вейвлет преобразования в модуль 527 кодирования видеосигнала, и на стороне модуля 500 передачи инверсное вейвлет преобразование в модуле 23 инверсного вейвлет преобразования на стороне модуля 511 кодирования видеосигналов устанавливают на более низком уровне разделения. Обработка в модуле 527 кодирования видеосигнала модулем 502 управления камерой не ограничивается этим примером, и можно рассмотреть различные другие типы обработки, такие как поддержка низкого уровня разделения для вейвлет преобразования, с тем, чтобы уменьшить нагрузку при обработке преобразования.
Далее будет описан восьмой вариант выполнения настоящего изобретения. В этом восьмом варианте выполнения настоящего изобретения передача кодированных данных, кодированных в устройстве кодирования изображения в соответствии с настоящим изобретением, на сторону устройства декодирования изображения выполняется с использованием беспроводного канала передачи данных. На фиг.38 представлена конфигурация примера системы беспроводной передачи данных в соответствии с восьмым вариантом выполнения настоящего изобретения. Следует отметить, что в примере, показанном на фиг.38, видеосигналы передают в одном направлении со стороны видеокамеры или модуля 600 передачи (ниже сокращенно называется "модуль 600 передачи") на сторону устройства 601 приема. Двунаправленная передача данных между модулем 600 передачи данных и устройством 601 приема может выполняться для видеосигналов и других сигналов.
Модуль 600 передачи встроен в не показанное устройство видеокамеры, имеющее, например, модуль 602 видеокамеры. Конечно, могут быть выполнены другие компоновки, такие как модуль 600 передачи, подключенный к устройству видеокамеры, как внешнее устройство для устройства видеокамеры, имеющего модуль 602 видеокамеры.
Модуль 602 видеокамеры имеет определенную оптическую систему, устройство съемки изображения, такое как, например, ПЗС, и модуль обработки сигналов, предназначенный для вывода сигналов, выводимых из устройства съемки изображения, в виде цифровых видеосигналов. Такие цифровые видеосигналы отображают, например, в формат ПИД-ВР и выводят, например, из модуля 602 видеокамеры. Конечно, цифровые видеосигналы, выводимые из модуля 602 видеокамеры, не ограничены этим примером, и могут иметь также другие форматы.
Модуль 600 передачи имеет модуль 610 кодирования видеосигнала, модуль 611 цифровой модуляции и блок 612 беспроводного модуля. В модуле 600 передачи цифровые видеосигналы основной полосы отображают, например, в формат ПИД-ВР и выводят из модуля 602 видеокамеры. Цифровые видеосигналы подвергают кодированию сжатия с помощью вейвлет преобразования и энтропийного кодирования, в соответствии со способом кодирования сжатия, в соответствии с настоящим изобретением, в модуле 610 кодирования видеосигнала так, что они становятся потоком кода, который передают в модуль 611 цифровой модуляции. Модуль 611 цифровой модуляции выполняет цифровую модуляцию передаваемого потока кода в сигналы в формате, пригодном для беспроводной передачи данных, и выводит их.
Кроме того, цифровые сигналы звука и другие сигналы, такие как, например, заданные команды и данные, также передают в модуль 611 цифровой модуляции. Например, модуль 602 видеокамеры имеет микрофон, с помощью которого улавливаемые звуки преобразуют в звуковые сигналы, и, кроме того, звуковые сигналы подвергают А/Ц преобразованию и выводят в виде цифровых сигналов звука. Кроме того, модуль 602 видеокамеры может выводить определенные команды и данные. Команды и данные могут генерироваться в модуле 602 видеокамеры, или модуль операций может быть предусмотрен в модуле 602 видеокамеры так, что команды и данные будут генерироваться в соответствии с операциями пользователя, выполняемыми в модуле операций. Кроме того, может быть выполнена компоновка, в которой устройство ввода, предназначенное для ввода команды и данных, будет подключено к модулю 602 видеокамеры.
Модуль 611 цифровой модуляции выполняет цифровую модуляцию этих цифровых сигналов звука и других сигналов и выводит их. Цифровые модулированные сигналы, выводимые из модуля 611 цифровой модуляции, передают в блок 612 беспроводного модуля и передают по беспроводному каналу через антенну 613 в виде радиоволн.
После приема АЗП (ARQ, автоматический запрос на повторение) со стороны устройства 601 приема, блок 612 беспроводного модуля передает уведомление в виде такого АЗП в модуль 611 цифровой модуляции для запроса повторной передачи данных.
Радиоволны, передаваемые через антенну 613, принимаются антенной 620 на стороне устройства 601 приема, и их передают в блок 621 беспроводного модуля. Блок 621 беспроводного модуля передает цифровые модулированные сигналы на основе принятых радиоволн в модуль 622 предварительной обработки. Модуль 622 предварительной обработки выполняет заданную обработку сигналов, такую как, например, управление усилением в отношении передаваемых цифровых модулированных сигналов, и передает их в модуль 623 цифровой демодуляции. Модуль 623 цифровой демодуляции демодулирует переданные цифровые модулированные сигналы и восстанавливает поток кода.
Восстановленный в модуле 623 цифровой демодуляции поток кода передают в модуль 624 декодирования видеосигнала, где выполняют декодирование в отношении кодирования со сжатием с использованием способа декодирования в соответствии с настоящим изобретением, и получают цифровые видеосигналы основной полосы. Декодированные цифровые видеосигналы отображают, например, в формат ПИД-ВР и выводят.
В модуль 623 цифровой демодуляции также передают цифровые сигналы звука и другие сигналы, подвергаемые цифровой модуляции на стороне модуля 600 передачи, и передают. Модуль 623 цифровой демодуляции демодулирует сигналы, в которых эти цифровые сигналы звука и другие сигналы подвергались цифровой модуляции, и восстанавливает и выводит цифровые сигналы звука и другие сигналы.
Кроме того, модуль 622 предварительной обработки выполняет детектирование ошибок в соответствии с заданным способом, в отношении принимаемых сигналов, передаваемых из блока 621 беспроводного модуля, и в случае, когда детектируется ошибка, такая как, например, прием кадра с ошибкой, выводит АЗП. Этот АЗП передают в блок 621 беспроводного модуля и передают через антенну 620.
При такой конфигурации модуль 600 передачи встроен в устройство видеокамеры с относительно малыми размерами, имеющее, например, модуль 602 видеокамеры, устройство монитора подключено к устройству 601 приема, и цифровые видеосигналы, выводимые из модуля 624 декодирования видеосигнала, передают в устройство монитора. Когда устройство 601 приема находится в пределах расстояния передачи радиоволн, передаваемых из блока 612 беспроводного модуля из устройства видеокамеры, имеющего встроенный модуль 600 передачи, изображения, снимаемые устройством видеокамеры, можно просматривать на устройстве монитора с малой задержкой, например, с задержкой в пределах одного поля или одного кадра.
Следует отметить, что в примере, показанном на фиг.38, передача данных между модулем 600 передачи и модулем 601 приема, выполнятся с использованием беспроводной передачи данных, например, в виде передачи видеосигналов по беспроводному каналу передачи данных, но такая компоновка не ограничивается этим примером. Например, модуль 600 передачи и модуль 601 приема могут быть соединены через сеть, такую как Интернет. В этом случае каждый блок 612 беспроводного модуля на стороне модуля 600 передачи и блок 621 беспроводного модуля на стороне модуля 601 приема представляют собой интерфейсы передачи данных, позволяющие осуществлять передачу данных с использованием ПИ (IP, протокола Интернет).
Различные варианты применения можно рассмотреть для системы в соответствии с этим восьмым вариантом выполнения. Например, систему в соответствии с таким восьмым вариантом выполнения можно применять к системе для видеоконференций. В таком примере компоновки используется простое устройство видеокамеры, которое можно подключать через УПШ (USB, универсальную последовательную шину) к компьютерному устройству, такому как персональный компьютер, причем на стороне компьютерного устройства установлен модуль 610 кодирования видеосигнала, и модуль 624 декодирования видеосигнала. Модуль 610 кодирования видеосигнала и модуль 624 декодирования видеосигнала, установленные в компьютерном устройстве, могут иметь конфигурацию аппаратных средств, или могут быть реализованы в виде программного обеспечения, работающего в компьютерном устройстве.
Например, каждый из участников видеоконференции может быть снабжен компьютерным устройством и устройством видеокамеры, которое подключается к компьютерному устройству, при этом компьютерное устройство подключено к устройству сервера для предоставления услуги системы видеоконференции по кабельной сети или по беспроводной сети. Видеосигналы, выводимые из устройства видеокамеры, передают в компьютерное устройство по кабелю УПШ, и обработку кодирования, в соответствии с настоящим изобретением, выполняют в модуле 610 кодирования видеосигнала, в компьютерном устройстве. Компьютерное устройство передает поток кода, в котором были кодированы видеосигналы, в устройство сервера или тому подобное, через сеть.
Устройство сервера передает принятый поток кода в компьютерное устройство каждого из участников через сеть. Поток кода принимают в компьютерном устройстве каждого из участников и подвергают обработке декодирования, в соответствии с настоящим изобретением, в модуле 624 декодирования видеосигнала, в компьютерном устройстве. Данные изображения, выводимые из модуля 624 декодирования видеосигнала, отображают в модуле дисплея компьютерного устройства в виде изображения.
То есть видеосигналы, снимаемые устройствами видеокамеры других участников, отображаются в модулях дисплея компьютерных устройств каждого из участников. В соответствии с этим, в восьмом варианте выполнения настоящего изобретения, время задержки от момента кодирования видеосигналов, снимаемых устройством видеокамеры до их декодирования в компьютерном устройстве других участников, будет коротким, что позволяет снизить ощущение неестественности изображений других участников, отображаемых в модулях отображения компьютерных устройств отображаемых участников.
Кроме того, можно предусмотреть компоновку, в которой модуль 610 кодирования видеосигнала установлен на стороне устройства видеокамеры. Например, модуль 600 передачи может быть встроен в устройство видеокамеры. Такая конфигурация устраняет необходимость подключения устройства видеокамеры к другому устройству, такому как компьютерное устройство или тому подобное.
Такая система, состоящая из устройства видеокамеры со встроенным модулем 600 передачи и устройством 601 приема может применяться в различных областях, помимо описанной выше системы видеоконференции. Например, как схематично показано на фиг.39, такую систему можно применять в домашней игровой консоли. На фиг.39 модуль 600 передачи в соответствии с восьмым вариантом выполнения настоящего изобретения встроен в устройство 700 видеокамеры.
В основном модуле 701 домашней игровой консоли, например, с помощью шины, подключены ЦПУ, ОЗУ, ПЗУ, устройство привода диска, совместимое с CD-ROM (постоянное запоминающее устройство на основе компакт-диска) и DVD-ROM (ПЗУ на основе цифрового универсального диска), модуль графического управления, предназначенный для преобразования сигналов управления отображением, генерируемых ЦПУ, в видеосигналы и вывода, и модуль воспроизведения звука, предназначенный для воспроизведения звуковых сигналов, и т.д., то есть имеющий конфигурацию, в общем, аналогичную конфигурации компьютерного устройства. Основной модуль 701 домашней игровой консоли полностью управляется с помощью ЦПУ, в соответствии с программами, заранее сохраненными в ПЗУ, или программами, записанными на CD-ROM или DVD-ROM, установленными в устройство привода диска. ОЗУ используется как рабочая память для ЦПУ. В основной модуль 701 домашней игровой консоли встроено устройство 601 приема. Цифровые видеосигналы, выводимые из устройства 601 приема, и другие сигналы передают в ЦПУ, например, через шину.
Можно сказать, что в такой системе, например, основного модуля 701 домашней игровой консоли, выполняется работа игрового программного обеспечения, которое может снимать изображения в форме цифровых видеосигналов, передаваемых из внешнего источника, как изображения, используемые в игре. Например, такое игровое программное обеспечение позволяет использовать изображения в форме цифровых видеосигналов, передаваемых из внешнего источника, как изображения, используемые в игре, и также распознает движения людей (игроков) в этом изображении и выполняет операции, соответствующие распознаваемым движениям.
Устройство 700 видеокамеры кодирует снимаемые цифровые видеосигналы с помощью способа кодирования, в соответствии с настоящим изобретением в модуле 610 кодирования видеосигнала, во встроенном модуле 600 передачи, модулирует поток кода в модуле 611 цифровой модуляции и передает в блок 612 беспроводного модуля для передачи через антенну 613. Передаваемые радиоволны принимают с помощью антенны 620 устройства 601 приема, встроенного в основной модуль 701 домашней игровой консоли, принимаемые сигналы передают в модуль 623 цифровой демодуляции через блок 621 беспроводного модуля и модуль 622 предварительной обработки. Принимаемые сигналы демодулируют в модуле 623 цифровой демодуляции в поток кода и передают в модуль 624 декодирования видеосигнала. Модуль 624 декодирования видеосигнала декодирует передаваемый поток кода с использованием способа декодирования в соответствии с настоящим изобретением и выводит цифровые видеосигналы в основной полосе.
Цифровые видеосигналы в основной полосе, выводимые из модуля 624 декодирования видеосигналов, передают через шину в основном модуле 701 домашней игровой консоли и временно сохраняют, например, в ОЗУ. После считывания цифровых видеосигналов, сохраненных в ОЗУ, в соответствии с заданной программой, ЦПУ может детектировать движение людей в изображении, предоставленном в виде цифровых видеосигналов, и использовать это изображение в игре.
Благодаря малому времени задержки от момента съемки изображений с помощью устройства 700 видеокамеры до получения цифровых видеосигналов, кодированных в виде потока кода, который декодируют в основном модуле 701 домашней игровой консоли и получения в нем изображений, улучшается отклик игрового программного обеспечения, работающего в основном модуле 701 домашнего пульта деловой игры относительно движения игрока, таким образом реакция домашней игровой консоли на движение игрока улучшается, что, таким образом, улучшает общую функциональность игры.
Следует отметить, что такое устройство 700 видеокамеры, используемое в домашней игровой консоли, часто имеет простую конфигурацию, из-за ограничений по цене, размерам и т.д., и следует сделать предположение, что ЦПУ с большой вычислительной мощностью и запоминающее устройство большой емкости, такие как в компьютерном устройстве, могут не использоваться.
То есть обычно устройство 700 видеокамеры представляет собой периферийное устройство основного модуля 701 домашней игровой консоли, которое необходимо только для игры в игры с использованием устройства 700 видеокамеры, и не представляет собой устройства, необходимые для игры в игры в основном модуле 701 домашней игровой консоли. В таком случае устройство 700 видеокамеры часто продают отдельно от основного модуля 701 домашней игровой консоли (так называемое дополнительное, продаваемое отдельно устройство). В этом случае установка ЦПУ с высокой производительностью и запоминающего устройства с большой емкостью в устройстве 700 видеокамеры, которое продают по высокой цене, обычно может привести к уменьшению объема продаж товара. Таким образом, это может привести к уменьшению объема продаж игр, в которых используется устройство 700 видеокамеры, что может привести к снижению дохода. Кроме того, в домашних играх, в частности, пропорция собственности часто сильно влияет на количество продаваемого товара, так, что низкая пропорция собственности устройства 700 видеокамеры может привести к дополнительному снижению объема продажи товара.
С другой стороны, при продаже большого количества устройств 700 видеокамеры с низкой ценой, для повышения пропорции собственности можно улучшить продажу продаваемых домашних игр, в которых используется устройство 700 видеокамеры, и повысить их популярность, и это, в свою очередь, может стимулировать дополнительную мотивацию к покупке основного модуля 701 домашней игровой консоли. Учитывая также такую перспективу, устройство 700 видеокамеры часто предпочтительно имеет простую конфигурацию.
В этом случае можно предусмотреть компоновку, в которой вейвлет преобразование выполняется в модуле 610 кодирования видеосигнала, модуля 600 преобразования, встроенного в устройстве 700 видеокамеры, на низком уровне разделения. Это снижает потребность в емкости запоминающего устройства, используемого с модулем буфера реконфигурирования коэффициента.
Кроме того, можно рассмотреть компоновку, в которой используется конфигурация устройства кодирования изображения, пример которого представлен на фиг.12, которое было описано в третьем варианте выполнения, для модуля 610 кодирования видеосигнала. Кроме того, применение конфигурации устройства кодирования изображения, в качестве примера представлено на фиг.15, которая была описано в четвертом варианте выполнения, в модуле 610 кодирования видеосигнала, устраняет необходимость выполнения обработки реконфигурирования данных коэффициента вейвлет преобразования на стороне модуля 610 кодирования видеосигнала, в результате чего можно дополнительно уменьшить нагрузку на стороне устройства 700 видеокамеры, что является предпочтительным. В этом случае существует потребность использования устройства декодирования изображения, пример которого представлен на фиг.16, которое было описано в четвертом варианте выполнения, в качестве модуля 624 декодирования видеосигнала в устройстве 601 приема, встроенном на стороне основного модуля 701 домашней игровой консоли.
Следует отметить, что устройство 700 видеокамеры и основной модуль 701 домашней игровой консоли были описаны выше, как устройства, подключенные с использованием беспроводного канала передачи данных, но эта компоновка не ограничивается таким примером. То есть устройство 700 видеокамеры и основной модуль 701 домашней игровой консоли могут быть подключены с помощью кабеля через такие интерфейсы, как УПШ, IEEE 1394 или тому подобное.
Как описано выше, другое существенное преимущество настоящего изобретения состоит в том, что его можно применять в различных формах, и его можно легко использовать в самых разнообразных областях использования (то есть оно имеет высокую степень универсальности).
Последовательности описанной выше обработки могут быть реализованы с помощью аппаратных средств или с помощью программных средств. В случае реализации последовательности обработки в виде программных средств программы, составляющие программное средство, установлены в компьютере, который имеет встроенные специализированные аппаратные средства, или они могут быть установлены в компьютере общего пользования, или в устройстве обработки информации системы обработки информации, составленной из множества устройств, которые позволяют выполнять различные функции с использованием программ разного типа, установленных на них, с носителя записи программы.
На фиг.40 показана блок-схема, иллюстрирующая пример конфигурации устройства обработки информации, предназначенного для выполнения описанных выше последовательностей обработки с использованием программы.
Как показано на фиг.40, система 800 обработки информации представляет собой систему, выполненную как устройство 801 обработки информации, устройство 803 сохранения, подключенное к устройству 801 обработки информации с помощью шины 802 PCI, УЗЛ (VTR, устройство записи изображений на ленту) 804-1 - УЗЛ 804-S, которые представляют собой множество видеомагнитофонов (УЗЛ) и мышь 805, клавиатуру 806, и контроллер 807 операций, предназначенный для выполнения операций, вводимых пользователем этих устройств, и представляет собой систему, которая выполняет обработку кодирования изображения и обработку декодирования изображения, и т.п., как описано выше, с использованием установленной программы.
Устройство 801 обработки информации системы 800 обработки информации, например, может кодировать содержание движущегося изображения, сохраненное в устройстве 803 сохранения большой емкости, которое выполнено как массив МНДИ (RAID, массив независимых дисковых накопителей с избыточностью) и сохраняет полученные кодированные данные в устройстве 803 сохранения, декодируя кодированные данные, сохраненные в устройстве 803 сохранения, и сохраняя полученные декодированные данные изображения (содержание движущегося изображения) в устройстве 803 сохранения, записывает кодированные данные или декодированные данные изображения на видеоленте с использованием УЗЛ 804-1 - УЗЛ 804-S и т.д. Кроме того, устройство 801 обработки информации выполнено так, что оно захватывает содержание движущегося изображения, записанного на видеолентах, установленных в УЗЛ 804-1 - УЗЛ 804-S в устройстве 803 сохранения. При этом может быть предусмотрена компоновка, в которой устройство 801 обработки информации кодирует содержание движущегося изображения.
Модуль 801 обработки информации имеет микропроцессор 901, МГО (GPU, модуль графической обработки) 902, ОЗУ-ЧВС (XDR-RAM, ОЗУ с чрезвычайно высокой скоростью передачи данных) 903, южный мост 904, НЖМД 905, интерфейс (ИФ, I/F) 906 УПШ, и кодек 907 ввода/вывода звука.
МГО 902 соединен с микропроцессором 901 через специализированную шину 911, ОЗУ-ЧВС 903 соединено с микропроцессором 901 через специализированную шину 912. Южный мост 904 соединен с контроллером 944 ввода/вывода микропроцессора 901 через специализированную шину. Также к южному мосту 904 подключен НЖМД 905, интерфейс 906 УПШ и кодек 907 ввода/вывода звука. Громкоговоритель 921 соединен с кодеком 907 ввода/вывода звука. Кроме того, дисплей 922 соединен с МГО 902.
Также к южному мосту 904 подключены мышь 805, клавиатура 806, УЗЛ 804-1-804-S, устройство 803 сохранения и контроллер 807 операций, через шину 802 PCI.
Мышь 805 и клавиатура 806 принимает операции, вводимые пользователем, и передает в микропроцессор 901 сигналы, обозначающие содержание операций, вводимых пользователем, через шину 802 PCI и южной мост 904. Устройство 803 сохранения и УЗЛ 804-1 - УЗЛ 804-S могут записывать и воспроизводить заданные данные.
Привод 808 дополнительно может быть соединен с шиной 802 PCI, в котором установлен съемный носитель 811, такой как магнитный диск, оптический диск, магнитооптический диск, или полупроводниковое запоминающее устройство и т.д., соответственно, и компьютерная программа, считываемая с него, устанавливается в соответствии с необходимостью в НЖМД 905.
Микропроцессор 901 имеет многоядерную конфигурацию, в которой ядро 941 основного ЦПУ общего назначения, предназначенное для выполнения основных программ, таких как ОС (OS, операционная система) или тому подобное, ядро 942-1 вспомогательного ЦПУ - ядро 942-8 вспомогательного ЦПУ, которые представляют собой множество (восемь в данном случае) процессоров обработки сигналов типа КОНИ (RISC, компьютер с ограниченным набором инструкций), соединенных с ядром 941 основного ЦПУ через внутреннюю шину 945, контроллер 943 запоминающего устройства, предназначенный для выполнения управления запоминающим устройством ОЗУ-ЧВС 903, имеющим емкость, например, 256 [Мбайт], и контроллер 944 В/В (I/O, ввода/вывода), предназначенный для управления вводом и выводом данных совместно с южным мостом 904, интегрированы на одной микросхеме, с реализацией рабочей частоты, например, 4 [ГГц].
Во время запуска микропроцессор 901 считывает необходимые прикладные программы, сохраненные в НЖМД 905 на основе программы управления, сохраненной в НЖМД 905, и передает их в ОЗУ-ЧВС 903, и после чего выполняет необходимую обработку управления, на основе прикладных программ и операций, выполняемых оператором.
Кроме того, при выполнении программного средства, микропроцессор 901 может реализовать обработку кодирования изображения и обработку декодирования изображения, в соответствии с описанными выше вариантами выполнения, передавая потоки кода, получаемые как результат кодирования, в НЖМД 905, для их сохранения, через южный мост 904, может выполнять передачу данных, представляющих собой, например, изображения для воспроизведения, содержание движущегося изображения, полученного в результате декодирования в МГО 902, для отображения на дисплее 922 и т.д.
Хотя подходы к использованию ядер ЦПУ микропроцессора 901 являются необязательными, может быть предусмотрена компоновка, в которой, например, ядро 941 основного ЦПУ выполняет обработку, связанную с управлением обработкой кодирования изображения и обработкой декодирования изображения, и восемь ядер 942-1-942-8 вспомогательных ЦПУ выполняют обработку различных типов, такую как вейвлет преобразование, реконфигурирование коэффициента, энтропийное кодирование, энтропийное декодирование, инверсное вейвлет преобразования, квантование, инверсное квантование и т.д., одновременно и параллельно, как описано, например, со ссылкой на фиг.11. При этом может быть получена компоновка, в которой ядро 941 основного ЦПУ назначает обработку каждому из восьми ядер 942-1-942-8 вспомогательных ЦПУ с приращением в виде блоков строк, выполняя, таким образом, обработку кодирования изображения и обработку декодирования изображения, одновременно и параллельно, с приращением по блокам строк, так же, как и в случае, описанном со ссылкой на Фиг.11. То есть эффективность обработки кодирования изображения и обработки декодирования изображения может быть улучшена, время задержки всей обработки может быть уменьшено, и, кроме того, нагрузка, время обработки и емкость памяти, необходимой для обработки, могут быть уменьшены. Конечно, каждая обработка может быть выполнена также с использованием других способов.
Например, может быть предусмотрена компоновка, в которой часть из восьми ядер 942-1 - ядер 942-8 вспомогательных микропроцессора 901 выполняют обработку кодирования, и остальные одновременно и параллельно выполняют обработку декодирования.
Кроме того, например, в случае, когда независимый кодер или декодер, или устройство обработки кодека, подключено к шине 802 PCI, восемь ядер 942-1-942-8 вспомогательного ЦПУ микропроцессора 901 могут управлять обработкой, выполняемой этими устройствами, через южный мост 904 и шину 802 PCI. Кроме того, в случае, когда подключено множество таких устройств, или в случае, когда эти устройства включают в себя множество декодеров или кодеров, восемь ядер 942-1-942-8 вспомогательного ЦПУ микропроцессора 901 могут осуществлять управление таким образом, что множество декодеров или кодеров совместно разделят между собой обработку.
При этом основное ядро 941 ЦПУ управляет работой восьми ядер 942-1-942-8 вспомогательного ЦПУ, назначая обработку каждому ядру ЦПУ, получая результаты обработки и т.д. Кроме того, основное ядро 941 ЦПУ также выполняет другую обработку, кроме той, которую выполняют эти ядра вспомогательного ЦПУ. Например, основное ядро 941 ЦПУ принимает команды, передаваемые через мышь 805, клавиатуру 806 или контроллер 807 операций, через южный мост 904, и выполняет различные типы обработки, соответствующие этим командам.
МГО 902 выполняет обработку окончательного получения данных в отношении наложения текстур и так далее, для воспроизведения содержания игрового изображения или содержания движущегося изображения, которое должно отображаться на дисплее 922, а также управляет функциями, предназначенными для расчета преобразования координат при отображении множества игровых изображений для содержания движущегося изображения и изображения неподвижного изображения на дисплее 922, сразу же, обрабатывая увеличение/уменьшение игровых изображений, используемых в качестве содержания движущегося изображения, и неподвижных изображений для содержания неподвижного изображения, и т.д., в результате чего можно снизить нагрузку микропроцессора 901.
МГО 902, под управлением микропроцессора 901, выполняет заданную обработку сигнала в отношении подаваемых в него данных изображения, представляющих собой содержание движущегося изображения, и данных изображения, представляющих собой содержание неподвижного изображения, передает данные изображения и данные отображения, получаемые как результат этой обработки, на дисплей 922, и отображает сигналы изображения на дисплее 922.
Теперь игровые изображения, представляющие собой множество содержаний движущегося изображения, декодированных одновременно и параллельно с помощью восьми ядер 942-1-942-8 вспомогательного ЦПУ микропроцессора 901, подвергают передаче данных в МГО 902 по шине 911, при этом скорость передачи составляет, например, вплоть до 30 [Гбайт/сек], так что даже сложные изображения со специальными эффектами можно непрерывно отображать с высокой скоростью.
Кроме того, микропроцессор 901 выполняет обработку смещения звука для данных звука, соответствующих данным изображения, и данных звука, соответствующих содержанию движущегося изображения, и передает отредактированные данные звука, полученные в результате этой обработки, в громкоговоритель 921 через южный мост 904, и код 907 ввода/вывода звука, для вывода звука на основе звуковых сигналов через громкоговоритель 921.
В случае реализации описанных выше последовательностей обработки с помощью программных средств программу, составляющую программное средство, устанавливают через сеть или носитель записи.
Такой носитель записи включает в себя не только съемный носитель 811, показанный на фиг.40, такой как магнитные диски (включая гибкие диски), оптические диски (включая CD-ROM и DVD), магнитооптические диски (включая MD), полупроводниковое запоминающее устройство и т.д., устанавливаемые отдельно от основного модуля устройства для распространения программ пользователям, но также и НЖМД 905, устройство 803 сохранения, в которых записаны программы и т.д., поставляемые пользователю в сборе с основным модулем устройства. Конечно, носитель записи также может представлять собой полупроводниковое запоминающее устройство, такое как ПЗУ или запоминающее устройство типа флэш или тому подобное.
В приведенном выше описании указано, что микропроцессор 901 выполнен из восьми ядер вспомогательного ЦПУ, но изобретение не ограничивается этим, и количество ядер вспомогательного ЦПУ является произвольным. Кроме того, что касается микропроцессора 901, может использоваться компоновка, в которой используется ЦПУ, выполненное как одноядерное (одно ядро) ЦПУ вместо основного ядра ЦПУ и ядер вспомогательных ЦПУ. Кроме того, множество ЦПУ можно использовать вместо микропроцессора 901, можно использовать множество устройств обработки информации (то есть программа, предназначенная для выполнения обработки в соответствии с настоящим изобретением, выполняется в множестве устройств, работающих совместно).
Хотя этапы, описывающие программу, записанную на носителе записи программы в настоящем описании, могут, конечно, выполняться в описанной временной последовательности, они не ограничиваются этой временной последовательностью и могут выполняться параллельно, или по отдельности.
Кроме того, система, используемая в настоящем описании, относится ко всему оборудованию, которое выполнено из множества устройств (устройства).
Следует отметить, что в приведенном выше описании конфигурации, представленные как отдельное устройство, могут быть разделены так, что они будут состоять из множества устройств. И, наоборот, в приведенном выше описании конфигурации, описанные как выполненные из множества устройств, могут быть объединены и могут быть выполнены как одно устройство. Кроме того, в конфигурации этих устройств могут быть добавлены другие конфигурации, помимо описанных выше. Кроме того, часть конфигурации одного устройства может быть включена в конфигурацию другого устройства, если только конфигурация и работа всей системы, по существу, остается прежней.
Промышленная применимость
Настоящее изобретение, описанное выше, предпочтительно, можно применять в различных устройствах или системах, если только они предназначены для кодирования со сжатием и передачи изображений, и код со сжатием декодируется и выводится в месте назначения передачи. Настоящее изобретение, в частности, преимущественно используется с устройствами или системами, в которых требуется обеспечить малую задержку от момента кодирования со сжатием до момента декодирования и вывода изображений.
Например, настоящее изобретение, предпочтительно, можно применять при дистанционной медицинской диагностике и при лечении с использованием манипуляторов, при просмотре изображений, снимаемых, например, видеокамерой. Кроме того, настоящее изобретение, предпочтительно, можно применять для кодирования со сжатием и передачи цифровых видеосигналов, и декодирования цифровых видеосигналов, подвергаемых кодированию со сжатием, в таких системах, как используются в станциях широковещательной передачи и т.п.
Кроме того, настоящее изобретение можно применять в системах, предназначенных для распределения видеоизображения, передаваемого в режиме прямой трансляции, в образовательных системах, в которых студенты и учителя могут интерактивно общаться друг с другом и т.д.
Кроме того, настоящее изобретение можно применять для передачи данных изображения, снимаемых мобильными терминалами, обладающими функциями съемки изображения, такими как сотовые телефоны с функциями камеры, в системах видеоконференций, в системах наблюдения, для записи изображений, снимаемых камерами слежения, с использованием устройства записи и т.д.
Настоящее изобретение относится к системам кодирования/декодирования данных изображения. Техническим результатом является собственно создание устройства и способа кодирования/декодирования, которые позволяют выполнять кодирование со сжатием и декодирование данных изображения и выводить декодированные данные изображения с меньшей задержкой. Указанный технический результат достигается тем, что в процессе вейвлет преобразования выполняется обработка фильтрования с приращением по строкам, с определенным количеством строк, в результате чего данные коэффициента для одной строки, соответствующей компоненту самой нижней полосы, генерируют в виде приращения. В первый раз выполняется обработка для строки номер 1 - строки номер 7, коэффициента С1 компонента верхней полосы, коэффициента С2 и коэффициента С3, и коэффициент Ca компонента нижней полосы, коэффициент Cb и коэффициент Cc, генерируют на уровне = 1 разделения, и на уровне = 2 разделения, коэффициент С4 компонента верхней полосы и коэффициент С5 компонента нижней полосы, дополнительно генерируются из коэффициента Ca, коэффициента Cb и коэффициента Cc. Эти коэффициенты реконфигурируют в порядке от нижней полосы до верхней полосы и передают в фильтр синтеза. Фильтр синтеза выполняет обработку фильтрования коэффициентов в порядке, в котором они были переданы, генерирует данные изображения и выводит. 4 н. и 18 з.п. ф-лы, 40 ил.
средство управления, предназначенное для управления указанным средством фильтра, указанным средством сохранения, указанным средством реконфигурирования коэффициента и указанным средством кодирования, для параллельной работы для каждого блока строк.
JP 2005109776 А, 21.04.2005 | |||
JP 2002218465 A, 02.08.2002 | |||
JP 2004056676 A, 19.02.2004 | |||
JP 2004126923 A, 22.04.2004 | |||
JP 2002101310 A, 05.04.2002 | |||
ВИДЕОПЕРЕДАЮЩЕЕ УСТРОЙСТВО, ИСПОЛЬЗУЮЩЕЕ ВНУТРИКАДРОВУЮ ВИДЕОКОМПРЕССИЮ, СОВМЕСТИМУЮ СО СТАНДАРТОМ МПЕГ-2 | 1998 |
|
RU2191469C2 |
Кодер телевизионного сигнала | 1990 |
|
SU1753596A2 |
US 2002172430 A1, 21.11.2002 | |||
EP 0797358 A1, 24.09.1997 | |||
JP 2001077697 A, 23.03.2001 | |||
JIEBO LUO et al, A Scene Adaptive and Signal Adaptive |
Авторы
Даты
2008-11-27—Публикация
2006-11-17—Подача