Область техники, к которой относится изобретение
Настоящее раскрытие относится к устройству обработки изображения и способу обработки изображения и, более конкретно, к устройству обработки изображения и способу обработки изображения, позволяющим уменьшить ухудшение качества изображения.
Уровень техники
В последние годы широкое распространение получили устройства для сжатия и кодирования изображения, используя схему кодирования, в которой информация изображения обрабатывается, как цифровые данные, и, в это время, с целью высокоэффективной передачи и накопления информации, выполняют сжатие, используя ортогональное преобразование, такое как дискретное косинусное преобразование, и компенсацию движения, используя избыточность, уникальную для информации изображения. Схема кодирования включает в себя, например, MPEG (Группа экспертов движущегося изображения) и т.п.
В частности, схема MPEG 2 (ISO/IEC 13818-2) определена, как схема кодирования изображения общего назначения и представляет собой стандарт, охватывающий, как изображение, сканированное с чередованием, так и изображение последовательного сканирования, и охватывает изображения со стандартным разрешением и изображения высокой четкости. Например, схема MPEG 2 широко используется для широкого диапазона приложений, используемых профессионалами и потребителями. В результате использования схемы сжатия MPEG2, например, количество кода (скорость передачи битов) от 4 до 8 Мбит/с выделяют для изображения, сканированного с чередованием, имеющего стандартное разрешение 720×480 пикселей. Кроме того, в результате использования схемы сжатия MPEG2, например, количество кода (скорость передачи битов) от 18 до 22 Мбит/с выделяют для изображения, сканированного с чередованием, имеющего высокое разрешение 1920×1088 пикселей. Поэтому, могут быть воплощена высокая степень сжатия и хорошее качество изображения.
MPEG 2, в основном, применяется для кодирования изображения высокого качества, которое пригодно для широковещательной передачи, но не соответствует схеме кодирования, имеющей величину кода (скорость передачи битов), ниже, чем у MPEG1, то есть, схеме кодирования, имеющей более высокую степень сжатия. В результате распространения мобильных телефонов, ожидается повышение потребности в схеме кодирования и, соответственно, была стандартизована схема кодирования MPEG 4. Что касается схемы кодирования изображения, в декабре 1998 г. был одобрен стандарт ISO/IEC 14496-2, в качестве международного стандарта.
Кроме того, в последние годы, с целью кодирования изображения для телевизионной конференции, был принят стандарт под названием H.26L (ITU-T (Международный союз электросвязи, Сектор стандартизации в области телекоммуникаций) Q6/16 VCEG (Группа экспертов кодирования видеоданных)). Известно, что при сравнении со схемами кодирования, такими как MPEG 2 или MPEG 4 в предшествующем уровне техники, в H.26L, хотя большой объем расчетов необходим для кодирования и декодирования, воплощается более высокая эффективность кодирования. Кроме того, в настоящее время, как часть действий, связанных со стандартизацией MPEG 4, которая основана на H.26L и которая содержит функции, не поддерживаемые H.26L, для воплощения более высокой эффективности кодирования, выполняется Объединенная модель кодирования видеоданных с улучшенным сжатием.
В качестве плана стандартизации, в марте 2003 г. был одобрен стандарт, как международный стандарт, называемый Н.264 и MPEG 4, часть 10 (Улучшенное кодирование видеоданных, ниже называется AVC)).
Кроме того, в качестве расширения Н.264/AVC, в феврале 2005 г. была закончена стандартизация расширения диапазона достоверности (FRE×t), включающая в себя RGB, инструменты кодирования, необходимые для бизнеса, такие как 4:2:2 или 4:4:4, 8×8 DCT, определенные в соответствии с MPEG 2, и матрицы квантования. В соответствии с этим, H.264/AVC стал схемой кодирования, позволяющей представлять шума пленки, включенные в кинофильм, с хорошим качеством. Поэтому, H.264/AVC использовали для широкого диапазона приложений, таких как диск Blu-ray (товарный знак).
Однако, в последнее время, дополнительно повысилась потребность в кодировании с высокой степенью сжатия, например, с необходимостью сжатия изображений с размером приблизительно 4000×2000 пикселей, что в четыре раза больше, чем у изображения высокой четкости, или с необходимостью распределения изображения высокой четкости в среде с ограниченной скоростью передачи данных, такой как Интернет. Поэтому, в VCEG, в соответствии с ITU-T, продолжает использовать возможность улучшения эффективности кодирования.
Поэтому, в настоящее время, с целью дальнейшего улучшения эффективности кодирования по сравнению с AVC, была предложена стандартизация схемы кодирования, называемая высокоэффективным кодированием видеоданных (HEVC) Объединенной группы по взаимодействию в области кодирования видеоданных (JCTVC), в качестве объединенного предмета стандартизации ITU-T и ISO/IEC. Что касается стандарта HEVC, Проект комитета, как первый проект спецификации, был выработан в феврале 2012 г. (например, см. Непатентный документ 1).
Однако, в схеме прогнозирования внутри кадра 8×8, в соответствии со схемой кодирования AVC, выполняется обработка фильтрации [121]/4 по соседним пикселям текущего блока, которая представляет собой цель обработки. В HEVC определена обработка включения/выключения фильтрации, в соответствии с размером блока и режимом прогнозирования.
Кроме того, в HEVC, с целью уменьшения искажений блоков, в случае, когда режим прогнозирования представляет собой режим DC, горизонтальный режим или вертикальный режим, определена обработка сглаживания граничного значения.
Кроме того, для уменьшения явления, в соответствии с которым контур является видимым на плоском участке изображения, была предложена обработка противодействия шумам контура (например, см. Непатентный документ 2).
В способе, раскрытом в Непатентном документе 2, свойства соседних пикселей текущего блока, которые представляют собой цель обработки, идентифицируют путем выполнения обработки определения порогового значения. В случае, когда результат обработки определения порогового значения равен true, а именно, в случае, когда соседние пиксели имеют заданные свойства, вместо описанной выше обработки фильтрации [121]/4, выполняется обработка билинейной интерполяции (называемая обработкой билинейной фильтрации).
Список литературы Непатентный документ
Непатентный документ 1: Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand, "High efficiency video coding (HEVC) text specification draft 8", JCTVC-H1003_d7, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16WP3 and ISO/IEC JTC1/SC29/WG11,10th Meeting: Stockholm, SE, 11-20 July 2012
Непатентный документ 2: TK Tan, Y. Suzuki, "Contouring artefact and solution", JCTVC-K0139, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16WP3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 10-19 Oct. 2012
Раскрытие изобретения
Задачи, решаемые изобретением
Однако, в способе, раскрытом в Непатентном документе 2, пороговое значение является фиксированным. А именно, независимо от свойства, например, битовой глубины и т.п., данных изображения, которые представляют собой цель обработки кодирования/декодирования, одно и то же значение установлено, как пороговое значение. Поэтому, существует проблема, состоящая в том, что при выборе обработки фильтрации соседних пикселей при прогнозировании внутри кадра, не выбирают соответствующий фильтр, таким образом, что качество изображения будет неоправданно ухудшаться.
Настоящее раскрытие представлено с учетом такой ситуации и позволяет предотвращать ухудшение качества изображения.
Решение задачи
В соответствии с аспектом, настоящей технологией, обеспечивается устройство обработки изображения, включающее в себя модуль установки порогового значения для установки порогового значения, сравниваемого со значением, вычисленным с использованием образца соседних пикселей для идентификации свойства соседних пикселей текущего блока при обработке прогнозирования внутри кадров, при декодировании кодированных данных, причем данные изображения кодированы в соответствии с битовой глубиной данных изображения, и модуль обработки фильтрации для осуществления обработки фильтрации соседних пикселей, с использованием фильтра билинейной интерполяции, в случае, когда значение, вычисленное с использованием образца соседних пикселей, меньше, чем пороговое значение, установленное модулем установки порогового значения.
Модуль установки порогового значения может побитно сдвигать пороговое значение, которое заранее определено, как исходное значение, в соответствии с битовой глубиной.
Модуль установки порогового значения может устанавливать пороговое значение равным 8, в случае, когда битовая глубина данных изображения составляет 8 битов.
Устройство обработки изображения может дополнительно включать в себя модуль определения для определения битовой глубины данных изображения, и модуль установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной, определенной модулем определения.
Устройство обработки изображения может дополнительно включать в себя модуль приема для приема битовой глубины данных изображения, и модуль установки порогового значения может устанавливать пороговое значение, в соответствии с битовой глубиной, принимаемой модулем приема.
Устройство обработки изображения может дополнительно включать в себя модуль приема для приема передаваемого порогового значения, установленного в соответствии с битовой глубиной данных изображения, и модуль обработки фильтрации выполняет обработку фильтрации для соседних пикселей, с использованием фильтра, в соответствии со свойством соседних пикселей, идентифицированным посредством использования порогового значения, принятого модулем приема.
Модуль обработки фильтрации может выполнять обработку фильтра низкой частоты для соседних пикселей, в случае, когда значение, рассчитанное, используя образец соседних пикселей, превышает пороговое значение, установленное модулем установки порогового значения.
Кроме того, соответствии с аспектом настоящей технологии, обеспечивается способ обработки изображения, включающий в себя этапы, на которых: устанавливают пороговое значение, сравниваемое со значением, вычисленным с использованием образца соседних пикселей, для идентификации свойства соседних пикселей текущего блока при обработке прогнозирования внутри кадра, при декодировании кодированных данных, причем данные изображения кодированы в соответствии с битовой глубиной данных изображения; и выполняют обработку фильтрации для соседних пикселей, с использованием фильтра билинейной интерполяции, в случае, когда значение, вычисленное с использованием образца соседних пикселей, меньше, чем пороговое значение.
В соответствии с аспектом настоящей технологии устанавливают пороговое значение, которое сравнивают со значением, вычисленным с использованием образца соседних пикселей для идентификации свойства соседних пикселей текущего блока при обработке прогнозирования внутри кадра, при декодировании кодированных данных изображения, где данные изображения кодированы в соответствии с битовой глубиной данных изображения, и выполняют обработку фильтрации для соседних пикселей, с использованием фильтра билинейной интерполяции, в случае, когда значение, вычисленное с использованием образца соседних пикселей, меньше, чем пороговое значение.
Эффекты изобретения
В соответствии с настоящим раскрытием, возможно кодировать и декодировать изображение. В частности, возможно предотвращать ухудшение качества изображения.
Краткое описание чертежей
На фиг. 1 представлена схема, иллюстрирующая пример конфигурации модуля кодирования.
На фиг. 2 представлена схема, иллюстрирующая пример углового прогнозирования.
На фиг. 3 представлена схема, иллюстрирующая пример плоского прогнозирования.
На фиг. 4 представлена схема, иллюстрирующая пример наиболее вероятного режима.
На фиг. 5 представлена схема, иллюстрирующая пример MDIS (Зависимое от режима сглаживание внутри кадра).
На фиг. 6 представлена схема, иллюстрирующая пример обработки сглаживания граничного значения.
На фиг. 7 представлена схема, иллюстрирующая пример декодируемого изображения.
На фиг. 8 представлена схема, иллюстрирующая другой пример декодируемого изображения.
На фиг. 9 представлена схема, иллюстрирующая пример поведения при обработке определения порогового значения.
На фиг. 10 представлена блок-схема, иллюстрирующая основной пример конфигурации устройства кодирования изображения.
На фиг. 11 представлена блок-схема, иллюстрирующая основной пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 12 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки кодирования.
На фиг. 13 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки установки порогового значения.
На фиг. 14 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки прогнозирования внутри кадра.
На фиг. 15 показана блок-схема последовательности операций, иллюстрирующая другой пример потока обработки установки порогового значения.
На фиг. 16 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 17 представлена блок-схема, иллюстрирующая другой пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 18 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 19 представлена блок-схема, иллюстрирующая еще один другой пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 20 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 21 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 22 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 23 представлена блок-схема, иллюстрирующая основной пример конфигурации устройства декодирования изображения.
На фиг. 24 представлена блок-схема, иллюстрирующая основной пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 25 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки декодирования.
На фиг. 26 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки установки порогового значения.
На фиг. 27 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки прогнозирования.
На фиг. 28 показана блок-схема последовательности операций, иллюстрирующая пример потока обработки прогнозирования внутри кадра.
На фиг. 29 показана блок-схема последовательности операций, иллюстрирующая другой пример потока обработки установки порогового значения.
На фиг. 30 представлена блок-схема, иллюстрирующая другой пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 31 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 32 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 33 представлена блок-схема, иллюстрирующая еще один другой пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 34 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 35 представлена блок-схема, иллюстрирующая еще один другой пример конфигурации модуля установки порогового значения и модуля обработки фильтрации.
На фиг. 36 показана блок-схема последовательности операций, иллюстрирующая еще один другой пример потока обработки установки порогового значения.
На фиг. 37 представлена схема, иллюстрирующая пример схемы кодирования многопроекционного изображения.
На фиг. 38 представлена схема, иллюстрирующая основной пример конфигурации устройства кодирования многопроекционного изображения, в котором применяется настоящая технология.
На фиг. 39 представлена схема, иллюстрирующая основной пример конфигурации устройства декодирования многопроекционного изображения, в котором применяется настоящая технология.
На фиг. 40 представлена схема, иллюстрирующая пример иерархической схемы кодирования изображения.
На фиг. 41 представлена схема, иллюстрирующая пример пространственного масштабируемого кодирования.
На фиг. 42 представлена схема, иллюстрирующая пример временного масштабируемого кодирования.
На фиг. 43 представлена схема, иллюстрирующая пример масштабируемого кодирования по отношению "сигнал-шум".
На фиг. 44 представлена схема, иллюстрирующая основной пример конфигурации иерархического устройства кодирования изображения, в котором применяется настоящая технология.
На фиг. 45 представлена схема, иллюстрирующая основной пример конфигурации иерархического устройства декодирования изображения, в котором применяется настоящая технология.
На фиг. 46 представлена блок-схема, иллюстрирующая основной пример конфигурации компьютера.
На фиг. 47 представлена блок-схема, иллюстрирующая пример примерной схематической конфигурации телевизионного устройства.
На фиг. 48 представлена блок-схема, иллюстрирующая схематический пример конфигурации мобильного телефона.
На фиг. 49 представлена блок-схема, иллюстрирующая схематический пример конфигурации устройства записи/воспроизведений.
На фиг. 50 представлена блок-схема, иллюстрирующая схематический пример конфигурации устройства формирования изображения.
На фиг. 51 представлена блок-схема, иллюстрирующая пример использования масштабируемого кодирования.
На фиг. 52 представлена блок-схема, иллюстрирующая другой пример использования масштабируемого кодирования.
На фиг. 53 представлена блок-схема, иллюстрирующая еще один другой пример использования масштабируемого кодирования.
На фиг. 54 представлена блок-схема, иллюстрирующая схематический пример конфигурации видеонабора.
На фиг. 55 представлена блок-схема, иллюстрирующая схематический пример конфигурации видеопроцессора.
На фиг. 56 представлена блок-схема, иллюстрирующая другой схематический пример конфигурации видеопроцессора.
На фиг. 57 представлена схема, иллюстрирующая конфигурацию системы воспроизведения содержания.
На фиг. 58 представлена схема, иллюстрирующая поток данных в системе воспроизведения содержания.
На фиг. 59 показана схема описания, иллюстрирующая конкретный пример MPD.
На фиг. 60 показана функциональная блок-схема, иллюстрирующая конфигурацию содержания сервера системы воспроизведения содержания.
На фиг. 61 показана функциональная блок-схема, иллюстрирующая конфигурацию содержания устройства воспроизведения системы воспроизведения содержания.
На фиг. 62 показана функциональная блок-схема, иллюстрирующая конфигурацию содержания сервера системы воспроизведения содержания.
На фиг. 63 показана схема последовательности, иллюстрирующая пример обработки передачи данных каждого устройства в системе беспроводной передачи данных.
На фиг. 64 показана схема последовательности, иллюстрирующая пример обработки передачи данных каждого устройства в системе беспроводной передачи данных.
На фиг. 65 показана схема, иллюстрирующая, пример конфигурации формата фрейма передаваемого/принимаемого при обработке передачи данных каждым устройством в системе беспроводной передачи данных.
На фиг. 66 показана схема последовательности, иллюстрирующая пример обработки передачи данных каждого устройства в системе беспроводной передачи данных.
Осуществление изобретения
Ниже будут описаны варианты осуществления для воплощения настоящего раскрытия (ниже называются вариантами осуществления). Кроме того, описание представлено в следующем порядке.
0. Общий обзор
1. Первый вариант осуществления (устройство кодирования изображения)
2. Второй вариант осуществления (устройство декодирования изображения)
3. Третий вариант осуществления (устройство кодирования многопроекционного изображения/декодирования многопроекционного изображения)
4. Четвертый вариант осуществления (устройство кодирования иерархического изображения - декодирования иерархического изображения)
5. Пятый вариант осуществления (компьютер)
6. Пример применения
7. Пример применения масштабируемого кодирования.
8. Шестой вариант осуществления (набор/блок/модуль/процессор)
9. Седьмой вариант осуществления (пример применения системы воспроизведения содержания MPEG-DASH)
10. Восьмой вариант осуществления (пример применения системы беспроводной передачи данных по стандарту Wi-Fi)
0. Общий обзор
Схема кодирования
Ниже настоящая технология будет описана на примере, где настоящая технология применяется для кодирования/декодирования изображения в схеме HEVC (высокоэффективное кодирование видеоданных).
Модуль кодирования
В схеме AVC (Улучшенное кодирование видеоданных) определена иерархическая структура, имеющая макроблоки и подмакроблоки. Однако, макроблок размером 16×16 пикселей не является оптимальным для крупного кадра изображения, называемого UHD (верхвысокой четкости, 4000×2000 пикселей), который должен представлять собой объект схемы кодирования следующего поколения.
С другой стороны, в схеме HEVC, как представлено на фиг. 1, определен модуль кодирования (CU).
CU также называется блоком дерева кодирования (СТВ) и представляет собой частичную область изображения в единицах изображения, которая имеет те же функции, что и у макроблока в схеме AVC. Последний является фиксированным по размеру 16×16 пикселей, но предыдущий не является фиксированным по размеру, но его назначают в информации сжатия изображений в каждой последовательности.
Например, в наборе параметра последовательности (SPS), включенном в выходные кодированные данные, определены максимальный размер (LCU (наибольший модуль кодирования)) CU и минимальный размер (SCU (наименьший модуль кодирования)) CU.
CU в каждом LCU может быть разделен на CU, имеющие меньший размер, путем установки флага разделения = 1, в пределах диапазона, где размер CU не меньше, чем размер SCU. В примере на фиг. 1 размер LCU равен 128, и максимальная иерархическая глубина равна 5. Когда значение split flag равно "1", CU, имеющий размер 2N×2N, разделяют на CU, имеющие размер N×N, которые размещаются на одном более низком уровне.
Кроме того, CU разделяют на модули прогнозирования (PU), как области (частичные области изображения в единицах изображения), которые становятся модулем обработки при прогнозировании внутри кадра или между кадрами, или CU разделяют на модули преобразования (TU), как области (частичные области изображения в единицах изображения), которые становятся модулем обработки при ортогональном преобразовании. В настоящее время, в схеме HEVC, в дополнение к ортогональному преобразованию 4×4 и ортогональному преобразованию 8×8, могут использоваться ортогональное преобразование 16×16 и ортогональное преобразование 32×32.
Так же, как и в описанной выше схеме HEVC, учитывается, что в схеме кодирования, где CU, определенные и различной обработке, выполняются в единицах CU, макроблоки в схеме AVC соответствуют LCU, и блок (подблок) соответствует CU. Кроме того, считается, что блок компенсации движения в схеме AVC соответствует PU. Однако, поскольку CU имеет иерархическую структуру, размер (например, 128×128 пикселей) LCU самого верхнего уровня обычно устанавливают большим, чем размер макроблока схемы AVC.
Поэтому, далее предполагается, что LCU включает в себя макроблок в схеме AVC, и предполагается, что CU включает в себя блок (подблок) в схеме AVC. А именно, "блок", используемый для следующего описания, обозначает произвольную частичную область в пределах изображения, и размер, форма, свойство и т.п. его не ограничены. А именно, "блок" включает в себя, например, TU, PU, SCU, CU, LCU, подблок, макроблок или произвольную область (модуль обработки), такую как срез. Кроме того, другие частичные области (модуль обработки) также включены. В случае, когда размер, модуль обработки и т.п. необходимо ограничить, будет представлено соответствующее его описание.
Выбор режима
Однако, для достижения более высокой эффективности кодирования в схеме кодирования AVC или HEVC, важно выбрать соответствующий режим прогнозирования.
В качестве примера ассоциированной схемы выбора, предложен способ, встроенный в опорное программное обеспечение (раскрытое в http://iphome.hhi.de/suehring/tml/index.htm) H.264/MPEG-4AVC, который называется JM (объединенная модель).
В JM могут быть выбраны два способа определения режима - режим высокой сложности и режим низкой сложности, описанные ниже. В обоих способах рассчитывают значения функции стоимости в отношении соответствующих режимов режима прогнозирования, и режим прогнозирования, где значение функции стоимости минимизировано, выбирают, как оптимальный режим для ассоциированного блока или макроблока.
Функция стоимости в режиме высокой сложности выражена следующей формулой (1).
Математическая формула 1
Здесь Ω обозначает общий набор режимов кандидатов для кодирования ассоциированного блока или макроблока, и D обозначает энергию разности между декодированным изображением и входным изображением, в случае кодирования в режиме ассоциированного прогнозирования. λ обозначает множитель Лагранжа, заданный, как функция параметра квантования. R обозначает общее количество кода, включающее в себя коэффициент ортогонального преобразования, в случае кодирования ассоциированного режима.
А именно, когда предполагается выполнить кодирование в режиме высокой сложности, для расчета описанных выше параметров D и R, необходимо выполнить обработку предварительного кодирования для каждого режима кандидата, таким образом, что требуется больший объем расчетов.
Функция стоимости в режиме низкой сложности выражена следующей формулой (2).
Математическая формула 2
Здесь, в отличие от случая режима высокой сложности, D становится разностной энергией между прогнозируемым изображением и входным изображением. QP2Quant(QP) задана, как функция параметра квантования QP, HeaderBit представляет собой величину кода в отношении информации, включенной в заголовок, который не включает в себя коэффициент ортогонального преобразования и называется вектором или режимом движения.
А именно, в режиме низкой сложности, поскольку должна быть выполнена обработка прогнозирования в каждом режиме - кандидате, поскольку декодируемое изображение не требуется, обработку кодирования не требуется выполнять. Поэтому, становится возможным воплощать меньший объем расчетов, чем в режиме высокой сложности.
Прогнозирование внутри кадра
В AVC существуют прогнозирование 4×4 внутри кадра, прогнозирование 8×8 внутри кадра и прогнозирование 16×16 внутри кадра. В HEVC, как представлено на фиг. 2, применяется угловое прогнозирование для блоков 4×4-64×64 пикселя.
А именно, в AVC, как представлено в позиции А на фиг. 2, выполняется обработка прогнозирования внутри кадра, используя 8 направлений+прогнозирование DC. В отличие от этого, в HEVC, как представлено в позиции В на фиг. 2, обработка прогнозирования внутри кадра выполняется по 32 направлениям+прогнозирование DC. В соответствии с этим, улучшается точность прогнозирования.
Кроме того, в HEVC, как представлено на фиг. 3, определено плоское прогнозирование.
При обработке плоского прогнозирования пиксели прогнозирования, включенные в текущий блок, генерируют из соседних пикселей (пиксели, которые уже кодированы) текущего блока, который представляет собой цель обработки, используя билинейную интерполяцию. Обработка плоского прогнозирования может улучшить эффективность кодирования для области, где существует градация.
В HEVC, как представлено на фиг. 4, обработку кодирования выполняют в режиме прогнозирования внутри кадра, используя три наиболее вероятных режима. А именно, режим прогнозирования внутри кадра (расположенного выше) для соседнего блока, который находится выше текущего блока, и является соседним для текущего блока, режим прогнозирования внутри кадра (для левого блока) для соседнего блока, который находится слева от текущего блока и является соседним для текущего блока, и комбинацию режимов прогнозирования внутри кадра для соседних блоков (расположенных выше и слева), используют в качестве кандидатов (иногда называются режимами кандидатами) режима прогнозирования внутри кадра, и среди этих трех режимов кандидатов, оптимальный режим используется как режим прогнозирования внутри кадра для текущего блока.
Если режим прогнозирования для текущего блока равен любому из наиболее вероятных режимов, передают номер индекса. В противном случае, информацию режима блока прогнозирования передают с фиксированной длиной 5 битов.
Обработка фильтрации при прогнозировании внутри кадра
На фиг. 5 показана схема, описывающая MDI (зависимое от режима сглаживание внутри кадра), регулируемая в HEVC.
В случае AVC, как представлено на фиг. 5, выполняется обработка фильтрации [121]/4 по соседним пикселям текущего блока в режиме прогнозирования внутри кадра 8×8. С другой стороны, в HEVC определяют обработку включения/выключения фильтрации (а именно, следует или нет применять обработку фильтрации) в соответствии с размером блока и режимом прогнозирования.
Более конкретно, в случае, когда размер блока для текущего блока равен 4×4, обработка фильтрации не применяется. В случае, когда размер блока текущего блока составляет 8×8, в режиме прогнозирования в направлении 45 градусов, применяется обработка фильтрации. В случае, когда размер блока текущего блока составляет 16×16, в режиме прогнозирования применяется другое направление, чем 3 направления, близкие к горизонтальному направлению, и 3 направления, близкие к вертикальному направлению при обработке фильтрации. В случае, когда размер блока текущего блока составляет 32×32, в режиме прогнозирования в другом направлении, чем горизонтальное направление и вертикальное направление, применяется обработка фильтрации.
Кроме того, в HEVC, с целью уменьшения искажения блока в случае, когда режим прогнозирования представляет собой режим DC, горизонтальный режим или вертикальный режим, регулируют обработку сглаживания значения на границе, представленную на фиг. 6.
Например, в случае прогнозирования (прогнозирование DC), когда режим прогнозирования представляет собой режим DC, выполняется обработка фильтрации (обработка сглаживания), представленная на фиг. 6, для соседних пикселей, соседних для верхней стороны (Верх) текущего блока, который представляет собой цель обработки, и соседних пикселей, расположенных с левой стороной (Слева) от текущего блока. Кроме того, в случае прогнозирования (горизонтального прогнозирования), когда режим прогнозирования представляет собой горизонтальный режим, обработка фильтрации (обработка сглаживания), представленная на фиг. 6, выполняется для соседних пикселях, расположенных рядом с верхней стороны (Верх) текущего блока. В случае прогнозирования (вертикального прогнозирования), когда режим прогнозирования представляет собой вертикальный режим, обработка фильтрации (обработка сглаживания), представленная на фиг. 6, выполняется для соседних пикселей, расположенных рядом с левой стороной (Слева) текущего блока.
В случае, когда изображение кодируют/декодируют, используя описанное выше прогнозирование между кадрами, в полученном декодируемом изображении, имеется участок, где изменение яркости, цвета, плотности и т.п. является плоским, как представлено в области 11 на фиг. 7, и возникает форма в виде полоски неоднородности плотности (так называемый изгиб) таким образом, что может проявиться явление, при котором виден контур.
Поэтому, была предложена обработка, противодействующая шумам контура, раскрытая в Непатентном документе 2. В результате выполнения обработки противодействия шумам контура, раскрытой в Непатентном документе 2, изгиб, возникающий в области 11 декодируемого изображения, предотвращают, как представлено на фиг. 8, таким образом, что может быть получена плавная градация.
Обработка противодействия шумам контура, раскрытая в Непатентном документе 2, будет описана более подробно. На фиг. 9 показана схема, иллюстрирующая пример поведения при обработке противодействия шумам контура. При обработке противодействия шумам контура, прежде всего, выполняется обработка определения порогового значения, выраженного следующими формулами (3) и (4), используя соседние пиксели текущего блока, представленного на фиг. 9.
Математическая формула 3
В формуле (3) значения порогового значения THRESHOLD установлены фиксированными и равными 8. В результате обработки определения порогового значения определяют свойства соседних пикселей текущего блока. А именно, определяют, является или нет кромка текущего блока участком, где изменение яркости, цвета, плотности и т.п. является плоским таким образом, что может произойти изгиб. В случае, когда результат обработки определения порогового значения равен true, то есть, в случае, когда определяют, что кромка текущего блока представляет собой участок, где изменение яркости, цвета, плотности и т.п. является плоским таким образом, что может возникнуть изгиб, вместо обработки фильтрации, описанной со ссылкой на фиг. 5, выполняется обработка билинейной интерполяции, выраженная следующими формулами (5)-(9), для соседних пикселях текущего блока, представленного на фиг. 9.
Математическая формула 4
Эта обработка применяется только к блоку 32×32, и флаг, представляющий, следует или нет применять обработку (включить/выключить), регулируется в наборе параметра последовательности (SPS).
Однако, в способе, раскрытом в Непатентном документе 2, пороговое значение было установлено фиксированным. Поэтому возникала проблема, состоящая в том, что при выборе обработки фильтрации для соседних пикселей при прогнозировании внутри кадра, соответствующий выбор не выполнялся, таким образом, что качество изображения неизбежно ухудшалось.
При обработке определения порогового значения, как выражено в формулах (3) и (4), значения, рассчитанные из значения пикселей соседних пикселей текущего блока и пороговое значение, сравнивают друг с другом. Однако, если пороговое значение установлено фиксированным, в некоторых случаях, учитывается, что это значение является не соответствующим, например, для битовой глубины рассматриваемых данных изображения. В этом случае, возникает проблема, состоящая в том, что как результат описанной выше обработки определения порогового значения, соответствующий результат определения не был получен, и соответствующий фильтр не был выбран, так, что качество изображения декодируемого изображения неизбежно ухудшалось.
Кроме того, учитывается, что, например, битовая глубина данных изображения меняется при внутренних расчетах во время кодирования/декодирования. В этом случае, аналогично возникает проблема, состоящая в том, что фиксированное пороговое значение не является соответствующим для битовой глубины при внутренних расчетах, и получают неправильный результат при обработке определения порогового значения, таким образом, что качество изображения декодируемого изображения неизбежно ухудшалось.
Кроме того, например, пользователь и т.п. не имел возможности регулировать качество изображения декодируемого изображения, регулируя пороговое значение.
Поэтому, в настоящей технологии, пороговое значение установлено переменным. Например, пороговое значение может быть установлено в соответствии с битовой глубиной данных изображения. Таким образом, становится возможным предотвратить ухудшение качества изображения. Кроме того, путем установки порогового значения переменным, становится возможным регулировать качество изображения декодируемого изображения.
Далее в отношении описанной выше настоящей технологии будут описаны примеры применения конкретных устройств.
1. Первый вариант осуществления
Устройство кодирования изображения
На фиг. 10 показана блок-схема, иллюстрирующая пример конфигурации устройства кодирования изображения, как вида устройства обработки изображения, в котором применяется настоящая технология. Устройство 100 кодирования изображения, представленное на фиг. 10, кодирует данные изображения движущегося изображения, используя, например, обработку прогнозирования HEVC или обработку прогнозирования в схеме, эквивалентной HEVC.
Как представлено на фиг. 10, устройство 100 кодирования изображения конфигурируют так, чтобы оно включало в себя A/D преобразователь 101, буфер 102 изменения компоновки экрана, арифметический модуль 103, модуль 104 ортогонального преобразования, модуль 105 квантования, модуль 106 кодирования без потерь, буфер 107 накопления, модуль 108 обратного квантования и модуль 109 обратного ортогонального преобразования. Кроме того, устройство 100 кодирования изображения выполнено с возможностью включать в себя арифметический модуль 110, фильтр 111 контура, запоминающее устройство 112 кадра, модуль 113 прогнозирования внутри кадра, модуль 114 прогнозирования между кадрами, модуль 115 выбора прогнозируемого изображения, и модуль 116 управления скоростью.
A/D преобразователь 101 выполняет A/D-преобразование данных входного изображения, и подает преобразованные данные изображения (цифровые данные) в буфер 102 изменения компоновки экрана для сохранения преобразованных данных изображения. Буфер 102 изменения компоновки экрана изменяет компоновку изображений, в котором они сохранены в порядке кадра для отображения, используя порядок кадра для кодирования, в соответствии с GOP (группа изображений) и подает изображения с измененным порядком кадра в арифметический модуль 103. Кроме того, буфер 102 изменения компоновки экрана также подает изображения, порядок кадра в которых был изменен, в модуль 113 прогнозирования внутри кадра и в модуль 114 прогнозирования между кадрами.
Арифметический модуль 103 вычитает прогнозируемое изображение, переданное из модуля 113 прогнозирования внутри кадра или из модуля 114 прогнозирования между кадрами через модуль 115 выбора прогнозируемого изображения из изображения, считанного из буфера 102 изменения компоновки экрана, и выводит его разностную информацию в модуль 104 ортогонального преобразования. Например, в случае изображения, в котором выполняется кодирование внутри кадра, арифметический модуль 103 вычитает прогнозируемое изображение, передаваемое из модуля 113 прогнозирования внутри кадра, из изображения, считанного из буфера 102 изменения компоновки экрана. Кроме того, например, в случае изображения, в котором выполняется кодирование между кадрами, арифметический модуль 103 вычитает прогнозируемое изображение, передаваемое из модуля 114 прогнозирования между кадрами, из изображения, считанного из буфера 102 изменения компоновки экрана.
Модуль 104 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва, для информации разности, подаваемой из арифметического модуля 103. Модуль 104 ортогонального преобразования подает его преобразованный коэффициент в модуль 105 квантования.
Модуль 105 квантования выполняет квантование для коэффициента преобразования, переданного из модуля 104 ортогонального преобразования. Модуль 105 квантования устанавливает параметры квантования на основе информации о целевом значении величины кода, поданной из модуля 116 управления скоростью, и выполняет ее квантование. Модуль 105 квантования передает квантованный коэффициент преобразования в модуль 106 кодирования без потерь.
Модуль 106 кодирования без потерь кодирует коэффициент преобразования, квантованный в модуле 105 квантования, в произвольной схеме кодирования. Поскольку данные коэффициента квантуют под управлением модуля 116 управления скоростью, величина кода становится целевым значением, установленным модулем 116 управления скоростью (или величина кода становится приблизительно равной целевому значению).
Кроме того, модуль 106 кодирования без потерь получает информацию, представляющую режим прогнозирования внутри кадра и т.п., из модуля 113 прогнозирования внутри кадра и получает информацию, представляющую режим прогнозирования между кадрами, информацию вектора разности движения, и т.п. из модуля 114 прогнозирования между кадрами.
Модуль 106 кодирования без потерь кодирует различного рода информацию в произвольной схеме кодирования для использования в качестве части информации заголовка для кодированных данных (иногда называется кодированным потоком). Модуль 106 кодирования без потерь подает кодированные данные, полученные в результате кодирования, в буфер 107 накопления, для накопления кодированных данных.
Схема кодирования модуля 106 кодирования без потерь включает в себя, например, кодирование переменной длины, арифметическое кодирование и т.п. Код переменной длины включает в себя, например, CAVLC (адаптивное к контексту кодирование переменной длины), определенное в схеме H.264/AVC и т.п. Арифметический код включает в себя, например, САВАС (адаптивное к контексту двоичное арифметическое кодирование) и т.п.
В буфере 107 накопления временно сохраняют кодированные данные, переданные из модуля 106 кодирования без потерь. Буфер 107 накопления выводит сохраненные кодированные данные за пределы устройства 100 кодирования изображения в заданные моменты времени. А именно, буфер 107 накопления также представляет собой модуль передачи, который передает кодированные данные.
Кроме того, коэффициент преобразования, квантованный в модуле 105 квантования, также подают в модуль 108 обратного квантования. Модуль 108 обратного квантования выполняет обратное квантование для квантованного коэффициента преобразования в способе, соответствующем квантованию модуля 105 квантования. Модуль 108 обратного квантования подает полученный коэффициент преобразования в модуль 109 обратного ортогонального преобразования.
Модуль 109 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента преобразования, переданного из модуля 108 обратного квантования в способе, соответствующем обработке ортогонального преобразования модуля 104 ортогонального преобразования. Выход после обратного ортогонального преобразования (восстановленная информация разности) поступает в арифметический модуль 110.
Арифметический модуль 110 добавляет прогнозируемое изображение, переданное из модуля 113 прогнозирования внутри кадра или модуля 114 прогнозирования между кадрами через модуль 115 выбора прогнозируемого изображения в восстановленную информацию разности, которая представляет собой результат обратного ортогонального преобразования, переданную из модуля 109 обратного ортогонального преобразования, для получения локально восстановленного изображения (ниже называется реконструированным изображением). Реконструированное изображение подают в фильтр 111 контура или в модуль 113 прогнозирования внутри кадра.
Фильтр 111 контура, соответственно, выполняет обработку фильтрации, включающую в себя фильтр удаления блочности, адаптивный фильтр контура и т.п. для реконструированного изображения, переданного из арифметического модуля 110. Например, фильтр 111 контура удаляет искажение блочности для реконструированного изображения путем выполнения обработки фильтрации удаления блочности для реконструированного изображения. Кроме того, например, фильтр 111 контура улучшает качество изображения, выполняя обработку фильтрации контура для результата обработки фильтрации удаления блочности (реконструированное изображение, из которого удалены искажения блоков), используя фильтр Винера.
Кроме того, фильтр 111 контура может дополнительно выполнять любую другую произвольную обработку фильтрации для реконструированного изображения. Кроме того, в случае необходимости, фильтр 111 контура может предоставлять информацию, такую как коэффициент фильтра, которая используется для обработки фильтрации, в модуль 106 кодирования без потерь, таким образом, чтобы информация могла быть кодирована.
Фильтр 111 контура подает результат обработки фильтрации (ниже называется декодируемым изображением) в запоминающее устройство 112 кадра.
Запоминающее устройство 112 кадра сохраняет передаваемое декодируемое изображение, и в заданный момент времени, запоминающее устройство кадра подает сохраненное декодируемое изображение, как опорное изображение, в модуль 114 прогнозирования между кадрами.
Модуль 113 прогнозирования внутри кадра выполняет прогнозирование внутри кадра (прогнозирование в пределах экрана), состоящее в генерировании прогнозируемого изображения, используя значения пикселя при обработке целевого изображения, которое представляет собой реконструированное изображение, передаваемое, как опорное изображение, из арифметического модуля 110. Модуль 113 прогнозирования внутри кадра выполняет прогнозирование внутри кадра во множестве заданных режимов прогнозирования внутри кадра.
Модуль 113 прогнозирования внутри кадра генерирует прогнозируемые изображения во всех режимах прогнозирования внутри кадра, которые представляют собой кандидатов, и выполняет оценку значений функции стоимости для соответствующих прогнозируемых изображений, используя входное изображение, подаваемое из буфера 102 изменения компоновки экрана, для выбора оптимального режима. Как только модуль 113 прогнозирования внутри кадра выберет оптимальный режим прогнозирования внутри кадра, модуль прогнозирования внутри кадра подает прогнозируемое изображение, генерируемое в оптимальном режиме, в модуль 115 выбора прогнозируемого изображения.
Кроме того, как описано выше, модуль 113 прогнозирования внутри кадра соответствующим образом передает информацию режима прогнозирования внутри кадра, представляющую выбранный режим прогнозирования внутри кадра и т.п., в модуль 106 кодирования без потерь, таким образом, что выполняют кодирование.
Модуль 114 прогнозирования между кадрами выполняет обработку прогнозирования между кадрами (обработку прогнозирования движения и обработку компенсации движения), используя входное изображение, подаваемое из буфера 102 изменения компоновки экрана, и опорное изображение, подаваемое из запоминающего устройства 112 кадра. Более конкретно, модуль 114 прогнозирования между кадрами выполняет обработку компенсации движения в соответствии с вектором движения, детектируемым в результате выполнения прогнозирования движения, как обработку прогнозирования между кадрами, для генерирования прогнозируемого изображения (информацию изображения, прогнозируемого между кадрами). Модуль 114 прогнозирования между кадрами выполняет прогнозирование между кадрами во множестве заданных режимов прогнозирования между кадрами.
Модуль 114 прогнозирования между кадрами генерирует прогнозируемые изображения во всех режимах прогнозирования между кадрами, которые представляют собой кандидатов. Модуль 114 прогнозирования между кадрами выполняет оценку значения функции стоимости каждого прогнозируемого изображения, используя входное изображение, подаваемое из буфера 102 изменения компоновки экрана, информацию о генерируемом разностном векторе движения и т.п., для выбора оптимального режима. Как только модуль 114 прогнозирования между кадрами выберет оптимальный режим прогнозирования между кадрами, модуль прогнозирования между кадрами подает прогнозируемое изображение, генерируемое в оптимальном режиме в модуль 115 выбора прогнозируемого изображения.
Модуль 114 прогнозирования между кадрами подает информацию, представляющую выбранный режим прогнозирования между кадрами, или информацию, необходимую для выполнения обработки в режиме прогнозирования между кадрами, во время декодирования кодированных данных, в модуль 106 кодирования без потерь, таким образом, что выполняется кодирование. Необходимая информация включает в себя, например, информацию о сгенерированном разностном векторе движения, флаг, представляющий индекс, как вектор прогнозирования движения, в качестве информации вектора прогнозирования движения, и т.п.
Модуль 115 выбора прогнозируемого изображения выбирает источник подачи прогнозируемого изображения, которое должно быть подано в арифметический модуль 103 или арифметический модуль 110. Например, в случае кодирования внутри кадра, модуль 115 выбора прогнозируемого изображения выбирает модуль 113 прогнозирования внутри кадра, как источник подачи прогнозируемого изображения, и подает прогнозируемое изображение, переданное из модуля 113 прогнозирования внутри кадра, в арифметический модуль 103 или арифметический модуль 110. Кроме того, например, в случае кодирования между кадрами, модуль 115 выбора прогнозируемого изображения выбирает модуль 114 прогнозирования между кадрами в качестве источника подачи прогнозируемого изображения, и подает прогнозируемое изображение, переданное из модуля 114 прогнозирования между кадрами, в арифметический модуль 103 или арифметический модуль 110.
Модуль 116 управления скоростью управляет скоростью операции квантования для модуля 105 квантования на основе количества кода кодированных данных, накопленных в буфере 107 накопления таким образом, что не происходит переполнение или потеря значимости.
Устройство 100 кодирования изображения выполнено так, что оно дополнительно включает в себя модуль 121 установки порогового значения и модуль 122 обработки фильтрации.
Модуль 121 установки порогового значения устанавливает пороговое значение, которое используется для обработки фильтрации, для соседних пикселей текущего блока для прогнозирования внутри кадра, выполняемого в модуле 122 обработки фильтрации, и подает информацию порогового значения, представляющую установленное пороговое значение (после обновления порогового значения), в модуль 122 обработки фильтрации.
Например, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения, которые представляют собой цель кодирования.
В этом случае, например, модуль 121 установки порогового значения может получать информацию о битовой глубине данных изображения, которые представляют собой параметры, переданные, как набор параметров последовательности (SPS) и т.п. из модуля 106 кодирования без потерь на сторону декодирования, определять битовую глубину данных изображения на основе информации о битовой глубине, и устанавливать пороговое значение в соответствии с битовой глубиной. Кроме того, например, модуль 121 установки порогового значения может получать информацию изображения (данные изображения или информацию о данных изображения) из буфера 102 изменения компоновки экрана и определять битовую глубину данных изображения на основе информации изображения (путем анализа информации изображения), и устанавливать пороговое значение, в соответствии с битовой глубиной.
Кроме того, в этом случае, например, модуль 121 установки порогового значения может обновлять пороговое значение путем сдвига битов исходного значения (например, 8) заданного порогового значения, в соответствии с определенной битовой глубиной. В это время, например, значение, соответствующее случаю, когда битовая глубина составляет 8 битов, может быть заранее определено, как исходное значение, и модуль 121 установки порогового значения может выполнять битовый сдвиг исходного значения в соответствии с разностью числа битов между фактической битовой глубиной данных изображения и 8 битами.
Кроме того, в этом случае, например, модуль 121 установки порогового значения может подавать информацию порогового значения, представляющую пороговое значение после обновления, в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования. В это время, например, модуль 121 установки порогового значения может кодировать (например, выполнять кодирование Голомба), информацию порогового значения, и подавать, как информацию кодирования порогового значения. Кроме того, например, в случае, когда модуль 121 установки порогового значения определяет битовую глубину данных изображения на основе информации изображения, и модуль установки порогового значения передает информацию о битовой глубине в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования. В это время, например, модуль 121 установки порогового значения может кодировать (например, выполнять кодирование Голомба) информацию о битовой глубине и подавать в качестве информации кодирования битовой глубины.
Кроме того, в этом случае, например, модуль 121 установки порогового значения может генерировать информацию флага (флаг изменения порогового значения), представляющую, произошло или нет обновление (изменение) порогового значения, и подавать флаг изменения порогового значения в модуль 106 кодирования без потерь, для передачи флага изменения порогового значения на сторону декодирования. В результате, на стороне декодирования (например, в устройстве декодирования изображения) становится возможным легко идентифицировать на основе значения флага изменения порогового значения, произошло ли обновление (изменение) порогового значения. А именно, на стороне декодирования (например, в устройстве декодирования изображения), становится возможным легко управлять, следует или нет выполнить обработку по обновлению (изменению) порогового значения аналогично стороне кодирования (например, устройство 100 кодирования изображения).
Кроме того, например, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с внешним назначением, таким как назначение пользователя. В этом случае, значение, обозначенное пользователем и т.п., соответствует описанному выше значению после обновления. А именно, пороговое значение, соответствующее значению, подают в модуль 122 обработки фильтрации.
В этом случае, например, модуль 121 установки порогового значения может подавать информацию порогового значения, представляющую установленное пороговое значение, в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования. В это время, например, модуль 121 установки порогового значения может кодировать (например, выполнять кодирование Голомба) информацию порогового значения, и подавать, в качестве информации кодирования порогового значения.
Кроме того, в этом случае, например, модуль 121 установки порогового значения может генерировать флаг изменения порогового значения, и подавать этот флаг изменения порогового значения в модуль 106 кодирования без потерь, для передачи флага изменения порогового значения на сторону декодирования.
Кроме того, например, модуль 121 установки порогового значения может обновлять (изменять) пороговое значение, обозначенное извне пользователем и т.п., в соответствии с битовой глубиной данных изображения, которое представляет собой цель кодирования.
В этом случае, например, модуль 121 установки порогового значения может получать информацию о битовой глубине данных изображения из модуля 106 кодирования без потерь и определять битовую глубину данных изображения на основе информации о битовой глубине. Кроме того, например, модуль 121 установки порогового значения может получать информацию изображения из буфера 102 изменения компоновки экрана и определять битовую глубину данных изображения на основе информации изображения.
Кроме того, в этом случае, например, модуль 121 установки порогового значения может обновлять пороговое значение путем битового сдвига порогового значения, обозначенного извне пользователем и т.п., в соответствии с определенной битовой глубиной. В это время, например, может быть обозначено пороговое значение, соответствующее случаю, когда битовая глубина составляет 8 битов, и модуль 121 установки порогового значения может выполнять битовый сдвиг обозначенного порогового значения в соответствии с разностью количества битов между фактической битовой глубиной данных изображения и 8 битами.
Например, пороговое значение, обозначенное извне пользователем и т.п., определено, как contouring_artefact_threshold.contouring_artefact_threshold обозначено как значение, соответствующее случаю, когда битовая глубина данных изображения, которые представляют собой цель кодирования, составляет 8 битов. В случае, когда фактическая битовая глубина данных изображения составляет n битов (n≥8), модуль 121 установки порогового значения выполняет битовый сдвиг для contouring_artefact_threshold, используя следующую формулу (10).
Математическая формула 5
Кроме того, в этом случае, например, модуль 121 установки порогового значения может подавать информацию порогового значения, представляющую пороговое значение после обновления, в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования. В это время, например, модуль 121 установки порогового значения может кодировать (например, выполнять кодирование Голомба) информацию порогового значения, и подавать, как информацию кодирования порогового значения.
Кроме того, в этом случае, например, модуль 121 установки порогового значения может подавать информацию порогового значения, представляющую пороговое значение перед обновлением (пороговое значение, обозначенное внешней стороной, такой как пользователь) в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования. В это время, например, модуль 121 установки порогового значения может кодировать (например, выполнять кодирование Голомба) информацию порогового значения, и подавать, в качестве информации кодирования порогового значения.
В это время, кроме того, модуль 121 установки порогового значения может подавать информацию о битовой глубине в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования. В это время, например, модуль 121 установки порогового значения может кодировать (например, выполнять кодирование Голомба) информацию о битовой глубине, и подавать, как информацию кодирования битовой глубины.
Кроме того, в этом случае, например, модуль 121 установки порогового значения генерирует флаг изменения порогового значения и подает флаг изменения порогового значения в модуль 106 кодирования без потерь, таким образом, что набор параметров последовательности (SPS), набор параметров изображения (PPS) и т.п. могут быть переданы на сторону декодирования.
Кроме того, модуль 121 установки порогового значения может выполнять установку (обновление) порогового значения на основе других произвольных параметров, кроме битовой глубины. Кроме того, хотя в соответствии с тем, что исходное значение порогового значения является произвольным, исходное значение может составлять, например, "8". Кроме того, путем установки "0", в качестве порогового значения, модуль 121 установки порогового значения запрещает применение обработки билинейной интерполяции, таким образом, что может применяться обработка фильтрации, описанная со ссылкой на фиг. 5. А именно, в случае, когда пороговое значение равно "0", способ, раскрытый в Непатентном документе 2, отменяется.
Модуль 122 обработки фильтрации получает информацию порогового значения из модуля 121 установки порогового значения и выполняет обработку фильтрации для соседних пикселей текущего блока, которые представляют собой цель обработки прогнозирования внутри кадра, используя пороговое значение. Например, модуль 122 обработки фильтрации может выполнять обработку определения порогового значения, выраженную формулами (3) и (4), используя пороговое значение, полученное из модуля 121 установки порогового значения, для идентификации свойств соседних пикселей текущего блока.
Кроме того, например, в случае, когда результат определения равен false, то есть, в случае, когда определяют, что кромка текущего блока не является частью, когда изменение яркости, цвета, плотности и т.п. является плоским, модуль 122 обработки фильтрации может выполнять обработку фильтрации (иногда называется обработкой низкочастотной фильтрации), описанную со ссылкой на фиг. 5 для соседних пикселей.
Кроме того, например, в случае, когда результат определения равен true, то есть, в случае, когда определяют, что кромка текущего блока представляет собой часть, где яркость, цвет, плотность и т.п. являются плоскими, модуль 122 обработки фильтрации может выполнять обработку билинейной интерполяции (иногда называется обработкой билинейной фильтрации), как выражено в формулах (5)-(9), вместо обработки низкочастотной фильтрации.
Как только модуль 122 обработки фильтрации получит соседние пиксели текущего блока, которые представляют собой цель обработки, из модуля 113 прогнозирования внутри кадра, модуль обработки фильтрации выполняет описанную выше обработку фильтрации для соседних пикселей. Затем модуль 122 обработки фильтрации подает соседние пиксели "после обработки фильтрации" в модуль 113 прогнозирования внутри кадра. Модуль 113 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, используя соседние пиксели "после обработки фильтрации". В результате, модуль 113 прогнозирования внутри кадра может генерировать результат отражения прогнозируемого изображения обработки фильтрации.
А именно, как описано выше, поскольку модуль 121 установки порогового значения может устанавливать пороговое значение, для идентификации свойства соседних пикселей текущего блока при обработке прогнозирования внутри кадра во время кодирования данных изображения, в соответствии с битовой глубиной данных изображения и т.п., модуль 113 прогнозирования внутри кадра может генерировать прогнозируемое изображение, отражающее результат обработки фильтрации, соответствующей для данных изображения. А именно, устройство 100 кодирования изображения может предотвращать возникновение шумов, таких как изгиб, в декодируемом изображении, и может предотвращать ухудшение качества изображения декодируемого изображения.
Кроме того, как описано выше, поскольку модуль 121 установки порогового значения может устанавливать пороговое значение, в соответствии с внешним назначением, таким как место назначения пользователя, модуль 113 прогнозирования внутри кадра может отражать внешнее обозначение, такое как обозначение пользователем, качества изображения прогнозируемого изображения. А именно, устройство 100 кодирования изображения может управлять качеством изображения для декодируемого изображения.
Кроме того, как описано со ссылкой на фиг. 5, формулы (5)-(9) и т.п., способом, где модуль 322 обработки фильтрации применяет обработку фильтрации для соседних пикселей текущего блока, можно управлять в соответствии с режимом прогнозирования внутри кадра (а именно, размером блока для текущего блока).
Кроме того, в случае, когда битовая глубина данных изображения является настолько малой, как, например, 8 битов, в частности, наблюдается изгиб (искажение контура), представленный на фиг. 7. Однако, в случае, когда битовая глубина настолько велика как, например, 10 битов, изгиб предотвращается (становится незаметным визуально). Поэтому может быть предусмотрен верхний предел битовой глубины, при которой применяется обработка билинейной фильтрации, раскрытая в Непатентном документе 2. Например, обработка билинейной фильтрации, раскрытая в Непатентном документе 2, может применяться только в случае, когда битовая глубина составляет 8 битов, и обработка билинейной фильтрации может не применяться в других случаях.
Кроме того, обработка билинейной фильтрации, раскрытая в Непатентном документе 2, может применяться только для обработки сигналов яркости. Однако, обработка билинейной фильтрации может применяться для обработки сигналов цветовой разности. А именно, настоящая технология может применяться для сигналов цветовой разности, а также для сигналов яркости.
Кроме того, в случае, когда входной сигнал представляет собой 4:4:4 или RGB, и каждый канал компонента цвета обрабатывается независимо, настоящая технология может независимо применяться для каждого канала.
Кроме того, в случае выполнения иерархического кодирования изображения (масштабируемое кодирование)/иерархического декодирования изображения (масштабируемое декодирование), например, параметры порогового значения, такие как битовая глубина, флаг и т.п., может быть разрешено передавать только для основного уровня и неосновного уровня (уровня расширения), при этом может быть разрешена ссылка на параметры, флаг и т.п., передаваемые в основной уровень.
Модуль установки порогового значения/модуль обработки фильтрации
На фиг. 11 показана блок-схема, иллюстрирующая пример основной конфигурации модуля 121 установки порогового значения и модуля 122 обработки фильтрации, в случае, когда модуль 121 установки порогового значения по фиг. 10 устанавливает пороговое значение в соответствии с битовой глубиной данных изображения, которые представляют собой цель кодирования.
В примере на фиг. 11 модуль 121 установки порогового значения выполнен так, что он включает в себя модуль 131 определения битовой глубины, модуль 132 сдвига порогового значения и модуль 133 кодирования.
Модуль 131 определения битовой глубины определяет битовую глубину данных изображения в качестве цели кодирования и подает информацию, представляющую битовую глубину, в модуль 132 битового сдвига порогового значения.
Например, модуль 131 определения битовой глубины получает информацию о битовой глубине данных изображения из модуля 106 кодирования без потерь и определяет битовую глубину данных изображения на основе информации о битовой глубине. Кроме того, например, модуль 131 определения битовой глубины получает информацию изображения из буфера 102 изменения компоновки экрана и определяет битовую глубину данных изображения на основе информации изображения.
Кроме того, в случае передачи информации, представляющей определенную битовую глубину на сторону декодирования, модуль 131 определения битовой глубины также подает информацию, представляющую битовую глубину, в модуль 133 кодирования.
Модуль 132 битового сдвига порогового значения обновляет (изменяет) пороговое значение, используя битовый сдвиг заданного порогового значения (исходного значения), которое определено заранее в соответствии с информацией, представляющей битовую глубину, подаваемую из модуля 131 определения битовой глубины.
Например, в модуле 132 битового сдвига порогового значения значение, соответствующее случаю, когда битовая глубина составляет 8 битов, заранее установлено, как исходное значение для порогового значения. Как только модуль 132 битового сдвига порогового значения получит информацию, представляющую битовую глубину, из модуля 131 определения битовой глубины, модуль битового сдвига порогового значения выполняет битовый сдвиг исходного значения на разность количества битов между битовой глубиной данных изображения, представленных информацией, и 8 битами.
Модуль 132 битового сдвига порогового значения подает информацию (информацию порогового значения), представляющую пороговое значение после обновления, как (изменение), в модуль 142 определения соседнего пикселя модуля 122 обработки фильтрации.
Кроме того, в случае передачи информации порогового значения, представляющей пороговое значение после обновления, как (изменение) на сторону декодирования, модуль 132 битового сдвига порогового значения также подает информацию порогового значения в модуль 133 кодирования.
Модуль 133 кодирования выполняет кодирование Голомба для переданной информации и подает полученный код Голомба в модуль 106 кодирования без потерь, для передачи кода Голомба на сторону декодирования. Например, в случае передачи информации, представляющей битовую глубину, на сторону декодирования, модуль 133 кодирования получает информацию, представляющую битовую глубину, из модуля 131 определения битовой глубины, и выполняет кодирование Голомба для информации, представляющей битовую глубину. Модуль 133 кодирования подает полученный код Голомба для информации, представляющей битовую глубину (иногда называется информацией кодирования битовой глубины), в модуль 106 кодирования без потерь, для передачи кода Голомба на сторону декодирования.
Кроме того, например, в случае передачи информации порогового значения, представляющей пороговое значение после обновления (изменение) на сторону декодирования, модуль 133 кодирования получает информацию порогового значения, представляющую пороговое значение после обновления, как (изменение) из модуля 132 битового сдвига порогового значения, и выполняет кодирование Голомба для информации порогового значения. Модуль 133 кодирования подает полученный код Голомба информации порогового значения (иногда называется информацией кодирования порогового значения) в модуль 106 кодирования без потерь, для передачи кода Голомба на сторону декодирования.
Кроме того, модуль 133 кодирования может генерировать флаг изменения порогового значения, представляющий, было ли обновлено (изменено) пороговое значение, и подает флаг изменения порогового значения в модуль 106 кодирования без потерь для передачи флага изменения порогового значения на сторону декодирования.
Кроме того, как представлено на фиг. 11, модуль 122 обработки фильтрации выполнен так, что он включает в себя буфер 141 режима/размера блока, модуль 142 определения соседнего пикселя, модуль 143 определения фильтра, модуль 144 фильтра низкой частоты и модуль 145 билинейного фильтра.
Буфер 141 режима/размера блока получает информацию (режима/размера блока) о размере блока и режиме текущего блока в отношении режимов прогнозирования, которые представляют собой кандидатов, из модуля 113 прогнозирования внутри кадра, и сохраняет эту информацию.
В заданный момент времени или на основе внешнего запроса, буфер 141 режима/размера блока подает сохраненную информацию (размер блока) о размере блока в модуль 142 определения соседнего пикселя. Кроме того, в заданный момент времени или на основе внешнего запроса, буфер 141 режима/размера блока подает сохраненную информацию (режим) о режиме и сохраненную информацию (размер блока) о размере блока в модуль 143 определения фильтра.
Модуль 142 определения соседнего пикселя получает соседние пиксели, расположенные рядом с верхней стороной и левой стороной от текущего блока в отношении режимов прогнозирования, которые представляют собой кандидатов, из модуля 113 прогнозирования внутри кадра. Кроме того, модуль 142 определения соседнего пикселя получает информацию порогового значения из модуля 132 битового сдвига порогового значения. Кроме того, модуль 142 определения соседнего пикселя получает информацию (размер блока) о размере блока из буфера 141 режима/размера блока.
В случае режима, когда текущий блок имеет заданный размер (например, 32×32) (или размер в заданном диапазоне), модуль 142 определения соседнего пикселя выполняет обработку определения порогового значения для выбора фильтра, который требуется использовать для обработки фильтрации соседних пикселей, полученных из модуля 113 прогнозирования внутри кадра, на основе информации о размере блока, полученной из буфера 141 режима/размера блока, используя информацию порогового значения, полученную из модуля 132 битового сдвига порогового значения. А именно, модуль 142 определения соседнего пикселя определяет свойства соседних пикселей (например, определяет, являются или нет эти пиксели частью, где изменение яркости, цвета, плотности и т.п. является плоским).
Модуль 142 определения соседних пикселей подает результат определения в модуль 143 определения фильтра. Кроме того, модуль 142 определения соседнего пикселя подает соседние пиксели текущего блока, полученные из модуля 113 прогнозирования внутри кадра, в модуль 144 фильтра низкой частоты и в модуль 145 билинейного фильтра.
Модуль 143 определения фильтра получает информацию (режим) в отношении режима, и информацию (размера блока) для размера блока из буфера 141 режима/размера блока. Кроме того, модуль 143 определения фильтра получает результат определения обработки определения порогового значения из модуля 142 определения соседнего пикселя. Модуль 143 определения фильтра определяет тип предназначенной для выполнения обработки фильтрации и способ ее применения, используя полученную информацию и результат. Например, модуль 143 определения фильтра определяет, следует или нет применять любую одну из обработки фильтра низкой частоты и обработки билинейной фильтрации к соседним пикселям текущего блока, как выполнить обработку фильтрации и т.п.
Модуль 143 определения фильтра подает информацию управления, которая управляет исполнением обработки фильтрации, в модуль 144 фильтра низкой частоты и в модуль 145 билинейного фильтра, в соответствии с решением. А именно, модуль 143 определения фильтра передает информацию управления, обозначающую, как выполнить обработку фильтрации, в модуль обработки, выбранный между модулем 144 фильтра низкой частоты и модулем 145 билинейного фильтра, и подает информацию управления, обозначающую, что требуется остановить обработку фильтрации (то есть, информацию управления, обозначающую, что не требуется выполнять обработку фильтрации) в невыбранный модуль обработки.
Модуль 144 фильтра низкой частоты выполняет обработку фильтрации низкой частоты, описанную со ссылкой на фиг. 5 для соседних пикселях текущего блока, передаваемого из модуля 142 определения соседнего пикселя, в соответствии с информацией управления, передаваемой из модуля 143 определения фильтра. Модуль 144 фильтра низкой частоты подает соседние пиксели (соседние пиксели "после обработки фильтрации"), к которым применили обработку фильтрации низкой частоты, в модуль 113 прогнозирования внутри кадра.
Модуль 145 билинейного фильтра выполняет обработку билинейной фильтрации, описанную со ссылкой на формулы (5)-(9) для соседних пикселей текущего блока, подаваемых из модуля 142 определения соседнего пикселя в соответствии с информацией управления, передаваемой из модуля 143 определения фильтра. Модуль 145 билинейного фильтра подает соседние пиксели (соседние пиксели "после обработки фильтрации"), к которым применили обработку билинейной фильтрации, в модуль 113 прогнозирования внутри кадра.
В результате, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной), модуль 122 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя фильтр, и модуль 113 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, к которым применяли обработку фильтрации, соответствующую битовой глубине данных изображения. А именно, в результате, устройство 100 кодирования изображения может предотвращать ухудшение качества изображения для декодируемого изображения.
Поток обработки кодирования
Далее, со ссылкой на блок-схему последовательности операций на фиг. 12, будет описан пример потока обработки кодирования, выполняемой устройством 100 кодирования изображения, представленным на фиг. 10.
На этапе S101, A/D преобразователь 101 выполняет A/D-преобразование входного изображения. На этапе S102, в буфере 102 изменения компоновки экрана сохраняется изображение после A/D-преобразования, и выполняется изменение компоновки с порядка отображения каждого изображения на порядок кодирования.
На этапе S103, модуль 121 установки порогового значения устанавливает пороговое значение для идентификации свойств соседних пикселей текущего блока при обработке прогнозирования внутри кадра во время кодирования данных изображения.
На этапе S104, модуль 113 прогнозирования внутри кадра выполняет обработку прогнозирования внутри кадра в режиме прогнозирования внутри кадра. Здесь, в некоторых случаях, модуль 122 обработки фильтрации выполняет обработку фильтрации для соседних пикселей текущего блока, используя пороговое значение, установленное на этапе S103. В случае, когда выполняют обработку фильтрации, модуль 113 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, используя соседние пиксели, к которым применили обработку фильтрации.
На этапе S105, модуль 114 прогнозирования между кадрами выполняет обработку прогнозирования между кадрами для выполнения прогнозирования движения или компенсации движения в режиме прогнозирования между кадрами.
На этапе S106, модуль 115 выбора прогнозируемого изображения определяет оптимальный режим на основе значения функции стоимости, выводимой из модуля 113 прогнозирования внутри кадра и модуля 114 прогнозирования между кадрами. А именно, модуль 115 выбора прогнозируемого изображения выбирает любое одно из прогнозируемых изображений, генерируемых модулем 113 прогнозирования внутри кадра, и прогнозируемого изображения, генерируемого модулем 114 прогнозирования между кадрами.
На этапе S107, арифметический модуль 103 вычисляет разность между изображением, компоновка которого была изменена в результате обработки на этапе S102, и прогнозируемым изображением, выбранным в результате обработки на этапе S106. Количество данных для разностных данных уменьшается по сравнению с количеством данных исходного изображения. Поэтому, при сравнении со случаем, когда изображение кодируют в состоянии, когда изображение не обрабатывают, количество данных может быть сжато.
На этапе S108, модуль 104 ортогонального преобразования выполняет ортогональное преобразование для информации разности, генерируемой при обработке на этапе S106. На этапе S109, модуль 105 квантования выполняет квантование для коэффициента ортогонального преобразования, полученного в результате обработки на этапе S108, используя параметр квантования, рассчитанный модулем 116 управления скоростью.
На этапе S110, модуль 108 обратного квантования выполняет обратное квантование для квантованного коэффициента (иногда называется коэффициентом квантования), генерируемого при обработке на этапе S109, используя характеристики, соответствующие характеристикам модуля 105 квантования. На этапе S111, модуль 109 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента ортогонального преобразования, полученного при обработке на этапе S110.
На этапе S112, арифметический модуль 110 добавляет прогнозируемое изображение к локально декодируемой разностной информации для генерирования локально декодируемого изображения (изображение, соответствующее вводу в арифметический модуль 103).
На этапе S113, фильтр 111 контура выполняет обработку фильтрации для изображения, генерируемого при обработке на этапе S112. В соответствии с этим, удаляется искажение блоков и т.п.
На этапе S114 в запоминающем устройстве 112 кадра сохраняют кодированное изображение, которое применяют при обработке фильтрации контура в ходе обработки на этапе S113.
На этапе S115, модуль 106 кодирования без потерь кодирует коэффициент, квантованный при обработке на этапе S109. А именно, выполняется кодирование без потерь, такое как кодирование переменной длины или арифметическое кодирование, для данных, соответствующих разностному изображению.
Кроме того, в это время, модуль 106 кодирования без потерь кодирует информацию о режиме прогнозирования для прогнозируемого изображения, выбранного при обработке на этапе S106, и добавляет эту информацию к кодированным данным, выводимым в результате кодирования разностного изображения. А именно, модуль 106 кодирования без потерь кодирует оптимальную информацию режима прогнозирования внутри кадра, переданную из модуля 113 прогнозирования внутри кадра, или кодирует информацию в соответствии с оптическим режимом прогнозирования между кадрами, передаваемую из модуля 114 прогнозирования между кадрами, для добавления информации к кодированным данным.
На этапе S116, буфер 107 накопления накапливает кодированные данные, полученные в результате обработки на этапе S115. Кодированные данные, накопленные в буфере 107 накопления, соответственно, считывают и передают через линию передачи или носитель записи на сторону декодирования.
На этапе S117, модуль 116 управления скоростью управляет скоростью операций квантования модуля 105 квантования на основе количества кода (возникающего количества кода) для кодированных данных, накопленных в буфере 107 накопления при обработке на этапе S116, таким образом, что не возникает переполнение или потеря значимости. Кроме того, модуль 116 управления скоростью подает информацию, представляющую параметр квантования, в модуль 105 квантования.
После окончания обработки на этапе S117 обработка кодирования заканчивается.
Поток обработки по установке порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 13, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S103 на фиг. 12 в примере, где модуль 121 установки порогового значения по примеру на фиг. 11 определяет битовую глубину данных изображения на основе информации о битовой глубине. Кроме того, со ссылкой на фиг. 13, будет описан случай, когда информацию кодирования порогового значения, представляющую пороговое значение после обновления, и флаг изменения порогового значения передают на сторону декодирования.
После начала обработки установки порогового значения, на этапе S131, модуль 132 битового сдвига порогового значения определяет, установлено или нет заданное исходное значение, как пороговое значение. В случае, когда определяют, что пороговое значение обновлено, обработка переходит на этап S132.
На этапе S132, модуль 131 определения битовой глубины получает информацию о битовой глубине из модуля 106 кодирования без потерь.
На этапе S133, модуль 131 определения битовой глубины определяет битовую глубину данных изображения, которые представляют собой цель кодирования, на основе информации о битовой глубине, полученной на этапе S132.
На этапе S134, модуль 132 битового сдвига порогового значения выполняет битовый сдвиг порогового значения (исходное значение) в соответствии с результатом определения (определенной битовой глубиной) на этапе S133. Модуль 132 битового сдвига порогового значения подает пороговое значение после обновления в модуль 142 определения соседнего пикселя модуля 122 обработки фильтрации.
На этапе S135, модуль 133 кодирования кодирует информацию о пороговом значении, представляющую пороговое значение "после битового сдвига" (после обновления), генерируемую на этапе S134.
На этапе S136, модуль 133 кодирования подает информацию кодирования порогового значения, представляющую пороговое значение после обновления, полученную в результате обработки на этапе S135, в модуль 106 кодирования без потерь, для передачи информации о кодировании порогового значения на сторону декодирования.
После окончания обработки на этапе S136, обработка переходит на этап S137. Кроме того, в случае, когда на этапе S131 определяют, что исходное значение установлено, как пороговое значение, обработка переходит на этап S137.
На этапе S137, модуль 133 кодирования устанавливает флаг изменения порогового значения, представляющий, произошло или нет обновление (изменение) порогового значения. А именно, например, в случае выполнения обработки на этапах S131-S136, модуль 133 кодирования устанавливает флаг изменения порогового значения в значение, представляющее, что пороговое значение было обновлено (изменено). Кроме того, например, в случае, когда на этапе S131 определяют, что исходное значение установлено, как пороговое значение, модуль 133 кодирования устанавливает флаг изменения порогового значения в значение, представляющее то, что пороговое значение не было обновлено (изменено).
На этапе S138, модуль 133 кодирования подает флаг изменения порогового значения, установленный на этапе S137, в модуль 106 кодирования без потерь, для передачи флага изменения порогового значения на сторону декодирования.
После окончания обработки на этапе S138, обработка установки порогового значения заканчивается, и обработка возвращается на фиг. 12.
В результате выполнения обработки установки порогового значения, как описано выше, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной).
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону декодирования (то есть, в случае, когда флаг изменения порогового значения не генерируют), описанная выше обработка на этапах S137 и S138 может быть исключена.
Кроме того, в случае, когда информацию кодирования порогового значения, представляющую пороговое значение после обновления, не передают на сторону декодирования (то есть, в случае, когда информацию кодирования порогового значения не генерируют), описанная выше обработка на этапах S135 и S136 может быть исключена.
Поток обработки прогнозирования внутри кадра
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 14, будет описан пример потока обработки прогнозирования внутри кадра, выполняемой на этапе S104 на фиг. 12.
После начала обработки прогнозирования внутри кадра, на этапе S151, модуль 142 определения соседнего пикселя определяет свойства соседних пикселей для текущего блока, полученные из модуля 113 прогнозирования внутри кадра (например, свойства, относящиеся к тому, является или нет кромка текущего блока участком, где яркость, цвет, плотность и т.п. являются плоскими), на основе размера блока буфера 141 режима/размера блока, и информации порогового значения, полученной из модуля 132 битового сдвига порогового значения.
На этапе S152 модуль 143 определения фильтра определяет фильтр, который требуется использовать для соседних пикселей текущего блока на основе режима и размера блока, полученных из буфера 141 режима/размера блока и результата определения на этапе S151.
На этапе S153, модуль фильтра, выбранный среди модуля 144 фильтра низкой частоты и модуля 145 билинейного фильтра, используя обработку на этапе S152, выполняет обработку фильтрации для соседних пикселей текущего блока. Например, в случае, когда фильтр низкой частоты выбирают на этапе S152, на этапе S153 модуль 144 фильтра низкой частоты выполняет обработку фильтра низкой частоты для соседних пикселей в способе, определенном модулем 143 определения фильтра. Кроме того, например, в случае, когда билинейный фильтр выбирают на этапе S152, на этапе S153, модуль 145 билинейного фильтра выполняет обработку билинейной фильтрации для соседних пикселей в способе, определенном модулем 143 определения фильтра.
Кроме того, обработка фильтрации может быть исключена в некоторых режимах.
На этапе S154 модуль 113 прогнозирования внутри кадра выполняет прогнозирование внутри кадра в режимах с использованием соседних пикселей, для которых применяли обработку фильтрации на этапе S153 (в случае, когда обработка фильтрации была пропущена, для соседних пикселей, для которых не применяли обработку фильтрации).
На этапе S155 модуль 113 прогнозирования внутри кадра вычисляет значения функции стоимости в отношении результатов прогнозирования внутри кадра для режимов, выполняемых на этапе S154.
На этапе S156, модуль 113 прогнозирования внутри кадра определяет оптимальный режим прогнозирования внутри кадра на основе значения функции стоимости режимов, вычисленных на этапе S155.
На этапе S157 модуль 113 прогнозирования внутри кадра генерирует прогнозируемое изображение в оптимальном режиме прогнозирования внутри кадра, определенном на этапе S156.
После окончания обработки на этапе S157, обработка прогнозирования внутри кадра заканчивается, и обработка возвращается на фиг. 12.
В результате выполнения описанной выше обработки прогнозирования внутри кадра, модуль 122 обработки фильтрации может выбрать фильтр, соответствующий битовой глубине данных изображения, и выполняет обработку фильтрации для соседних пикселей, используя этот фильтр, и модуль 113 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, в которых применяется обработка фильтрации, соответствующая битовой глубине данных изображения.
А именно, в результате выполнения описанной выше обработки, устройство 100 кодирования изображения может предотвращать ухудшение качества изображения для декодируемого изображения.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 15, будет описан пример потока обработки для установки порогового значения, выполняемой на этапе S103 по фиг. 12, в примере, где модуль 121 установки порогового значения по примеру на фиг. 11 определяет битовую глубину данных изображения на основе информации изображения. Кроме того, со ссылкой на фиг. 15, будет описан случай, в котором информацию кодирования порогового значения, представляющую пороговое значение после обновления, и флаг изменения порогового значения передают на сторону декодирования.
В случае примера на фиг. 15 обработка на этапах S171, S174-S178 выполняется аналогично обработке на этапах S131, S134-S138 в примере на фиг. 13.
В случае, когда на этапе S171 на фиг. 15 определяют, что пороговое значение было обновлено, обработка переходит на этап S172.
На этапе S172 модуль 131 определения битовой глубины получает информацию изображения из буфера 102 изменения компоновки экрана.
На этапе S173, модуль 131 определения битовой глубины определяет битовую глубину данных изображения, которые представляют собой цель кодирования, на основе информации изображения, полученной на этапе S172. После того, как обработка на этапе S173 закончится, обработка переходит на этап S174.
После окончания обработки на этапе S178, обработка установки порогового значения заканчивается, и обработка возвращается на фиг. 12.
В результате этого, модуль 121 установки порогового значения также может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствует битовой глубине). Поэтому, в этом случае, устройство 100 кодирования изображения также может предотвращать ухудшение качества изображения декодируемого изображения.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону декодирования (а именно, флаг изменения порогового значения не генерируют), обработка на этапах S177 и S178 может быть исключена.
Кроме того, в случае, когда информацию кодирования порогового значения, представляющую пороговое значение после обновления, не передают на сторону декодирования (а именно, информацию о кодировании порогового значения не генерируют), обработка на этапах S175 и S176 может быть пропущена.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 16, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S103 на фиг. 12, в примере, где модуль 121 установки порогового значения в примере фиг. 11 определяет битовую глубину данных изображения на основе информации изображения и передает определенную битовую глубину на сторону декодирования. Кроме того, со ссылкой на фиг. 16, будет описан случай, где флаг изменения порогового значения также передают на сторону декодирования.
В случае примера на фиг. 16, обработку на этапах S191-S194, S197 и S198 выполняют аналогично обработке на этапах S171-S174, S177 и S178 в примере на фиг. 15.
После окончания обработки на этапе S194, на фиг. 16, обработка переходит на этап S195.
На этапе S195, модуль 133 кодирования кодирует информацию, представляющую битовую глубину, определенную на этапе S193.
На этапе S196, модуль 133 кодирования подает информацию кодирования битовой глубины, полученную при обработке на этапе S195, в модуль 106 кодирования без потерь, для передачи информации о кодировании битовой глубины на сторону декодирования.
После окончания обработки на этапе S196, обработка переходит на этап S197.
В результате, модуль 121 установки порогового значения также может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной). Поэтому, в этом случае, устройство 100 кодирования изображения также предотвращает ухудшение качества изображения для декодируемого изображения.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону декодирования (а именно, флаг изменения порогового значения не генерируют), обработка на этапах S197 и S198 может быть исключена.
Кроме того, в случае, когда информацию кодирования битовой глубины не передают на сторону декодирования (а именно, информацию кодировании битовой глубины не генерируют), обработка на этапах S195 и S196 может быть исключена.
Модуль установки порогового значения/модуль обработки фильтрации
На фиг. 17 показана блок-схема, иллюстрирующая основной пример конфигурации модуля 121 установки порогового значения и модуля 122 обработки фильтрации в случае, когда модуль 121 установки порогового значения на фиг. 10 устанавливает пороговое значение в соответствии с внешним обозначением, таким как обозначение пользователя.
В примере на фиг. 17 модуль 121 установки порогового значения выполнен таким образом, что он включает в себя модуль 151 установки порогового значения и модуль 133 кодирования.
Модуль 151 установки порогового значения принимает внешнее обозначение порогового значения, например, обозначение пользователя, и устанавливает пороговое значение в соответствии с обозначением. Модуль 151 установки порогового значения передает информацию (информацию порогового значения), представляющую установленное пороговое значение, в модуль 142 определения соседнего пикселя модуля 122 обработки фильтрации.
Кроме того, в случае передачи информации порогового значения на сторону декодирования, модуль 132 битового сдвига порогового значения также подает информацию порогового значения в модуль 133 кодирования.
Аналогично случаю на фиг. 11, модуль 133 кодирования выполняет кодирование Голомба в отношении переданной информации и подает полученный код Голомба в модуль 106 кодирования без потерь для передачи кода Голомба на сторону декодирования. Например, в случае передачи информации о пороговом значении, представляющей установленное пороговое значение, на сторону декодирования, модуль 133 кодирования получает информацию переданного порогового значения из модуля 151 установки порогового значения и выполняет кодирование Голомба для информации порогового значения. Модуль 133 кодирования подает полученную информацию кодирования порогового значения в модуль 106 кодирования без потерь для передачи информации порогового значения на сторону декодирования.
Кроме того, аналогично случаю на фиг. 11, модуль 133 кодирования может генерировать флаг изменения порогового значения, представляющий произошло ли обновление (изменение) порогового значения, и может подавать флаг изменения порогового значения в модуль 106 кодирования без потерь для передачи флага изменения порогового значения на сторону декодирования.
Кроме того, модуль 122 обработки фильтрации имеет такую же конфигурацию, как и в случае на фиг. 11, и выполняет ту же обработку, как и в случае на фиг. 11.
Таким образом, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующих битовой глубине), модуль 122 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя фильтр, и модуль 113 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, которые применяют при обработке фильтрации, соответствующей битовой глубине данных изображения. А именно, в результате, устройство 100 кодирования изображения может предотвращать ухудшение качества изображения для декодируемого изображения.
Кроме того, в случае примера на фиг. 17, поскольку модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с внешним обозначением, таким как обозначение пользователя, модуль 113 прогнозирования внутри кадра может отражать внешнее обозначение, такое как обозначение пользователем качества изображения для прогнозируемого изображения. А именно, устройство 100 кодирования изображения может управлять качеством изображения для декодируемого изображения.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 18, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S103 на фиг. 12, в модуле 121 установки порогового значения по примеру, показанному на фиг. 17. Кроме того, со ссылкой на фиг. 18, будет описан случай, в котором информацию кодирования порогового значения, представляющую установленное пороговое значение и флаг изменения порогового значения, передают на сторону декодирования.
В случае примера на фиг. 18, обработку на этапах S211, S216 и S217 выполняют аналогично обработке на этапах S131, S137 и S138 примера на фиг. 13.
В случае, когда определяют на этапе S211 по фиг. 18, что пороговое значение обновлено, обработка переходит на этап S212.
На этапе S212, модуль 151 установки порогового значения принимает внешнее обозначение для значения, например, обозначение пользователя и т.п.
На этапе S213, модуль 151 установки порогового значения устанавливает значение, обозначенное в результате обозначения, принятого на этапе S212, как пороговое значение.
На этапе S214, модуль 133 кодирования кодирует пороговое значение, установленное на этапе S213.
На этапе S215, модуль 133 кодирования подает информацию кодирования порогового значения, полученную при обработке на этапе S214, в модуль 106 кодирования без потерь, для передачи информации о кодировании порогового значения на сторону декодирования.
После окончания обработки на этапе S215 обработка переходит на этап S216. Кроме того, в случае, когда на этапе S211 определяют, что исходное значение установлено, как пороговое значение, обработка переходит на этап S216.
Затем, после окончания обработки на этапе S217, обработка установки порогового значения заканчивается, и обработка возвращается на фиг. 12.
В результате выполнения описанной выше обработки установки порогового значения, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующей битовой глубине). Поэтому, устройство 100 кодирования изображения может предотвращать ухудшение качества изображения для декодируемого изображения.
Кроме того, в случае примера на фиг. 18, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с внешним обозначением, таким как обозначение пользователя. А именно, устройство 100 кодирования изображения может управлять качеством изображения для декодируемого изображения.
Модуль установки порогового значения/модуль обработки фильтрации
На фиг. 19 показана блок-схема, иллюстрирующая основной пример конфигурации модуля 121 установки порогового значения и модуля 122 обработки фильтрации в случае, когда модуль 121 установки порогового значения на фиг. 10 обновляет (изменяет) пороговое значение, обозначенное внешней стороной, такой как пользователь, в соответствии с битовой глубиной данных изображения, которая представляет собой цель кодирования.
В примере на фиг. 19 модуль 121 установки порогового значения выполнен таким образом, что он включает в себя модуль 131 определения глубины, модуль 132 битового сдвига порогового значения, модуль 133 кодирования и модуль 151 установки порогового значения.
В этом случае, модуль 131 определения битовой глубины и модуль 133 кодирования выполняют такую же обработку, как и в случае на фиг. 11. Кроме того, в этом случае, модуль 151 установки порогового значения выполняет такую же обработку, как и в случае на фиг. 17. Однако, модуль 151 установки порогового значения подает установленное пороговое значение в модуль 132 битового сдвига порогового значения.
В этом случае, аналогично случаю на фиг. 11, модуль 132 битового сдвига порогового значения выполняет обновление (изменение) порогового значения путем битового сдвига порогового значения в соответствии с информацией, представляющей битовую глубину, подаваемой из модуля 131 определения битовой глубины. Однако, в этом случае, модуль 132 битового сдвига порогового значения выполняет битовый сдвиг порогового значения, передаваемого из модуля 151 установки порогового значения, то есть, порогового значения, установленного на основе, например, внешнего обозначения, такого как обозначение пользователя.
Модуль 132 битового сдвига порогового значения подает информацию (информацию порогового значения), представляющую пороговое значение после обновления (изменения) в модуль 142 определения соседнего пикселя модуля 122 обработки фильтрации.
Кроме того, в случае передачи информации порогового значения, представляющей пороговое значение после обновления (изменения) (то есть, пороговое значение после битового сдвига модулем 132 битового сдвига порогового значения), на сторону декодирования, модуль 132 битового сдвига порогового значения также подает информацию порогового значения в модуль 133 кодирования.
Кроме того, модуль битового сдвига порогового значения также может подавать информацию порогового значения, представляющую пороговое значение перед обновлением (изменением) (то есть, пороговое значение, установленное модулем 151 установки порогового значения), на сторону декодирования. В этом случае, модуль 132 битового сдвига порогового значения подает информацию порогового значения, представляющую пороговое значение перед обновлением (изменением) (то есть, пороговое значение, установленное модулем 151 установки порогового значения) в модуль 133 кодирования. В этом случае модуль 133 кодирования кодирует информацию порогового значения, представляющую пороговое значение перед обновлением (изменением) (то есть, пороговое значение, установленное модулем 151 установки порогового значения), и передает полученную информацию кодирования порогового значения в модуль 106 кодирования без потерь.
Кроме того, модуль 122 обработки фильтрации имеет такую же конфигурацию, как и в случае на фиг. 11, и выполняет ту же обработку, как и в случае на фиг. 11.
Таким образом, модуль 121 установки порогового значения может устанавливать пороговое значение, в соответствии с внешним обозначением, таким как обозначение пользователя, и может обновлять пороговое значение до значения в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной). А именно, модуль 122 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя фильтр, и модуль 113 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, для которых применяют обработку фильтрации, соответствующую битовой глубине данных изображения. А именно, устройство 100 кодирования изображения может управлять качеством изображения для декодируемого изображения и также может предотвращать ухудшение качества изображения для декодируемого изображения.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 20, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S103 на фиг. 12 в примере, в котором модуль 121 установки порогового значения в примере фиг. 19 определяет битовую глубину данных изображения на основе информации битовой глубины и передает информацию кодирования порогового значения, представляющую пороговое значение перед обновлением, на сторону декодирования. Кроме того, на фиг. 20, будет описан случай, в котором флаг изменения порогового значения также передают на сторону декодирования.
В случае примера, показанного на фиг. 20, обработку на этапах S231-S233 выполняют аналогично обработке на этапах S211-S213 в примере на фиг. 18.
Кроме того, в случае примера на фиг. 20, обработку на этапах S234 и S235 выполняют аналогично обработке на этапах S132 и S133 на фиг. 13.
На этапе S236 модуль 132 битового сдвига порогового значения выполняет битовый сдвиг порогового значения, установленного на этапе S233, в соответствии с результатом определения (определенной битовой глубиной) на этапе S133. Модуль 132 битового сдвига порогового значения подает пороговое значение после обновления в модуль 142 определения соседнего пикселя модуля 122 обработки фильтрации.
На этапе S237, модуль 133 кодирования кодирует информацию порогового значения, представляющую информацию порогового значения, установленную на этапе S233, то есть, "перед битовым сдвигом" (перед обновлением) порогового значения.
На этапе S238, модуль 133 кодирования подает информацию кодирования порогового значения, представляющую пороговое значение перед обновлением, полученное на этапе S237, в модуль 106 кодирования без потерь, для передачи этой информации на сторону декодирования.
После окончания обработки на этапе S238, обработка переходит на этап S239. Кроме того, в случае, когда на этапе S231 определяют, что исходное значение установлено, как пороговое значение, обработка переходит на этап S239.
В случае примера на фиг. 20, обработку на этапах S239 и S240 выполняют аналогично обработке на этапах S137 и S138b примере на фиг. 13.
После того, как обработка на этапе S240 будет закончена, обработка установки порогового значения заканчивается, и обработка возвращается на фиг. 12.
В результате описанной выше обработки установки порогового значения, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующее битовой глубине). Кроме того, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с внешним обозначением, таким как обозначение пользователя.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону декодирования (а именно, флаг изменения порогового значения не генерируют), описанная выше обработка на этапах S239 и S240 может быть исключена.
Кроме того, в случае, когда модуль 121 установки порогового значения определяет битовую глубину данных изображения на основе информации изображения вместо информации о битовой глубине, обработка на этапах S234 и S235 на фиг. 20 может быть заменена обработкой на этапах S172 и S173 на фиг. 15.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 21, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S103, на фиг. 12 в примере, где модуль 121 установки порогового значения по примеру на фиг. 19 определяет битовую глубину данных изображения на основе информации изображения и передает информацию кодирования порогового значения, представляющую пороговое значение перед обновлением, и информацию, представляющую битовую глубину, на сторону декодирования. Кроме того, со ссылкой на фиг. 21, будет описан случай, когда флаг изменения порогового значения также передают на сторону декодирования.
В случае, показанном в примере на фиг. 21, обработку на этапах S251-S253 выполняют аналогично обработке на этапах S231-S233 в примере на фиг. 20.
Кроме того, в случае примера на фиг. 21, обработка на этапах S254 и S255 выполняется аналогично обработке на этапах S172 и S173 в примере на фиг. 15.
Кроме того, в случае примера на фиг. 21, обработка на этапах S256-S258 выполняется аналогично обработке на этапах S236-S238 в примере на фиг. 21.
Кроме того, в случае примера на фиг. 21, обработка на этапах S259 и S260 выполняется аналогично обработке на этапах S195 и S196 на фиг. 16.
После окончания обработки на этапе S260, обработка переходит на этап S261. Кроме того, в случае, когда на этапе S251 определяют, что исходное значение установлено, как пороговое значение, обработка переходит на этап S261.
Кроме того, в случае примера на фиг. 20, обработка на этапах S261 и S262 выполняется аналогично обработке на этапах S239 и S240 в примере на фиг. 20.
После окончания обработки на этапе S262, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 12.
В результате выполнения описанной выше обработки установки порогового значения, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующей битовой глубине). Кроме того, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с внешним обозначением, таким как обозначение пользователя.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону декодирования (а именно, флаг изменения порогового значения не генерируют), описанная выше обработка на этапах S261 и S262 может быть исключена.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 22, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S103 на фиг. 12, в примере, где модуль 121 установки порогового значения по примеру на фиг. 19 определяет битовую глубину данных изображения на основе информации о битовой глубине и передает информацию кодирования порогового значения, представляющую пороговое значение после обновления на стороне декодирования. Кроме того, со ссылкой на фиг. 22, будет описан случай, когда флаг изменения порогового значения также передают на сторону декодирования.
В случае примера на фиг. 22, обработка на этапах S281-S286 выполняется аналогично обработке на этапах S231-S236 в примере на фиг. 20.
На этапе S287 модуль 132 битового сдвига порогового значения кодирует информацию порогового значения, представляющую пороговое значение "после битового сдвига" (после обновления), полученное на этапе S286.
На этапе S288 модуль 133 кодирования подает информацию кодирования порогового значения, представляющую пороговое значение после обновления, полученное на этапе S287, в модуль 106 кодирования без потерь, для передачи информации на сторону декодирования.
После окончания обработки на этапе S288, обработка переходит на этап S289. Кроме того, в случае, когда на этапе S281 определяют, что исходное значение установлено, как пороговое значение, обработка переходит на этап S289.
В случае примера на фиг. 22, обработка на этапах S289 и S290 выполняется аналогично обработке на этапах S239 и S240 примера на фиг. 20.
После окончания обработки на этапе S290, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 12.
В результате выполнения описанной выше обработки установки порогового значения, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующей битовой глубине). Кроме того, модуль 121 установки порогового значения может устанавливать пороговое значение в соответствии с внешним обозначением, таким как обозначение пользователя.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону декодирования (а именно, флаг изменения порогового значения не генерируют), описанная выше обработка на этапах S289 и S290 может быть исключена.
Кроме того, в случае, когда модуль 121 установки порогового значения определяет битовую глубину данных изображения на основе информации изображения вместо информации о битовой глубине, обработка на этапах S284 и S285, на фиг. 22, может быть заменена обработкой на этапах S172 и S173, на фиг. 15.
2. Второй вариант осуществления
Устройство декодирования изображения
Далее будет описано декодирование кодированных данных (кодированного потока, кодированного, как описано выше. На фиг. 23 показана блок-схема, иллюстрирующая пример основной конфигурации устройства декодирования изображения, соответствующего устройству 100 кодирования изображения по фиг. 10, которое представляет собой разновидность устройства обработки изображения, в котором применяется настоящая технология.
Устройство 300 декодирования изображения, представленное на фиг. 23, декодирует кодированные данные, генерируемые устройством 100 кодирования изображения в способе декодирования, соответствующем способу кодирования.
Как представлено на фиг. 23, устройство 300 декодирования изображения выполнено так, что оно включает в себя буфер 301 накопления, модуль 302 декодирования без потерь, модуль 303 обратного квантования, модуль 304 обратного ортогонального преобразования, арифметический модуль 305, фильтр 306 контура, буфер 307 изменения компоновки экрана и AID преобразователь 308. Кроме того, устройство 300 декодирования изображения выполнено так, что оно включает в себя запоминающее устройство 309 кадра, модуль 310 прогнозирования внутри кадра, модуль 311 прогнозирования между кадрами и модуль 312 выбора прогнозируемого изображения.
Буфер 301 накопления представляет собой модуль приема, который принимает переданные кодированные данные. Буфер 301 накопления принимает переданные кодированные данные и сохраняет кодированные данные, и, в заданные моменты времени, буфер накопления передает кодированные данные в модуль 302 декодирования без потерь. К кодированным данным добавляют информацию, необходимую для декодирования информации режима прогнозирования и т.п. Модуль 302 декодирования без потерь декодирует информацию, кодированную модулем 106 кодирования без потерь на фиг. 10, переданную из буфера 301 накопления, в схеме декодирования, соответствующей схеме кодирования. Модуль 302 декодирования без потерь передает квантованные данные коэффициента разностного изображения, полученные в результате декодирования, в модуль 303 обратного квантования.
Кроме того, модуль 302 декодирования без потерь определяет, какой один из режима прогнозирования внутри кадра и режима прогнозирования между кадрами выбран, как оптимальный режим прогнозирования, и подает информацию об оптимальном режиме прогнозирования в модуль прогнозирования, соответствующий режиму, который определен для выбора среди модуля 310 прогнозирования внутри кадра и модуля 311 прогнозирования между кадрами. А именно, например, в случае, когда режим прогнозирования внутри кадра выбирают, как оптимальный режим прогнозирования, который является оптимальным для устройства 100 кодирования изображения, информацию об оптимальном режиме прогнозирования подают в модуль 310 прогнозирования внутри кадра. Кроме того, например, в случае, когда режим прогнозирования между кадрами выбирают, как оптимальный режим прогнозирования, который является оптимальным для устройства 100 кодирования изображения, информацию об оптимальном режиме прогнозирования подают в модуль 311 прогнозирования между кадрами.
Кроме того, модуль 302 декодирования без потерь подает информацию, требуемую для обратного квантования, например, матрицу квантования, параметр квантования и т.п. в модуль 303 обратного квантования.
Модуль 303 обратного квантования выполняет обратное квантование для квантованных данных коэффициента, полученных в результате декодирования в модуле 302 декодирования без потерь, в схеме, соответствующей схеме квантования модуля 105 квантования на фиг. 10. Кроме того, модуль 303 обратного квантования представляет собой тот же модуль обработки, что и модуль 108 обратного квантования устройства 100 кодирования изображения на фиг. 10. А именно, описание модуля 303 обратного квантования может использоваться для модуля 108 обратного квантование. Однако, место назначения ввода/вывода данных и т.п. должно быть изменено соответствующим образом, в соответствии с устройством.
Модуль 303 обратного квантования подает полученные данные коэффициента в модуль 304 обратного ортогонального преобразования.
Модуль 304 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента ортогонального преобразования, передаваемого из модуля 303 обратного квантования в схеме, соответствующей схеме ортогонального преобразования модуля 104 ортогонального преобразования на фиг. 10, если необходимо. Кроме того, модуль 304 обратного ортогонального преобразования является таким же модулем обработки, как и модуль 109 обратного ортогонального преобразования устройства 100 кодирования изображения на фиг. 10. А именно, описание модуля 304 обратного ортогонального преобразования может использоваться для модуля 109 обратного ортогонального преобразования. Однако, назначение ввода/вывода данных и т.п. необходимо изменять, соответственно, в соответствии с устройством.
Модуль 304 обратного ортогонального преобразования получает остаточные данные декодирования, соответствующие остаточным данным, перед ортогональным преобразованием в устройстве 100 кодирования изображения при обработке обратного ортогонального преобразования. Остаточные данные декодирования, полученные в результате обратного ортогонального преобразования, подают в арифметический модуль 305. Кроме того, прогнозируемое изображение подают из модуля 310 прогнозирования внутри кадра или модуля 311 прогнозирования между кадрами в арифметический модуль 305 через модуль 312 выбора прогнозируемого изображения.
Арифметический модуль 305 добавляет разностное изображение и прогнозируемое изображение для получения реконструированного изображения, соответствующего изображению перед вычитанием прогнозируемого изображения в арифметическом модуле 103 устройства 100 кодирования изображения. Арифметический модуль 305 подает реконструированное изображение в фильтр 306 контура и в модуль 310 прогнозирования внутри кадра.
Фильтр 306 контура, соответственно, выполняет обработку фильтрации контура, включающую в себя обработку фильтрации удаления блочности, обработку фильтрации адаптивного контура, и т.п. для подаваемого реконструированного изображения, для генерирования декодируемого изображения. Например, фильтр 306 контура удаляет искажение блочности в результате выполнения обработки фильтрации удаления блочности для реконструированного изображения. Кроме того, например, фильтр 306 контура улучшает качество изображения в результате выполнения обработки фильтрации контура для результата обработки фильтрации удаления блочности (реконструированное изображение, из которого удалены искажения блочности), используя фильтр Винера.
Кроме того, тип обработки фильтрации, выполняемой фильтром 306 контура, является произвольным, и может выполняться любая обработка фильтрации, кроме описанной выше обработки фильтрации. Кроме того, фильтр 306 контура может выполнять обработку фильтрации, используя коэффициент фильтра, подаваемый из устройства 100 кодирования изображения на фиг. 10.
Фильтр 306 контура подает декодируемое изображение, которое представляет собой результат обработки фильтрации, в буфер 307 изменения компоновки экрана и в запоминающее устройство 309 кадра.
Буфер 307 изменения компоновки экрана выполняет изменение компоновки изображения. А именно, порядок кадра, компоновка которого была изменена на порядок кодирования, изменяют на исходный порядок отображения с помощью буфера 102 изменения компоновки экрана на фиг. 10. D/A преобразователь 308 выполняет D/A-преобразование изображения, подаваемого из буфера 307 изменения компоновки экрана, и выводит изображение на устройство отображения (не показан) таким образом, что изображение отображается.
В запоминающем устройстве 309 кадра сохраняют переданное декодируемое изображение, и, в заданные моменты времени или на основе внешнего запроса из модуля 311 прогнозирования между кадрами и т.п., запоминающее устройство кадра подает сохраненное декодируемое изображение, как опорное изображение в модуль 311 прогнозирования между кадрами.
В модуль 310 прогнозирования внутри кадра, соответственно, подают информацию и т.п., представляющую режим прогнозирования внутри кадра, полученную путем декодирования информации заголовка из модуля 302 декодирования без потерь. Модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, используя опорное изображение, полученное из запоминающего устройства 309 кадра, в режиме прогнозирования внутри кадра, используемом в модуле 113 прогнозирования внутри кадра на фиг. 10, для генерирования прогнозируемого изображения. Модуль 310 прогнозирования внутри кадра подает сгенерированное прогнозируемое изображение в модуль 312 выбора прогнозируемого изображения.
Модуль 311 прогнозирования между кадрами получает информацию (информацию оптимального режима прогнозирования, информацию опорного изображения и т.п.), полученную в результате декодирования информации заголовка, из модуля 302 декодирования без потерь.
Модуль 311 прогнозирования между кадрами выполняет прогнозирование между кадрами, используя опорное изображение, полученное из запоминающего устройства 309 кадра в режиме прогнозирования между кадрами, представленном информацией оптимального режима прогнозирования, полученной из модуля 302 декодирования без потерь, для генерирования прогнозируемого изображения.
Модуль 312 выбора прогнозируемого изображения подает прогнозируемое изображение, передаваемое модулем 310 прогнозирования внутри кадра, или прогнозируемое изображение, передаваемое модулем 311 прогнозирования между кадрами, в арифметический модуль 305. Затем, в арифметическом модуле 305, прогнозируемое изображение, генерируемое путем использования вектора движения, и остаточные данные декодирования (разностную информацию изображения), передаваемые из модуля 304 обратного ортогонального преобразования, суммируют таким образом, что декодируют оригинальное изображение. А именно, модуль 311 прогнозирования между кадрами, модуль 302 декодирования без потерь, модуль 303 обратного квантования, модуль 304 обратного ортогонального преобразования и арифметический модуль 305 также представляют собой модуль декодирования, который декодирует кодированные данные, используя вектор движения, и генерирует оригинальное изображение.
Устройство 300 декодирования изображения выполнено так, что оно дополнительно включает в себя модуль 321 установки порогового значения и модуль 322 обработки фильтрации.
Модуль 321 установки порогового значения выполняет, в основном, ту же обработку, что и в модуле 121 установки порогового значения. А именно, модуль 321 установки порогового значения устанавливает пороговое значение для идентификации свойств соседних пикселей текущего блока при обработке прогнозирования внутри кадра во время декодирования кодированных данных, когда данные изображения кодируют, то есть, пороговое значение, используемое для обработки фильтрации для соседних пикселей текущего блока прогнозирования внутри кадра, которое выполняют с помощью модуля 322 обработки фильтрации, в соответствии с битовой глубиной данных изображения.
Однако, модуль 321 установки порогового значения может устанавливать пороговое значение, используя информацию, переданную со стороны кодирования, подаваемую из модуля 302 декодирования без потерь. Модуль 321 установки порогового значения подает информацию порогового значения, представляющую установленное пороговое значение (пороговое значение после обновления), в модуль 322 обработки фильтрации.
Например, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения, которая представляет собой цель кодирования.
В этом случае, например, модуль 321 установки порогового значения может получать информацию о битовой глубине данных изображения, которые представляют собой параметры, передаваемые, как набор параметров последовательности (SPS) и т.п., со стороны кодирования из модуля 302 декодирования без потерь, определять битовую глубину данных изображения на основе информации о битовой глубине и устанавливать пороговое значение в соответствии с битовой глубиной. Кроме того, например, модуль 321 установки порогового значения может получать информацию изображения для декодируемого изображения (включающую в себя данные изображения или информацию о данных изображения) из запоминающего устройства 309 кадра и т.п., определять битовую глубину данных изображения на основе информации изображения (путем анализа информации изображения) и устанавливать пороговое значение в соответствии с битовой глубиной.
Кроме того, в этом случае, например, модуль 321 установки порогового значения может обновлять пороговое значение путем битового сдвига исходного значения (например, 8) порогового значения, которое определено заранее, в соответствии с определенной битовой глубиной. В это время, например, значение, соответствующее случаю, когда битовая глубина составляет 8 битов, может быть заранее установлено, как исходное значение, и модуль 321 установки порогового значения может выполнять битовый сдвиг исходного значения в соответствии с разностью количества битов между фактической битовой глубиной данных изображения и 8 битами.
Кроме того, в этом случае, например, модуль 321 установки порогового значения может получать флаг изменения порогового значения, передаваемый со стороны кодирования, и определять на основе значения флага изменения порогового значения, произошло или нет обновление порогового значения. В результате, устройство 300 декодирования изображения может легко распознавать, на основе значения флага изменения порогового значения, произошло или нет обновление (изменение) порогового значения. А именно, аналогично стороне кодирования (например, устройству 100 кодирования изображения) устройство 300 декодирования изображения может легко управлять, следует или нет выполнять обработку обновления (изменения) порогового значения.
Кроме того, например, модуль 321 установки порогового значения может устанавливать пороговое значение, в соответствии с информацией, переданной со стороны кодирования.
В этом случае, например, модуль 321 установки порогового значения может получать информацию кодирования битовой глубины, передаваемую со стороны кодирования, из модуля 302 декодирования без потерь и обновлять пороговое значение в соответствии с битовой глубиной, полученной путем декодирования информации кодирования битовой глубины. В это время, например, модуль 321 установки порогового значения может обновлять пороговое значение в результате битового сдвига исходного значения (например, 8) заданного порогового значения, в соответствии с битовой глубиной, представленной информацией, переданной со стороны кодирования.
Кроме того, в этом случае, например, модуль 321 установки порогового значения может дополнительно получать информацию кодирования порогового значения, представляющую пороговое значение перед обновлением, передаваемую со стороны кодирования, из модуля 302 декодирования без потерь, и обновлять пороговое значение, полученное в результате декодирования информации кодирования порогового значения, в соответствии с битовой глубиной, полученной таким же образом. В это время, аналогично обновление порогового значения может быть выполнено в результате битового сдвига.
Кроме того, в этом случае, модуль 321 установки порогового значения может определять, на основе значения флага изменения порогового значения, переданного со стороны кодирования, произошло или нет обновление порогового значения.
Кроме того, в этом случае, например, модуль 321 установки порогового значения может получать информацию кодирования порогового значения, представляющую пороговое значение после обновления, переданную со стороны кодирования из модуля 302 декодирования без потерь, и устанавливать пороговое значение, которое получают в результате декодирования информации кодирования порогового значения.
Кроме того, в этом случае, модуль 321 установки порогового значения может определять, на основе значения флага изменения порогового значения, переданного со стороны кодирования, произошло или нет обновление порогового значения.
Кроме того, например, модуль 321 установки порогового значения может определять битовую глубину данных изображения, которые представляют собой цель кодирования, и обновлять (изменять) пороговое значение, переданное со стороны кодирования, в соответствии с битовой глубиной.
В этом случае, например, модуль 321 установки порогового значения может получать информацию кодирования порогового значения, представляющую пороговое значение перед обновлением, переданную со стороны кодирования, из модуля 302 декодирования без потерь, получать информацию о пороговом значении, представляющую пороговое значение перед обновлением, в результате декодирования информации кодирования порогового значения, определять битовую глубину на основе информации о битовой глубине, переданной со стороны кодирования, информации изображения для декодируемого изображения, полученной из запоминающего устройства 309 кадра, и т.п., как описано выше, и обновлять пороговое значение в соответствии с битовой глубиной. В это время, аналогично, обновление порогового значения может быть выполнено путем битового сдвига.
Кроме того, в этом случае, модуль 321 установки порогового значения может определять на основе значения флага изменения порогового значения, переданного со стороны кодирования, произошло или нет обновление порогового значения.
Аналогично случаю модуля 121 установки порогового значения, битовый сдвиг порогового значения может быть выполнен, например, используя описанную выше формулу (10).
Кроме того, модуль 321 установки порогового значения может выполнять декодирование Голомба для параметров или флага, переданных, как код Голомба.
Кроме того, модуль 321 установки порогового значения может выполнять установку (обновление) порогового значения на основе других произвольных параметров, кроме битовой глубины. Кроме того, хотя исходное значение описанного выше порогового значения является произвольным, исходное значение может быть установлено, например, в "8". Кроме того, в случае, когда "0" установлен, как пороговое значение, модуль 321 установки порогового значения запрещает применение обработки билинейной интерполяции, таким образом, что может применяться обработка фильтрации, описанная со ссылкой на фиг. 5. А именно, в случае, когда пороговое значение равно "0", способ, раскрытый в Непатентном документе 2, может быть отменен.
Модуль 322 обработки фильтрации выполняет прогнозирование внутри кадра, выполняемое модулем 310 прогнозирования внутри кадра, а именно, выполняет ту же обработку, как и в модуле 122 обработки фильтрации, в отношении обработки прогнозирования внутри кадра во время декодирования кодированных данных, когда кодируют данные изображения. А именно, модуль 322 обработки фильтрации получает информацию порогового значения из модуля 321 установки порогового значения и выполняет обработку фильтрации для соседних пикселей текущего блока, который представляет собой цель обработки прогнозирования внутри кадра, с помощью модуля 310 прогнозирования внутри кадра, используя пороговое значение. Например, модуль 322 обработки фильтрации может выполнять обработку определения порогового значения, выраженную формулами (3) и (4), используя пороговое значение, полученное из модуля 321 установки порогового значения, для идентификации свойств соседних пикселей текущего блока.
Кроме того, например, в случае, когда результат определения представляет собой false, то есть, в случае, когда определяют, что кромка текущего блока не является участком, где изменение яркости, цвета, плотности и т.п. является плоским, модуль 322 обработки фильтрации может выполнять обработку фильтрации (иногда называемую обработкой фильтрации низкой частоты), описанную со ссылкой на фиг. 5 для соседних пикселей.
Кроме того, например, в случае, когда результат определения представляет собой true, то есть, в случае, когда определяют, что кромка текущего блока представляет собой участок, где изменение яркости, цвета, плотности и т.п.является плоским, модуль 322 обработки фильтрации может выполнять обработку билинейной интерполяции (иногда называется обработкой билинейной фильтрации), выраженную формулами (5)-(9), вместо обработки фильтрации низкой частоты.
После того, как модуль 322 обработки фильтрации получит соседние пиксели текущего блока, которые представляют собой цель обработки прогнозирования внутри кадра, из модуля 310 прогнозирования внутри кадра, модуль обработки фильтрации выполняет описанную выше обработку фильтрации для соседних пикселей. Затем модуль 322 обработки фильтрации подает соседние пиксели "после обработки фильтрации" в модуль 310 прогнозирования внутри кадра. В этом случае модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, используя соседние пиксели "после обработки фильтрации". В результате, модуль 310 прогнозирования внутри кадра может генерировать прогнозируемое изображение, которое отражает результат обработки фильтрации.
А именно, как описано выше, поскольку модуль 321 установки порогового значения может устанавливать пороговое значение для идентификации свойств соседних пикселей текущего блока при обработке прогнозирования внутри кадра во время декодирования данных изображения, в соответствии с битовой глубиной данных изображения и т.п., модуль 310 прогнозирования внутри кадра может генерировать прогнозируемое изображение, отражающее результат обработки фильтрации, в соответствии с данными изображения. А именно, устройство 300 декодирования изображения может подавлять возникновение шумов, таких как изгиб декодируемого изображения, и может подавлять ухудшение качества изображения для декодируемого изображения.
Кроме того, как описано со ссылкой на фиг. 5, формулы (5)-(9) и т.п., в способом, где модуль 322 обработки фильтрации применяет обработку фильтрации к соседним пикселям текущего блока, можно управлять в соответствии с режимом прогнозирования внутри кадра (то есть, по размеру блока текущего блока).
Кроме того, в устройстве 300 декодирования изображения, также предусмотрен верхний предел битовой глубины, с использованием которого применяется обработка билинейной фильтрации, раскрытая в Непатентном документе 2. Например, возможно, чтобы обработка билинейной фильтрации, раскрытая в Непатентном документе 2, применялась только в случае, когда битовая глубина составляет 8 битов, и не применялась в других случаях.
Аналогично, в устройстве 300 декодирования изображения, хотя обработка билинейной фильтрации, раскрытая в Непатентном документе 2, может применяться только для обработке сигнала яркости, обработка билинейной фильтрации может применяться для обработке цветоразностного сигнала. А именно, настоящая технология может применяться к цветоразностному сигналу, а также к сигналу яркости.
Кроме того, в устройстве 300 декодирования изображения, в случае, когда входной сигнал составляет 4:4:4 или RGB и каждый канал компонента цвета обрабатывается независимо, настоящая технология также может независимо применяться для каждого канала.
Кроме того, в дополнение, в устройстве 300 декодирования изображения, в случае выполнения кодирования иерархического изображения (масштабируемое кодирование)/декодирования иерархического изображения (масштабируемое декодирование), например, пороговое значение или параметры, такие как битовая глубина, флаг и т.п., могут быть переданы только в основной уровень, и что касается не основного уровня (уровня расширения), может быть сделана ссылка на параметр или флаг, переданный в основной уровень.
Модуль установки порогового значения/модуль обработки фильтрации
На фиг. 24 показана блок-схема, иллюстрирующая пример основной конфигурации модуля 321 установки порогового значения и модуля 322 обработки фильтрации, в случае, когда модуль 321 установки порогового значения на фиг. 23 устанавливает пороговое значение в соответствии с битовой глубиной декодированных данных изображения.
В примере на фиг. 24, модуль 321 установки порогового значения выполнен так, что он включает в себя модуль 331 определения глубины и модуль 332 битового сдвига порогового значения.
Модуль 331 определения битовой глубины определяет битовую глубину данных изображения и подает информацию, представляющую битовую глубину, в модуль 332 битового сдвига порогового значения.
Например, модуль 331 определения битовой глубины получает информацию о битовой глубине данных изображения, переданную, например, как набор параметров последовательности и т.п., со стороны кодирования (например, из устройства 100 кодирования изображения), из модуля 302 декодирования без потерь и определяет битовую глубину данных изображения на основе информации о битовой глубине. Кроме того, например, модуль 331 определения битовой глубины получает информацию изображения для декодируемого изображения из запоминающего устройства 309 кадра и определяет битовую глубину данных изображения на основе информации изображения.
Модуль 332 битового сдвига порогового значения обновляет (изменяет) пороговое значение в результате битового сдвига заданного порогового значения (исходного значения), которое определено заранее, в соответствии с информацией, представляющей битовую глубину, подаваемую из модуля 331 определения битовой глубины.
Например, в модуле 332 битового сдвига порогового значения, значение (то же самое значение, что и исходное значение, установленное стороной кодирования (например, устройством 100 кодирования изображения)), соответствующее для случая, когда битовая глубина составляет 8 битов, заранее установлено, как исходное значение для порогового значения. После того, как модуль 332 битового сдвига порогового значения получит информацию, представляющую битовую глубину, из модуля 331 определения битовой глубины, модуль битового сдвига порогового значения выполняет битовый сдвиг исходного значения на разницу в количестве битов между битовой глубиной данных изображения, представленной информацией и 8 битами.
Модуль 332 битового сдвига порогового значения подает информацию (информация о пороговом значении), представляющую пороговое значение после обновления (изменения), в модуль 342 определения соседнего пикселя модуля 322 обработки фильтрации.
Кроме того, как представлено на фиг. 11, модуль 322 обработки фильтрации выполнен так, что он включает в себя буфер 341 режима/размера блока, модуль 342 определения соседнего пикселя, модуль 343 определения фильтра, модуль 344 фильтра низкой частоты и модуль 345 билинейного фильтра.
Модуль 322 обработки фильтрации является таким же модулем обработки, как и модуль 122 обработки фильтрации, и выполняет ту же обработку. А именно, буфер 341 режима/размера блока, модуль 342 определения соседнего пикселя, модуль 343 определения фильтра, модуль 344 фильтра низкой частоты и модуль 345 билинейного фильтра являются такими же модулями обработки, что и модуль 142 определения соседнего пикселя, модуль 143 определения фильтра, модуль 144 фильтра низкой частоты и модуль 145 билинейного фильтра, соответственно.
Буфер 341 режима/размера блока получает информацию (режим/размер блока) для размера блока и режима текущего блока в отношении режимов прогнозирования, которые представляют собой кандидатов, из модуля 310 прогнозирования внутри кадра и сохраняет эту информацию.
В заданные моменты времени или на основе внешнего запроса, буфер 341 режима/размера блока подает сохраненную информацию (размер блока) о размере блока в модуль 342 определения соседнего пикселя. Кроме того, в заданные моменты времени или на основе внешнего запроса, буфер 341 режима/размера блока подает сохраненную информацию (режим) о режиме и сохраненную информацию (размере блока) о размере блока в модуль 343 определения фильтра.
Модуль 342 определения соседнего пикселя получает соседние пиксели, расположенные рядом с верхней стороной и с левой стороны от текущего блока, относительно режимов прогнозирования, которые представляют собой кандидатов, из модуля 310 прогнозирования внутри кадра. Кроме того, модуль 342 определения соседнего пикселя получает информацию порогового значения из модуля 332 битового сдвига порогового значения. Кроме того, модуль 342 определения соседнего пикселя получает информацию (размер блока) о размере блока из буфера 341 режима/размера блока.
В случае режима, когда текущий блок имеет заданный размер (например, 32×32) (или размер в пределах заданного диапазона), модуль 342 определения соседнего пикселя выполняет обработку определения порогового значения, для выбора фильтра, который требуется использовать для обработки фильтрации, по соседним пикселям, полученным из модуля 310 прогнозирования внутри кадра, на основе информации о размере блока, полученной из буфера 341 режима/размера блока, используя информацию порогового значения, полученную из модуля 332 битового сдвига порогового значения. А именно, модуль 342 определения соседнего пикселя определяет свойства соседних пикселей (например, определяет, являются ли они или нет пикселями участка, где изменение яркости, цвета, плотности и т.п. является плоским).
Модуль 342 определения соседнего пикселя подает результат определения в модуль 343 определения фильтра. Кроме того, модуль 342 определения соседнего пикселя подает соседние пиксели текущего блока, полученные из модуля 310 прогнозирования внутри кадра, в модуль 344 фильтра низкой частоты и в модуль 345 билинейного фильтра.
Модуль 343 определения фильтра получает информацию (режим) о режиме, и информацию (размер блока) для размера блока из буфера 341 режима/размера блока. Кроме того, модуль 343 определения фильтра получает результат определения обработки определения порогового значения из модуля 342 определения соседнего пикселя. Модуль 343 определения фильтра определяет тип обработки фильтрации, которая должна быть выполнена, и способ ее применения, используя полученную информацию и результат. Например, модуль 343 определения фильтра определяет, применяют или нет какую-либо одну из обработки фильтрации низкой частоты и обработки билинейной фильтрации для соседних пикселей текущего блока, как выполнять обработку фильтрации и т.п.
Модуль 343 определения фильтра подает информацию управления, которая управляет выполнением обработки фильтрации, в модуль 344 фильтра низкой частоты и в модуль 345 билинейного фильтра, в соответствии с решением. А именно, модуль 343 определения фильтра подает информацию управления, обозначающую, как выполнять обработку фильтрации, в модуль обработки, выбранный среди модуля 344 фильтра низкой частоты и модуля 345 билинейного фильтра и подает информацию управления, обозначающую прекращение обработки фильтрации (то есть, информацию управления, обозначающую, что не следует выполнять обработку фильтрации), в невыбранный модуль обработки.
Модуль 344 фильтра низкой частоты выполняет обработку фильтрации низкой частоты, описанную со ссылкой на фиг. 5 по соседним пикселям текущего блока, передаваемым из модуля 342 определения соседнего пикселя, в соответствии с информацией управления, передаваемой из модуля 343 определения фильтра. Модуль 344 фильтра низкой частоты подает соседние пиксели (соседние пиксели "после обработки фильтрации"), которые применяются при обработке фильтрации низкой частоты, в модуль 310 прогнозирования внутри кадра.
Модуль 345 билинейной фильтрации выполняет обработку билинейной фильтрации, описанную со ссылкой на формулы (5)-(9), по соседним пикселям текущего блока, передаваемую из модуля 342 определения соседних пикселей, в соответствии с информацией управления, подаваемой из модуля 343 определения фильтра. Модуль 345 билинейного фильтра передает соседние пиксели (соседние пиксели "после обработки фильтрации"), которые применяются при обработке билинейной фильтрации, в модуль 310 прогнозирования внутри кадра.
В результате, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствует битовой глубине), модуль 322 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя фильтр, и модуль 310 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, применяемые при обработке фильтрации, соответствующей битовой глубине, для данных изображения. А именно, в результате этого, устройство 300 декодирования изображения может предотвращать ухудшение качества изображения для декодированного изображения.
Поток обработки декодирования
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 25, будет описан пример потока обработки декодирования, выполняемой устройством 300 декодирования изображения, описанным выше.
После начала обработки декодирования, на этапе S301, в буфере 301 накопления накапливают передаваемый поток битов. На этапе S302, модуль 302 декодирования без потерь декодирует поток битов (кодированную разностную информацию изображения), передаваемую из буфера 301 накопления. А именно, декодируют кадры I, кадры Р и кадры В, которые были кодированы модулем 106 кодирования без потерь на фиг. 10. В это время также декодируют различные типы информации, кроме разностной информации изображения, включенной в битовый поток, такой, как информация заголовка.
На этапе S303, модуль 321 установки порогового значения устанавливает пороговое значение для идентификации свойств соседних пикселей текущего блока при обработке прогнозирования внутри кадра во время декодирования кодированных данных, где кодированы данные изображения.
На этапе S304 модуль 303 обратного квантования выполняет обратное квантование для квантованного коэффициента, полученного при обработке на этапе S302.
На этапе S305, модуль 304 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента, обратно квантованного на этапе S304.
На этапе S306, модуль 310 прогнозирования внутри кадра или модуль 311 прогнозирования между кадрами выполняет обработку прогнозирования и генерирует прогнозируемое изображение. А именно, обработку прогнозирования выполняют в режиме прогнозирования, который определен в модуле 302 декодирования без потерь, и применяют во время кодирования. Более конкретно, например, в случае, когда прогнозирование внутри кадра применяют во время кодирования, модуль 310 прогнозирования внутри кадра генерирует прогнозируемое изображение в режиме прогнозирования внутри кадра, который рассматривается, как оптимальный во время кодирования. Кроме того, например, в случае, когда прогнозирование между кадрами применяется во время кодирования, модуль 311 прогнозирования между кадрами генерирует прогнозируемое изображение в режиме прогнозирования между кадрами, который считается оптимальным во время кодирования.
Здесь, в случае, когда модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, модуль 322 обработки фильтрации может выполнять обработку фильтрации для соседних пикселей текущего блока, используя пороговое значение, установленное на этапе S303. В случае, когда выполняется обработка фильтрации, модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, используя соседние пиксели, которые применяют при обработке фильтрации.
На этапе S307, арифметический модуль 305 добавляет прогнозируемое изображение, генерируемое на этапе S306, к разностной информации изображения, полученной в результате выполнения обратного ортогонального преобразования на этапе S305. Таким образом, декодируют исходное изображение.
На этапе S308, фильтр 306 контура соответствующим образом выполняет обработку фильтрации контура, включающую в себя обработку фильтрации удаления блочности, обработку фильтрации адаптивного контура и т.п., для реконструированного изображения, полученного при обработке на этапе S307.
На этапе S309, буфер 307 изменения компоновки экрана выполняет изменение компоновки изображения, которое применяется в процессе фильтрации на этапе S308. А именно, порядок кадров, компоновка которых была изменена для кодирования, повторно изменяют на исходный порядок отображения в буфере 102 изменения компоновки экрана, в устройстве 100 кодирования изображения.
На этапе S310, D/A преобразователь 308 выполняет D/A-преобразование изображения, в котором порядок кадров был изменен на этапе S309. Изображение выводят для отображения (не показано), таким образом, что изображение отображается.
На этапе S311, в запоминающем устройстве 309 кадра сохраняют изображение, которое применяют при обработке фильтрации на этапе S308.
После окончания обработки на этапе S311, обработка декодирования заканчивается.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 26, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S303, на фиг. 25 в примере, где модуль 321 установки порогового значения по примеру на фиг. 24 определяет битовую глубину данных изображения на основе информации о битовой глубине, передаваемой, как набор параметров последовательности и т.п. со стороны кодирования. Кроме того, со ссылкой на фиг. 26, будет описан случай, где флаг изменения порогового значения передают на сторону кодирования.
После начала обработки установки порогового значения, на этапе S331, модуль 331 определения битовой глубины получает флаг изменения порогового значения, передаваемый со стороны кодирования (например, устройство 100 кодирования изображения) из модуля 302 декодирования без потерь.
На этапе S332, модуль 331 определения битовой глубины определяет на основе значения флага изменения порогового значения, полученного на этапе S331, требуется или нет устанавливать исходное значение, которое было подготовлено заранее, как пороговое значение. В случае, когда определяют, что пороговое значение обновлено, обработка переходит на этап S333.
На этапе S333, модуль 331 определения битовой глубины получает информацию о битовой глубине, переданную, например, как набор параметров последовательности (SPS) и т.п. со стороны кодирования из модуля 302 декодирования без потерь.
На этапе S334, модуль 331 определения битовой глубины определяет битовую глубину данных изображения на основе информации о битовой глубине, полученной на этапе S333.
На этапе S335, модуль 332 битового сдвига порогового значения выполняет битовый сдвиг порогового значения (исходного значения) в соответствии с результатом определения (определенной битовой глубины) на этапе S334. Модуль 332 битового сдвига порогового значения подает пороговое значение после обновления в модуль 342 определения соседнего пикселя из модуля 322 обработки фильтрации.
После окончания обработки на этапе S335, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25. Кроме того, в случае, когда определяют на этапе S331, что исходное значение установлено, как пороговое значение, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25.
В результате выполнения описанной выше обработки установки порогового значения, модуль 321 установки порогового значения 321 может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующей битовой глубине).
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону кодирования, описанная выше обработка на этапе S331 может быть пропущена. В этом случае, определение на этапе S332 выполняют на основе другой информации, чем флаг изменения порогового значения, например, информация о битовой глубине и т.п.
Поток обработки прогнозирования
Далее, со ссылкой на блок-схему последовательности операций на фиг. 27, будет описан пример потока обработки прогнозирования, выполняемой на этапе S306, на фиг. 25.
После начала обработки прогнозирования, на этапе S351, модуль 302 декодирования без потерь определяет на основе информации об оптимальном режиме прогнозирования и т.п., переданной со стороны кодирования, является или нет режим оптимального прогнозирования режимом прогнозирования внутри кадра. В случае, когда определяют, что оптимальный режим прогнозирования представляет собой прогнозирование внутри кадра, процедура переходит на этап S352.
На этапе S352, модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра для генерирования прогнозируемого изображения. В это время, в некоторых случаях, модуль 322 обработки фильтрации может выполнять обработку фильтрации для соседних пикселей текущего блока, используя пороговое значение, установленное на этапе S303 на фиг. 25. В случае, когда выполняется обработка фильтрации, модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра, используя соседние пиксели, которые применяют при обработке фильтрации. После окончания обработки на этапе S352, обработка прогнозирования заканчивается, и процедура возвращается на фиг. 25.
Кроме того, в случае, когда на этапе S351 определяют, что оптимальный режим прогнозирования представляет собой прогнозирование между кадрами, процедура переходит на этап S353.
На этапе S353 модуль 311 прогнозирования между кадрами выполняет прогнозирование между кадрами для генерирования прогнозируемого изображения. А именно, модуль 311 прогнозирования между кадрами выполняет обработку компенсации и т.п., используя информацию о векторе движения и т.п., переданную со стороны кодирования, для генерирования прогнозируемого изображения. После окончания обработки на этапе S353, обработка прогнозирования заканчивается, и процедура возвращается на фиг. 25.
Поток обработки прогнозирования внутри кадра
Далее, со ссылкой на блок-схему последовательности операций на фиг. 28, будет описан пример потока обработки прогнозирования внутри кадра, выполняемой на этапе S352, на фиг. 27.
После начала обработки прогнозирования внутри кадра, на этапе S371, модуль 310 прогнозирования внутри кадра получает информацию о режиме внутри кадра, представляющую оптимальный режим прогнозирования внутри кадра (используемый режим прогнозирования внутри кадра), передаваемую, как информация об оптимальном режиме прогнозирования, со стороны кодирования, из модуля 302 декодирования без потерь.
На этапе S372 модуль 342 определения соседнего пикселя определяет свойства (например, является или нет кромка текущего блока участком, где яркость, цвет, плотность и т.п. являются плоскими) соседних пикселей текущего блока, полученные из модуля 310 прогнозирования внутри кадра на основе размера блока, полученного из буфера 341 режима/размера блока, и информацию порогового значения, полученную из модуля 332 битового сдвига порогового значения.
На этапе S373, модуль 343 определения фильтра определяет фильтр, который требуется использовать для соседних пикселей текущего блока на основе режима и размера блока, полученных из буфера 341 режима/размера блока, и результат определения на этапе S372.
На этапе S374, модуль фильтра, выбранный среди модуля 344 фильтра низкой частоты и модуля 345 билинейного фильтра, в результате обработки на этапе S373, выполняет обработку фильтрации для соседних пикселей текущего блока. Например, в случае, когда фильтр низкой частоты выбирают на этапе S373, на этапе S374 модуль 344 фильтра низкой частоты выполняет обработку фильтрации низкой частоты для соседних пикселей в способе, определенном модулем 343 определения фильтра. Кроме того, например, в случае, когда билинейный фильтр выбирают на этапе S373, на этапе S374 модуль 345 билинейного фильтра выполняет обработку билинейной фильтрации для соседних пикселей в способе, определенном модулем 343 определения фильтра.
Кроме того, такая обработка фильтрации может быть исключена в некоторых режимах.
На этапе S375 модуль 310 прогнозирования внутри кадра выполняет прогнозирование внутри кадра в оптимальном режиме прогнозирования внутри кадра, обозначенном в информации режима внутри кадра, полученной на этапе S351, используя соседние пиксели, которые применяются при обработке фильтрации на этапе S374 (в случае, когда обработку фильтрации исключают, соседние пиксели, которые не применяются при обработке фильтрации) для генерирования прогнозируемого изображения.
После окончания обработки на этапе S375, обработка прогнозирования внутри кадра заканчивается, и процедура возвращается на фиг. 27.
В результате выполнения описанной выше обработки прогнозирования внутри кадра, модуль 322 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя этот фильтр, и модуль 310 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, для которых применяли обработку фильтрации, соответствующую битовой глубине данных изображения.
А именно, в результате выполнения описанной выше обработки, устройство 300 декодирования изображения может предотвращать ухудшение качества изображения декодируемого изображения.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 29, будет описан пример потока обработки по установке порогового значения, выполняемой на этапе S303, на фиг. 25, в примере, где модуль 321 установки порогового значения по примеру на фиг. 24 определяет битовую глубину данных изображения на основе информации изображения. Кроме того, со ссылкой на фиг. 29, будет описан случай, где флаг изменения порогового значения передают на сторону кодирования.
В случае примера на фиг. 29, обработка на этапах S391, S392 и S395 выполняется аналогично обработке на этапах S331, S332 и S335 в примере на фиг. 26.
В случае, когда определяют на этапе S392 на фиг. 29, что пороговое значение обновляется, процедура переходит на этап S393.
На этапе S393, модуль 331 определения битовой глубины получает информацию изображения для декодируемого изображения из запоминающего устройства 309 кадра.
На этапе S394 модуль 331 определения битовой глубины определяет битовую глубину данных изображения на основе информации изображения, полученной на этапе S393. После окончания обработки на этапе S394, процедура переходит на этап S395.
После окончания обработки на этапе S395, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25. Кроме того, в случае, когда определяют на этапе S392, что исходное значение установлено, как пороговое значение, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25.
В результате, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствующей битовой глубине). Поэтому, в этом случае, устройство 300 декодирования изображения также предотвращает ухудшение качества изображения декодируемого изображения.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону кодирования, описанная выше обработка на этапе S391 может быть исключена. В этом случае, определение на этапе S392 выполняют на основе другой информации, чем флаг изменения порогового значения, например, информации изображения и т.п.
Модуль установки порогового значения/модуль обработки модуля фильтрации
На фиг. 30 показана блок-схема, иллюстрирующая пример основной конфигурации модуля 321 установки порогового значения и модуля 322 обработки фильтрации в случае, когда модуль 321 установки порогового значения на фиг. 23 устанавливает пороговое 321 значение на основе битовой глубины передаваемой со стороны кодирования.
В примере на фиг. 30, модуль 321 установки порогового значения выполнен так, что он включает в себя модуль 351 декодирования и модуль 332 битового сдвига порогового значения.
Модуль 351 декодирования получает информацию о кодировании битовой глубины, передаваемую со стороны кодирования, и декодирует информацию кодирования битовой глубины для получения информации, представляющей битовую глубину. Например, модуль 351 декодирования выполняет декодирование Голомба для информации кодирования битовой глубины, которая представляет собой код Голомба, для получения информации, представляющей битовую глубину. Модуль 351 декодирования подает информацию, представляющую полученную битовую глубину, в модуль 332 битового сдвига порогового значения.
Модуль 332 битового сдвига порогового значения выполняет битовый сдвиг заданного порогового значения (исходного значения) в соответствии с информацией, представляющей битовую глубину, подаваемой из модуля 351 декодирования. Модуль 332 битового сдвига порогового значения подает информацию порогового значения, представляющую пороговое значение "после битового сдвига" (пороговое значение после обновления) в модуль 342 определения соседнего пикселя.
Кроме того, модуль 351 декодирования может дополнительно получать флаг изменения порогового значения, передаваемый со стороны кодирования, из модуля 302 декодирования без потерь, и определять, следует или нет обновлять пороговое значение в соответствии с этим значением.
Кроме того, модуль 351 декодирования может дополнительно получать информацию кодирования порогового значения, переданную со стороны кодирования, и декодировать информацию кодирования порогового значения для получения информации о пороговом значении, представляющей пороговое значение перед обновлением. Например, модуль 351 декодирования может выполнять декодирование Голомба информации кодирования порогового значения, которая представляет собой код Голомба, для получения информации порогового значения, представляющей пороговое значение перед обновлением, установленное на стороне кодирования. В этом случае, модуль 351 декодирования подает обновленную информацию порогового значения в модуль 332 битового сдвига порогового значения.
В этом случае модуль 332 битового сдвига порогового значения выполняет битовый сдвиг порогового значения перед обновлением, представляющего информацию порогового значения, подаваемого из модуля 351 декодирования, в соответствии с информацией, представляющей битовую глубину, подаваемой из модуля 351 декодирования. Модуль 332 битового сдвига порогового значения подает информацию порогового значения, представляющую пороговое значение "после битового сдвига" (пороговое значение после обновления), в модуль 342 определения соседнего пикселя.
Кроме того, модуль 322 обработки фильтрации имеет такую же конфигурацию, как и в случае фиг. 24, и выполняет такую же обработку, как и в случае на фиг. 24.
В результате, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной), модуль 122 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя этот фильтр, и модуль 310 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, которые применяются при обработке фильтрации, соответствующей битовой глубине данных изображения. А именно, в результате, устройство 300 декодирования изображения может предотвращать ухудшение качества изображения для декодируемого изображения.
Кроме того, в случае примера на фиг. 30, поскольку модуль 321 установки порогового значения может использовать пороговое значение установленное на стороне кодирования, модуль 310 прогнозирования внутри кадра может отражать обозначение качества изображения стороной кодирования на прогнозируемом изображении. А именно, устройство 300 декодирования изображения может отражать управление качеством изображения стороной кодирования на декодируемом изображении.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 31, будет описан пример потока обработки установки порогового значения на этапе S303, на фиг. 25 в примере, где модуль 321 установки порогового значения по примеру на фиг. 30 обновляет пороговое значение на основе битовой глубины, обозначенной на стороне кодирования. Кроме того, со ссылкой на фиг. 31, будет описан случай, в котором флаг изменения порогового значения передают на сторону кодирования.
В случае примера на фиг. 31, обработка на этапах S411 и S412 выполняется аналогично обработке на этапах S331 и S332 в примере на фиг. 26.
В случае, когда на этапе S412, на фиг. 31, определяют, что пороговое значение обновлено, обработка переходит на этап S413.
На этапе S413, модуль 351 декодирования получает информацию кодирования битовой глубины из модуля 302 декодирования без потерь.
На этапе S414, модуль 351 декодирования декодирует информацию кодирования битовой глубины, полученную на этапе S413.
На этапе S415, модуль 332 битового сдвига порогового значения выполняет битовый сдвиг порогового значения (исходного значения), которое подготавливают заранее, в соответствии с битовой глубиной, полученной на этапе S414.
После окончания обработки на этапе S415, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25. Кроме того, в случае, когда на этапе S412 определяют, что исходное значение устанавливают, как пороговое значение, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25.
В результате, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной). Поэтому, в этом случае, устройство 300 декодирования изображения также может уменьшать ухудшение качества изображения для декодируемого изображения.
Кроме того, в случае, когда флаг изменения порогового значения передают на сторону кодирования, описанная выше обработка на этапе S411 может быть пропущена. В этом случае, определение на этапе S412 выполняют на основе другой информации, кроме флага изменения порогового значения, такой как информация кодирования битовой глубины.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 32 будет описан пример потока обработки установки порогового значения, выполняемой на этапе S303 на фиг. 25 в примере, где модуль 321 установки порогового значения по примеру на фиг. 30 обновляет пороговое значение, обозначенное на стороне кодирования, на основе битовой глубины, обозначенной на стороне кодирования. Кроме того, со ссылкой на фиг. 32, будет описан случай, где флаг изменения порогового значения передают на сторону кодирования.
В случае примера на фиг. 32, обработка на этапах S431-S434 выполняется аналогично обработке на этапах S411-S414 в примере на фиг. 31.
После окончания на обработки на этапе S434, на фиг. 32, процедура переходит на этап S435.
На этапе S435, модуль 351 декодирования получает информацию кодирования порогового значения из модуля 302 декодирования без потерь.
На этапе S436, модуль 351 декодирования декодирует информацию кодирования порогового значения, полученную на этапе S435, в информацию порогового значения, представляющую пороговое значение перед обновлением.
На этапе S437, модуль 332 битового сдвига порогового значения выполняет битовый сдвиг порогового значения перед обновлением, полученного на этапе S436, в соответствии с битовой глубиной, полученной на этапе S434.
После окончания обработки на этапе S437, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25. Кроме того, в случае, когда на этапе S432 определяют, что исходное значение установлено, как пороговое значение, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25.
В результате, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (в соответствии с битовой глубиной). Поэтому, в этом случае, устройство 300 декодирования изображения может предотвращать ухудшение качества изображения декодируемого изображения.
Кроме того, модуль 321 установки порогового значения может использовать пороговое значение, установленное на стороне кодирования. Поэтому, устройство 300 декодирования изображения может отражать управление качеством изображения на стороне кодирования на декодируемое изображение.
Кроме того, в случае, когда флаг изменения порогового значения не передают со стороны кодирования, описанная выше обработка на этапе S431 может быть пропущена. В этом случае определение на этапе S432 выполняют на основе другой информации, кроме флага изменения порогового значения, например, информации кодирования битовой глубины, информации кодирования порогового значения и т.п.
Модуль установки порогового значения/модуль обработки фильтрации
На фиг. 33 показана блок-схема, иллюстрирующая пример основной конфигурации модуля 321 установки порогового значения и модуля 322 обработки фильтрации в случае, когда модуль 321 установки порогового значения на фиг. 23 устанавливает пороговое значение после обновления, переданное со стороны кодирования, как пороговое значение, которое должно использоваться в модуле 322 обработки фильтрации.
В примере на фиг. 33 модуль 321 установки порогового значения выполнен так, что он включает в себя модуль 361 декодирования.
Модуль 361 декодирования получает информацию кодирования порогового значения, переданного со стороны кодирования, и декодирует информацию кодирования порогового значения для получения информации порогового значения, представляющей пороговое значение после обновления. Например, модуль 361 декодирования выполняет информацию декодирования порогового значения, которая представляет собой код Голомба, для получения информации порогового значения. Модуль 361 декодирования подает информацию порогового значения, представляющую пороговое значение после обновления, полученное таким образом, в модуль 342 определения соседнего пикселя.
Кроме того, модуль 361 декодирования может дополнительно получать флаг изменения порогового значения, передаваемый со стороны кодирования из модуля 302 декодирования без потерь, и определять, следует или нет выполнить обновление порогового значения в соответствии с этим значением.
Кроме того, модуль 322 обработки фильтрации имеет такую же конфигурацию, как и в случае на фиг. 24, и выполняет такую же обработку, как и в случае на фиг. 24.
В результате, поскольку модуль 321 установки порогового значения может устанавливать пороговое значение, установленное на стороне кодирования, как пороговое значение, которое требуется использовать в модуле 322 обработки фильтрации, модуль 310 прогнозирования внутри кадра может отражать обозначение качества изображения стороной кодирования для прогнозируемого изображения. А именно, устройство 300 декодирования изображения может отражать управление качеством изображения стороной кодирования на декодируемом изображении.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 34, будет описан пример потока обработки установки порогового значения, выполняемого на этапе S303 на фиг. 25 в примере, где модуль 321 установки порогового значения по примеру на фиг. 30 устанавливает пороговое значение, обновленное на стороне кодирования, как пороговое значение, которое должно использоваться модулем 322 обработки фильтрации. Кроме того, со ссылкой на фиг. 34, будет описан случай, в котором флаг изменения порогового значения передают на сторону кодирования.
В случае примера на фиг. 34, обработку на этапах S451 и S452 выполняют аналогично обработке на этапах S431 и S432 в примере на фиг. 32.
В случае, когда на этапе S452, на фиг. 34 определяют, что пороговое значение после обновления было обновлено, процедура переходит на этап S453.
На этапе S453, модуль 361 декодирования получает информацию кодирования порогового значения из модуля 302 декодирования без потерь.
На этапе S454, модуль 361 декодирования декодирует информацию кодирования порогового значения, полученную на этапе S453, и получает информацию порогового значения, представляющую пороговое значение, обновленную на стороне кодирования.
После окончания обработки на этапе S454, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25. Кроме того, в случае, когда на этапе S452 определяют, что исходное значение установлено, как пороговое значение, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25.
В результате, модуль 321 установки порогового значения также может использовать пороговое значение, установленное на стороне кодирования. Поэтому, устройство 300 декодирования изображения может отражать управление качеством изображения на стороне кодирования для декодируемого изображения.
Кроме того, в случае, когда флаг изменения порогового значения не был передан со стороны кодирования, описанная выше обработка на этапе S451 может быть пропущена. В этом случае, определение на этапе S452 выполняют на основе другой информации, чем флаг изменения порогового значения, например, информации кодирования порогового значения и т.п.
Модуль установки порогового значения/модуль обработки фильтрации
На фиг. 35 показана блок-схема, иллюстрирующая пример основной конфигурации модуля 321 установки порогового значения и модуля 322 обработки фильтрации в случае, когда модуль 321 установки порогового значения на фиг. 23 обновляет пороговое значение перед обновлением, переданное со стороны кодирования, в отношении битовой глубины декодируемых данных изображения.
В случае примера на фиг. 35, модуль 321 установки порогового значения выполнен так, что он включает в себя модуль 331 определения побитовой глубины, модуль 332 битового сдвига порогового значения и модуль 351 декодирования.
Модуль 331 определения битовой глубины получает информацию о битовой глубине переданных данных изображения, например, как набор параметров последовательности и т.п. со стороны кодирования (например, из устройства 100 кодирования изображения) из модуля 302 декодирования без потерь, и определяет битовую глубину данных изображения на основе информации о битовой глубине. Кроме того, например, модуль 331 определения битовой глубины получает информацию об изображении для декодируемого изображения из запоминающего устройства 309 кадра и определяет битовую глубину данных изображения на основе информации изображения. Модуль 331 определения битовой глубины подает информацию, представляющую битовую глубину, которую определяют таким образом, в модуль 332 битового сдвига порогового значения.
Модуль 351 декодирования получает информацию кодирования порогового значения, переданную со стороны кодирования, и декодирует информацию кодирования порогового значения для получения информации порогового значения, представляющей пороговое значение перед обновлением. Например, модуль 351 декодирования выполняет декодирование Голомба для информации кодирования порогового значения, которая представляет собой код Голомба, для получения информации порогового значения. Модуль 351 декодирования подает информацию порогового значения, представляющую пороговое значение перед обновлением, которую получают, таким образом, в модуль 332 битового сдвига порогового значения.
Модуль 332 битового сдвига порогового значения обновляет (изменяет) пороговое значение, установленное на стороне кодирования, в результате битового сдвига порогового значения перед обновлением, передаваемого из модуля 351 декодирования, в соответствии с информацией, представляющей битовую глубину, передаваемой из модуля 331 определения битовой глубины.
Например, пороговое значение, имеющее значение, соответствующее случаю, в котором битовая глубина составляет 8 битов, подают, как пороговое значение перед обновлением, установленное на стороне кодирования, из модуля 351 декодирования в модуль 332 битового сдвига порогового значения. После того, как модуль 332 битового сдвига порогового значения получит информацию, представляющую битовую глубину, из модуля 331 определения битовой глубины, модуль битового сдвига порогового значения выполняет битовый сдвиг порогового значения перед обновлением, на разность количества битов между битовой глубиной данных изображения, представленной информацией и 8 битами.
Модуль 332 битового сдвига порогового значения подает информацию (информацию порогового значения), представляющую пороговое значение после обновления (изменения), в модуль 342 определения соседнего пикселя модуля 322 обработки фильтрации.
Кроме того, модуль 331 определения битовой глубины может дополнительно получать флаг изменения порогового значения, переданный со стороны кодирования из модуля 302 декодирования без потерь, и определять, следует или нет обновлять пороговое значение в соответствии с этим значением.
Кроме того, модуль 322 обработки фильтрации имеет такую же конфигурацию, как и в случае на фиг. 24, и выполняет ту же обработку, как и в случае на фиг. 24.
В результате, модуль 321 установки порогового значения может обновлять пороговое значение, установленное на стороне кодирования, в соответствии с битовой глубиной данных изображения, модуль 122 обработки фильтрации может выбирать фильтр, соответствующий битовой глубине данных изображения, и выполнять обработку фильтрации для соседних пикселей, используя фильтр, и модуль 310 прогнозирования внутри кадра может генерировать прогнозируемое изображение, используя соседние пиксели, которые применяют при обработке фильтрации, соответствующей битовой глубине данных изображения. А именно, в результате, устройство 300 декодирования изображения может предотвращать ухудшение качества изображения декодируемого изображения.
Поток обработки установки порогового значения
Далее, со ссылкой на блок-схему последовательности операций на фиг. 36, будет описан пример потока обработки установки порогового значения, выполняемой на этапе S303, на фиг. 25, в примере, где модуль 321 установки порогового значения по примеру фиг. 35 обновляет пороговое значение, установленное на стороне кодирования, на основе битовой глубины данных изображения. Кроме того, со ссылкой на фиг. 36, будет описан случай, в котором флаг изменения порогового значения передают на сторону кодирования.
В случае примера на фиг. 36, обработку на этапах S471-S474 выполняют аналогично обработке на этапах S331-S334 в примере на фиг. 26.
Кроме того, в случае примера на фиг. 36, обработка на этапах S475 и S476 выполняется аналогично обработке на этапах S435 и S436 в примере на фиг. 32.
После окончания обработки на этапе S476, на фиг. 36, процедура переходит на этап S477.
На этапе S477 модуль 332 битового сдвига порогового значения выполняет битовый сдвиг порогового значения перед обновлением, полученного на этапе S476, в соответствии с битовой глубиной, полученной на этапе S474.
После окончания обработки на этапе S477, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25. Кроме того, в случае, когда на этапе S472 определяют, что исходное значение установлено, как пороговое значение, обработка установки порогового значения заканчивается, и процедура возвращается на фиг. 25.
В результате, модуль 321 установки порогового значения может устанавливать пороговое значение в соответствии с битовой глубиной данных изображения (соответствует битовой глубине). Поэтому, в этом случае, устройство 300 декодирования изображения также может подавлять ухудшение качества изображения для декодируемого изображения.
Кроме того, модуль 321 установки порогового значения может использовать пороговое значение, установленное на стороне кодирования. Поэтому, устройство 300 декодирования изображения может отражать управление качеством изображения стороной кодирования для декодируемого изображения.
Кроме того, в случае, когда флаг изменения порогового значения не передают на сторону кодирования, описанная выше обработка на этапе S471 может быть пропущена. В этом случае, определение на этапе S472 выполняется на основе другой информации, чем флаг изменения порогового значения, например, информации о битовой глубине, информации кодирования порогового значения и т.п.
Кроме того, в случае, когда модуль 331 определения битовой глубины определяет битовую глубину на основе информации изображения, вместо обработки на этапах S473 и S474, может быть выполнена обработка на этапах S393 и S394 на фиг. 29.
Как описано выше, настоящая технология может применяться для всех устройств кодирования изображения и всех устройств декодирования изображения, которые кодируют/декодируют изображение, используя прогнозирование внутри кадра.
Кроме того, настоящая технология может применяться для устройств кодирования изображения и устройств декодирования изображения, которые используются во время приема информации изображения (потока битов), сжатой в результате ортогонального преобразования, такого как дискретное косинусное преобразование и компенсация движения, через сетевую среду передачи, такую как спутниковая широковещательная передача, кабельное телевидение, Интернет или мобильные телефоны, например, такую как MPEG, Н.26х и т.п. Кроме того, настоящая технология может применяться для устройств кодирования изображения и устройств декодирования изображения, которые используются во время выполнения обработки на носителе сохранения, таком как оптический диск, магнитный диск и запоминающее устройство флэш. Кроме того, настоящая технология может применяться для устройств прогнозирования внутри кадра, включенных в устройства кодирования изображения, устройства декодирования изображения и т.п.
3. Третий вариант осуществления
Применение при кодировании многопроекционного изображения/декодировании многопроекционного изображения
Последовательность описанной выше обработки может применяться при кодировании многопроекционного изображения/декодировании многопроекционного изображения. На фиг. 37 представлен пример схемы кодирования многопроекционного изображения.
Как представлено на фиг. 37, многообзорное изображение включает в себя изображения, снятые из множества точек обзора (видов). Множество видов многопроекционного изображения включают в себя основной вид, где кодирование/декодирование выполняется, используя только изображения собственного вида, без использования изображения других видов, и неосновные виды, где кодирование/декодирование выполняют, используя изображения других видов. Изображение неосновного вида может быть определено для использования изображения основного вида или может быть определено для использования изображения других неосновных видов.
В случае кодирования/декодирования многопроекционного изображения, как представлено на фиг. 37, кодируют/декодируют изображение каждого вида. Однако, при кодировании/декодировании каждого вида, могут применяться описанные выше способы первого и второго вариантов осуществления. Таким образом, становится возможным предотвратить ухудшение качества изображения каждого вида.
Кроме того, при кодировании/декодировании каждого вида могут совместно использоваться флаги или параметры, используемые в описанных выше способах первого и второго варианта осуществления. В результате этого, предотвращается передача избыточной информации, таким образом, что становится возможным уменьшить количество передаваемой информации (количество кода) (а именно, становится возможным предотвратить снижение эффективности кодирования).
Более конкретно, например, пороговое значение, которое предназначено для использования, для выбора обработки фильтрации для соседних пикселей текущего блока при прогнозировании внутри кадра, битовая глубина данных изображения, флаг изменения порогового значения, представляющий изменение пороговое значение и т.п. могут совместно использоваться при кодировании/декодировании каждого вида.
Необходимая информация, другая, кроме описанной выше информации, также может совместно использоваться при кодировании/декодировании каждого вида.
Устройство кодирования многопроекционного изображения
На фиг. 38 показана схема, иллюстрирующая устройство кодирования многопроекционного изображения, которое выполняет описанное выше кодирование изображения. Как представлено на фиг. 38, устройство 600 кодирования многопроекционного изображения выполнено так, что оно включает в себя модуль 601 кодирования, модуль 602 кодирования и мультиплексор 603.
Модуль 601 кодирования кодирует изображение основного вида для генерирования кодированного потока изображения основного вида. Модуль 602 кодирования кодирует изображение неосновного вида для генерирования кодированного потока изображения неосновного вида. Мультиплексор 603 мультиплексирует кодированный поток изображения основного вида, генерируемый модулем 601 кодирования, и кодированный поток изображения неосновного вида, генерируемый модулем 602 кодирования, для генерирования кодированного потока многопроекционного изображения.
Устройство 100 кодирования изображения (фиг. 10) может применяться в модуле 601 кодирования и в модуле 602 кодирования устройства 600 кодирования многопроекционного изображения. А именно, при кодировании каждого вида можно управлять пороговым значением, которое должно использоваться для выбора обработки фильтрации при прогнозирования внутри кадра, таким образом, что становится возможным предотвратить ухудшение качества изображения каждого вида. Кроме того, модуль 601 кодирования и модуль 602 могут кодирования выполнять управление и т.п. обработки фильтрации прогнозирования внутри кадра (а именно, могут совместно использовать флаг или параметр), используя одни и тот же флаг или параметр (например, пороговое значение, битовую глубину и т.п.), таким образом, что становится возможным подавить ухудшение эффективности кодирования.
Устройство декодирования многопроекционного изображения
На фиг. 39 показана схема, иллюстрирующая устройство декодирования многопроекционного изображения, которое выполняет описанное выше декодирование многопроекционного изображения. Как представлено на фиг. 39, устройство 610 декодирования многопроекционного изображения выполнено так, что оно включает в себя демультиплексор 611, модуль 612 декодирования и модуль 613 декодирования.
Демультиплексор 611 демультиплексирует кодированный поток многопроекционного изображения, где кодированный поток основного изображения и кодированный поток неосновного изображения мультиплексируют для выделения кодированного потока изображения основного вида и кодированного потока изображения неосновной вида. Модуль 612 декодирования декодирует кодированный поток изображения основного вида, выделенный демультиплексором 611, для получения изображения основное вида. Модуль 613 декодирования декодирует кодированный поток изображения неосновного вида, выделенный демультиплексором 611, для получения изображения неосновного вида.
Устройство 300 декодирования изображения (фиг. 23) может применяться в модуле 612 декодирования и в модуле 613 декодирования устройства 610 декодирования многопроекционного изображения. А именно, при декодировании каждого вида пороговым значением, которое должно использоваться для обработки фильтрации при прогнозировании внутри кадра, можно управлять таким образом, что становится возможным предотвратить ухудшение качества изображения каждого вида. Кроме того, модуль 612 декодирования и модуль 613 декодирования могут выполнять управление и т.п. обработки фильтрации при прогнозировании внутри кадра (а именно, могут совместно использоваться флаг или параметр), используя один и тот же флаг или параметр (например, пороговое значение, битовую глубину и т.п.), таким образом, что становится возможным предотвратить снижение эффективности кодирования.
4. Четвертый вариант осуществления
Применение при кодировании иерархического изображения/декодировании иерархического изображения>
Последовательность описанной выше обработки может применяться при кодировании иерархического изображения/декодировании иерархического изображения (масштабируемое кодирование/масштабируемое декодирование). На фиг. 40 иллюстрируется пример схемы кодирования иерархического изображения.
Кодирование иерархического изображения (масштабируемое кодирование) составляет изображение с множеством уровней (устанавливают иерархию для изображения) так, чтобы иметь функцию масштабируемости в отношении заданного параметра, и кодирует данные изображения для каждого уровня. Декодирование иерархического изображения представляет собой декодирование (масштабируемое декодирование), соответствующее кодированию иерархического изображения.
Как представлено на фиг. 40, при установлении иерархии изображения, одно изображение разделяют на множество изображений (уровней), используя заданный параметр, имеющий функцию масштабируемости, в качестве опорной функции. А именно, изображение с установленной иерархией (иерархическое изображение) включает в себя изображения множества иерархий (уровней), в которых значения заданного параметра являются разными. Множество уровней иерархического изображения включают в себя основной уровень, где кодирование/декодирование выполняют, используя только изображения своего собственного уровня, не используя изображения других уровней, и не основные уровни (иногда называются уровнями расширения), где кодирование/декодирование выполняют, используя изображения других уровней. В качестве не основного уровня может использоваться изображение основного уровня или могут использоваться изображения других не основных уровней.
В общем, не основной уровень выполнен с использованием данных (разностных данных) разностного изображения между его собственным изображением и изображением другого уровня таким образом, что уменьшается избыточность. Например, в случае, когда для одного изображения устанавливают иерархию в двух уровнях, таких как основной уровень и не основной уровень (иногда называется уровнем расширения), изображение, имеющее более низкое качество изображения, чем у исходного изображения, получают, используя только данные основного уровня, и исходное изображение (а именно, изображение высокого качества) получают в результате комбинирования данных основного уровня и данных не основного уровня.
Таким образом, используя иерархию изображения, становится возможным легко получать изображения, имеющие разные значения качества, в соответствии с ситуацией. Например, в отношении терминала, имеющего низкие возможности обработки, такого как мобильный телефон, передают информацию сжатия изображений только основного уровня, и воспроизводят движущееся изображение, имеющее низкое пространственное временное разрешение или имеющее плохое качество изображения, и в отношении терминала, имеющего высокие возможности обработки, такого как телевизор или персональный компьютер, передают информацию сжатия изображений для уровня расширения, в дополнение к основному уровню, и воспроизводят движущееся изображение, имеющее высокое пространственное временное разрешение или имеющее хорошее качество изображения. Поэтому, без выполнения обработки транскодирования, информация сжатия изображений может быть передана из сервера в соответствии с возможностью терминала или сети.
В случае кодирования/декодирования иерархического изображения, как представлено в примере на фиг. 40, кодируют/декодируют изображение каждого уровня. Однако, при кодировании/декодировании каждого уровня, могут применяться описанные выше способы первого и второго вариантов осуществления. Таким образом, становится возможным снизить ухудшение качества изображения каждого уровня.
Кроме того, при кодировании/декодировании каждого уровня, могут совместно использоваться флаги или параметры, используемые в описанных выше способах первого и второго вариантов осуществления. В результате, предотвращается передача избыточной информации, таким образом, что становится возможным уменьшить количество передаваемой информации (количество кода) (а именно, становится возможным предотвратить снижение эффективности кодирования).
Более конкретно, например, пороговое значение, которое используется для выбора обработки фильтрации для соседних пикселей текущего блока при прогнозировании внутри кадра, битовая глубина данных изображения, флаг изменения порогового значения, представляющий изменение порогового значения, и т.п. могут совместно использоваться при кодировании/декодировании каждого уровня.
Необходимая информация, кроме описанной выше информации, также может совместно использоваться при кодировании/декодировании каждого уровня.
Масштабируемый параметр
При кодировании иерархического изображения/декодировании иерархического изображения (масштабируемое кодирование/масштабируемое декодирование), параметр, имеющий функцию масштабирования, является произвольным. Например, пространственное разрешение, представленное на фиг. 41, можно использовать, как параметр (пространственная масштабируемость). В случае пространственной масштабируемости разрешение изображений уровней является разным. А именно, как представлено на фиг. 41, для каждого изображения устанавливают иерархию в двух уровнях, таких как основной уровень, имеющий более низкое пространственное разрешение, чем у исходного изображения, и уровень расширения, который комбинируют с изображением основного уровня для получения исходного изображения (исходное пространственное разрешение). Количество уровней установлено, как пример, и для каждого изображения может быть установлена иерархия с произвольным количеством уровней.
Кроме того, помимо этого, в качестве параметров, предусматривающих масштабируемость, например, можно применять временное разрешение, представленное на фиг. 42 (временная масштабируемость). В случае временной масштабируемости, частота кадров является разной для каждого из уровней. А именно, в этом случае, как представлено на фиг. 42, уровни, имеющие разные частоты кадров, получают в результате установления иерархии, и движущееся изображение, имеющее более высокую частоту кадров, получают в результате добавления уровня, имеющего высокую частоту кадров, к уровню, имеющему низкую частоту кадров, таким образом, что исходное движущееся изображение (исходная частота кадров) может быть получено путем суммирования всех уровней. Количество уровней представлено, как пример, и для каждого изображения может быть установлена иерархия с произвольным количеством уровней.
Кроме того, в качестве параметров, обеспечивающих масштабируемость, например, можно применять отношение "сигнал-шум" (SNR) (масштабируемость SNR). В случае масштабируемости SNR, отношение SN будет разным среди уровней. А именно, в этом случае, как представлено на фиг. 43, для каждого изображения устанавливают иерархию в двух уровнях, таких как основной уровень, имеющий более низкое значение SNR, чем у исходного изображения, и уровень расширения, имеющий исходное изображение (исходное SNR), полученное в результате комбинирования с основным уровнем. А именно, в отношении информации о сжатии изображений основного уровня, передают информацию с низким PSNR, и в результате добавления информации о сжатии изображений уровня расширения к описанной выше информации, может быть реконструировано изображение с более высоким PSNR. Количество уровней представлено в качестве примера, и для каждого изображения может быть установлена иерархия с произвольным количеством уровней.
Параметр, обеспечивающий масштабируемость, может представлять собой другой параметр, чем в описанном выше примере. Например, существует масштабируемость битовой глубины, где основной уровень составлен с 8-битовым изображением, и, в результате добавления уровня расширения к основному уровню, получают 10-битное изображение.
Кроме того, в случае масштабируемости цветности, где основной уровень выполнен как компонентное изображение в формате 4:2:0, и, в результате добавления уровня расширения к основному уровню, получают компонентное изображение в формате 4:2:2.
Устройство кодирования иерархического изображения
На фиг. 44 представлена схема, иллюстрирующая устройство кодирования иерархического изображения, которое выполняет описанное выше кодирование иерархического изображения. Как представлено на фиг. 44, устройство 620 кодирования иерархического изображения выполнено так, что оно включает в себя модуль 621 кодирования, модуль 622 кодирования и мультиплексор 623.
Модуль 621 кодирования кодирует изображение основного уровня, для генерирования кодированного потока изображения основного уровня. Модуль 622 кодирования кодирует изображение не основного уровня, для генерирования кодированного потока изображения не основного уровня. Мультиплексор 623 мультиплексирует кодированный поток изображения основного уровня, генерируемый модулем 621 кодирования, и кодированный поток изображения не основного уровня, генерируемый модулем 622 кодирования, для генерирования кодированного потока иерархического изображения.
Устройство 100 кодирования изображения (фиг. 10) может применяться в модуле 621 кодирования и в модуле 622 кодирования устройства 620 кодирования иерархического изображения. А именно, при кодировании каждого уровня, можно управлять пороговым значением, которое должно использоваться для выбора обработки фильтрации при прогнозировании внутри кадра, таким образом, что становится возможным предотвратить ухудшение качества изображения каждого уровня. Кроме того, модуль 621 кодирования и модуль 622 кодирования могут выполнять управление и т.п. обработки фильтрации при прогнозировании внутри кадра (а именно, могут совместно использоваться флаг или параметр) путем использования одного и того же флага или параметра (например, порогового значения, битовой глубины и т.п.), таким образом, что становится возможным предотвратить снижение эффективности кодирования.
Устройство декодирования иерархического изображения
На фиг. 45 показана схема, иллюстрирующая устройство декодирования иерархического изображения, которое выполняет описанное выше декодирование иерархического изображения. Как представлено на фиг. 45, устройство 630 декодирования иерархического изображения выполнено так, что оно включает в себя демультиплексор 631, модуль 632 декодирования и модуль 633 декодирования.
Демультиплексор 631 демультиплексирует кодированный поток иерархического изображения, где кодированный поток изображения основного уровня и кодированный поток изображения не основного уровня мультиплексируют для выделения кодированного потока изображения основного уровня и кодированного потока изображения не основного уровня. Модуль 632 декодирования декодирует кодированный поток изображения основного уровня, выделенный демультиплексором 631, для получения изображения основного уровня. Модуль 633 декодирования декодирует кодированный поток изображения не основного уровня, выделенный демультиплексором 631, для получения изображения не основного уровня.
Устройство 300 декодирования изображения (фиг. 23) может применяться в модуле 632 декодирования и в модуле 633 декодирования устройства 630 декодирования иерархического изображения. А именно, при декодировании каждого уровня можно управлять пороговым значением, которое должно использоваться для выбора обработки фильтрации при прогнозировании внутри кадра таким образом, что становится возможным предотвратить ухудшение качества изображения каждого уровня. Кроме того, модуль 612 декодирования и модуль 613 декодирования могут выполнять управление и т.п. обработки фильтрации прогнозирования внутри кадра (а именно, могут совместно использовать флаг или параметр), используя один и тот же флаг или параметр (например, пороговое значение, битовую глубину и т.п.), таким образом, что становится возможным предотвратить ухудшение эффективности кодирования.
Кроме того, настоящая технология может применяться в устройствах кодирования изображения и в устройствах декодирования изображения, которые используются во время приема информации изображения (битового потока), сжатой, используя ортогональное преобразование, такое как дискретное косинусное преобразование и компенсация движения, через сетевую среду передачи, такую как спутниковая широковещательная передача, кабельное телевидение, Интернет или мобильные телефоны, например, такие как MPEG, Н.26х и т.п. Кроме того, настоящая технология может применяться в устройствах кодирования изображения и в устройствах декодирования изображения, которые используются во время выполнения обработки на носителе информации, таком как оптический диск, магнитный диск и запоминающее устройство флэш. Кроме того, настоящая технология может применяться в устройствах квантования или в устройствах обратного квантования, включенных в устройства кодирования изображения, устройства декодирования изображения и т.п.
5. Пятый вариант осуществления
Компьютер
Последовательность описанной выше обработки может быть выполнена, используя аппаратные средства, или может быть выполнена с использованием программных средств. В случае, когда последовательность обработки выполняется с помощью программных средств, программу, составляющую программное средство, устанавливают в компьютер. Здесь компьютер включает в себя компьютер, который собран в специализированных аппаратных средствах, персональный компьютер общего назначения, в котором установлены различные программы для выполнения различных функций, и т.п.
На фиг. 46 показана блок-схема, иллюстрирующая пример основной конфигурации аппаратных средств компьютера, который выполняет последовательность описанной выше обработки с помощью программы.
В компьютере 800, представленном на фиг. 46, CPU (центральное процессорное устройство) 801, ROM (постоянное запоминающее устройство) 802 и RAM (оперативное запоминающее устройство) 803 соединены друг с другом через шину 804.
Интерфейс 810 ввода-вывода также соединен с шиной 804. Модуль 811 ввода, модуль 812 вывода, модуль 813 сохранения, модуль 814 связи и привод 815 соединены с интерфейсом 810 ввода/вывода.
Модуль 811 ввода выполнен, например, в виде клавиатуры, мыши, микрофона, сенсорной панели, порта ввода и т.п. Модуль 812 вывода выполнен на основе, например, дисплея, громкоговорителя, порта вывода и т.п. Модуль 813 сохранения выполнен, например, в виде жесткого диска, диска RAM, энергонезависимого запоминающего устройства и т.п. Модуль 814 связи выполнен, например, на основе сетевого интерфейса. Привод 815 выполняет привод съемного носителя 821 записи, такого как магнитный диск, оптический диск, оптический магнитный диск или полупроводниковое запоминающее устройство.
В компьютере, имеющем описанную выше конфигурацию, например, CPU 801 загружает программу, сохраненную в модуле 813 сохранения в RAM 803, через интерфейс 810 ввода-вывода и шину 804 и выполняет программу, таким образом, что последовательность описанной выше обработки выполняется. В RAM 803, соответственно, сохраняют данные и т.п., необходимые для CPU 801, для выполнения различной обработки.
Программа, исполняемая компьютером (CPU 801), может быть предоставлена таким образом, что программу записывают на съемный носитель 821 записи, например, пакетный носитель и т.п. Кроме того, программа может быть предоставлена через проводную или беспроводную среду связи, такую как локальная вычислительная сеть, Интернет или цифровая спутниковая широковещательная передача.
В компьютере съемный носитель 821 записи установлен в привод 815 таким образом, что программа может быть установлена в модуль 813 сохранения через интерфейс 810 ввода-вывода. Кроме того, программа может быть принята модулем 814 связи через проводную или беспроводную среду связи для установки в модуле 813 сохранения. В другом случае программа может быть заранее установлена в ROM 802 или в модуле 813 сохранения.
Кроме того, программа, выполняемая компьютером, может представлять собой программу, которая выполняет обработку во временной последовательности, в соответствии с процедурой, описанной в спецификации, или программа может представлять собой программу, которая выполняет обработку параллельно или в необходимые моменты времени, такие как момент времени, когда выполняется вызов.
Кроме того, в спецификации, этапы, описывающие программу, записанную на носителе записи, включают в себя обработку, которая выполняется в записанном порядке, и обработку, которая не обязательно выполняется во временной последовательности, но выполняется одновременно или независимо.
Кроме того, в спецификации, в системе обозначен набор множества компонентов (устройств, модулей (частей) и т.п.), независимо от того, все ли компоненты присутствуют в одном корпусе. Поэтому, как множество устройств, которые размещены в отдельных корпусах и соединены друг с другом через сеть, так и одно устройство, где множество модулей размещено в одном корпусе, представляют собой системы.
Кроме того, для конфигурации, описанной выше, как одно устройство (или модуль обработки), может быть разрешено ее разделять так, чтобы она была выполнена, как множество устройств (или модулей обработки). С другой стороны, для конфигураций, описанных выше, как множество устройств (или модулей обработки), может быть разрешено их собирать так, чтобы составить одно устройство (или модуль обработки). Кроме того, для каждого устройства (или каждого модуля обработки) может быть разрешено добавлять другую конфигурацию (конфигурации), помимо описанной выше конфигурации (конфигураций). Кроме того, если конфигурации или операции во всей системе, по существу, являются одинаковыми, для части конфигурации устройства (или модуля обработки) может быть разрешено ее включение в конфигурацию другого устройства (или модуля обработки).
В то время, как примерные варианты осуществления, раскрытые выше со ссылкой на приложенные чертежи, были описаны подробно, раскрытый технический объем не ограничен этим примером. Очевидно, что различные изменения или модификации могут быть выполнены в пределах объема технической сущности раскрытой в формуле изобретения, специалистом в раскрытой области техники, и следует отметить, что эти изменения или модификации включены в раскрытый технический объем.
Например, настоящая технология может быть выполнена в виде "облачной" вычислительной конфигурации, где разрешено совместно использовать одну функцию и совместно ее выполнять множеству устройств через сеть.
Кроме того, каждый этап, описанный в представленных выше блок-схемах последовательности операций, может совместно использоваться и может выполняться множеством устройств, вместо выполнения его одним устройством.
Кроме того, в случае, когда множество видов обработки включено в один этап, множество видов обработки, включенных в один этап, могут совместно использоваться, и могут выполняться множеством устройств, вместо их исполнения одним устройством.
Устройство кодирования изображения и устройство декодирования изображения, в соответствии с описанными выше вариантами осуществления, можно применять в различных электронных устройствах, например, в передатчике или в приемнике при спутниковой широковещательной передаче, при кабельной широковещательной передаче, такой как кабельное телевидение, при предоставлении Интернет, или при предоставлении в терминал через сотовую передачу данных, устройство записи, которое записывает изображение на носитель записи, такой как оптический диск, магнитный диск, запоминающее устройство флэш и т.п., или устройство воспроизведения, которое воспроизводит изображение с этих носителей записи. Ниже будут описаны четыре примера применения.
6. Пример применения
Первый пример применения: телевизионный приемник
На фиг. 47 иллюстрируется пример схематичной конфигурации телевизионного устройства, в котором применяются описанные выше варианты осуществления. Телевизионное устройство 900 выполнено так, что оно включает в себя антенну 901, тюнер 902, демультиплексор 903, декодер 904, модуль 905 обработки видеосигнала, модуль 906 отображения, модуль 907 обработки аудиосигнала, громкоговоритель 908, внешний интерфейс 909, модуль 910 управления, интерфейс 911 пользователя и шину 912.
Тюнер 902 выделяет сигнал требуемого канала из сигнала широковещательной передачи, принятого через антенну 901, и, демодулирует выделенный сигнал. Затем тюнер 902 выводит кодированный поток битов, полученный в результате демодуляции, в демультиплексор 903. А именно, тюнер 902 имеет функцию модуля передачи в телевизионном устройстве 900, которое принимает кодированный поток, где кодировано изображение.
Демультиплексор 903 выделяет видеопоток и аудиопоток программы для просмотра из кодированного битового потока и выводит выделенные потоки в декодер 904. Кроме того, демультиплексор 903 выделяет вспомогательные данные, такие как EPG (электронная программа передач), из кодированного потока битов и подает выделенные данные в модуль 910 управления. Кроме того, в случае, когда кодированный поток битов скремблирован, демультиплексор 903 может выполнять дескремблирование.
Декодер 904 декодирует видеопоток и аудиопоток, вводимые из демультиплексора 903. Затем декодер 904 выводит видеоданные, сгенерированные в результате обработки декодирования, в модуль 905 обработки видеосигнала. Кроме того, декодер 904 выводит аудиоданные, сгенерированные в результате обработки декодирования, в модуль 907 обработки аудиосигнала.
Модуль 905 обработки видеосигнала воспроизводит видеоданные, вводимые из декодера 904, для отображения видеоизображения в модуле 906 отображения. Кроме того, модуль 905 обработки видеосигнала может отображать экран приложения, передаваемый через сеть, в модуль 906 отображения. Кроме того, модуль 905 обработки видеосигнала может выполнять дополнительную обработку, такую как удаление шумов в видеоданных, в соответствии с установкой. Кроме того, модуль 905 обработки видеосигнала может генерировать изображение GUI (графический интерфейс пользователя), такое как меню, кнопка или курсор, и накладывать сгенерированное изображение на выходное изображение.
Модулем 906 отображения управляют, используя сигнал управления, подаваемый из модуля 905 обработки видеосигнала, для отображения видеоизображения или изображения на видеоэкране устройства отображения (например, жидкокристаллического дисплея, плазменного дисплея, OELD (органический электролюминесцентный дисплей) (дисплей органической EL) и т.п.).
Модуль 907 обработки аудиосигнала выполняет обработку воспроизведения, такую как D/A преобразование и усиление аудиоданных, вводимых из декодера 904, для обеспечения возможности вывода звука через громкоговоритель 908. Кроме того, модуль 907 обработки аудиосигнала может выполнять дополнительную обработку, такую удаление шумов из аудиоданных.
Внешний интерфейс 909 представляет собой интерфейс для соединения телевизионного устройства 900 с внешним устройством или сетью. Например, видеопоток и аудиопоток, принятые через внешний интерфейс 909, могут быть декодированы с помощью декодера 904. А именно, внешний интерфейс 909 также имеет функцию модуля передачи в телевизионном устройстве 900, которое принимает кодированный поток, где изображение кодируют.
Модуль 910 управления выполнен так, что он включает в себя процессоры CPU и т.п., и запоминающие устройства, такие как RAM и ROM. В запоминающих устройствах содержатся программы, исполняемые CPU, данные программы, данные EPG, данные, полученные через сеть, и т.п. Программу, сохраненную в запоминающем устройстве, считывают и выполняют с помощью CPU, например, во время включения телевизионного устройства 900. CPU выполняет программу для управления операциями телевизионного устройства 900, например, в соответствии с сигналом манипуляции, вводимым из интерфейса 911 пользователя.
Интерфейс 911 пользователя соединен с модулем 910 управления. Интерфейс 911 пользователя выполнен так, что он включает в себя, например, кнопки и переключатели для пользователя, для выполнения манипуляций с телевизионным устройством 900, модуль приема для сигнала дистанционного управления и т.п. Интерфейс 911 пользователя обнаруживает манипуляции пользователя через эти компоненты для генерирования сигнала манипуляций, и выводит сгенерированный сигнал манипуляции в модуль 910 управления.
Шина 912 соединяет тюнер 902, демультиплексор 903, декодер 904, модуль 905 обработки видеосигнала, модуль 907 обработки аудиосигнала, внешний интерфейс 909 и модуль 910 управления друг с другом.
В телевизионном устройстве 900, имеющем описанную выше конфигурацию, декодер 904 имеет функцию устройства 300 декодирования изображения (фиг. 23), в соответствии с описанными выше вариантами осуществления. Поэтому, при декодировании изображения в телевизионном устройстве 900, возможно предотвратить ухудшение качества изображения.
Второй пример применения: мобильный телефон
На фиг. 48 представлена схематическая конфигурация примера мобильного телефона, в котором используется описанный выше вариант осуществления. Мобильный телефон 920 выполнен так, что он включает в себя антенну 921, модуль 922 связи, аудиокодек 923, громкоговоритель 924, микрофон 925, модуль 926 камеры, модуль 927 обработки изображения, модуль 928 мультиплексирования/разделения, модуль 929 записи/воспроизведения, модуль 930 отображения, модуль 931 управления, модуль 932 манипуляций и шину 933.
Антенна 921 соединена с модулем 922 связи. Громкоговоритель 924 и микрофон 925 соединены с аудиокодеком 923. Модуль 932 манипуляций соединен с модулем 931 управления. Шина 933 соединяет модуль 922 передачи данных, аудиокодек 923, модуль 926 камеры, модуль 927 обработки изображения, модуль 928 мультиплексирования/разделения, модуль 929 записи/воспроизведения, модуль 930 отображения и модуль 931 управления друг с другом.
Мобильный телефон 920 выполняет операции передачи и приема аудиосигнала, передачи и приема электронной почты или данных изображения, съемки изображения и записи данных, и т.п. в различных режимах операций, включающих в себя режим голосового вызова, режим связи, режим формирования изображения и режим видеотелефона.
В режиме голосового вызова аналоговый аудиосигнал, генерируемый микрофоном 925, подают в аудиокодек 923. Аудиокодек 923 преобразует аналоговый аудиосигнал в аудиоданные и выполняет A/D-преобразование, и сжимает преобразованные аудиоданные. Затем аудиокодек 923 выводит сжатые аудиоданные в модуль 922 связи. Модуль 922 связи кодирует и модулирует аудиоданные для генерирования сигнала передачи. Затем модуль 922 связи передает сгенерированный сигнал связи в базовую станцию (не показана) через антенну 921. Кроме того, модуль 922 связи усиливает и выполняет преобразование частоты для беспроводного сигнала, принятого через антенну 921, для получения принимаемого сигнала. Затем модуль 922 связи демодулирует и декодирует принимаемый сигнал для генерирования аудиоданных и выводит сгенерированные аудиоданные в аудиокодек 923. Аудиокодек 923 разворачивает и выполняет D/A-преобразование аудиоданных для генерирования аналогового аудиосигнала. Затем аудиокодек 923 подает сгенерированный аудиосигнал в громкоговоритель 924, таким образом, что выводится звук.
Кроме того, в режиме связи, например, модуль 931 управления генерирует данные знака, составляющие электронную почту, в соответствии с манипуляцией пользователя через модуль 932 манипуляций. Кроме того, модуль 931 управления отображает знаки в модуле 930 отображения. Кроме того, модуль 931 управления генерирует данные электронной почты в соответствии с командой передачи от пользователя через модуль 932 манипуляций, и выводит сгенерированные данные электронной почты в модуль 922 связи. Модуль 922 связи кодирует и модулирует данные электронной почты для генерирования сигнала передачи. Затем модуль 922 связи передает сгенерированный сигнал передачи через антенну 921 в базовую станцию (не показана). Кроме того, модуль 922 связи усиливает и выполняет преобразование по частоте беспроводного сигнала, принятого через антенну 921, для получения сигнала приема. Затем модуль 922 связи демодулирует и декодирует сигнал приема для восстановления данных электронной почты и выводит принятые данные электронной почты в модуль 931 управления. Модуль 931 управления обеспечивает возможность для модуля 930 отображения отображать содержание электронной почты и сохранять данные электронной почты на носителе сохранения модуля 929 записи/воспроизведения.
Модуль 929 записи/воспроизведения выполнен на основе произвольного носителя сохранения с возможностью считывания/записи. Например, носитель сохранения может представлять собой носитель сохранения встроенного типа, такой как RAM или запоминающее устройство флэш, и может представлять собой внешний носитель присоединяемого типа, такой как жесткий диск, магнитный диск, оптический магнитный диск, оптический диск, запоминающее устройство USB (универсальная последовательная шина) или карта памяти.
Кроме того, в режиме формирования изображения, например, модуль 926 камеры снимает изображение объекта для генерирования данных изображения, и выводит сгенерированные данные изображения в модуль 927 обработки изображения. Модуль 927 обработки изображения кодирует данные изображения, вводимые из модуля 926 камеры, и сохраняет кодированный поток на носителе сохранения модуля 929 сохранения/воспроизведения.
Кроме того, в режиме видеотелефона модуль 928 мультиплексирования/разделения мультиплексирует видеопоток, который кодирует модуль 927 обработки изображения, и аудиопоток, который поступает из аудиокодека 923, и выводит мультиплексированный поток в модуль 922 связи. Модуль 922 связи кодирует и модулирует поток, для генерирования сигнала передачи. Затем модуль 922 связи передает сгенерированный сигнал передачи через антенну 921 в базовую станцию (не показана). Кроме того, модуль 922 связи усиливает и выполняет преобразование частоты беспроводного сигнала, принимаемого через антенну 921, для получения принимаемого сигнала. Передуваемый сигнал и принимаемый сигнал включены в кодированный поток битов. Затем модуль 922 связи декодирует и демодулирует сигнал приема для восстановления потока и выводит восстановленный поток в модуль 928 мультиплексирования/разделения. Модуль 928 мультиплексирования/разделения отделяет видеопоток и аудиопоток от входного потока, и выводит видеопоток и аудиопоток в модуль 927 обработки изображения и аудиокодек 923, соответственно. Модуль 927 обработки изображения декодирует видеопоток для генерирования видеоданных. Видеоданные подают в модуль 930 отображения, таким образом, что последовательность изображений отображается в модуле 930 отображения. Аудиокодек 923 разворачивает и выполняет D/A-преобразование аудиопотока, для генерирования аналогового аудиосигнала. Затем аудиокодек 923 подает сгенерированный аудиосигнал в громкоговоритель 924 для вывода звука.
В мобильном телефоне 920, имеющем описанную выше конфигурацию, модуль 927 обработки изображения имеет функции устройства 100 кодирования изображения (фиг. 10) и устройства 300 декодирования изображения (фиг. 23), в соответствии с описанными выше вариантами осуществления. Поэтому, при кодировании и декодировании изображения в мобильном телефоне 920, становится возможным предотвратить ухудшение качества изображения.
Третий пример применения: устройство записи/воспроизведения
На фиг. 49 представлен пример схематичной конфигурации устройства записи/воспроизведения, в котором используется описанный выше вариант осуществления. Устройство 940 записи/воспроизведения кодирует аудиоданные и видеоданные, например, принятую программу широковещательной передачи, для записи кодированных данных на носителе записи. Кроме того, устройство 940 записи/воспроизведения может кодировать аудиоданные и видеоданные, например, полученные из других устройств, для записи кодированных данных на носителе записи. Кроме того, устройство 940 записи/воспроизведения воспроизводит данные, записанные на носителе записи, на мониторе или громкоговорителе, например, в соответствии с командой пользователя. В это время устройство 940 записи/воспроизведения декодирует аудиоданные и видеоданные.
Устройство 940 записи/воспроизведения выполнено так, что оно включает в себя тюнер 941, внешний интерфейс 942, кодер 943, HDD (привод жесткого диска) 944, привод 945 диска, селектор 946, декодер 947, OSD (модуль отображения на экране) 948, модуль 949 управления и интерфейс 950 пользователя.
Тюнер 941 выделяет сигнал требуемого канала из сигнала широковещательной передачи, принятого через антенну (не показана), и демодулирует выделенный сигнал. Затем тюнер 941 выводит кодированный поток битов, полученный в результате демодуляции, в селектор 946. А именно, тюнер 941 имеет функцию модуля передачи в устройстве 940 записи/воспроизведения.
Внешний интерфейс 942 представляет собой интерфейс для подключения устройства 940 записи/воспроизведения к внешнему устройству или сети. Внешний интерфейс 942 может представлять собой, например, интерфейс IEEE 1394, сетевой интерфейс, интерфейс USB, интерфейс запоминающего устройства флэш и т.п. Например, видеоданные и аудиоданные, принятые через внешний интерфейс 942, вводят в кодер 943. А именно, внешний интерфейс 942 имеет функцию модуля передачи в устройстве 940 записи/воспроизведения.
В случае, когда видеоданные и аудиоданные, подаваемые из внешнего интерфейса 942, не кодированы, кодер 943 кодирует видеоданные и аудиоданные. Затем кодер 943 выводит кодированный поток битов в селектор 946.
HDD 944 записывает кодированный поток битов, где сжаты данные содержания, такие как видеоданные, аудиоданные и т.п., различные программы и другие данные, на встроенный жесткий диск. Кроме того, во время воспроизведения видеоданных и аудиоданных, HDD 944 считывает эти данные с жесткого диска.
Привод 945 жесткого диска выполняет запись данных и считывание данных на установленный носитель записи. Носитель записи, установленный в приводе 945 диска, может, например, представлять собой диск DVD (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW и т.п.), диск Blu-ray (зарегистрированный товарный знак) и т.п.
Во время записи видеоданных и аудиоданных, селектор 946 выбирает кодированный поток битов, вводимый из тюнера 941, или из кодера 943, и выводит выбранный кодированный поток битов в HDD 944 или в привод 945 диска. Кроме того, во время воспроизведения видеоданных и аудиоданных, селектор 946 выводит кодированный поток битов, подаваемый из HDD 944 или из привода 945 диска, в декодер 947.
Декодер 947 декодирует кодированный поток битов, для генерирования видеоданных и аудиоданных. Затем декодер 947 выводит сгенерированные видеоданные в OSD 948. Кроме того, декодер 947 выводит сгенерированные аудиоданные во внешний громкоговоритель.
OSD 948 воспроизводит видеоданные, введенные из декодера 947, для отображения видеоизображения. Кроме того, OSD 948 может накладывать изображение GUI, такое как меню, кнопка или курсор, на отображаемое видеоизображение.
Модуль 949 управления выполнен так, что он включает в себя процессоры CPU и т.п., и запоминающие устройства, такие как RAM и ROM. В запоминающих устройствах содержатся программы, выполняемые CPU, данные программы и т.п. Программу, сохраняемую в запоминающем устройстве, считывают и выполняют с помощью CPU, например, во время запуска устройства 940 записи/воспроизведения. CPU выполняет программу для управления операциями устройства 940 записи/воспроизведения, например, в соответствии с сигналом манипуляции, вводимым из интерфейса 950 пользователя.
Интерфейс 950 пользователя соединен с модулем 949 управления. Интерфейс 950 пользователя выполнен так, что он включает в себя, например, кнопки и переключатели для пользователя, для манипуляции с устройством 940 записи/воспроизведения, и модуль приема для сигнала дистанционного управления и т.п. Интерфейс 950 пользователя обнаруживает манипуляции пользователя через эти компоненты для генерирования сигнала манипуляций и выводит сгенерированный сигнал манипуляций в модуль 949 управления.
В устройстве 940 записи/воспроизведения, которое имеет описанную выше конфигурацию, кодер 943 имеет функцию устройства 100 кодирования изображения (фиг. 10) в соответствии с описанными выше вариантами осуществления. Кроме того, декодер 947 имеет функцию устройства 300 декодирования изображения (фиг. 23), в соответствии с описанными выше вариантами осуществления. Поэтому, при кодировании и декодировании изображения в устройстве 940 записи/воспроизведения, возможно предотвращать ухудшение качества изображения.
Четвертый пример применения: устройство формирования изображения
На фиг. 50 представлен пример схематичной конфигурации устройства формирования изображения, в котором используется описанный выше вариант осуществления. Устройство 960 формирования изображения снимает изображение объекта для генерирования изображения, кодирует данные изображения, и записывает данные изображения на носитель записи.
Устройство 960 формирования изображения выполнено так, что оно включает в себя оптический блок 961, модуль 962 формирования изображения, модуль 963 обработки сигналов, модуль 964 обработки изображения, модуль 965 отображения, внешний интерфейс 966, запоминающее устройство 967, привод 968 носителя записи, OSD 969, модуль 970 управления, интерфейс 971 пользователя и шину 972.
Оптический блок 961 соединен с модулем 962 формирования изображения. Модуль 962 формирования изображения соединен с модулем 963 обработки сигналов. Модуль 965 отображения соединен с модулем 964 обработки изображения. Интерфейс 971 пользователя соединен с модулем 970 управления. Шина 972 соединяет модуль 964 обработки изображения, внешний интерфейс 966, запоминающее устройство 967, привод 968 носителя записи, OSD 969 и модуль 970 управления друг с другом.
Оптический блок 961 выполнен так, что он включает в себя линзу фокусирования, механизм диафрагмы и т.п. Оптический блок 961 фокусирует оптическое изображение объекта в плоскости изображения модуля 962 формирования изображения. Модуль 962 формирования изображения выполнен с использованием датчика изображения, такого как CCD (прибор с зарядовой связью) или CMOS (комплементарный металлооксидный полупроводник), и преобразует оптическое изображение, сфокусированное в плоскости формирования изображения, в сигнал изображения, как электрический сигнал, через фотоэлектрическое преобразование. Затем модуль 962 формирования изображения выводит сигнал изображения в модуль 963 обработки сигналов.
Модуль 963 обработки сигналов выполняет различную обработку сигнала камеры, такую как коррекция изгиба характеристики передачи уровня яркости, гамма-коррекция, коррекция цвета для сигнала изображения, вводимого из модуля 962 формирования изображения. Модуль 963 обработки сигналов выводит данные изображения, после обработки сигнала в камере, в модуль 964 обработки изображения.
Модуль 964 обработки изображения кодирует данные изображения, вводимые из модуля 963 обработки сигналов, для генерирования кодированных данных. Затем модуль 964 обработки изображения выводит сгенерированные кодированные данные во внешний интерфейс 966 или в привод 968 носителя записи. Кроме того, модуль 964 обработки изображения декодирует кодированные данные, вводимые из внешнего интерфейса 966, или с носителя 968 записи, для генерирования данных изображения. Затем модуль 964 обработки изображения выводит сгенерированные данные изображения в модуль 965 отображения. Кроме того, модуль 964 обработки изображения выводит данные изображения, вводимые из модуля 963 обработки сигналов, в модуль 965 отображения таким образом, что изображение отображается. Кроме того, модуль 964 обработки изображения может накладывать данные для отображения, полученные из OSD 969, на изображение, выводимое в модуль 965 отображения.
OSD 969 генерирует изображение GUI, такое как меню, кнопка или курсор, и выводит сгенерированное изображение в модуль 964 обработки изображения.
Внешний интерфейс 966 выполнен, например, с портом ввода-вывода USB. Например, во время печати изображения, внешний интерфейс 966 соединяет устройство 960 формирования изображения с принтером. Кроме того, если необходимо, привод соединяют с внешним интерфейсом 966. Например, съемный носитель записи, такой как магнитный диск или оптический диск, устанавливают в привод, и программы, считываемые со съемного носителя записи, устанавливают в устройстве 960 формирования изображения. Кроме того, внешний интерфейс 966 может быть выполнен с сетевым интерфейсом, соединенным с сетью, такой как LAN или Интернет. А именно, внешний интерфейс 966 имеет функцию модуля передачи в устройстве 960 формирования изображения.
Носитель записи, установленный в приводе 968 носителя записи, может, например, представлять собой произвольный съемный носитель с возможностью считывания/записи, такой как магнитный диск, оптический магнитный диск, оптический диск или полупроводниковое запоминающее устройство. Кроме того, носитель записи постоянно установлен в приводе 968 носителя записи, и носитель записи может быть выполнен, например, как стационарный носитель записи, такой как встроенный привод жесткого диска или привод твердотельного устройства (SSD).
Модуль 970 управления выполнен так, что он включает в себя процессоры CPU и т.п., и запоминающие устройства, такие как RAM и ROM. В запоминающих устройствах содержатся программы, выполняемые CPU, данные программы и т.п. Программу, сохраненную в запоминающем устройстве, считывают и выполняют с помощью CPU, например, во время запуска устройства 960 формирования изображения. CPU выполняет программу, для управления операциями устройства 960 формирования изображения, например, в соответствии с сигналом манипуляций, вводимым из интерфейса 971 пользователя.
Интерфейс 971 пользователя соединен с модулем 970 управления. Интерфейс 971 пользователя выполнен так, что он включает в себя, например, кнопки и переключатели для пользователя, для манипуляций устройством 960 формирования изображения. Интерфейс 971 пользователя обнаруживает манипуляции пользователя через эти компоненты для генерирования сигнала манипуляций и выводит сгенерированный сигнал манипуляций в модуль 970 управления.
В устройстве 960 формирования изображения, имеющем описанную выше конфигурацию, модуль 964 обработки изображения имеет функции устройства 100 кодирования изображения (фиг. 10) и устройства 300 декодирования изображения (фиг. 23), в соответствии с описанными выше вариантами осуществления. Поэтому, при кодировании и декодировании изображения в устройстве 960 формирования изображения, становится возможным предотвращать ухудшение качества изображения.
7. Пример применения масштабируемого кодирования
Первая система
Далее будет описан конкретный пример использования масштабируемых кодированных данных, которые были кодированы с масштабированием (иерархически кодированы, как иерархическое (изображение)). Например, как в примере, представленном на фиг. 51, масштабируемое кодирование используется для выбора данных, которые предназначены для передачи.
В системе 1000 связи, которая представлена на фиг. 51, сервер 1002 распределения считывает масштабируемые кодируемые данные, сохраненные в модуле 1001 сохранения масштабируемых кодированных данных, и распределяет масштабируемые кодированные данные в термальные устройства, такие как персональный компьютер 1004, AV устройство 1005, планшетное устройство 1006 и мобильный телефон 1007, через сеть 1003.
В это время сервер 1002 распределения выбирает и передает кодированные данные, имеющие соответствующее качество, в соответствии с возможностями терминального устройства, средой связи и т.п. Хотя сервер 1002 распределения не обязательно передает данные, имеющие высокое качество, изображение с высоким качеством изображения не обязательно получают в терминальном устройстве, и возможен случай возникновения задержки или переполнения. Кроме того, полоса пропускания может быть излишне занята, или нагрузка на терминальные устройства может быть излишне повышена. С другой стороны, хотя сервер 1002 распределения не обязательно передает данные, имеющие низкое качество, возможно, что изображение, имеющее достаточное качество изображения, не может быть получено в устройстве терминала. Поэтому, сервер 1002 распределения, соответственно, считывает масштабируемые кодированные данные, сохраненные в модуле 1001 сохранения масштабируемых кодированных данных, как кодированные данные, имеющие качество, соответствующее возможностям терминального устройства, среды связи и т.п., и передает кодированные данные.
Например, модуль 1001 сохранения масштабируемых кодированных данных сохраняет масштабируемые кодированные данные (BL+EL) 1011, которые были кодированы с масштабированием. Масштабируемые кодированные данные (BL+EL) 1011 представляют собой кодированные данные, включающие в себя, как основной уровень, так и уровень расширения, и данные, из которых, как изображения основного уровня, так и изображения уровня расширения получают в результате декодирования.
Сервер 1002 распределения выбирает соответствующий уровень, в соответствии с возможностями терминального устройства, которое передает данные, средой связи и т.п., и считывает данные уровня. Например, что касается персонального компьютера 1004 или планшетного устройства 1006, имеющего высокие возможности обработки, сервер 1002 распределения считывает масштабируемые кодированные данные (BL+EL) 1011, имеющие высокое качество, из модуля 1001 сохранения масштабируемых кодированных данных, и передает масштабируемые кодированные данные (BL+EL) 1011 без изменения. С другой стороны, например, что касается AV устройства 1005 или мобильного телефона 1007, имеющего низкие возможности обработки, сервер 1002 распределения выделяет данные основного уровня из масштабируемых кодированных данных (BL+EL) 1011 и передает масштабируемые кодированные данные (BL) 1012, имеющие качество, которое ниже, чем у масштабируемых кодированных данных (BL+EL) 1011, хотя масштабируемые кодированные данные (BL) 1012 имеют то же содержание, что и у масштабируемых кодированных данных (BL+EL) 1011.
Поскольку масштабируемые кодированные данные используются таким образом, что становится возможным легко регулировать количество данных, становится возможным предотвратить возникновение задержки или предотвратить ненужное увеличение нагрузки устройства терминала или в среде передачи данных. Кроме того, в масштабируемых кодированных данных (BL+EL) 1011, поскольку избыточность между уровнями уменьшается, становится возможным уменьшить количество данных, по сравнению со случаем, когда кодированные данные каждого уровня обрабатывают, как индивидуальные данные. Поэтому, становится возможным эффективно использовать область сохранения модуля 1001 сохранения масштабируемых кодированных данных.
Кроме того, аналогично персональному компьютеру 1004 или мобильному телефону 1007, поскольку различные устройства могут применяться в терминальном устройстве, характеристики аппаратных средств терминального устройства отличаются между устройствами. Кроме того, поскольку различные варианты осуществления могут исполняться терминальным устройством, возможности программных средств также будут разными. Кроме того, хотя любая сеть связи, включающая в себя проводную сеть связи, беспроводную сеть связи или обе такие сети, как Интернет или локальная вычислительная сеть (LAN), могут применяться в сети 1003, которая представляет собой среду связи, возможности передачи данных будут разными. Кроме того, возможности передачи данных могут изменяться в соответствии с другими передачами данных и т.п.
Поэтому, перед началом передачи данных, сервер 1002 распределения может выполнять связь с терминальным устройством, которое представляет собой место назначения передачи данных для информации о возможностях терминального устройства, таких как рабочая характеристика аппаратных средств терминального устройства или рабочая характеристика приложений (программного обеспечения), выполняемого терминальным устройством, и в соответствии с информацией о среде связи, такой как доступная полоса пропускания сети 1003. Далее сервер 1002 распределения может выбирать соответствующий уровень на основе информации, полученной выше.
Кроме того, выделение уровня может выполняться в терминальном устройстве. Например, персональный компьютер 1004 может декодировать передаваемые масштабируемые кодированные данные (BL+EL) 1011, для отображения изображения основного уровня или для отображения изображения уровня расширения. Кроме того, например, персональный компьютер 1004 может выделять масштабируемые кодированные данные (BL) 1012 основного уровня из переданных масштабируемых кодированных данных (BL+EL) 1011 для сохранения масштабируемых кодированных данных (BL) 1012, для передачи масштабируемых кодированных данных (BL) 1012 в другое устройство или для декодирования масштабируемых кодированных данных (BL) 1012 для отображения изображения основного уровня.
Конечно, количество модулей 1001 сохранения масштабируемых кодированных данных, количество серверов 1002 распределения, количество сетей 1003 и количество терминальных устройств является произвольным. Кроме того, хотя пример, где сервер 1002 распределения передает данные в терминальное устройство, был описан выше, примеры использования не ограничены этим. Система 1000 связи может применяться для произвольной системы, которая выбирает соответствующий уровень в соответствии с возможностями терминального устройства, средой связи и т.п., и выполняет передачу, когда система 1000 связи передает масштабируемые кодированные данные в терминальное устройство.
В описанной выше системе 1000 связи, представленной на фиг. 51, в результате применения настоящей технологии, аналогично применению при иерархическом кодировании/иерархическом декодировании, описанном выше со ссылкой на фиг. 40-45, становится возможным получить те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 40-45.
Вторая система
В дополнение к примеру, такому, как пример, представленный на фиг. 52, масштабируемое кодирование используется для передачи через множество сред связи.
В системе 1100 связи, представленной на фиг. 52, станция 1101 широковещательной передачи передает масштабируемые кодированные данные (BL) 1121 основного уровня, используя наземную широковещательную передачу 1111. Кроме того, станция 1101 широковещательной передачи передает масштабируемые кодированные данные (EL) 1122 уровня расширения через произвольную сеть 1112, выполненную, как кабельная сеть связи, беспроводная сеть связи, или используя оба этих подхода (например, передает данные, сформированные в пакеты).
Терминальное устройство 1102 имеет функцию приема наземной широковещательной передачи 1111, которую выполняют с помощью станции 1101 широковещательной передачи для приема масштабируемых кодированных данных (BL) 1121 основного уровня, передаваемых через наземную широковещательную передачу 1111. Кроме того, терминальное устройство 1102, дополнительно имеет функцию связи, которая состоит в воплощении передачи данных через сеть 1112 для приема масштабируемых кодированных данных (EL) 1122 уровня расширения, передаваемых через сеть 1112.
Терминальное устройство 1102 получает изображение основного уровня в результате декодирования масштабируемых кодированных данных (BL) 1121 основного уровня, полученных через наземную широковещательную передачу 1111, сохраняет данные или передает данные, например, в соответствии с инструкцией пользователя и т.п.
Кроме того, терминальное устройство 1102 получает масштабируемые кодированные данные (BL+EL) в результате комбинирования масштабируемых кодированных данных (BL) 1121 основного уровня, полученных через наземную широковещательную передачу 1111, и масштабируемых кодированных данных (EL) 1122 уровня расширения, полученных через сеть 1112, получает изображение уровня расширения в результате декодирования данных, сохраняет данные или передает эти данные в другие устройства, например, в соответствии с инструкцией пользователя и т.п.
Таким образом, масштабируемые кодированные данные могут быть переданы, например, через разные среды связи для каждого уровня. Поэтому, становится возможным распределять нагрузку так, что становится возможным предотвратить возникновение задержки или переполнения.
Кроме того, среда связи, используемая для передачи, может быть выбрана для каждого уровня, в соответствии с ситуацией. Например, масштабируемые кодированные данные (BL) 1121 основного уровня, которые имеют относительно большое количество данных, могут быть переданы через среду связи, имеющую широкую полосу пропускания, и масштабируемые кодированные данные (EL) 1122 уровня расширения, которые имеют относительно малое количество данных, могут быть переданы через среду передачи данных, имеющую узкую полосу пропускания. Кроме того, например, среда передачи данных, через которую должны быть переданы масштабируемые кодированные данные (EL) 1122 уровня расширения, может переключаться между сетью 1112 и наземной широковещательной передачей 1111, в соответствии с доступной полосой пропускания сети 1112. Конечно, то же применяется к данным произвольного уровня.
В результате выполняемого таким образом управления, становится возможным дополнительно предотвратить увеличение нагрузки при передаче данных.
Конечно, количество уровней является произвольным, и количество сред связи, используемых для передачи, также является произвольным. Кроме того, количество терминальных устройств 1102, которые представляют собой места назначения при распределении данных, также является произвольным. Кроме того, пример широковещательной передачи из станции 1101 широковещательной передачи описан выше. Однако пример использования не ограничен этим. Система 1100 связи может применяться в произвольной системе, которая разделяет масштабируемые кодированные данные на множество данных в единицах уровня и передает эти данные через множество линий связи.
В описанной выше системе 1100 связи, которая показана на фиг. 52, в результате применения настоящей технологии, аналогично применению иерархического кодирования/иерархического декодирования, описанного выше со ссылкой на фиг. 40-45, становится возможным получить те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 40-45.
Третья система
Кроме того, например, аналогично примеру, представленному на фиг. 53, масштабируемое кодирование используется для сохранения кодированных данных.
В системе 1200 формирования изображений, представленной на фиг. 53, устройство 1201 формирования изображения выполняет масштабируемое кодирование для данных изображения, полученных в результате съемки изображения объекта 1211, и подает эти данные, как масштабируемые кодированные данные (BL+EL) 1221, в устройство 1202 сохранения масштабируемых кодированных данных.
Устройство 1202 сохранения масштабируемых кодированных данных сохраняет масштабируемые кодированные данные (BL+EL) 1221, передаваемые из устройства 1201 формирования изображения, с качеством, которое соответствует ситуации. Например, в случае нормального периода, устройство 1202 сохранения масштабируемых кодированных данных выделяет данные основного уровня из масштабируемых кодированных данных (BL+EL) 1221 и сохраняет эти данные, как масштабируемые кодированные данные (BL) 1222 основного уровня, имеющие малый объем данных с низким качеством. С другой стороны, например, в случае периода повышенного внимания, устройство 1202 сохранения масштабируемых кодированных данных сохраняет масштабируемые кодированные данные (BL+EL) 1221, имеющие большое количество данных с высоким качеством.
В результате, устройство 1202 сохранения масштабируемых кодированных данных может сохранять изображение с высоким качеством изображения, только если необходимо. Поэтому, становится возможным исключить увеличение количества данных при предотвращении снижения значения изображения в результате ухудшения качества изображения, и становится возможным улучшить эффективность использования области сохранения.
Например, устройство 1201 формирования изображения представляет собой камеру наблюдения. В случае, когда цель наблюдения (например, злоумышленник) не появляется в снятом изображении (в случае нормального периода), поскольку высока вероятность того, что содержание снятого изображения не будет важным, приоритет предоставляют уменьшению количества данных, и данные изображения (масштабируемые кодированные данные) сохраняют с низким качеством. С другой стороны, в случае, когда цель наблюдения появляется, как объект 1211 в снятом изображении (в случае периода повышенного внимания), поскольку высока вероятность того, что содержание снятого изображения будет важным, качеству изображения предоставляют приоритет, и данные изображения (масштабируемые кодированные данные) сохраняют с высоким качеством.
Кроме того, определение, является ли ситуация нормальным периодом или периодом повышенного внимания, может быть выполнено, например, устройством 1202 масштабируемых кодированных данных, которое анализирует изображение. Кроме того, определение может быть выполнено устройством 1201 формирования изображения, и результат определения может быть передан в устройство 1202 сохранения масштабируемых кодированных данных.
Кроме того, критерий определения, является ли ситуация нормальным периодом или периодом повышенного внимания, является произвольным, и содержание изображения, определенное как критерий определения, является произвольным. Конечно, другие условия, кроме содержания изображения, могут быть определены, как критерий определения. Например, нормальные периоды и периоды повышенного внимания могут переключаться в соответствии с амплитудой, формой колебаний и т.п. для записываемых аудиоданных; каждый из нормального периода и периода повышенного внимания могут переключаться в заданные моменты времени; или нормальный период и периоды повышенного внимания могут переключаться в соответствии с внешней инструкцией, такой как инструкция пользователя.
Кроме того, хотя пример, в котором переключают два состояния нормального периода и периода повышенного внимания, были описаны выше, количество состояний является произвольным. Три могут переключаться или больше состояния, таких как, например, нормальный период, период пониженного внимания, период внимания, период сильного внимания и т.п. Однако верхний предел количества состояний переключения зависит от количества уровней масштабируемых кодированных данных.
Кроме того, устройство 1201 формирования изображения может определять количество уровней при масштабируемом кодировании, в соответствии с состоянием. Например, в случае нормального периода, устройство 1201 формирования изображения может генерировать масштабируемые кодированные данные (BL) 1222 основного уровня, имеющего малое количество данных с низким качеством, и подавать эти данные в устройство 1202 сохранения масштабируемых кодированных данных. Кроме того, например, в случае периода повышенного внимания, устройство 1201 формирования изображения может генерировать масштабируемые кодированные данные (BL+EL) 1221 основного уровня, имеющие большое количество данных с высоким качеством, и подавать эти данные в устройство 1202 сохранения масштабируемых кодированных данных.
Хотя пример камеры наблюдения был описан выше, варианты применения системы 1200 формирования изображений являются произвольными и не ограничены камерой наблюдения.
В описанной выше системе 1200 формирования изображений, представленной на фиг. 53, в результате применения настоящей технологии, аналогично вариантам применения при иерархическом кодировании/иерархическом декодировании, описанных выше со ссылкой на фиг. 40-45, становится возможным получить те же эффекты, что и эффекты, описанные выше со ссылкой на фиг. 40-45.
Кроме того, настоящая технология может применяться, например, при потоковой передаче HTTP, такой как MPEG-DASH, где соответствующие данные выбирают и используют в единицах сегментов среди множества кодированных данных, в которых подготовленная разрешающая способность и т.п. является разной. А именно, информация о кодировании или декодировании может распространяться между множеством кодированных данных.
8. Шестой вариант осуществления
Другие примеры варианта осуществления
Примеры устройств или систем, в которых применяется настоящая технология, были описаны выше. Однако настоящая технология не ограничена этим, и настоящая технология может быть воплощена с любым составом, в котором эта технология установлена в таких устройствах или как устройства, составляющих такие системы, например, процессор и система LSI (большая интегрированная схема) и т.п., модуль, использующий множество процессоров и т.п., модуль, в котором используется множество модулей, набор, в котором другие функции добавлены к модулю (то есть, некоторые компоненты устройств).
Видеонабор
Пример случая, в котором настоящая технология используется, как набор, будет описан со ссылкой на фиг. 54. На фиг. 54 иллюстрируется пример схематичной конфигурации видеонабора, в котором применяется настоящая технология.
В последние годы появляется все больше электронных устройств с множеством функций. При разработке или производстве, в случае, когда некоторые их компоненты воплощены для продажи, распределения и т.п., в дополнение к случаю, когда воплощен компонент с одной функцией, во многих случаях, множество компонентов с ассоциированной функцией комбинируют так, чтобы их воплотить, как один набор, имеющий множество функции.
Видеонабор 1300, представленный на фиг. 54, имеет описанную выше многофункциональную конфигурацию и представляет собой комбинацию устройства, имеющего функцию, ассоциированную с кодированием или декодированием (любую одну из них или обе) изображения, и устройства, имеющего другую функцию, чем описанная выше функция.
Как представлено на фиг. 54, видеонабор 1300 выполнен так, что он включает в себя группу модулей, таких, как видеомодуль 1311, внешнее запоминающее устройство 1312, модуль 1313 администрирования питанием, модуль 1314 внешнего интерфейса и т.п., и устройство, имеющее функции, ассоциированные с возможностью 1321 подключения, камеру 1322, датчик 1323 и т.п.
Модуль выполнен, как часть с множеством функций, полученных в результате подборки функций некоторых частей, взаимосвязанных друг с другом. Конкретная физическая конфигурация является произвольной. Однако, например, учитывается, что множество процессоров с соответствующими функциями, элементов электронной схемы, таких как резисторы или конденсаторы, или другие устройства, размещены на подложке с электрическими проводами для их интеграции. Кроме того, можно учитывать, что модуль комбинируют с другим модулем, процессорами и т.п., так чтобы можно было рассматривать, как новый модуль.
В случае примера на фиг. 54, видеомодуль 1311 представляет собой комбинацию конфигураций, имеющих функции, ассоциированные с обработкой изображения, и выполнен так, что он включает в себя процессор 1331 приложения, видеопроцессор 1332, широкополосный модем 1333 и RF модуль 1334.
Процессор получают в результате интегрирования компонентов с заданными функциями в полупроводниковой микросхеме, используя SoC (система на кристалле), и существует процессор, который иногда называется, например, системой LSI (большая интегральная схема) и т.п. Компоненты с заданной функцией могут представлять собой логические схемы (аппаратные компоненты), могут представлять собой CPU, ROM, RAM и т.п., и программу (программные компоненты), которую выполняют, используя CPU, ROM, RAM и т.п., и могут представлять собой комбинацию обоих компонентов. Например, процессор может включать в себя логические схемы и CPU, ROM, RAM и т.п., некоторые функции воплощены с использованием логических схем (аппаратные компоненты), и другие функции воплощены с использованием программ (программные компоненты), исполняемых в CPU.
Процессор 1331 приложения на фиг. 54 представляет собой процессор, который выполняет приложения, ассоциированные с обработкой изображения. Приложение, выполняемое процессором 1331 приложения, выполняет арифметическую обработку в порядке для воплощения заданной функции, и приложение также может управлять компонентами, такими как видеопроцессор 1332 и т.п. внутри и снаружи видеомодуля 1311, если необходимо.
Видеопроцессор 1332 представляет собой процессор с функциями, относящимися к кодированию и декодированию изображения (одной или к обеим из них).
Широкополосный модем 1333 выполняет цифровую модуляцию данных (цифрового сигнала), которые должны быть переданы через проводную или беспроводную (или используя оба подхода) широкополосную систему передачи данных, выполняемую через широкополосную линию, такую как Интернет, или телефонная сеть общего пользования, с преобразованием в аналоговый сигнал, или широкополосный модем 1333 демодулирует аналоговый сигнал, принятый с использованием широкополосной передачи данных, который должен быть преобразован в данные (цифровой сигнал). Широкополосный модем 1333 обрабатывает произвольную информацию, например, данные изображения, которые обрабатывает видеопроцессор 1332, поток, в котором кодируют данные изображения, программы приложения, установочные данные и т.п.
RF модуль 1334 представляет собой модуль, который выполняет преобразование частоты, модуляцию/демодуляцию, усиление, обработку фильтрации и т.п. для сигналов радиочастоты (RF), которые передают и принимают через антенну. Например, RF модуль 1334 выполняет преобразование частоты и т.п. для сигнала в основной полосе пропускания, генерируемого широкополосным модемом 1333, для генерирования радиосигнала. Кроме того, например, RF модуль 1334 выполняет преобразование частоты и т.п. для RF сигнала, принятого через модуль 1314 внешнего интерфейса, для генерирования сигнала в основной полосе пропускания.
Кроме того, как обозначено пунктирной линией 1341 на фиг. 54, процессор 1331 приложения и видеопроцессор 1332 интегрированы так, что они составлены, как один процессор.
Внешнее запоминающее устройство 1312 представляет собой модуль, включающий в себя устройство сохранения, которое установлено снаружи видеомодуля 1311, для использования видеомодулем 1311. Устройство сохранения внешнего запоминающего устройства 1312 может быть воплощено с любой физической конфигурацией. Однако, обычно, поскольку устройство сохранения, в основном, используется для сохранения большого объема данных, таких как данные изображения, в модуле фрейма, предпочтительно, чтобы устройство сохранения было воплощено с использованием относительно недорогостоящего полупроводникового запоминающего устройства большой емкости, такого как DRAM (динамическое оперативное запоминающее устройство).
Модуль 1313 управления питанием выполняет управление и контроль подачей питания к видеомодулю 1311 (конфигурации в видеомодуле 1311).
Модуль 1314 внешнего интерфейса представляет собой модуль, который обеспечивает функцию внешнего интерфейса (схема передачи/приема на стороне антенны) с RF модулем 1334. Как представлено на фиг. 54, модуль 1314 внешнего интерфейса выполнен так, что он включает в себя, например, антенный модуль 1351, фильтр 1352 и модуль 1353 усиления.
Антенный модуль 1351 выполнен из антенны, которая передает/принимает беспроводный сигнал, и периферийных компонентов. Антенный модуль 1351 передает сигнал, подаваемый из модуля 1353 усиления, как беспроводный сигнал, и передает принятый беспроводный сигнал, как электрический сигнал (RF сигнал) в фильтр 1352. Фильтр 1352 выполняет обработку фильтрации и т.п. для RF сигнала, принимаемого через антенный модуль 1351, и подает RF сигнал после обработки в RF модуль 1334. Модуль 1353 усиления усиливает RF сигнал, подаваемый из RF модуля 1334 в антенный модуль 1351.
Модуль 1321 соединения представляет собой модуль, имеющий функцию, взаимосвязанную с соединением с внешней стороной. Физическая конфигурация модуля 1321 соединения является произвольной. Например, модуль 1321 соединения включает в себя конфигурацию, имеющую другую функцию передачи данных, чем стандарт передачи данных, соответствующий широкополосному модему 1333, и внешний порт ввода-вывода, и т.п.
Например, модуль 1321 соединения может включать в себя модули, имеющие функции связи, в соответствии со стандартом беспроводной связи, таким как Bluetooth (зарегистрированный товарный знак), IEEE 802.11 (например, Wi-Fi (Wireless Fidelity, зарегистрированный товарный знак)), NFC (Передача данных в ближнем поле), и IrDA (Ассоциация по средствам передачи данных в инфракрасном диапазоне), антенну, которая передает и принимает сигналы, в соответствии со стандартами, и т.п. Кроме того, например, модуль 1321 соединения может включать в себя модули, имеющие функции передачи данных, в соответствии со стандартами проводной передачи данных, такими как USB (универсальная последовательная шина) и HDMI (зарегистрированный товарный знак) (мультимедийный интерфейс высокой четкости) и порты, в соответствии со стандартами. Кроме того, например, модуль 1321 соединения может иметь другие функции передачи данных (сигнала) и т.п., аналогового порта ввода /вывода и т.п.
Кроме того, модуль 1321 соединения может включать в себя устройство, представляющее собой место назначения передачи данных (сигнала). Например, модуль 1321 соединения может включать в себя привод (включающий в себя привод для съемного носителя записи, жесткий диск, твердотельный привод (SSD), накопитель, подключаемый через сеть (NAS), и т.п.), который выполняет считывание или запись данных на носителе записи, таком как магнитный диск, оптический диск, оптический магнитный диск или полупроводниковое запоминающее устройство. Кроме того, модуль 1321 соединения может включать в себя выходное устройство (монитор, громкоговоритель и т.п.) изображения или звука.
Камера 1322 представляет собой модуль, имеющий функцию съемки изображения объекта и получения данных изображения объекта. Данные изображения, получаемые в результате съемки изображения камерой 1322, подают, например, в видеопроцессор 1332 для кодирования.
Датчик 1323 представляет собой модуль, имеющий произвольную функцию определения, например, датчик звука, ультразвуковой датчик, оптический датчик, датчик освещенности, инфракрасный датчик, датчик изображения, датчик вращения, датчик угла, датчик угловой скорости, датчик скорости, датчик ускорения, датчик наклона, датчик распознавания магнитной структуры, датчик ударов, датчик температуры и т.п. Данные, детектированные датчиком 1323, подают, например, в процессор 1331 приложения, для использования приложением и т.п.
Конфигурация, описанная выше, как модуль, может быть воплощена, как процессор. С другой стороны, конфигурация, описанная как процессор, может быть воплощена, как модуль.
В видеонаборе 1300, имеющем описанную выше конфигурацию, как представлено ниже, настоящая технология может применяться для видеопроцессора 1332. Поэтому, видеонабор 1300 может быть воплощен, как набор, в котором применяется настоящая технология.
Пример конфигурации видеопроцессора
На фиг. 55 иллюстрируется пример схематичной конфигурации видеопроцессора 1332 (фиг. 54), в котором применяется настоящая технология.
В случае примера на фиг. 55, видеопроцессор 1332 имеет функцию приема видеосигнала и аудиосигнала, как ввод и кодирование видеосигнала и аудиосигнала в заданной схеме, и функцию декодирования кодированных видеоданных и кодированных аудиоданных и воспроизведения, и вывода видеосигнала и аудиосигнала.
Как представлено на фиг. 55, видеопроцессор 1332 выполнен так, что он включают в себя модуль 1401 обработки входных видеоданных, первый модуль 1402 увеличения/уменьшения изображения, второй модуль 1403 увеличения/уменьшения изображения, модуль 1404 обработки выходных видеоданных, запоминающее устройство 1405 кадра и модуль 1406 управления запоминающим устройством. Кроме того, видеопроцессор 1332 выполнен так, что он включает в себя механизм 1407 кодирования/декодирования, буферы 1408А и 1408В ES (элементарный поток) видеоданных, и буферы 1409А и 1409В ES аудиоданных. Кроме того, видеопроцессор 1332 выполнен так, что он включает в себя аудиокодер 1410, аудиодекодер 1411, мультиплексор (MUX) 1412, демультиплексор (DMUX) 1413 и буфер 1414 потока.
Модуль 1401 обработки ввода видеоданных получает видеосигнал, вводимый, например, из модуля 1321 соединения (фиг. 54) и т.п., для преобразования в цифровые данные изображения. Первый модуль 1402 увеличения/уменьшения изображения выполняет преобразование формата, обработку увеличения/уменьшения изображения и т.п. для данных изображения. Второй модуль 1403 увеличения/уменьшения изображения выполняет обработку увеличения/уменьшения изображения, в соответствии с предыдущим форматом, выводимым через модуль 1404 обработки выходных видеоданных для данных изображения, или выполняет преобразование формата, обработку увеличения/уменьшения изображения и т.п. для данных изображения, аналогично первому модулю 1402 увеличения/уменьшения изображения. Модуль 1404 обработки выходных видеоданных выполняет преобразование формата, преобразование в аналоговый сигнал и т.п. для данных изображения и выводит данные, как воспроизводимый видеосигнал, например, в модуль 1321 соединения (фиг. 54) и т.п.
Запоминающее устройство 1405 кадра представляет собой запоминающее устройство для данных изображения, которое обычно используется модулем 1401 обработки входных видеоданных, первым модулем 1402 увеличения/уменьшения изображения, вторым модулем 1403 увеличения/уменьшения изображения, модулем 1404 обработки выходных видеоданных и механизмом 1407 кодирования/декодирования. Запоминающее устройство 1405 кадра воплощено, как, например, полупроводниковое запоминающее устройство, такое как DRAM.
Модуль 1406 управления запоминающим устройством принимает сигнал синхронизации из механизма 1407 кодирования/декодирования и управляет доступом к считыванию/записи в запоминающее устройство 1405 кадра, в соответствии с планом доступа к запоминающему устройству 1405 кадра, который записан в таблице 1406А администрирования доступом. Модуль 1406 управления запоминающим устройством обновляет таблицу 1406А администрирования доступом, в соответствии с обработкой, выполняемой механизмом 1407 кодирования/декодирования, первого модуля 1402 увеличения/уменьшения изображения, второго модуля 1403 увеличения/ уменьшения изображения и т.п.
Механизм 1407 кодирования/декодирования выполняет обработку кодирования для данных изображения и обработку декодирования для видеопотока, который представляет собой данные, где кодируют данные изображения. Например, механизм 1407 кодирования/декодирования кодирует данные изображения, считанные из запоминающего устройства 1405 кадра, для последовательной записи данных изображения в виде видеопотока в буфер 1408A ES видеоданных. Кроме того, например, механизм кодирования/декодирования последовательно считывает видеопоток из буфера ES 1408В видеоданных, для декодирования видеопотока, и последовательно записывает видеопоток, как данные изображения, в запоминающее устройство 1405 кадра. Механизм 1407 кодирования/декодирования использует запоминающее устройство 1405 кадра, как рабочую область при кодировании или декодировании. Кроме того, механизм 1407 кодирования/декодирования выводит сигнал синхронизации в модуль 1406 управления запоминающим устройством, например, в моменты времени начала обработки для каждого макроблока.
Буфер 1408A ES видеоданных выполняет размещение в буфере видеопотока, генерируемого механизмом 1407 кодирования/декодирования, и подает размещенный в буфере поток в мультиплексор (MUX) 1412. Буфер 1408В ES видеоданных выполняет размещение в буфер видеопотока, подаваемого из демультиплексора (DMUX) 1413, и подает размещенный в буфере поток в механизм 1407 кодирования/декодирования.
Буфер 1409А ES аудиоданных выполняет размещение в буфере аудиопотока, генерируемого аудиокодером 1410, и подает размещенный в буфере поток в мультиплексор (MUX) 1412. Буфер 1409В ES аудиоданных выполняет размещение в буфере аудиопотока, подаваемого из демультиплексора (DMUX) 1413, и подает размещенный в буфере поток в аудиодекодер 1411.
Аудиокодер 1410, например, преобразует в цифровую форму аудиосигнал, подаваемый, например, из модуля 1321 соединения (фиг. 54) и т.п., и выполняет кодирование по заданной схеме, такой как аудиосхема MPEG или схема АС3 (аудиокод номер 3). Аудиокодер 1410 последовательно записывает аудиопоток, который представляет собой данные, где кодируют аудиосигнал, в буфере 1409A ES аудиоданных. Декодер 1411 аудиоданных выполняет декодирование аудиопотока, подаваемого из буфера 1409В ES аудиоданных, выполняет, например, преобразование в аналоговый сигнал и подает этот сигнал, как воспроизводимый аудиосигнал, например, в модуль 1321 соединения (фиг. 54) и т.п.
Мультиплексор (MUX) 1412 мультиплексирует видеопоток или аудиопоток. Способ мультиплексирования (а именно, формат потока битов, генерируемого в результате мультиплексирования), является произвольным. Кроме того, во время мультиплексирования мультиплексор (MUX) 1412 может добавлять заданную информацию заголовка и т.п. к потоку битов. А именно, мультиплексор (MUX) 1412 может преобразовывать формат потока в результате мультиплексирования. Например, мультиплексор (MUX) 1412 мультиплексирует видеопоток и аудиопоток, для преобразования видеопотока и аудиопотока в транспортный поток, который представляет собой поток битов в формате для передачи. Кроме того, например, мультиплексор (MUX) 1412 мультиплексирует видеопоток и аудиопоток, для преобразования видеопотока и аудиопотока в данные (файл данных) в формате файла, для записи.
Демультиплексор (DMUX) 1413 демультиплексирует поток битов, где видеопоток и аудиопоток мультиплексируют, используя способ, соответствующий мультиплексированию мультиплексора (MUX) 1412. А именно, демультиплексор (DMUX) 1413 выделяет видеопоток и аудиопоток из потока битов, считываемого из буфера 1414 потока (разделяет видеопоток и аудиопоток). А именно, демультиплексор (DMUX) 1413 может преобразовывать формат потока путем демультиплексирования (может выполнять обратное преобразование, соответствующее преобразованию демультиплексора (MUX) 1412). Например, демультиплексор (DMUX) 1413 может получать транспортный поток, подаваемый, например, из модуля 1321 соединения, широкополосного модема 1333 (оба представлены на фиг. 54), и т.п. через буфер 1414 потока, и демультиплексировать транспортный поток, для преобразования транспортного потока в видеопоток и аудиопоток. Кроме того, например, демультиплексор (DMUX) 1413 может получать данные файла, считываемые с различных носителей записи, например, используя модуль 1321 соединения (фиг. 54), через буфер 1414 потока и демультиплексировать данные файла для преобразования данных файла в видеопоток и аудиопоток.
Буфер 1414 потока размещает в буфере поток битов. Например, в буфере 1414 потока выполняют размещение транспортного потока, подаваемого из мультиплексора (MUX) 1412, и в заданные моменты времени или на основе внешнего запроса и т.п. буфер потока подает размещенный в буфере поток, например, в модуль 1321 соединения, широкополосный модем 1333 (оба показаны на фиг. 54) и т.п.
Кроме того, например, буфер 1414 потока размещает в буфере данные файла, передаваемые из мультиплексора (MUX) 1412 и, в заданные моменты времени или на основе внешнего запроса, и т.п., подает данные файла, например, в модуль 1321 соединения (фиг. 54) и т.п., для записи данных файла на различных носителях записи.
Кроме того, буфер 1414 потока выполняет размещение в буфере транспортного потока, полученного, например, из модуля 1321 соединения, широкополосного модема 1333 и т.п. (все представлены на фиг. 54), и в заданные моменты времени или на основе внешнего запроса, и т.п., буфер потока подает размещенный в буфере поток в демультиплексор (DMUX) 1413.
Кроме того, буфер 1414 потока выполняет размещение в буфере данных файла, считанных, например, с различных носителей записи, таких как модуль 1321 соединения (фиг. 54), и в заданные моменты времени или на основе внешнего запроса и т.п. буфер потока подает размещенный в буфере поток в демультиплексор (DMUX) 1413.
Далее будет описан пример операций видеопроцессора 1332, имеющего описанную выше конфигурацию. Например, видеосигналы, подаваемые из модуля 1321 соединения (фиг. 54) и т.п. в видеопроцессор 1332, преобразуют в цифровые данные изображения по заданной схеме, такой как схема 4:2:2 Y/Cb/Cr, в модуле 1401 обработки входных видеоданных, и цифровые данные изображения последовательно записывают в запоминающее устройство 1405 кадра. Цифровые данные изображения считывают в первый модуль 1402 увеличения/уменьшения изображения или во второй модуль 1403 увеличения/уменьшения изображения, и выполняют преобразование формата и обработку увеличения/уменьшения в заданной схеме, такой как схема 4:2:0 Y/Cb/Cr, таким образом, что данные цифрового изображения снова записывают в запоминающее устройство 1405 кадра. Данные изображения кодируют, используя механизм 1407 кодирования/декодирования, и записывают, как видеопоток, в буфер 1408A ES видеоданных.
Кроме того, аудиосигнал, подаваемый из модуля 1321 соединения (фиг. 54) и т.п. в видеопроцессор 1332, кодируют с помощью аудиокодера 1410 и записывают, как аудиопоток в буфере 1409AES аудиоданных.
Видео поток буфера 1408А ES видеоданных и аудиопоток буфера 1409А ES аудиоданных считывают в мультиплексор (MUX) 1412 и умножают для преобразования в транспортный поток данные файла и т.п. Транспортный поток, генерируемый мультиплексором (MUX) 1412, размещают в буфере 1414 потока, и после этого, транспортный поток выводят, например, через модуль 1321 соединения, широкополосный модем 1333 (оба представлены на фиг. 54) и т.п. во внешнюю сеть. Кроме того, данные файла, генерируемые мультиплексором (MUX) 1412, размещают в буфере 1414 потока, и после этого, данные файла записывают, например, через модуль 1321 соединения (фиг. 54) и т.п., на различных носителях записи.
Кроме того, например, транспортный поток, вводимый, например, через модуль 1321 соединения, широкополосный модем 1333 (оба представлены на фиг. 54) и т.п. из внешней сети в видеопроцессор 1332, размещают в буфере 1414 потока, и после этого, транспортный поток демультиплексируют с помощью демультиплексора (DMUX) 1413. Кроме того, данные файла, которые считывают с различных носителей записи, например, используя модуль 1321 соединения (фиг. 54) и т.п., и подают в видеопроцессор 1332, размещают в буфере, таком как буфер 1414 потока, и после этого, данные файла демультиплексируют с помощью демультиплексора (DMUX) 1413. А именно, транспортный поток или данные файла, вводимые в видеопроцессор 1332, разделяют на видеопоток и аудиопоток с помощью демультиплексора (DMUX) 1413.
Аудиопоток подают через буфер 1409В ES аудиоданных в аудиодекодер 1411 и декодируют, таким образом, что воспроизводят аудиосигнал. Кроме того, после записи видеопотока в буфере 1408В ES видеоданных, видеопоток последовательно считывают с помощью механизма 1407 кодирования/декодирования для декодирования и записи в запоминающем устройстве 1405 кадра. В отношении декодируемых данных изображения применяют обработку увеличения/уменьшения, используя второй модуль 1403 увеличения/уменьшения изображения, и записывают в запоминающее устройство 1405 кадра. Затем декодированные данные изображения считывают в модуль 1404 обработки вывода видеоданных и применяют для них преобразование формата по заданной схеме, такой как схема 4:2:2 Y/Cb/Cr, для дополнительного преобразования в аналоговый сигнал, таким образом, что воспроизводят и выводят видеосигнал.
В случае, когда настоящую технологию применяют для видеопроцессора 1332, имеющего описанную выше конфигурацию, терминал провайдера, в соответствии с описанными выше вариантами осуществления, может применяться в механизме 1407 кодирования/декодирования. А именно, например, механизм 1407 кодирования/декодирования может быть выполнен так, чтобы он имел те же функции, как и у устройства кодирования изображения или устройства декодирования изображения, в соответствии с описанными выше вариантами осуществления. Таким образом, видеопроцессор 1332 может получать те же эффекты, что и эффекты, описанные выше со ссылкой на фиг. 1-36.
Кроме того, в механизме 1407 кодирования/декодирования настоящая технология (а именно, функции устройства кодирования изображения или устройства декодирования изображения, в соответствии с описанными выше вариантами осуществления) может быть воплощена с использованием аппаратных средств, таких как логическая схема, может быть воплощена с использованием программного обеспечения, такого как встроенная программа, или может быть воплощена с использованием, как аппаратных, так и программных средств.
Другой пример конфигурации видеопроцессора
На фиг. 56 иллюстрируется другой пример схематичной конфигурации видеопроцессора 1332 (фиг. 54), в котором применяется настоящая технология. В случае примера на фиг. 56, видеопроцессор 1332 имеет функцию кодирования/декодирования видеоданных в заданной схеме.
Более конкретно, как представлено на фиг. 56, видеопроцессор 1332 выполнен так, что он включает в себя модуль 1511 управления, интерфейс 1512 отображения, механизм 1513 отображения, механизм 1514 обработки изображения и внутреннее запоминающее устройство 1515. Кроме того, видеопроцессор 1332 выполнен так, что он включает в себя механизм 1516 кодека, интерфейс 1517 запоминающего устройства, мультиплексор/демультиплексор (MUX/DMUX) 1518, сетевой интерфейс 1519 и видеоинтерфейс 1520.
Модуль 1511 управления управляет работой модулей обработки в видеопроцессоре 1332, таком как интерфейс 1512 отображения, механизм 1513 отображения, механизм 1514 обработки изображения и механизм 1516 кодека.
Как представлено на фиг. 56, модуль 1511 управления выполнен так, что он включает в себя, например, основное CPU 1531, вспомогательное CPU 1532 и системный контроллер 1533. Основное CPU 1531 выполняет программу и т.п. для управления операциями модулей обработки в видеопроцессоре 1332. Основное CPU 1531 генерирует сигнал управления, в соответствии с программой и т.п., и подает сигнал управления в каждый модуль обработки (а именно, управляет операциями каждого модуля обработки). Вспомогательное CPU 1532 выполняет вспомогательную функцию основного CPU 1531. Например, вспомогательное CPU 1532 выполняет дочернюю обработку, вспомогательную программу и т.п. или программу и т.п., выполняемую основным CPU 1531. Системный контроллер 1533 управляет операциями основного CPU 1531 и вспомогательного CPU 1532, такими как операция обозначения программ, выполняемых основным CPU 1531 и вспомогательным CPU 1532.
Интерфейс 1512 отображения выводит данные изображения, например, в модуль 1321 соединения (фиг. 54) и т.п. под управлением модуля 1511 управления. Например, интерфейс 1512 отображения преобразует цифровые данные для данных изображения в аналоговый сигнал и выводит данные изображения, как воспроизводимый видеосигнал, или данные изображения в состоянии цифровых данных в устройство монитора или в модуль 1321 соединения (фиг. 54).
Механизм 1513 отображения выполняет различную обработку преобразования, такую как преобразование формата, преобразование размера или преобразование области цвета данных изображения, в соответствии с аппаратной спецификацией устройства монитора, которое отображает изображение, под управлением модуля 1511 управления.
Механизм 1514 обработки изображения выполняет заданную обработку изображения, например, обработку фильтрации, для улучшения качества изображения в отношении данных изображения под управлением модуля 1511 управления.
Внутреннее запоминающее устройство 1515 представляет собой запоминающее устройство, которое установлено внутри видеопроцессора 1332, который совместно используется механизмом 1513 отображения, механизмом 1514 обработки изображения и механизмом 1516 кодека. Внутреннее запоминающее устройство 1515 используется, например, для передачи/приема данных, выполняемой механизмом 1513 отображения, механизмом 1514 обработки изображения и механизмом 1516 кодека. Например, внутреннее запоминающее устройство 1515 сохраняет данные, подаваемые из механизма 1513 отображения, механизма 1514 обработки изображения или механизма 1516 кодека, и подает данные в механизм 1513 отображения, механизм 1514 обработки изображения или механизм 1516 кодека, если необходимо (например, в соответствии с запросом). Хотя внутреннее запоминающее устройство 1515 может быть воплощено с использованием любого устройства сохранения, в общем, поскольку внутреннее запоминающее устройство, в основном, используется для сохранения модуля блока данных изображения и малого объема данных, таких как параметр, предпочтительно, чтобы внутреннее запоминающее устройство было воплощено, например, как полупроводниковое запоминающее устройство, имеющее относительно (например, по сравнению с внешним запоминающим устройством 1312) малый объем и высокую скорость отклика, такое как статическое оперативное запоминающее устройство (SRAM).
Механизм 1516 кодека выполняет обработку, ассоциированную с кодированием или декодированием данных изображения. Схема кодирования/декодирования, соответствующая механизму 1516 кодека, является произвольной, и ее количество может быть равно единице, или может использоваться множество таких схем. Например, механизм 1516 кодека выполняет функцию кодека для множества схем кодирования/декодирования, и кодирование данных изображения или декодирование кодированных данных может выполняться, используя один выбранный из них.
В примере, показанном на фиг. 56, механизм 1516 кодека выполнен так, что он включает в себя, к качестве функциональных блоков, выполняющих обработку, ассоциированную с кодеком, например, MPEG 2 Video 1541, AVC/H.264 1542, HEVC/H.265 1543, HEVC/H.265 (масштабируемый) 1544, HEVC/H.265 (многопроекционный) 1545, и MPEG-DASH 1551.
MPEG 2 Video 1541 представляет собой функциональный блок кодирования или декодирования данных изображения в схеме MPEG 2. AVC/H.264 1542 представляет собой функциональный блок кодирования или декодирования данных изображения в схеме AVC. HEVC/H.265 1543 представляет собой функциональный блок кодирования или декодирования данных изображения в схеме HEVC. HEVC/H.265 (масштабируемый) 1544 представляет собой функциональный блок масштабируемого кодирования или масштабируемого декодирования данных изображения в схеме HEVC. HEVC/H.265 (многопроекционный) 1545 представляет собой функциональный блок "многопроекционного кодирования" или "многопроекционного декодирования" данных изображения в схеме HEVC.
MPEG-DASH 1551 представляет собой функциональный блок передачи или приема данных изображения в схеме MPEG-DASH (MPEG-динамическая адаптивная потоковая передача в HTTP). MPEG-DASH представляет собой технологию выполнения потоковой передачи видеоданных, используя HTTP (протокол передачи гипертекста), и одна из его характеристик предназначена для выбора соответствующих кодированных данных среди множества кодированных данных, в которых разрешающую способность и т.п., подготавливают так, что она отличается в единицах сегмента, и для передачи выбранных кодированных данных. MPEG-DASH 1551 выполняет генерирование потока, передачу управления для потока в соответствии со стандартом, и кодирование/декодирование данных изображения, при этом используются описанные выше MPEG-2 Video 1541 или HEVC/H.265 (многопроекционный) 1545.
Интерфейс 1517 запоминающего устройства представляет собой интерфейс для внешнего запоминающего устройства 1312. Данные, передаваемые из механизма 1514 обработки изображения или механизма 1516 кодека, подают через интерфейс 1517 запоминающего устройства во внешнее запоминающее устройство 1312. Кроме того, данные, считываемые из внешнего запоминающего устройства 1312, подают через интерфейс 1517 запоминающего устройства в видеопроцессор 1332 (в механизм 1514 обработки изображения или в механизм 1516 кодека).
Мультиплексор/демультиплексор (MUX/DMUX) 1518 выполняет мультиплексирование или демультиплексирование различных данных, ассоциированных с изображением, таким как поток битов кодированных данных, данные изображения или видеосигнал. Способ мультиплексирования/демультиплексирования является произвольным. Например, во время мультиплексирования, мультиплексор/демультиплексор (MUX/DMUX) 1518 может интегрировать множество данных в одни и также может добавлять к данным заданную информацию заголовка и т.п. Кроме того, во время демультиплексирования, мультиплексор/демультиплексор (MUX/DMUX) 1518 может разделять одни данные на множество данных и также может добавлять заданную информацию заголовка и т.п. к разделенным данным. А именно, мультиплексор/демультиплексор (MUX/DMUX) 1518 может преобразовывать формат данных, используя мультиплексирование/демультиплексирование. Например, мультиплексор/демультиплексор (MUX/DMUX) 1518 может мультиплексировать поток битов, предназначенный для преобразования в транспортный поток, который представляет собой поток битов в формате для передачи, или в данные (данные файла) в формате файла для записи. Обратное преобразование может быть также выполнено с помощью демультиплексирования.
Сетевой интерфейс 1519 представляет собой интерфейс, предназначенный, например, для широкополосного модема 1333 или модуля 1321 соединения (оба представлены на фиг. 54. Видеоинтерфейс 1520 представляет собой интерфейс, специально разработанный, например, для модуля 1321 соединения или камеры 1322 (оба представлены на фиг. 54).
Далее будет описан пример операций видеопроцессора 1332. Например, после приема транспортного потока из внешней сети через модуль 1321 соединения, широкополосный модем 1333 (оба представлены на фиг. 54) и т.п., транспортный поток подают через сетевой интерфейс 1519 в мультиплексор/демультиплексор (MUX/DMUX) 1518 для демультиплексирования, и транспортный поток декодируют с помощью механизма 1516 кодека. Данные изображения, полученные в результате декодирования механизма 1516 кодека, применяют в заданной обработке изображения, например, используя механизм 1514 обработки изображения; для данных изображения выполняют заданное преобразование с помощью механизма 1513 отображения; данные изображения подают через интерфейс 1512 отображения, например, в модуль 1321 соединения (фиг. 54) и т.п.; и изображение отображают на мониторе. Кроме того, например, данные изображения, полученные в результате декодирования механизмом 1516 кодека, повторно кодируют, используя механизм 1516 кодека; данные изображения мультиплексируют с помощью мультиплексора/демультиплексора (MUX/DMUX) 1518, для преобразования в данные файла; данные изображения выводят через видеоинтерфейс 1520, например, в модуль 1321 соединения (фиг. 54) и т.п., и записывают на различные носители записи.
Кроме того, например, данные файла кодированных данных, когда данные изображения кодируют, которые считывают с носителя записи (не показан), используя модуль 1321 соединения (фиг. 54) и т.п., подают через видеоинтерфейс 1520 в мультиплексор/демультиплексор (MUX/DMUX) 1518 для демультиплексирования, и декодируют, используя механизм 1516 кодека. Данные изображения, полученные в результате декодирования механизмом 1516 кодека, подают в заданную обработку изображения, выполняемую механизмом 1514 обработки изображения; для данных изображения выполняют заданное преобразование механизмом 1513 дисплея; данные изображения подают через интерфейс 1512 отображения, например, в модуль 1321 соединения (фиг. 54) и т.п., и изображение отображают в мониторе. Кроме того, например, данные изображения, полученные в результате декодирования механизмом 1516 кодека, повторно кодируют с использованием механизма 1516 кодека; данные изображения мультиплексируют с использованием мультиплексора/демультиплексора (MUX/DMUX) 1518 для преобразования в транспортный поток; данные изображения подают через сетевой интерфейс 1519, например, в модуль 1321 соединения, широкополосный модем 1333 (оба представлены на фиг. 54) и т.п., и передают в другое устройство (не показано).
Кроме того, передачу и прием данных изображения или других данных между модулями обработки в видеопроцессоре 1332 выполняют, например, используя внутреннее запоминающее устройство 1515 или внешнее запоминающее устройство 1312. Кроме того, модуль 1313 управления питанием управляет подачей питания, например, в модуль 1511 управления.
В случае, когда настоящая технология применяется в видеопроцессоре 1332, имеющем описанную выше конфигурацию, настоящая технология, в соответствии с описанными выше вариантами осуществления, может применяться в механизме 1516 кодека. А именно, например, механизм 1516 кодека может иметь функциональные блоки для воплощения устройства кодирования изображения или устройства декодирования изображения, в соответствии с описанными выше вариантами осуществления. В результате, видеопроцессор 1332 может получать те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 1-36.
Кроме того, в механизме 1516 кодека, настоящая технология (а именно, функции устройства кодирования изображения или устройства декодирования изображения, в соответствии с описанным выше вариантом осуществления) могут быть воплощены с помощью аппаратных средств, таких как логическая схема, могут быть воплощены с использованием программных средств, таких как встроенная программа, или могут быть воплощены, как с использованием аппаратных средств, так и программных средств.
Два примера конфигурации видеопроцессора 1332 описаны выше. Однако конфигурация видеопроцессора 1332 является произвольной, и может использоваться другая конфигурация, кроме описанных выше двух примеров. Кроме того, видеопроцессор 1332 может быть выполнен с одной полупроводниковой схемой. Однако видеопроцессор может быть выполнен с множеством полупроводниковых схем. Например, можно использовать трехмерную, уложенную друг на друга LSI, где множество полупроводников уложены друг на друга. Кроме того, видеопроцессор может быть воплощен с использованием множества LSI.
Пример применения устройства
Видеонабор 1300 может быть встроен в различные устройства, которые обрабатывают данные изображения. Например, видеонабор 1300 может быть встроен в телевизионное устройство 900 (фиг. 47), мобильный телефон 920 (фиг. 48), устройство 940 записи/воспроизведения (фиг. 49), устройство 960 формирования изображения (фиг. 50) и т.п. В результате установки видеонабора 1300 устройство может получать те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 1-36.
Кроме того, видеонабор 1300 может быть встроен, например, в терминальные устройства, такие как персональный компьютер 1004, AV устройство 1005, планшетное устройство 1006, мобильный телефон 1007 в системе 1000 связи по фиг. 51, в станцию 1101 широковещательной передачи и в терминальное устройство 1102, в системе 1100 связи на фиг. 52, устройство 1201 формирования изображения и в устройство 1202 сохранения масштабируемых кодированных данных в системе 1200 формирования изображений на фиг. 53, и т.п. В результате встраивания видеонабора 1300, устройство может получать те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 1-36.
Кроме того, любая часть каждой конфигурации описанного выше видеонабора 1300, которая включает в себя видеопроцессор 1332, может быть встроена, как конфигурация, в которой применяется настоящая технология. Например, только видеопроцессор 1332 может быть встроен, как видеопроцессор, в котором применяется настоящая технология. Кроме того, например, как описано выше, процессоры, обозначенные пунктирной линией 1341, видеомодуль 1311 и т.п. могут быть воплощены, как процессор или модуль, в котором применяется настоящая технология. Кроме того, например, комбинация видеомодуля 1311, внешнего запоминающего устройства 1312, модуля 1313 управления питанием и модуля 1314 внешнего интерфейса может быть воплощена, как видеомодуль 1361, в котором применяется настоящая технология. Любая из описанных выше конфигураций может получать те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 1-36.
А именно, аналогично случаю видеонабора 1300, любая конфигурация, которая включает в себя видеопроцессор 1332, может быть встроена в различные устройства, которые обрабатывают данные изображения. Например, видеопроцессор 1332, процессоры, обозначенные пунктирной линией 1341, видеомодуль 1311 или видеомодуль 1361, могут быть встроены в телевизионное устройство 900 (фиг. 47), мобильный телефон 920 (фиг. 48), устройство 940 записи/воспроизведения (фиг. 49), устройство 960 формирования изображения (фиг. 50), терминального устройства, такие как персональный компьютер 1004, AV устройство 1005, планшетное устройство 1006, мобильный телефон 1007 и т.п. в системе 1000 связи по фиг. 51, станцию 1101 широковещательной связи и в терминальное устройство 1102 в системе 1100 связи на фиг. 52, устройство 1201 формирования изображения, устройство 1202 сохранения масштабируемых кодированных данных и т.п., в системе 1200 формирования изображений на фиг. 53 и т.п. Кроме того, аналогично случаю видеонабора 1300, в результате встраивания любой из конфигураций, в которой применяется настоящая технология, устройства могут получать те же эффекты, как и эффекты, описанные выше со ссылкой на фиг. 1-36.
9. Седьмой вариант осуществления
Пример применения MPEG-DASH
Кроме того, настоящая технология может применяться в системе воспроизведения содержания или в системе беспроводной передачи данных, в соответствии со стандартом Wi-Fi, таким как, например, потоковая передача HTTP, такая как описанная ниже MPEG-DASH, где соответствующие данные выбирают и используют в модулях сегмента среди множества кодированных данных, в которых подготовленные разрешения и т.п. являются разными.
Обзор системы воспроизведения содержания
Вначале система воспроизведения содержания, в которой может использоваться настоящая технология, будет кратко описана со ссылкой на фиг. 57-59.
Далее, вначале, основная конфигурация, которая является общей для вариантов осуществления, будет описана со ссылкой на фиг. 57 и 58.
На фиг. 57 показана схема, описывающая конфигурацию системы воспроизведения содержания. Как представлено на фиг. 57, система воспроизведения содержания выполнена так, что она включает в себя серверы 1610 и 1611 содержания, сеть 1612 и устройство 1620 воспроизведения содержания (устройство клиента).
Серверы 1610 и 1611 содержания и устройство 1620 воспроизведения содержания соединены друг с другом через сеть 1612. Сеть 1612 представляет собой кабельную или беспроводную линию связи для информации, которую передают из устройств, подключенных через сеть 1612.
Например, сеть 1612 может включать в себя сеть общего пользования, такую как Интернет, телефонная сеть или спутниковая сеть связи, различные локальные вычислительные сети (LAN) и глобальные вычислительные сети (WAN), включающие в себя Ethernet (зарегистрированный товарный знак) и т.п. Кроме того, сеть 1612 может включать в себя специализированную сеть, такую как IP VPN (виртуальная частная сеть с протоколом Интернет).
Сервер 1610 содержания кодирует данные содержания для генерирования файла данных, включающего в себя кодированные данные и метаинформацию кодированных данных, и сохраняет файл данных. Кроме того, в случае, когда сервер 1610 содержания генерирует файл данных в формате МР4, кодированные данные соответствуют "mdat", и метаинформация соответствует "moov".
Кроме того, данные содержания могут представлять собой музыкальные данные, такие как музыка, лекция и радиопередача, видеоданные, такие как кинофильмы, телевизионные программы, видеопрограммы, изображения, документы, картины и таблицы, игры, программное обеспечение и т.п.
Здесь сервер 1610 содержания ассоциирован с тем же содержанием и генерирует множество файлов данных с разными скоростями передачи битов. Кроме того, в том, что касается запроса на воспроизведение содержания из устройства 1620 воспроизведения содержания, сервер 1611 содержания интегрирует информацию о параметре, добавленную к URL, в устройстве 1620 воспроизведения содержания, в информацию URL сервера 1610 содержания, и передает эту информацию в устройство 1620 воспроизведения содержания. Далее ассоциированные детали будут подробно описаны со ссылкой на фиг. 58.
На фиг. 58 показана схема, описывающая поток данных в системе воспроизведения содержания по фиг. 57. Сервер 1610 содержания кодирует те же данные содержания с разными скоростями передачи битов для генерирования, например, файла А со скоростью 2 Мбит/с, файла В со скоростью 1,5 Мбит/с и файла С со скоростью 1 Мбит/с, как представлено на фиг. 58. Соответственно, файл А имеет высокую скорость битов; файл В имеет стандартную скорость битов, и файл С имеет низкую скорость битов.
Кроме того, как представлено на фиг. 58, кодированные данные каждого файла делят на множество сегментов. Например, кодированные данные файла А делят на сегменты, обозначенные как "A1", "А2", "A3"…; кодированные данные файла В делят на сегменты, обозначенные как "B1", "В2", "В3"…"Bm"; и кодированные данные файла С делят на сегменты, обозначенные как "C1", "С2", "С3"…"Cn".
Кроме того, каждый сегмент может быть выполнен на основе примера конфигурации из одних или двух, или больше кодированных видеоданных и кодированных аудиоданных, которые начинаются с выборки синхронизации (например, изображение IDR при кодировании видеоданных AVC/H.264) МР4 и могут независимо воспроизводиться. Например, в случае, когда видеоданные с 30 кадрами в секунду кодируют в GOP (группа изображений) с фиксированной длиной 15 кадров, каждый сегмент может представлять собой кодированные видео- и аудиоданные длительностью 2 секунды, соответствующие 4 GOP, или могут представлять собой кодированные видео- и аудиоданные длительностью 10 секунд, соответствующие 20 GOP.
Кроме того, диапазоны воспроизведения (диапазоны положений от переднего конца содержания) в соответствии с сегментами с одинаковым порядком размещения в каждом файле являются одинаковыми. Например, диапазоны воспроизведения сегмента "А2", сегмента "В2" и сегмента "С2" являются одинаковыми, и в случае, когда каждый сегмент состоит из кодированных данных длительностью 2 секунды, диапазоны воспроизведения сегмента "А2", сегмента "В2" и сегмента "С2" составляют от 2 секунд до 4 секунд для всего содержания.
После того, как сервер 1610 содержания генерирует файл А - файл С, которые составлены из множества сегментов, сервер содержания сохраняет файл А - файл С. Далее, как представлено на фиг. 58, сервер 1610 содержания последовательно передает сегменты, составляющие разные файлы, в устройство 1620 воспроизведения содержания, и устройство 1620 воспроизведения содержания выполняет потоковое воспроизведение принятых сегментов.
Здесь сервер 1610 содержания, в соответствии с вариантом осуществления, передает файл списка воспроизведения (ниже называется MPD: Описание представления носителя), включающее в себя информацию о скорости передачи битов и информацию о доступе кодированных данных в устройстве 1620 воспроизведения содержания, и устройство 1620 воспроизведения содержания выбирает скорость передачи битов среди множества скоростей передачи битов на основе MPD и запрашивает сервер 1610 содержания передать сегменты, соответствующие выбранным скоростям передачи битов.
Хотя только один сервер 1610 содержания показан на фиг. 57, настоящая технология не ограничена этим примером.
На фиг. 59 показана схема, описывающая конкретный пример MPD. Как представлено на фиг. 59, MPD включает в себя информацию доступа для множества кодированных данных, имеющих разные скорости передачи битов (ширину полосы пропускания). Например, MPD, представленное на фиг. 59, включает в себя информацию доступа о кодированных данных, представляющую, что существуют кодированные данные со скоростью 256 кбит/с, 1,024 Мбит/с, 1,384 Мбит/с, 1,536 Мбит/с и 2,048 Мбит/с. Устройство 1620 воспроизведения содержания может динамически изменять скорость передачи битов кодированных данных, которые предназначены для потокового воспроизведения, на основе ассоциированного MPD.
Кроме того, хотя мобильный терминал представлен на фиг. 57 в качестве примера устройства 1620 воспроизведения содержания, устройство 1620 воспроизведения содержания не ограничено этим примером. Например, устройство 1620 воспроизведения содержания может представлять собой устройство обработки информации, такое как персональный компьютер (PC), домашнее устройство обработки видеоданных (устройство записи, видеосистему и т.п.), карманные персональные компьютеры (PDA), домашнее игровое устройство или бытовое электронное устройство. Кроме того, устройство 1620 воспроизведения содержания может представлять собой устройство обработки информации, такое как мобильный телефон, систему персональных мобильных телефонов (PHS), портативное устройство воспроизведения музыки, портативное устройство обработки видеосодержания или портативное игровое устройство.
Конфигурация сервера 1610 содержания
Общий обзор системы воспроизведения содержания был описан выше со ссылкой на фиг. 57-59. Далее, со ссылкой на фиг. 60, будет описана конфигурация сервера 1610 содержания.
На фиг. 60 показана функциональная блок-схема, иллюстрирующая конфигурацию сервера 1610 содержания. Как представлено на фиг. 60, сервер 1610 содержания выполнен так, что он включают в себя модуль 1631 генерирования файла, модуль 1632 сохранения и модуль 1633 связи.
Модуль 1631 генерирования файла выполнен так, что он включает в себя кодер 1641, который кодирует данные содержания и генерирует множество кодированных данных, имеющих разные скорости передачи битов, с одинаковым содержанием и описанным выше MPD. Например, в случае, когда модуль 1631 генерирования файла генерирует кодированные данные со скоростями 256 кбит/с, 1,024 Мбит/с, 1,384 Мбит/с, 1,536 Мбит/с и 2,048 Мбит/с, модуль генерирования файла генерирует MPD, представленное на фиг. 59.
Модуль 1632 сохранения сохраняет множество кодированных данных, имеющих разные скорости передачи битов и MPD, которое генерирует модуль 1631 генерирования файла. Модуль 1632 сохранения может представлять собой модуль сохранения, такой как энергонезависимое запоминающее устройство, магнитный диск, оптический диск и МО (магнитооптический) диск. Энергонезависимое запоминающее устройство включает в себя, например, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM) и стираемое программируемое ROM (EPROM). Кроме того, магнитный диск включает в себя жесткий диск, магнитный диск типа диска и т.п. Кроме того, оптический диск включает в себя компакт-диск (CD), цифровой универсальный диск с возможностью записи (DVD-R), диск Blu-ray (BD; зарегистрированный товарный знак) и т.п.
Модуль 1633 связи представляет собой интерфейс для устройства 1620 воспроизведения содержания и может связывается с устройством 1620 воспроизведения содержания через сеть 1612. Более конкретно, модуль 1633 связи имеет функцию сервера HTTP, который сообщается с устройством 1620 воспроизведения содержания, в соответствии с HTTP. Например, модуль 1633 связи передает MPD в устройство 1620 воспроизведения содержания, выделяет кодированные данные, запрашиваемые на основе MPD из содержания устройства 1620 воспроизведения, в соответствии с HTTP, из модуля 1632 сохранения, и передает эти кодированные данные, как ответ HTTP, в устройство 1620 воспроизведения содержания.
Конфигурация устройства 1620 воспроизведения содержания
Конфигурация сервера 1610 содержания, в соответствии с вариантом осуществления, была описана выше. Далее, со ссылкой на фиг. 61, будет описана конфигурация устройства 1620 воспроизведения содержания.
На фиг. 61 показана функциональная блок-схема, иллюстрирующая конфигурацию устройства 1620 воспроизведения содержания. Как представлено на фиг. 61, устройство 1620 воспроизведения содержания выполнено так, что оно включает в себя модуль 1651 связи, модуль 1652 сохранения, модуль 1653 воспроизведения, модуль 1654 выбора и модуль 1656 получения текущего положения.
Модуль 1651 связи представляет собой интерфейс для сервера 1610 содержания и запрашивает данные сервера 1610 содержания для получения данных из сервера 1610 содержания. Более конкретно, модуль 1651 связи имеет функцию клиента HTTP, который связывается с устройством 1620 воспроизведения содержания, в соответствии с HTTP. Например, модуль 1651 связи может избирательно получать MPD или сегменты кодированных данных из сервера 1610 содержания, используя диапазон HTTP.
Модуль 1652 сохранения сохраняет информацию различных типов о воспроизведении содержания. Например, сегменты, полученные из сервера 1610 содержания модулем 1651 связи, последовательно размещают в буфере. Сегменты кодированных данных, размещенные в буфере в модуле 1652 сохранения, последовательно подают в модуль 1653 воспроизведения, используя, таким образом, подход FIFO (первым поступил - первым обслуживается).
Кроме того, модуль 1652 сохранения добавляет параметр в URL, в модуле 1651 связи на основе команды добавления параметра в URL для содержания, описанного в MPD, который запрашивают из сервера 1611 содержания, описанного ниже, и сохраняет определение для доступа в URL.
Модуль 1653 воспроизведения последовательно воспроизводит сегменты, передаваемые из модуля 1652 сохранения. Более конкретно, модуль 1653 воспроизведения выполняет декодирование сегмента, DA преобразование, рендеринг и т.п.
Модуль 1654 выбора последовательно выбирает, был ли получен сегмент кодированных данных, соответствующий какой-либо скорости передачи битов, включенной в MPD, в пределах того же содержания. Например, после последовательного выбора сегментов "A1", "В2" и "A3" модулем 1654, в соответствии с полосой пропускания сети 1612, как представлено на фиг. 58, модуль 1651 связи получает сегменты "A1", "В2" и "A3" из содержания 1610 сервера.
Модуль 1656 получения текущего положения получает текущее положение устройства 1620 воспроизведения содержания. Поэтому, например, модуль получения текущего положения может быть выполнен на основе модуля получения текущего положения, такого как приемник GPS (Глобальная система навигации). Кроме того, модуль 1656 получения текущего положения может получать текущее положение устройства 1620 воспроизведения содержания, используя беспроводную сеть.
Конфигурация сервера 1611 содержания
На фиг. 62 показана схема, описывающая пример конфигурации сервера 1611 содержания. Как представлено на фиг. 62, сервер 1611 содержания выполнен так, что он включают в себя модуль 1671 сохранения и модуль 1672 связи.
Модуль 1671 сохранения сохраняет информацию URL в MPD. Информацию URL MPD передают из сервера 1611 содержания в устройство 1620 воспроизведения содержания, в соответствии с запросом из устройства 1620 воспроизведения содержания, которое запрашивает воспроизведение содержания. Кроме того, во время предоставления информации URL MPD в устройство 1620 воспроизведения содержания, модуль 1671 сохранения сохраняет информацию определения во время добавления параметра к URL, описанному в MPD, в устройстве 1620 воспроизведения содержания.
Модуль 1672 связи представляет собой интерфейс для устройства 1620 воспроизведения содержания, для связи с устройством 1620 воспроизведения содержания через сеть 1612. А именно, модуль 1672 связи принимает запрос информации URL MPD из устройства 1620 воспроизведения содержания, которое запрашивает воспроизведение содержания и передает информацию URL MPD в устройство 1620 воспроизведения содержания. URL MPD, которое передают из модуля 1672 связи, включает в себя информацию для добавления параметра в устройство 1620 воспроизведения содержания.
Параметры, которые должны быть добавлены к URL MPD в устройстве 1620 воспроизведения содержания, могут быть установлены, как информация определения, которая различным образом совместно используется сервером 1611 содержания и устройством 1620 воспроизведения содержания. В качестве примера, информация о текущем положении устройства 1620 воспроизведения содержания, ID пользователя для пользователя, использующего устройство 1620 воспроизведения содержания, размер запоминающего устройства в устройстве 1620 воспроизведения содержания, емкость сохранения устройства 1620 воспроизведения содержания и т.п. могут быть добавлены в URL MPD в устройстве 1620 воспроизведения содержания.
В системе воспроизведения содержания, имеющей описанную выше конфигурацию, в результате применения настоящей технологии, описанной выше со ссылкой на фиг. 1-36, становится возможным получить те же эффекты, что и эффекты, описанные выше со ссылкой на фиг. 1-36.
А именно, кодер 1641 сервера 1610 содержания имеет функцию устройства кодирования изображения, в соответствии с описанными выше вариантами осуществления. Кроме того, модуль 1653 воспроизведения устройства 1620 воспроизведения содержания имеет функцию устройства декодирования изображения, в соответствии с описанными выше вариантами осуществления. Поэтому, становится возможным предотвращать увеличение емкости накопления, необходимой для кодирования/декодирования.
Кроме того, в системе воспроизведения содержания, в результате передачи/приема кодированных данных, в соответствии с настоящей технологией, становится возможным предотвратить увеличение емкости накопления, необходимой для кодирования/декодирования.
10. Восьмой вариант осуществления
Пример применения системы беспроводной передачи данных по стандарту Wi-Fi
Основные операции устройства беспроводной передачи данных в системе беспроводной передачи данных, в которой может применяться настоящая технология, будут описаны ниже
Пример основных операций устройства беспроводной связи
Вначале выполняют беспроводную передачу/прием пакета до тех пор, пока не будет установлено Р2Р соединение (пиринговое соединение) и не будет запущено конкретное приложение.
Далее выполняют беспроводную передачу/прием пакета после обозначения конкретного приложения, которое требуется использовать перед соединением со вторым уровнем, до тех пор, пока не будет установлено соединение Р2Р, и не будет запущено определенное приложение. Далее, после соединения со вторым уровнем, выполняют беспроводную передачу/прием пакета в случае запуска определенного приложения.
Пример связи в момент запуска определенного приложения
На фиг. 63 и 64 иллюстрируется пример модуля беспроводной передачи/приема пакета, до тех пор, пока не будет установлено описанное выше Р2Р (пиринговое соединение), и определенное приложение не будет запущено, и представлена последовательность операций, иллюстрирующая пример обработки передачи данных каждым устройством, которое составляет основу беспроводной передачи данных. Более определенно, здесь представлен пример последовательности установления направленного соединения, приводящего к установлению соединения по стандарту Wi-Fi Direct (иногда называется Wi-Fi Р2Р), которое стандартизовано в Wi-Fi Alliance.
Здесь, в Wi-Fi Direct множество устройств беспроводной связи обнаруживают друг друга (обнаружение устройства, обнаружение услуги). Затем, после этого, как только устройства для подключения будут выбраны, устанавливается прямое соединение между выбранными устройствами в результате выполнения аутентификации с WPS (защищенная установка Wi-Fi). Кроме того, в Wi-Fi Direct, группа для обмена данными формируется путем определения, какое одно из множества устройств беспроводной передачи данных будет использовать владелец группы и клиент.
Однако, в примере обработки передачи данных, некоторая передача/прием пакетов не представлена на иллюстрации. Например, во время первого соединения, как описано выше, обмен пакетными данными необходим для использования WPS, и обмен пакетными данными также необходим, для обмена запросом/ответом аутентификации и т.п. Однако, на фиг. 63 и 64, обмен пакетными данными не представлен на иллюстрации, и здесь показано второе соединение и следующие соединения.
Кроме того, хотя пример обработки связи между первым устройством 1701 беспроводной связи и вторым устройством 1702 беспроводной связи, показан на фиг. 63 и 64, обработка связи между другими устройствами беспроводной связи, является такой же.
Вначале выполняет обнаружение устройства между первым устройством 1701 беспроводной связи и вторым устройством 1702 беспроводной связи (1711). Например, первое устройство 1701 беспроводной связи передает пробный запрос (сигнал запроса отклика) и принимает пробный отклик (сигнал отклика) на пробный запрос из второго устройства 1702 беспроводной связи. Поэтому, первое устройство 1701 беспроводной связи и второе устройство 1702 беспроводной связи могут обнаруживать друг друга. Кроме того, в результате обнаружения устройства могут быть получены наименование устройства или тип (TV, PC, смартфон и т.п.) противоположной стороны.
Далее выполняется обнаружение услуги между первым устройством 1701 беспроводной связи и вторым устройством 1702 беспроводной связи (1712). Например, первое устройство 1701 беспроводной связи передает запрос на обнаружение услуги для запроса услуги, соответствующей второму устройству 1702 беспроводной связи, обнаруженному при обнаружении устройства. Затем первое устройство 1701 беспроводной связи принимает ответ на обнаружение услуги из второго устройства 1702 беспроводной связи, для получения услуги, в соответствии со вторым устройством 1702 беспроводной связи. А именно, в результате обнаружения услуги, может быть получена услуга и т.п., которая выполняется противоположной стороной. Услуга, которая может быть выполнена противоположной стороной, представляет собой, например, услугу, протокол (DLNA (Альянс цифровой сети для дома) (DMR) (рендеринг цифровых мультимедийных данных) и т.п.).
Затем пользователь выполняет манипуляции выбора (манипуляции выбора противоположной стороны соединения) противоположной стороны соединения (1713). В некоторых случаях, манипуляция выбора противоположной стороны соединения может возникать только в одном из первого устройства 1701 беспроводной связи и второго устройства 1702 беспроводной связи. Например, экран выбора противоположной стороны соединения отображают в модуле отображения первого устройства 1701 беспроводной связи, и экран выбора противоположной стороны соединения второго устройства 1702 беспроводной связи выбирают как противоположную сторону соединения в результате манипуляции пользователя.
После выполнения пользователем манипуляции по выбору противоположной стороны соединения (1713), выполняют согласование владельца группы между первым устройством 1701 беспроводной связи и вторым устройством 1702 беспроводной связи (1714). На фиг. 63 и 64 иллюстрируется пример, в котором в результате согласования владельца группы первое устройство 1701 беспроводной связи становится владельцем 1715 группы, и второе устройство 1702 беспроводной связи становится клиентом 1716.
Затем, в результате выполнения обработки (1717-1720), устанавливается прямое соединение между первым устройством 1701 беспроводной связи и вторым устройством 1702 беспроводной связи. А именно, последовательно выполняется ассоциация (L2 (второй уровень) установление соединения) (1717) в соответствии с установлением защищенного соединения (1718). Кроме того, последовательно выполняется назначение IP-адреса (1719) и установка L4 (1720) по L3, используя SSDP (протокол обнаружения простой услуги) и т.п. Кроме того, L2 (уровень 2) обозначает второй уровень (уровень соединения данных); L3 (уровень 3) обозначает третий уровень (уровень сети); и L4 (уровень 4) обозначает четвертый уровень (уровень транспортирования).
Затем выполняют обозначение или манипуляцию запуска (манипуляции назначения/запуска приложения) для определенного приложения, выполняемого пользователем (1721). В некоторых случаях, манипуляция обозначения/запуска приложения может возникать в любом из первого устройства 1701 беспроводной связи и второго устройства 1702 беспроводной связи. Например, экран манипуляции обозначения/запуска приложения отображается в модуле отображения первого устройства 1701 беспроводной связи, и определенное приложение выбирают, используя манипуляции пользователя на экране манипуляции обозначения/запуска приложения.
После того, как пользователь выполнит манипуляцию обозначения/запуска приложения (1721), определенное приложение, соответствующее манипуляции обозначения/запуска приложения выполняют между первым устройством 1701 беспроводной связи и вторым устройством 1702 беспроводной связи (1722).
Здесь предполагается, что соединение между АР (точка доступа) и STA (станция) выполняют в пределах диапазона спецификации (спецификации, стандартизированной IEEE 802.11) раньше, чем стандарт Wi-Fi Direct. В этом случае перед соединением на втором уровне (перед ассоциацией в терминологии IEEE 802.11), не было возможно распознавать заранее, какое устройство должно было быть подключено.
С другой стороны, как представлено на фиг. 63 и 64, в Wi-Fi Direct, во время обнаружения кандидата противоположной стороны соединения при обнаружении устройства или обнаружении услуги (вариант выбора), может быть получена информация противоположной стороны соединения. Информация противоположной стороны соединения представляет собой, например, тип основного устройства, соответствующее определенное приложение и т.п. Затем пользователю может быть разрешено выбрать противоположную сторону соединения на основе информации о полученной противоположной стороне соединения.
В качестве расширения такой структуры, система беспроводной связи может быть воплощена путем обозначения определенного приложения перед соединением со вторым уровнем, выбором противоположной стороны соединения и автоматическим запуском определенного приложения после выбора. Пример последовательности, приводящей к соединению в этом случае представлен на фиг. 66. Кроме того, пример конфигурации формата фрейма, который передают/принимают в процессе передачи данных, представлен на фиг. 65.
Пример конфигурации формата фрейма
На фиг. 65 показана схема, иллюстрирующая пример конфигурации формата фрейма, передаваемого/принимаемого при обработке связи каждым устройством, которое представляет собой основу настоящей технологии. А именно, на фиг. 65 иллюстрируется пример конфигурации фрейма MAC для установления соединения со вторым уровнем. Более конкретно, пример представляет собой пример формата фрейма запроса/ответа на ассоциацию (1787), для воплощения последовательности, показанной на фиг. 66.
Как представлено на фиг. 65, фрейм MAC выполнен с возможностью управления фреймом (1751) до FCS (1758), и общее количество компонентов от управления фреймом (1751) до управления последовательностью (1756) составляет заголовок MAC. Кроме того, во время передачи запроса ассоциации, в управлении фреймом (1751), устанавливают, что В3В2="0b00" и В7В6В5В4="0b0000". Кроме того, во время инкапсуляции ответа на ассоциацию, в управлении фреймом (1751), устанавливают, что В3В2="0b00" и В7В6В5В4="0b0001". Кроме того, "0b00" представляет "00" в двоичной системе счисления; "0b0000" представляет "0000" в двоичной системе счисления; и "0b0001" представляет "0001" в двоичной системе счисления.
Здесь фрейм MAC (тело фрейма (1757), представленный на фиг. 63, в основном, представляет собой формат фрейма запроса/ответа ассоциации, раскрытого в разделах 7.2.3.4 и 7.2.3.5 спецификации IEEE 802.11-2007. Однако, фрейм MAC отличается тем, что фрейм MAC включает в себя так же, как информационный элемент (ниже сокращенно обозначается IE) (1759), определенный в спецификациях IEEE 802.11, свой собственный расширенный IE.
Кроме того, для того, чтобы представить, что IE представляет собой IE, специфичный для поставщика (1760), Тип IE (ID информационного элемента (1761)) устанавливают, как 127 в десятичной системе счисления. В этом случае, в соответствии с разделом 7.3.2.26, описанным в спецификации IEEE 802.11-2007, после это размещают поле длины (1762) и поле OUI (1763), и после этого размещают содержание, специфичное для поставщика (1764).
В качестве содержания, специфичного для поставщика (1764), вначале предусмотрено поле (тип IE (1765)), представляющее тип IE, специфичного для поставщика. Затем предусматривается возможность сохранения конфигурации, где может быть сохранено множество подэлементов (1766).
Считается, что содержание подэлемента (1766) включает в себя наименование (1767) конкретного приложения, которое должно использоваться, или функции (1768) устройства во время операции конкретного приложения. Кроме того, считается, что содержание подэлемента включает в себя информацию (информацию для установки, вплоть до L4) (1769) конкретного приложения или номера порта и т.п., используемых для управления ею, или информацию (информацию о возможностях) (1770) о возможностях в пределах конкретного приложения. Здесь информация о возможностях представляет собой информацию для установления соответствия с передачей/воспроизведением аудиоданных, соответствия с передачей/воспроизведением видеоданных и т.п., например, в случае, когда конкретное приложение будет обозначено в DLNA.
В системе беспроводной передачи данных, имеющей описанную выше конфигурацию, в результате применения настоящей технологии, описанной выше со ссылкой на фиг. 1-36, становится возможным получить те же эффекты, что и эффекты, описанные выше со ссылкой на фиг. 1-36. А именно, возможно предотвращать увеличение емкости сохранения, необходимой для кодирования/декодирования. Кроме того, в описанной выше системе беспроводной передачи данных, в результате передачи/приема кодированных данных, в соответствии с настоящей технологией, становится возможным предотвратить увеличение емкости сохранения, необходимой для кодирования/декодирования.
Кроме того, в данном описании, был описан пример, где различного рода информация мультиплексирована с кодированным потоком, предназначенным для передачи со стороны кодирования на сторону декодирования. Однако, способ передачи этих видов информации не ограничен описанным выше примером. Например, эти виды информации могут быть переданы или записаны, как индивидуальные данные, которые коррелированы с кодированным потоком битов, без мультиплексирования с кодированным потоком битов. Здесь термин "коррелировать" обозначает то, что изображение (или часть изображения, такого как срез или блок), включенное в поток битов, и информацию, соответствующую изображению, соединяют друг с другом во время декодирования. А именно, информация может быть передана по линии передачи, которая отличается от линии передачи для изображения (или потока битов). Кроме того, информация может быть записана на носителе записи (или в другой области записи того же носителя записи), который отличается от носителем записи для изображения (или потока битов). Кроме того, информация и изображение (или поток битов) могут быть скоррелированы друг с другом в произвольном модуле, например, множество кадров, один кадр, часть кадра и т.п.
В то время, как примерные варианты осуществления, раскрытые со ссылкой на приложенные чертежи, были подробно описаны выше, раскрытый технический объем не ограничен этим примером, Очевидно, что различные изменения или модификации могут быть выполнены в пределах объема технической сущности, раскрытой в формуле изобретения, специалистом в раскрытой области техники, и следует отметить, что эти изменения или модификации включены в пределы раскрытого технического объема.
Кроме того, настоящая технология может принимать следующие конфигурации.
(1) Устройство обработки изображения, включающее в себя модуль установки порогового значения для установки порогового значения, для идентификации свойств соседних пикселей текущего блока при обработке прогнозирования внутри кадра, при декодировании кодированных данных, причем данные изображения кодированы в соответствии с битовой глубиной данных изображения, и модуль обработки фильтрации для осуществления обработки фильтрации для соседних пикселей, с использованием фильтра, в соответствии со свойствами соседних пикселей, идентифицированных посредством использования порогового значения, установленного модулем установки порогового значения.
(2) Устройство обработки изображения по любому из (1) и (3)-(8), в котором модуль установки порогового значения выполнен с возможностью осуществления битового сдвига порогового значения, заранее определенного, как исходное значение, в соответствии с битовой глубиной.
(3) Устройство обработки изображения по любому из (1), (2) и (4)-(8), в котором модуль установки порогового значения выполнен с возможностью установки порогового значения равного 8, в случае, когда битовая глубина данных изображения составляет 8 битов.
(4) Устройство обработки изображения по любому из (1)-(3) и (5)-(8), дополнительно включающее в себя модуль определения, выполненный с возможностью определения битовой глубины данных изображения, а модуль установки порогового значения выполнен с возможностью установки порогового значения, в соответствии с битовой глубиной, определенной модулем определения.
(5) Устройство обработки изображения по любому из (1)-(4) и (6)-(8), дополнительно включающее в себя модуль приема, выполненный с возможностью приема битовой глубины данных изображения, а модуль установки порогового значения выполнен с возможностью установки порогового значения, в соответствии с битовой глубиной, принятой модулем приема.
(6) Устройство обработки изображения по любому из (1)-(5), (7) и (8), дополнительно включающее в себя модуль приема, выполненный с возможностью приема переданного порогового значения, установленного в соответствии с битовой глубиной данных изображения, а модуль обработки фильтрации выполнен с возможностью осуществления обработки фильтрации для соседних пикселей, с использованием фильтра, в соответствии со свойством соседних пикселей, идентифицированных, с использованием порогового значения, принятого модулем приема.
(7) Устройство обработки изображения по любому из (1)-(6) и (8), в котором модуль обработки фильтрации выполнен с возможностью осуществления обработки фильтрации низкой частоты для соседних пикселей в случае, когда значение, представляющее свойство соседних пикселей, превышает пороговое значение, установленное модулем установки порогового значения.
(8) Устройство обработки изображения по любому из (1)-(7), в котором модуль обработки фильтрации выполнен с возможностью обработки билинейной фильтрации для соседних пикселей в случае, когда значение, представляющее свойство соседних пикселей, не превышает пороговое значение, установленное модулем установки порогового значения.
(9) Способ обработки изображения, содержащий этапы, на которых: устанавливают пороговое значение для идентификации свойства соседних пикселей текущего блока при обработке прогнозирования внутри кадра, при декодировании кодированных данных, причем данные изображения кодированы в соответствии с битовой глубиной данных изображения, и выполняют обработку фильтрации для соседних пикселей, с использованием фильтра, в соответствии со свойствами соседних пикселей, идентифицированных с использованием установленного порогового значения.
Список номеров ссылочных позиций
100 устройство кодирования изображения
121 модуль установки порогового значения
122 модуль обработки фильтрации
131 модуль определения битовой глубины
132 модуль битового сдвига порогового значения
133 модуль кодирования
141 буфер режима/размера блока
142 модуль определения соседнего пикселя
143 модуль определения фильтра
144 модуль фильтра низкой частоты
145 модуль билинейного фильтра
151 модуль установки порогового значения
300 устройство декодирования изображения
321 модуль установки порогового значения
322 модуль обработки фильтрации
331 модуль определения битовой глубины
332 модуль битового сдвига порогового значения
341 буфер режима/размера блока
342 модуль определения соседнего пикселя
343 модуль определения фильтра
344 модуль фильтра низкой частоты
345 модуль билинейного фильтра
351 модуль декодирования
361 модуль декодирования
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ | 2013 |
|
RU2651183C2 |
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2012 |
|
RU2604339C2 |
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2012 |
|
RU2600537C1 |
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2011 |
|
RU2701840C2 |
УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ | 2013 |
|
RU2639250C2 |
УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ | 2013 |
|
RU2667719C1 |
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2011 |
|
RU2580056C2 |
УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЙ И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2014 |
|
RU2665308C2 |
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2014 |
|
RU2656712C2 |
УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ | 2010 |
|
RU2543306C2 |
Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности декодирования области, в которой существует градация. Устройство обработки изображения содержит модуль обработки фильтрации для осуществления фильтрации билинейной интерполяции соседних пикселей, когда значение, вычисленное на основе соседних пикселей, меньше, чем пороговое значение, установленное в соответствии с битовой глубиной данных изображения, для генерирования фильтрованных соседних пикселей; модуль внутреннего прогнозирования для осуществления обработки внутреннего прогнозирования для текущего блока с использованием фильтрованных соседних пикселей для генерирования блока прогнозирования, соответствующего текущему блоку; и модуль декодирования для декодирования текущего блока с использованием блока прогнозирования. 2 н. и 8 з.п. ф-лы, 66 ил.
1. Устройство обработки изображения, содержащее:
модуль обработки фильтрации для осуществления фильтрации билинейной интерполяции соседних пикселей, когда значение, вычисленное на основе соседних пикселей, меньше, чем пороговое значение, установленное в соответствии с битовой глубиной данных изображения, для генерирования фильтрованных соседних пикселей;
модуль внутреннего прогнозирования для осуществления обработки внутреннего прогнозирования для текущего блока с использованием фильтрованных соседних пикселей для генерирования блока прогнозирования, соответствующего текущему блоку; и
модуль декодирования для декодирования текущего блока с использованием блока прогнозирования.
2. Устройство обработки изображения по п. 1, дополнительно содержащее
модуль установки порогового значения для установки порогового значения в соответствии с битовой глубиной данных изображения во время декодирования кодированных данных указанных данных изображения.
3. Устройство обработки изображения по п. 2, в котором модуль установки порогового значения выполнен с возможностью осуществления битового сдвига порогового значения, заранее определенного в качестве исходного значения, в соответствии с битовой глубиной.
4. Устройство обработки изображения по п. 3, в котором модуль установки порогового значения выполнен с возможностью установки порогового значения, равного 8, в случае, когда битовая глубина данных изображения составляет 8 битов.
5. Устройство обработки изображения по п. 2, дополнительно включающее в себя модуль определения, выполненный с возможностью определения битовой глубины данных изображения, при этом
модуль установки порогового значения выполнен с возможностью установки порогового значения в соответствии с битовой глубиной, определенной модулем определения.
6. Устройство обработки изображения по п. 2, дополнительно включающее в себя модуль приема, выполненный с возможностью приема битовой глубины данных изображения, при этом
модуль установки порогового значения выполнен с возможностью установки порогового значения в соответствии с битовой глубиной, принятой модулем приема.
7. Устройство обработки изображения по п. 2, дополнительно включающее в себя модуль приема, выполненный с возможностью приема порогового значения, установленного в соответствии с переданной битовой глубиной данных изображения, при этом
модуль обработки фильтрации выполнен с возможностью осуществления обработки фильтрации для соседних пикселей с использованием фильтра в соответствии со свойством соседних пикселей, идентифицированных с использованием порогового значения, принятого модулем приема.
8. Устройство обработки изображения по п. 2, в котором модуль обработки фильтрации выполнен с возможностью осуществления обработки фильтрации низкой частоты для соседних пикселей, когда значение, вычисленное с использованием образца соседних пикселей, превышает пороговое значение, установленное модулем установки порогового значения.
9. Способ обработки изображения, содержащий этапы, на которых:
выполняют фильтрацию билинейной интерполяции соседних пикселей, когда значение, вычисленное на основе соседних пикселей, меньше, чем пороговое значение, установленное в соответствии с глубиной битов данных изображения, для генерирования фильтрованных соседних пикселей;
выполняют обработку внутреннего прогнозирования для текущего блока с использованием фильтрованных соседних пикселей для генерирования блока прогнозирования, соответствующего текущему блоку; и
декодируют текущий блок с использованием блока прогнозирования.
10. Способ обработки изображения по п. 9, дополнительно содержащий этап, на котором:
устанавливают пороговое значение в соответствии с битовой глубиной данных изображения во время декодирования кодированных данных указанных данных изображения.
T.K | |||
TAN et al | |||
"Contouring artefact and solution", JCTVC-K0139 (version 1), опубл | |||
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Грузоподъемная площадка крана штабелера | 1985 |
|
SU1315367A1 |
C.W | |||
SEO et al | |||
"Bi-Intra Prediction using slope information", JCTVC-D287 (version 3), опубл | |||
Прибор для равномерного смешения зерна и одновременного отбирания нескольких одинаковых по объему проб | 1921 |
|
SU23A1 |
US 6674904 B1, 06.01.2004 | |||
УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЙ, СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ, КОМПЬЮТЕРНАЯ ПРОГРАММА И ЗАПОМИНАЮЩИЙ НОСИТЕЛЬ | 2009 |
|
RU2414088C1 |
Авторы
Даты
2018-04-18—Публикация
2013-11-21—Подача