УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ
IMAGE PROCESSING DEVICE AND METHOD

Область техники, к которой относится изобретение
Настоящее раскрытие относится к устройству и способу обработки изображения и, более конкретно, к устройству и способу обработки изображения, способным уменьшить объем кодов, требующихся для управления фильтром адаптивного смещения выборки.
Уровень техники
В последние годы информация изображения обрабатывается как цифровая информация и в этом случае устройство получает широкое распространение, способно сжимать и кодировать изображение, используя способ кодирования для выполнения сжатия посредством ортогонального преобразования и компенсации движения, такой как дискретное косинусное преобразование, использующее избыточность, уникальную для информации изображения, с целью высокоэффективной передачи и накопления информации. Примерами способов кодирования являются MPEG (Moving Picture Experts Group), H.264 и MPEG-4 Часть 10 (Advanced Video Coding (перспективное видеокодирование), упоминаемое как H.264/AVC) и т. п.
В настоящее время для дальнейшего повышения эффективности кодирования по сравнению с H.264/AVC, группой JCTVC (Joint Collaboration Team-Video Coding, группа совместного сотрудничества – видеокодирование), являющейся совместной группой по стандартизации ITU-T и ISO/IEC (например, смотрите непатентный документ 1), стандартизируется способ кодирования, названный HEVC (High Efficiency Video Coding, видеокодирование с высокой эффективностью).
В текущем проекте HEVC используется фильтр адаптивного смещения выборки (SAO). В фильтре адаптивного смещения выборки все сигналы управления между компонентами Y, Cb, Cr передаются независимо.
В отличие от этого, непатентный документ 2 предлагает передачу единым синтаксисом после замены сигнала управления включением/выключением и передачу типа и коэффициентов фильтра независимо между компонентами.
Перечень литературы
Непатентные документы
Непатентный документ 1: Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand, “High efficiency video coding (HEVC) text specification draft 7”, JCTVC-I1003 ver3, 2012.6.1
Непатентный документ 2: Woo-Shik Kim, Do-Kyoung Kwon, In Suk Chong, Marta Karczewicz, “LCU SAO Enable Flag Coding”, JCTVC-I0193, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 9th Meeting: Женева, CH, 27 апреля-7 мая 2012 г.
Раскрытие изобретения
Проблемы, решаемые изобретением
Однако в упомянутом выше предложении информация о типе передается независимо для компонент Y, Cb, Cr и поэтому для управления фильтром адаптивного смещения выборки требуется большой объем кодов.
Настоящее раскрытие сделано с точки зрения таких обстоятельств и объем кодов, требующихся для управления фильтром адаптивного смещения выборки, может быть уменьшен.
Решения проблем
Устройство обработки изображения, соответствующее первому варианту настоящего раскрытия, содержит блок декодирования, выполненный с возможностью осуществления процесса декодирования кодированного потока, чтобы сформировать изображение, и блок фильтра адаптивного смещения выборки, выполненный с возможностью применения фильтра адаптивного смещения выборки к изображению, сформированному блоком декодирования, в соответствии с типом фильтра адаптивного смещения выборки, являющимся общим для компонент изображения.
Тип фильтра адаптивного смещения выборки является общим для компонента яркости и для компонента цветового контраста изображения.
Тип фильтра адаптивного смещения выборки является общим для компонент цветового контраста изображения.
Тип фильтра адаптивного смещения выборки является общим для первого компонента цветового контраста и второго компонента цветового контраста.
Когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является смещение полосы, типом фильтра адаптивного смещения выборки, соответствующим второму компоненту цветового контраста, является смещение полосы.
Когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является смещение края, типом фильтра адаптивного смещения выборки, соответствующим второму компоненту цветового контраста, является смещение края.
Когда типом фильтра адаптивного смещения выборки является смещение края, правило конфигурации смещения края является общим для компонент цветового контраста изображения.
Когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является одномерная конфигурация смещения края, типом фильтра адаптивного смещения выборки, соответствующим второму компоненту цветового контраста, является одномерная конфигурация смещения края.
Когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является двумерная конфигурация смещения края, типом фильтра адаптивного смещения выборки, соответствующим второму компоненту цветового контраста, является двумерная конфигурация смещения края.
Когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является тип, не применяющий смещение, типом фильтра смещения, соответствующим второму компоненту цветового контраста, является тип, не применяющий смещение.
Цветовое пространство изображения имеет формат Y/Cb/Cr.
Устройство обработки изображения дополнительно содержит приемный блок, выполненный с возможностью приема кодированного потока и информации о типе, указывающей тип фильтра адаптивного смещения выборки, общий для компонент изображения, и блок декодирования может использовать информацию о типе, принятую приемным блоком, чтобы декодировать кодированный поток, принятый приемным блоком.
Устройство обработки изображения дополнительно содержит блок деблокирующего фильтра, выполненный с возможностью применения деблокирующего фильтра к изображению, сформированному блоком декодирования, и блок фильтра адаптивного смещения выборки может применять фильтр адаптивного смещения выборки к изображению, к которому деблокирующий фильтр применяется блоком деблокирующего фильтра.
Приемный блок может принимать флаг слияния, указывающий то же самое смещение, что и блок кодирования, соседствующий с текущим блоком кодирования, и блок фильтра адаптивного смещения выборки может использовать флаг слияния, принятый приемным блоком, чтобы применить фильтр адаптивного смещения выборки к изображению, сформированному блоком декодирования.
Способ обработки изображения, соответствующий первому варианту настоящего раскрытия, содержит этапы, на которых выполняют процесс декодирования кодированного потока, чтобы сформировать изображение, и применяют фильтр адаптивного смещения выборки к сформированному изображению в соответствии с типом фильтра адаптивного смещения выборки, являющимся общим для компонент изображения.
В первом варианте настоящего раскрытия кодированный поток декодируется и формируется изображение. Затем фильтр адаптивного смещения выборки применяется к сформированному изображению в соответствии с типом фильтра адаптивного смещения выборки, являющимся общим для компонент изображения.
Следует заметить, что устройство обработки изображения, описанное выше, может быть независимым устройством или может быть внутренним блоком, образующим устройство кодирования изображения или устройство декодирования изображения.
Результаты изобретения
В соответствии с первым вариантом настоящего раскрытия изображение может быть декодировано. В частности, может быть уменьшен объем кодов.
Краткое описание чертежей
Фиг. 1 – блок-схема примера основной конфигурации устройства кодирования изображения.
Фиг 2 – блок-схема последовательности выполнения операций, объясняющая пример потока процесса кодирования.
Фиг. 3 – блок-схема основного примера конфигурации устройства декодирования изображения.
Фиг. 4 – блок-схема последовательности выполнения операций, объясняющая пример потока процесса декодирования.
Фиг. 5 – объяснение смещения полосы.
Фиг. 6 – объяснение смещения края.
Фиг. 7 – таблица списка правил смещения края.
Фиг 8 – блок-схема последовательности выполнения операций для объяснения процесса передачи информации управления традиционного SAO.
Фиг. 9 – блок-схема примера конфигурации фильтра адаптивного смещения выборки, к которому применяется настоящее раскрытие.
Фиг. 10 – блок-схема последовательности выполнения операций для объяснения процесса обработки фильтром адаптивного смещения выборки.
Фиг 11 – блок-схема последовательности выполнения операций для объяснения процесса установки информации управления SAO.
Фиг 12 – блок-схема последовательности выполнения операций для объяснения процесса передачи информации управления SAO.
Фиг. 13 – блок-схема другого примера конфигурации фильтра адаптивного смещения выборки, к которому применяется настоящее раскрытие.
Фиг. 14 – блок-схема последовательности выполнения операций для объяснения процесса обработки фильтром адаптивного смещения выборки.
Фиг 15 – блок-схема последовательности выполнения операций для объяснения процесса передачи управляющей информации SAO.
Фиг. 16 – блок-схема примера конфигурации фильтра адаптивного смещения выборки, к которому применяется настоящее раскрытие.
Фиг. 17 – блок-схема последовательности выполнения операций для объяснения процесса фильтрации адаптивного смещения выборки.
Фиг 18 – блок-схема последовательности выполнения операций для объяснения процесса приема информации управления SAO.
Фиг. 19 – блок-схема другого примера конфигурации фильтра адаптивного смещения выборки, к которому применяется настоящее раскрытие.
Фиг. 20 – блок-схема последовательности выполнения операций для объяснения процесса фильтрации адаптивного смещения выборки.
Фиг. 21 – пример способа кодирования мультипроекционного изображения.
Фиг. 22 – основной пример конфигурации устройства кодирования мультипроекционного изображения, к которому применяется настоящее раскрытие.
Фиг. 23 – основной пример конфигурации устройства декодирования мультипроекционного изображения, к которому применяется настоящее раскрытие.
Фиг. 24 – пример способа кодирования иерархических изображений.
Фиг. 25 – основной пример конфигурации устройства кодирования иерархического изображения, к которому применяется настоящее раскрытие.
Фиг. 26 – пример основной конфигурации устройства декодирования иерархических изображений, к которому применяется настоящая технология.
Фиг. 27 – блок-схема примера основной конфигурации компьютера.
Фиг. 28 – блок-схема примера схемы конфигурации телевизионного устройства.
Фиг. 29 – блок-схема примера схемы конфигурации сотового телефона.
Фиг. 30 – блок-схема примера схемы конфигурации устройства записи/воспроизведения.
Фиг. 31 – блок-схема примера схемы конфигурации устройства получения изображений.
Осуществление изобретения
Здесь далее будут описаны способы выполнения настоящего раскрытия (далее упоминаемые как варианты осуществления). Следует заметить, что описание будет сделано в следующем порядке.
1. Общие сведения об устройстве и порядке работы
2. Объяснение традиционного способа
3. Первый вариант осуществления (устройство обработки изображения (сторона кодирования))
4. Второй вариант осуществления (устройство обработки изображения (сторона декодирования))
5. Третий вариант осуществления (устройство кодирования мультипроекционного изображения/декодирования мультипроекционного изображения)
6. Четвертый вариант осуществления (устройство кодирования иерархического изображения/декодирования иерархического изображения)
7. Пятый вариант осуществления (компьютер)
8. Пример применения
1. Общие сведения об устройстве и порядке работы
Пример конфигурации устройства кодирования изображения
На фиг. 1 представлена конфигурация варианта осуществления устройства кодирования изображения в качестве устройства обработки изображения, к которому применяется настоящее раскрытие.
Устройство 11 кодирования изображения, показанное на фиг. 1, использует для кодирования данных изображения процесс предсказания. В этом случае пример способа кодирования содержит способ HEVC (High Efficiency Video Coding, высокоэффективного видеокодирования).
В этом способе HEVC определяется блок кодирования (CU). CU также упоминается в отношении блока дерева кодирования (CTB) и является частичной областью изображения блока картинки, который выполняет ту же самую роль, что и макроблок в способе H.264/AVC. В последнем случае размер фиксирован как 16х16 пикселей, а в первом случае размер не фиксирован и в каждой последовательности размер назначается в информации о сжатии изображения.
Например, в наборе параметров последовательности (SPS), содержащемся в кодированных данных, которые должны выводиться, присутствуют максимальный размер CU (LCU (Largest Coding Unit, блок наибольшего размера)) и минимальный размер CU (SCU (Smallest Coding Unit, блок наименьшего размера)).
В каждом LCU флаг разделения (split-flag) равен 1, пока размер не меньше, чем размер SCU, и, соответственно, CU может делиться на блоки CU меньшего размера. Когда значение split_flag равно "1", блок CU, размер которого равен 2N х 2N, делится на блоки CU размером N х N, иерархия которых на один уровень ниже.
Дополнительно, CU делится на блоки предсказания (PU), являющиеся областями, служащими в качестве целевых областей внутрикадрового или межкадрового предсказания (частичные области изображения в блоке картинки), и делится на блоки преобразования (TU), являющиеся областями, служащими в качестве целевых блоков ортогонального преобразования (частичные области изображения в блоке картинки). В настоящее время в способе HEVC может использоваться ортогональное преобразование с размерами не только 4 х 4 и 8 х 8, но также с размерами 16 х 16 и 32 х 32.
В примере, показанном на фиг. 1, устройство 11 кодирования изображения содержит блок 21 аналогово-цифрового (A/D) преобразователя, буфер 22 реорганизации экрана, блок 23 вычислений, блок 24 ортогонального преобразователя, блок 25 квантования, блок 26 кодирования без потерь и накопительный буфер 27. Устройство 11 кодирования также содержит блок инверсного квантования, блок 29 инверсного ортогонального преобразования, блок 30 вычислений, деблокирующий фильтр 31, кадровая память 32, блок 33 переключения, блок 34 внутрикадрового предсказания, блок 35 предсказания/компенсации движения, блок 36 переключения изображения предсказания и блок 37 управления скоростью.
Дополнительно, устройство 11 кодирования изображения содержит фильтр 41 адаптивного смещения выборки и адаптивный контурный фильтр 42, устанавливаемые между деблокирующим фильтром 31 и кадровой памятью 32.
Блок 21 A/D-преобразования выполняет аналогово-цифровое (A/D) преобразование принятых данных изображения и подает преобразованные данные изображения в буфер 22 реорганизации экрана для сохранения в нем данных изображения.
Буфер 22 реорганизации экрана реорганизует изображения кадров, хранящиеся в порядке отображения, в порядок кадров для кодирования в соответствии со структурой GOP (Group of Picture, группа картинки). Буфер 22 реорганизации экрана подает изображения, для которых порядок кадров был перегруппирован, на блок 23 вычислений. Буфер 22 реорганизации экрана подает изображения, для которых порядок кадров был перегруппирован, на блок 34 внутрикадрового предсказания и на блок 35 предсказания/компенсации движения.
Блок 23 вычислений вычитает предсказанное изображение, поданное от блока 34 внутрикадрового предсказания или от блока 35 предсказания/компенсации через блок 36 переключателя предсказанного изображения, из изображения, считанного из буфера 22 реорганизации экрана, и подает результирующую разностную информацию на блок 24 ортогонального преобразования.
Например, в случае изображения с внутрикадровым кодированием блок 23 вычислений вычитает изображение предсказания, поданное от блока 34 внутрикадрового предсказания, из изображения, считанного из буфера 22 реорганизации экрана. Например, в случае изображения с межкадровым кодированием блок 23 вычислений вычитает изображение предсказания, поданное от блока 35 предсказания/компенсации движения, из изображения, считанного из буфера 22 реорганизации экрана.
Блок 24 ортогонального преобразования применяет ортогональное преобразование, такое как дискретное косинусное преобразование и преобразование Карунена-Лоэва, к разностной информации, подаваемой от блока 23 вычислений. Блок 24 ортогонального преобразования подает коэффициенты преобразования на блок 25 квантования.
Блок 25 квантования квантует коэффициенты преобразования, поданные от блока 24 ортогонального преобразования. Блок 25 квантования подает квантованные коэффициенты преобразования на блок 26 кодирования без потерь.
Блок 26 кодирования без потерь применяет кодирование без потерь, такое как кодирование переменной длины или арифметическое кодирование, к квантованным коэффициентам преобразования.
Блок 26 кодирования без потерь получает параметры, такие как информация, указывающая режим внутрикадрового преобразования, от блока 34 внутрикадрового предсказания и получает параметры, такие как информация, указывающая режим межкадрового предсказания, и информация о векторе движения, от блока 35 предсказания/компенсации движения.
Блок 26 кодирования без потерь кодирует квантованные коэффициенты преобразования и полученные параметры (элементы синтаксиса) и т. п. и делает их частью информации заголовка кодированных данных (мультиплексирует). Блок 26 кодирования без потерь подает кодированные данные, полученные в процессе кодирования, в накопительный буфер 27 и сохраняет в нем кодированные данные.
Например, блок 26 кодирования без потерь выполняется процесс кодирования без потерь, такой как кодирование переменной длины или арифметическое кодирование. Примером кодирования переменной длины является CAVLC (контекстно адаптированное кодирование переменной длины). Примером арифметического кодирования является CABAC (контекстно адаптированное двоичное арифметическое кодирование).
Накопительный буфер 27 временно хранит кодированный поток (данные), поданный от блока 26 кодирования без потерь. При заданной синхронизации накопительный буфер 27 на более позднем этапе выводит хранящиеся в нем кодированные данные в качестве кодированного изображения, например, на устройство записи и на путь передачи данных (не показан). Более конкретно, накопительный буфер 27 является также блоком передачи, который передает кодированный поток.
Коэффициенты преобразования, квантованные блоком 25 квантования, также подаются на блок 28 инверсного квантования. Блок 28 инверсного квантования инверсно квантует квантованные коэффициенты преобразования, в соответствии со способом, соответствующим квантованию блоком 25 квантования. Блок 28 инверсного квантования подает полученные коэффициенты преобразования на блок 29 инверсного ортогонального преобразования.
Блок 29 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование для поданных коэффициентов преобразования согласно способу, соответствующему процессу ортогонального преобразования, выполняемому блоком 24 ортогонального преобразования. Выходной результат, полученный посредством инверсного ортогонального преобразования, (восстановленная разностная информация) подается на блок 30 вычислений.
Блок 30 вычислений добавляет изображение предсказания, поданное от блока 34 внутрикадрового предсказания или от блока 35 предсказания/компенсации движения через блок 36 переключателя изображения предсказания, к восстановленной разностной информации, являющейся результатом инверсного ортогонального преобразования, полученной от блока 29 инверсного ортогонального преобразования, формируя, таким образом, локально декодированное изображение (декодированное изображение).
Например, когда разностная информация соответствует изображению, для которого выполняется внутрикадровое кодирование, блок 30 вычислений добавляет изображение предсказания, поданное от блока 34 внутрикадрового предсказания, к разностной информации. Например, когда разностная информация соответствует изображению, для которого выполняется межкадровое кодирование, блок 30 вычислений добавляет изображение предсказания, поданное от блока 35 предсказания/компенсации движения, к разностной информации.
Декодированное изображение, являющееся результатом сложения, подается на деблокирующий фильтр 31 и кадровую память 32.
Деблокирующий фильтр 31 при необходимости выполняет посредством деблокирующего фильтра обработку декодированного изображения, удаляя, таким образом, блочные искажения из декодированного изображения. Деблокирующий фильтр 31 подает результат обработки фильтром на фильтр адаптивного смещения выборки.
Фильтр 41 адаптивного смещения выборки выполняет процесс адаптивного смещения выборки (SAO), удаляя, главным образом, звон из изображения, отфильтрованного деблокирующим фильтром 31. Фильтр 41 адаптивного смещения выборки подает отфильтрованное изображение на адаптивный контурный фильтр 42.
Типами фильтров смещения являются, в целом, девять типов, в том числе, два типа смещения полосы, шесть типов смещения края и один тип без какого-либо смещения. Фильтр 41 адаптивного смещения выборки устанавливает информацию, указывающую состояние включения/выключения каждого компонента для каждого среза, тип фильтра смещения для каждого LCU, являющегося максимальным блоком кодирования, и смещение (значение). Среди них, тип фильтра устанавливается обычно для компонент Y, Cb, Cr. Фильтр 41 адаптивного смещения выборки использует установленные тип и смещение для применения процесса фильтрации к изображению, отфильтрованному деблокирующим фильтром 31. В приведенном ниже объяснении цветовое пространство будет использоваться в качестве примера, в котором сигнал яркости обозначается как Y, а сигналы цветового контраста обозначаются как Cb, Cr. Более конкретно, они обозначаются просто как Y, Cb, Cr, причем Y представляет компонент яркости, Cb представляет компонент цветового контраста и Cr представляет компонент цветового контраста.
Фильтр 41 адаптивного смещения выборки подает информацию, указывающую установленный тип, на блок 26 кодирования без потерь для ее кодирования. В фильтре 41 адаптивного смещения выборки смещение, объясненное выше, является коэффициентом фильтра. При необходимости, смещение также упоминается как коэффициент. Следует заметить, что подробности фильтра 41 адаптивного смещения выборки будут объяснены позже на фиг. 9.
Например, адаптивный контурный фильтр 42 выполняет процесс адаптивной контурной фильтрации (ALF) для каждого блока LCU, который является максимальным блоком кодирования. В адаптивном контурном фильтре 42 в качестве фильтра используется, например, двумерный фильтр Винера. Следует понимать, что может также использоваться фильтр, отличный от фильтра Винера.
Адаптивный контурный фильтр 42 использует коэффициент фильтра, чтобы применять процесс фильтрации для каждого LCU к изображению, отфильтрованному фильтром 41 адаптивного смещения выборки, и подавать результат процесса фильтрации в кадровую память 32.
Хотя в этом описании подробное описание не приводится, устройство 11 кодирования изображения использует коэффициент фильтра, вычисленный адаптивным контурным фильтром для каждого LCU, так что остаток от первоначального изображения, заданного буфером 12 реорганизации экрана, становится наименьшим. Вычисленный коэффициент фильтра кодируется блоком 26 кодирования без потерь и передается показанному на фиг. 3 устройству декодирования изображения, описанному далее. В этом описании, например, обработка выполняется для каждого LUC, но блок обработки адаптивного контурного фильтра 42 этим не ограничивается.
При заданной синхронизации кадровая память 32 выводит накопленное опорное изображение через блок 33 переключения на блок 34 внутрикадрового предсказания или на блок 35 предсказания/компенсации движения.
Например, в случае, когда выполняется внутрикадровое кодирование, кадровая память 32 подает опорное изображение через блок 33 переключения на блок 34 внутрикадрового предсказания. Например, в случае изображения с межкадровым кодированием кадровая память 32 подает опорное изображение через блок 33 переключения на блок 35 предсказания/компенсации движения.
Когда опорное изображение, подаваемое из кадровой памяти 32, является изображением с внутрикадровым кодированием, блок 33 переключения подает опорное изображение на блок 34 внутрикадрового предсказания. Когда опорное изображение, подаваемое из кадровой памяти 32, является изображением с межкадровым кодированием, блок 33 переключения подает опорное изображение на блок 35 предсказания/компенсация движения.
Блок 34 внутрикадрового предсказания использует пиксельные значения внутри экрана, чтобы выполнить внутрикадровое предсказание (предсказание внутри экрана) для формирования изображения предсказания. Блок 34 внутрикадрового предсказания выполняет внутрикадровое предсказание во множестве режимов (режимов внутрикадрового предсказания).
Блок 34 внутрикадрового предсказания формирует изображения предсказания во всех режимах внутрикадрового предсказания и оценивает каждое изображение предсказания, выбирая, таким образом, оптимальный режим. Когда оптимальный режим внутрикадрового предсказания выбран, блок 34 внутрикадрового предсказания подает изображение предсказания, сформированное в оптимальном режиме, через блок 36 переключения изображения предсказания на блок 23 вычислений и блок 30 вычислений.
Как описано выше, блок 34 внутрикадрового предсказания при необходимости подает параметр, такой как информация о режиме внутрикадрового предсказания и т. п., указывающий режим внутрикадрового предсказания, на блок 26 кодирования без потерь.
Блок 35 предсказания/компенсации движения использует входное изображение, подаваемое из буфера 22 реорганизации экрана, и опорное напряжение, подаваемое из памяти 32 кадров через блок 32 переключения, чтобы выполнить предсказание движения для изображения, которое должно кодироваться в межкадровом режиме. Блок 35 предсказания/компенсации движения выполняет процесс компенсации движения в соответствии с векторами движения, определяемыми путем предсказания движения, формируя, таким образом, изображение предсказания (информация межкадрового изображения).
Блок 35 предсказания/компенсации движения выполняет межкадровое предсказание для всех возможных режимов межкадрового предсказания, чтобы сформировать изображения предсказания. Блок 35 предсказания/компенсации движения подает сформированное изображение предсказания через блок 36 переключения изображения предсказания на блок 23 вычислений и на блок 30 вычислений.
Устройство 35 предсказания/компенсации подает информацию о режиме межкадрового предсказания, указывающую используемый режим межкадрового предсказания, и параметр, такой как информация о векторе движения, указывающая вычисленные векторы движения, на блок 26 кодирования без потерь.
В случае изображения с внутрикадровым кодированием, блок 36 переключения изображения предсказания подает на блок 23 вычислений и блок 30 вычислений выходной сигнал блока 34 внутрикадрового предсказания, а в случае изображения с межкадровым кодированием, блок 36 переключения изображения предсказания подает на блок 23 вычислений и блок 30 вычислений выходной сигнал блока 35 предсказания/компенсации движения.
Блок 37 управления скоростью управляет скоростью операции квантования блока 25 квантования, так чтобы не вызывать переполнение или недогрузки, основываясь на сжатом изображении, накопленном в накопительной буфере 27.
Порядок работы устройства кодирования изображения
Последовательность выполнения операций процесса кодирования, исполняемая устройством 11 кодирования изображения, как она объяснялась выше, будет объяснена со ссылкой на фиг. 2.
На этапе S11 блок 21 A/D-преобразования выполняет A/D-преобразование принятого изображения. На этапе S12 буфер 22 перегруппировки экрана сохраняет изображения, подвергнутые A/D-преобразованию, и группирует их из порядка, в котором отображаются картинки, в порядок, в котором они кодируются.
Когда обрабатываемое целевое изображение, подаваемое из буфера перегруппировки экрана, является изображением блока с внутрикадровой обработкой, упомянутое декодированное изображение считывается из кадровой памяти 32 и подается через блок 33 переключения на блок 34 внутрикадрового предсказания.
На основе этих изображений, на этапе S13 блок 34 внутрикадрового предсказания выполняет внутрикадровое предсказание для пикселей обрабатываемого целевого блока во всех возможных режимах внутрикадрового предсказания. Следует заметить, что пиксель, не отфильтрованный деблокирующим фильтром 31, используется в качестве упоминаемого декодированного пикселя.
С помощью этой обработки внутрикадровое предсказание выполняется во всех возможных режимах внутрикадрового предсказания и значения функции стоимости вычисляются для всех возможных режимов внутрикадрового предсказания. Затем, основываясь на вычисленных значениях функции стоимости, выбирается оптимальный режим внутрикадрового предсказания и изображение предсказания, сформированное посредством внутрикадрового предсказания в оптимальном режиме внутрикадрового предсказания, и его значение функции стоимости подаются на блок 36 переключения изображения предсказания.
Когда обрабатываемое целевое изображение, подаваемое из буфера 22 перегруппировки экрана, является изображением, которое должно получить внутрикадровую обработку, изображение, которое упоминается, считывается из кадровой памяти 32 и подается через блок 33 переключения на блок 35 предсказания/компенсации движения. На основе этих изображений на этапе S14 блок 35 предсказания/компенсации движения выполняет процесс предсказания/компенсации движения.
С помощью этого процесса предсказание движения выполняется во всех возможных режимах межкадрового предсказания, значения функции стоимости вычисляются для всех возможных режимов межкадрового предсказания и оптимальный режим межкадорвого предсказания определяется на основе вычисленного значения функции стоимости. Затем изображение предсказания, сформированное в оптимальном режиме межкадрового предсказания, и его значение функции стоимости подаются на блок 36 переключения изображения предсказания.
На этапе S15 блок 36 переключения изображения предсказания определяет в качестве оптимального режима предсказания оптимальный режим внутрикадрового предсказания или оптимальный режим межкадрового предсказания, основываясь на значениях функции стоимости, которые выводятся от блока 34 внутрикадрового предсказания и блока 35 предсказания/компенсации движения. Затем блок 36 переключения изображения предсказания выбирает изображение предсказания в определенном оптимальном режиме предсказания и подает изображение предсказания на блоки 23 и 30 вычислений. Изображение предсказания используется для вычисления на этапах S16, S21, объясняемых позже.
Информация о переключении изображения предсказания подается на блок 34 внутрикадрового предсказания или на блок 35 предсказания/компенсации движения. Когда изображение предсказания выбирается в оптимальном режиме внутрикадрового предсказания, блок 34 внутрикадрового предсказания подает информацию, указывающую оптимальный режим внутрикадрового предсказания (более конкретно, параметр внутрикадрового предсказания) на блок 26 кодирования без потерь.
Когда изображение предсказания выбирается в оптимальном режиме межкадрового предсказания, блок 35 предсказания/компенсации движения подает информацию, указывающую оптимальный режим межкадрового предсказания, и информацию, соответствующую оптимальному режиму межкадрового предсказания, (более конкретно, параметр предсказания движения) на блок 26 кодирования без потерь. Информацией, соответствующей оптимальному режиму межкадрового предсказания, является информация о векторе движения, информация об опорном кадре и т. п.
На этапе S16 блок 23 вычислений вычисляет разницу между изображениями, перегруппированными в процессе, выполняемом на этапе S12, и изображением предсказания, выбранным при обработке на этапе S15. При выполнении межкадрового предсказания изображение предсказания подается от блока 35 предсказания/компенсации движения через блок 36 переключения изображения предсказания на блок 23 вычислений. Когда выполняется внутрикадровое предсказание, изображение предсказания подается от блока 34 внутрикадрового предсказания через блок 36 переключения изображения предсказания на блок 23 вычислений.
Объем данных для разностных данных уменьшается по сравнению с первоначальными данными изображения. Поэтому объем данных может сжиматься более сильно по сравнению со случаем, когда изображение кодируется как есть.
На этапе S17 блок 24 ортогонального преобразования выполняет ортогональное преобразование разностной информации, подаваемой от блока 23 вычислений. Более конкретно, выполняется ортогональное преобразование, такое как дискретное косинусное преобразование и преобразование Карунена-Лоэва и т.п., и выводятся коэффициенты преобразования.
На этапе S18 блок 25 кантования квантует коэффициенты преобразования. При этом квантовании скорость управляется, как объясняется для процесса этапа S28, описанного позже.
Как описано выше, квантованная разностная информация локально декодируется следующим образом. Более конкретно, на этапе S19 блок 28 инверсного квантования выполняет инверсное квантование коэффициента преобразования, квантованного блоком 25 квантования, в соответствии с характеристиками, соответствующими характеристикам блока 25 квантования. На этапе S20 блок 29 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов преобразования, инверсно квантованных блоком 28 инверсного квантования в соответствии с характеристиками, соответствующими характеристикам блока 24 ортогонального преобразования.
На этапе S21 блок 30 вычислений добавляет изображение предсказания, принятое через блок 36 переключения изображения предсказания, к локально декодированной разностной информации и формирует локально декодированное (то есть, локально декодированное) изображение (изображение, соответствующее вводу на блок 23 вычислений).
На этапе S22 деблокирующий фильтр 31 выполняет процесс деблокирующей фильтрации изображения, которое выводится из блока 30 вычислений, удаляя, таким образом, блочное искажение. Отфильтрованное изображение, полученное деблокирующим фильтром 31, выводится на фильтр 41 адаптивного смещения выборки.
На этапе S23 фильтр 41 адаптивного смещения выборки выполняет процесс фильтрации адаптивного смещения выборки. При этом процессе тип фильтра смещения, который является общим для компонент Y, Cb, Cr, устанавливается для каждого LCU, который является максимальным блоком кодирования, и дополнительно, для каждого компонента устанавливается смещение. Дополнительно, используя их, процесс фильтрации применяется к изображению, отфильтрованному деблокирующим фильтром 31. Следует заметить, что подробности обработки фильтром адаптивного смещения выборки будут объяснены позже со ссылкой на фиг. 10.
Каждый фрагмент информации, полученный, когда тип информации, общий для компонент, и смещение для каждого компонента подаются на блок 26 кодирования без потерь (которые здесь далее все вместе будут упоминаться как параметры адаптивного смещения), кодируется на этапе S26, объясняемом позже.
На этапе S24 адаптивный контурный фильтр 42 применяет процесс адаптивной контурной фильтрации к изображению, отфильтрованному фильтром 41 адаптивного смещения выборки. Например, процесс фильтрации изображения, фильтруемого фильтром 41 адаптивного смещения выборки, применяется к каждому LCU изображения, используя коэффициенты фильтра, и результат процесса фильтрации подается в кадровую память 32.
Как описано выше, блоки обработки фильтра 41 адаптивного смещения выборки и адаптивный контурный фильтр 42 рассматриваются как одинаковые, поэтому обработка может осуществляться эффективно.
На этапе S25 кадровая память 32 сохраняет отфильтрованное изображение. Следует заметить, что кадровая память 32 также принимает от блока 30 вычислений изображения, не отфильтрованные деблокирующим фильтром 31, фильтром 41 адаптивного смещения выборки и адаптивным контурным фильтром 42, и сохраняет изображения.
С другой стороны, коэффициент преобразования, квантованный на этапе S18, описанном выше, также подается на блок 26 кодирования без потерь. На этапе S26 блок 26 кодирования без потерь кодирует квантованные коэффициенты преобразования, полученные от блока 25 квантования, и предоставленные параметры. Более конкретно, разностное изображение кодируется посредством кодирования без потерь, такого как кодирование переменной длины, арифметическое кодирование и т. п., чтобы осуществить сжатие. В этом случае также кодируются параметры фильтра адаптивного смещения выборки.
На этапе S27 накопительный буфер 27 накапливает кодированное разностное изображение (то есть, кодированный поток) в качестве сжатого изображения. Сжатое изображение, накопленное в накопительном буфере 27, соответствующим образом считывается и передается на сторону декодирования по пути прохождения передачи.
На этапе S28 блок 37 управления скоростью управляет скоростью работы квантования блока 25 квантования, так чтобы не вызывать переполнения или недогрузки, основываясь на сжатом изображении, накопленном в накопительном буфере 27.
Когда процесс на этапе S28 закончен, процесс кодирования прекращается.
Пример конфигурации устройства декодирования изображения
На фиг. 3 представлена конфигурация варианта осуществления устройства декодирования изображения, служащего в качестве устройства обработки изображения, к которому применяется настоящее раскрытие. Устройство 51 декодирования изображения, показанное на фиг. 3, является устройством декодирования, соответствующим устройству 11 кодирования изображения, показанному на фиг. 1.
Кодированный поток (данные), кодированный устройством 11 кодирования изображения, передается через заданный путь прохождения передачи на устройство 51 декодирования изображения, соответствующее устройству 11 кодирования изображения, и декодируется устройством 51 декодирования изображения.
Как показано на фиг. 3, устройство 51 декодирования изображения содержит накопительный буфер 61, блок 62 декодирования без потерь, блок 63 инверсного квантования, блок 64 инверсного ортогонального преобразования, блок 65 вычислений, деблокирующий фильтр 66, буфер 67 перегруппировки экрана и блок 68 цифро-аналогового (D/A) преобразования. Устройство 51 декодирования изображения также содержит кадровую память 69, блок 70 переключения, блок 71 внутрикадрового предсказания, блок 72 предсказания/компенсации движения и блок 73 переключения.
Дополнительно, устройство 51 декодирования изображения содержит деблокирующий фильтр 66 и фильтр 81 адаптивного смещения выборки и адаптивный контурный фильтр 82, устанавливаемый между буфером 67 перегруппировки экрана и кадровой памятью 69.
Накопительный буфер 61 также является приемным блоком, который принимает переданные кодированные данные. Накопительный буфер 61 принимает и накапливает переданные кодированные данные. Кодированные данные кодируются устройством 11 кодирования изображения. Блок 62 декодирования без потерь декодирует кодированные данные, считанные из накопительного буфера 61 в заданное время, используя способ, соответствующий способу кодирования блоком 26 кодирования без потерь, показанным на фиг. 1.
Блок 62 декодирования без потерь подает на блок 72 предсказания/компенсации движения параметр, такой как информация, указывающая режим внутрикадрового предсказания, в котором декодирование выполняется в блоке 71 внутрикадрового предсказания, а также подает информацию, указывающую режим межкадрового предсказания, и параметр, такой как информация о векторе движения. Блок 62 декодирования без потерь подает на фильтр 81 адаптивного смещения выборки декодированные параметры адаптивного смещения (такие как информация, указывающая состояния включения/выключения (ON/OFF) компонент, информация, указывающая тип, общий для компонент, для каждого LCU, смещение для каждого компонента и т. п.).
Блок 63 инверсного квантования выполняет инверсное квантование данных коэффициентов, полученных в процессе декодирования блоком 62 декодирования без потерь (кантованные коэффициенты), используя способ, соответствующий способу квантования блока 25 квантования, показанного на фиг. 1. Более конкретно, блок 63 инверсного квантования использует параметры квантования, подаваемые устройством 11 кодирования изображения, для инверсного квантования коэффициентов квантования в соответствии с тем же самым способом, что и в блоке 28 инверсного квантования, показанном на фиг. 1.
Блок 63 инверсного квантования подает полученные после инверсного квантования данные коэффициентов, то есть, коэффициенты ортогонального преобразования, на блок 64 инверсного ортогонального преобразования. Блок 64 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов ортогонального преобразования, используя способ, соответствующий способу ортогонального преобразования блока 24 ортогонального преобразования, показанного на фиг. 1, получая, таким образом, декодированные остаточные данные, соответствующие остаточным данным перед ортогональным преобразованием, выполняемым устройством 11 кодирования изображения.
Полученные в результате инверсного ортогонального преобразования декодированные остаточные данные подаются на блок 65 вычислений. Блок 65 вычислений принимает изображение предсказания от блока 71 внутрикадрового предсказания или от блока 72 предсказания/компенсации движения через блок 73 переключателя.
Блок 65 вычислений складывает декодированные остаточные данные и изображение предсказания и получает данные декодированного изображения, соответствующее данным изображения до вычитания изображения предсказания блоком 23 вычислений устройства 11 кодирования изображения. Блок 65 вычислений подает декодированное изображение на деблокирующий фильтр 66.
Деблокирующий фильтр 66 при необходимости выполняет обработку декодированного изображения, чтобы удалить из декодированного изображения блочные искажения. Деблокирующий фильтр 66 подает результат обработки фильтром на фильтр адаптивного смещения выборки.
Фильтр 81 адаптивного смещения выборки выполняет процесс смещения фильтра (SAO), удаляя из изображения, отфильтрованного деблокирующим фильтром 66, главным образом, звон.
Фильтр 81 адаптивного смещения выборки использует параметр адаптивного свещения, подаваемый от блока 62 декодирования без потерь, чтобы применить процесс фильтрации к изображению, отфильтрованному деблокирующим фильтром 66 для каждого LCU, являющегося максимальным блоком кодирования. Фильтр 81 адаптивного смещения выборки подает отфильтрованное изображение на адаптивный контурный фильтр 82.
Подробности по фильтру 81 адаптивного смещения выборки будут объяснены на фиг. 16, но фильтр 81 адаптивного смещения выборки принимает информацию, указывающую состояние включения/выключения (ON/OFF) каждого компонента для каждого среза, и тип (тип) и смещение (значение) фильтра смещения для каждого LCU, являющегося максимальным блоком кодирования. Среди них, тип фильтра устанавливается обычно для компонент Y, Cb, Cr. Фильтр 81 адаптивного смещения выборки использует принятые тип и смещение, чтобы применить их к изображению, отфильтрованному деблокирующим фильтром 66.
Адаптивный контурный фильтр 82 выполнен, в основном, таким же образом, как адаптивный контурный фильтр 42 устройства 11 кодирования изображения, показанного на фиг. 1, и осуществляет процесс адаптивной контурной фильтрации для каждого LCU, являющегося максимальным блоком кодирования. Для изображения, отфильтрованного фильтром 81 адаптивного смещения выборки, адаптивный контурный фильтр 42 использует коэффициенты фильтра, чтобы выполнять процесс фильтрации для каждого LCU, и подает результат процесса фильтрации в кадровую память 69 и буфер 67 перегруппировки экрана.
Хотя в этом описании подробное описание не приводится, коэффициенты фильтра вычисляются для каждого LCU адаптивным контурным фильтром 42 устройства 11 кодирования изображения в устройстве 51 декодирования изображения и эти кодированные и принятые данные декодируются блоком 62 декодирования без потерь для использования.
Буфер 67 перегруппировки экрана перегруппирует изображения. Более конкретно, порядок кадров, выстроенных в порядке кодирования буфером 22 перегруппировки изображений на фиг. 1, перегруппируется на первоначальный порядок для отображения. Блок 68 D/A-пробразования выполняет цифро-аналоговое преобразование изображения, поданного из буфера 67 реорганизации экрана, выводит изображение на дисплей (не показан) и заставляет дисплей отображать изображение.
Выходной сигнал адаптивного контурного фильтра 82 дополнительно подается в кадровую память 69.
Кадровая память 69, блок 70 переключения, блок 71 внутрикадрового предсказания, блок 72 предсказания/компенсации движения и блок 73 переключения должным образом соответствуют кадровой памяти 32, блоку 33 переключения, блоку 34 внутрикадрового предсказания, блоку 35 предсказания/компенсации движения и блоку 36 переключения изображения предсказания устройства 11 кодирования изображения.
Блок 70 переключения считывает изображение с межкадровой обработкой и опорное изображение из кадровой памяти 69 и подает изображения на блок 72 предсказания/компенсации движения. Блок 70 переключения считывает изображение, использованное для внутрикадрового предсказания, из кадровой памяти 69 и подает изображения на блок 71 внутрикадрового предсказания.
При необходимости, блок 62 декодирования без потерь подает на блок 71 внутрикадрового предсказания такую информацию, которая указывает режим внутрикадрового предсказания, полученную декодированием информации заголовка. На основе этой информации блок 71 внутрикадрового предсказания формирует изображение предсказания из опорного изображения, полученного от кадровой памяти 69, и подает сформированное изображение предсказания на блок 73 переключения.
Блок 72 предсказания/компенсации движения принимает от блока 62 декодирования без потерь информацию, полученную посредством декодирования информации заголовка (информацию о режиме предсказания, информация о векторе движения, информацию опорного кадра, флаги, различные типы параметров и т. п.).
На основе этой информации, полученной от блока 62 декодирования без потерь, блок 72 предсказания/компенсации движения формирует изображение предсказания из опорного изображения, полученного из кадровой памяти 69, и подает сформированное изображение предсказания на блок 73 переключения.
Блок 73 переключения переключает изображение предсказания, сформированное блоком 72 предсказания/компенсации движения или блоком 71 внутрикадрового предсказания, и передает выбранное изображение предсказания на блок 65 вычислений.
Порядок работы устройства декодирования изображения
Пример последовательности выполнения операций процесса декодирования, исполняемой устройством 51 декодирования изображения, как объяснялось выше, будет описан со ссылкой на фиг. 4.
picture
picture
picture
Когда на этапе S51 процесс декодирования начат, накопительный буфер 61 принимает и накапливает переданный кодированный поток (данные). На этапе S52 блок 62 декодирования без потерь декодирует кодированные данные, поданные от накопительного буфера 61. I, P, и B, кодированные блоком 26 кодирования без потерь, показанным на фиг. 1, декодируются.
Перед декодированием картинок информация о параметрах, такая как информация о векторе движения, информация опорного кадра и информация о режиме предсказания (режим внутрикадрового предсказания или режим межкадрового предсказания), также декодируется.
Когда информация о режиме предсказания является информацией о режиме внутрикадрового предсказания, информация о режиме предсказания подается на блок 71 внутрикадрового предсказания. Когда информация о режиме предсказания является информацией о режиме межкадрового предсказания, на блок 72 предсказания/компенсации движения подается информация о векторе движения, соответствующая информации о режиме предсказания и т. п. Параметр адаптивного смещения также декодируется и подается на фильтр 81 адаптивного смещения выборки.
На этапе S53 блок 71 внутрикадрового предсказания или блок 72 предсказания/компенсации движения соответственно выполняет процесс формирования изображения предсказания, связанный с информацией о режиме предсказания, поданной от блока 62 декодирования без потерь.
Более конкретно, когда блок 62 декодирования без потерь предоставляет информацию о режиме внутрикадрового предсказания, блок 71 внутрикадрового предсказания формирует изображение с внутрикадровым предсказанием в режиме внутрикадрового предсказания. Когда блок 62 декодирования без потерь предоставляет информацию о режиме межкадрового предсказания, блок 72 предсказания/компенсации движения выполняет процесс предсказания/компенсации движения в режиме внутрикадрового предсказания и формирует изображение с межкадровым предсказанием.
С помощью этого процесса изображение предсказания (изображение с внутрикадровым предсказанием), сформированное блоком 71 внутрикадрового предсказания, или изображение предсказания (изображение с межкадровым предсказанием), сформированное блоком 72 предсказания/компенсации, подается на блок 73 переключения.
На этапе S54 блок 73 переключения выбирает изображение предсказания. Более конкретно, обеспечивается изображение предсказания, сформированное блоком 71 внутрикадрового предсказания, или изображение предсказания, сформированное блоком 72 предсказания/компенсации движения. Поэтому подаваемое изображение предсказания выбирается и подается на блок 65 вычислений и на этапе S57 добавляется к выходному сигналу блока 64 инверсного ортогонального преобразования, как описано позже.
На этапе S52, описанном выше, коэффициенты преобразования, декодированные блоком 62 декодирования без потерь, также подаются на блок 63 инверсного квантования. На этапе S55 блок 63 инверсного квантования выполняет инверсное квантование коэффициентов преобразования, декодированных блоком 62 декодирования без потерь, в соответствии с характеристиками блока 25 квантования, показанного на фиг. 1.
На этапе S56 блок 29 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов преобразования, инверсно квантованных блоком 28 инверсного квантования в соответствии с характеристиками, соответствующими характеристикам блока 24 ортогонального преобразования, показанного на фиг. 1. Благодаря этому, разностная информация, соответствующая входному сигналу блока 24 ортогонального преобразования, показанного на фиг. 1, (выходному сигналу блока 23 вычислений) декодируется.
На этапе S57 блок 65 вычислений добавляет разностную информацию к изображению предсказания, выбранному в процессе этапа S54, описанного выше, и поданному через блок 73 переключения. Таким образом, первоначальное изображение декодируется.
На этапе S58 деблокирующий фильтр 66 выполняет процесс деблокирующей фильтрации изображения, которое выводится блоком 65 вычислений. Таким образом, блочное искажение удаляется. Декодированное изображение, полученное от деблокирующего фильтра 66, выводится на фильтр 81 адаптивного смещения выборки.
На этапе S59 фильтр 81 адаптивного смещения выборки выполняет процесс фильтрации адаптивного смещения выборки. Фильтр 81 адаптивного смещения выборки использует параметр адаптивного смещения, поданный от блока 62 декодирования без потерь, чтобы применить процесс фильтрации к изображению, отфильтрованному деблокирующим фильтром 66. Фильтр 81 адаптивного смещения выборки подает отфильтрованное изображение на адаптивный контурный фильтр 82.
Хотя подробности фильтра 81 адаптивного смещения выборки будут объяснены позже на фиг. 17, фильтр 81 адаптивного смещения выборки выполняет процесс фильтрации адаптивного смещения выборки. При этом процессе тип фильтра смещения, являющийся общим для компонент Y, Cb, Cr, устанавливается для каждого LCU, который является максимальным блоком кодирования, и дополнительно, смещение устанавливается для каждого компонента. Дополнительно, используя их, процесс фильтрации применяется к изображению, отфильтрованному деблокирующим фильтром 66.
На этапе S60 адаптивный контурный фильтр 82 применяет процесс адаптивной контурной фильтрации к изображению, отфильтрованному фильтром 81 адаптивного смещения выборки. Адаптивный контурный фильтр 82 использует коэффициенты фильтра для каждого LCU, являющегося максимальным блоком кодирования, чтобы выполнить процесс фильтрации для каждого LCU входного изображения, и подает результат процесса фильтрации в буфер 67 перегруппировки экрана и кадровую память 69.
На этапе S61 кадровая память 69 запоминает отфильтрованное изображение.
На этапе S62 буфер 67 перегруппировки экрана выполняет перегруппировку изображений, отфильтрованных адаптивным контурным фильтром 82. Более конкретно, порядок кадров, выстроенных в порядке кодирования буфером 22 перегруппировки экрана устройства 11 кодирования изображения, перегруппируется на первоначальный порядок для отображения.
На этапе S63 блок 68 D/A-пробразования выполняет цифро-аналоговое преобразование изображений, поданных из буфера 67 реорганизации экрана. Изображения выводятся на дисплей (не показан) и дисплей отображает изображения.
Когда процесс на этапе S63 закончен, процесс декодирования прекращается.
Объяснение традиционного способа
Процесс адаптивного смещения, соответствующий способу HEVC
Далее будет описан фильтр адаптивного смещения выборки, соответствующий способу HEVC. В способе HEVC ипользуется способ адаптивного смещения выборки (Sample Adaptive Offset).
На стороне кодирования фильтр 41 адаптивного смещения выборки обеспечивается между деблокирующим фильтром (DB) 31 и адаптивным контурным фильтром (ALF) 42. Аналогично, на стороне декодирования фильтр 81 адаптивного смещения выборки обеспечивается между деблокирующим фильтром (DB) 66 и адаптивным контурным фильтром (ALF) 82.
Типы адаптивных смещений содержат два типа смещений полосы и шесть типов смещения края и, альтернативно, смещение может не применяться. Можно выбрать, какой из типов адаптивного смещения, объясненных выше, использовать для кодирования изображения для каждого LCU.
Эта информация о выборе кодируется как PQAO Info блоком кодирования (энтропийное кодирование) и формируется битовый поток и далее сформированный битовый поток передается на сторону декодирования. Используя этот способ, эффективность кодирования может быть повышена.
Сначала подробности смещения полосы будут описаны со ссылкой на фиг. 5.
При смещении полосы в примере на фиг. 5 одиночная отметка означает одну полосу = восемь пикселей. Значение пикселя яркости делится на 32 полосы и каждая полоса индивидуально имеет значение смещения.
Более конкретно, в примере, показанном на фиг. 5, 16 центральных полос из 0-255 пикселей (32 полосы) составляют первую группу и восемь полос по обе ее стороны составляют вторую группу.
Затем смещение только одной, первой группы или второй группы, кодируется и посылается на сторону декодирования. В целом, любая заданная область часто бывает либо областью, которая является только белой или черной, либо областью, в которой цвет неопределенен. Все пиксели грубо находятся в двух группах, в первой группе и второй группе. По этой причине, когда посылается смещение только одной из них, это может подавлять увеличение объема кодирования, вызванного передачей значений пикселей невключенных пикселей в каждом LCU.
Когда входной сигнал обусловлен широковещательной передачей, сигнал яркости ограничивается диапазоном 16, 235 и цветовой контраст ограничивается диапазоном 16, 240. В этом случае применяется широковещательная передача, законно показанная в нижнем столбце на фиг. 5, и значения смещения для двух полос на каждой из обеих сторон, которые указываются значками "х", не передаются.
Далее подробности смещения края будут описаны со ссылкой на фиг. 6.
При смещении края значение пикселя, о котором идет речь, и значение соседнего пикселя, соседствующего со значением пикселя, сравниваются и значение смещения передается в соответствующему ему категорию.
Смещения краев содержат четыре одномерных структуры, которые показаны в позициях A-D на фиг. 6, и две двумерные структуры, которые показаны в позициях E и F на фиг. 6, и смещения передаются в категориях, показанных на фиг. 6.
В позиции А на фиг. 6 соседние пиксели располагаются справа и слева от пикселя С в одномерном направлении. Более конкретно, она указывает одномерную, с нулевым градусом структуру, формирующую нулевой градус относительно структуры А на фиг. 6. В позиции В на фиг. 6 соседние пиксели располагаются выше и ниже пикселя С в одномерном направлении. Более конкретно, она указывает одномерную, с 90 градусами структуру, формирующую 90 градусов относительно структуры А, показанной на фиг. 6.
В позиции С на фиг. 6 соседние пиксели располагаются вверху слева и внизу справа от пикселя С в одномерном направлении. Более конкретно, она указывает одномерную, со 135 градусами структуру, формирующую 135 градусов относительно структуры А на фиг. 6. В позиции D на фиг. 6 соседние пиксели располагаются вверху справа и внизу слева пикселя С в одномерном направлении. Более конкретно, она указывает одномерную, с 135 градусами структуру, формирующую 45 градусов относительно структуры А, показанной на фиг. 6.
В позиции Е на фиг. 6 соседние пиксели располагаются выше, ниже, слева и справа от пикселя С в двумерном направлении. Более конкретно, она указывает двумерную, поперечную структуру, пересекающую пиксель С. В позиции F на фиг. 6 соседние пиксели располагаются вверху справа, внизу слева, вверху слева и внизу справа от пикселя С в двумерном направлении. Более конкретно, она указывает двумерную, диагональную структуру, пересекающую пиксель С по диагонали.
Ссылочный символ А на фиг. 7 указывает таблицу списка правил для одномерных структур (правило классификации для одномерных структур). Структуры А-D, показанные на фиг. 6, классифицируются на пять типов категорий, таких, как показаны в позиции А на фиг. 7, смещение вычисляется и посылается на блок декодирования в соответствии с категориями.
Когда пиксельное значение пикселя С меньше, чем пиксельные значения двух соседних пикселей, он классифицируется по категории 1. Когда пиксельное значение пикселя С меньше, чем пиксельное значение одного из соседних пикселей и совпадает с пиксельным значением других соседних пикселей, он классифицируется по категории 2. Когда пиксельное значение пикселя С больше, чем пиксельное значение одного из соседних пикселей и совпадает с пиксельным значением других соседних пикселей, он классифицируется по категории 3. Когда пиксельное значение пикселя С больше, чем пиксельные значения двух соседних пикселей, он классифицируется по категории 4. Когда ничто из сказанного выше не применяется, он классифицируется по категории 0.
Ссылочный символ В на фиг. 7 указывает таблицу списка правил для двумерных структур (правило классификации для двумерных структур). Структуры Е и F, показанные на фиг. 6, классифицируются на семь типов категорий, как показано в позиции В на фиг. 7, и смещение посылается на сторону декодирования в соответствии с категорией.
Когда пиксельное значение пикселя С меньше, чем пиксельные значения четырех соседних пикселей, он классифицируется по категории 1. Когда пиксельное значение пикселя С меньше, чем пиксельные значения трех соседних пикселей и совпадает с пиксельным значением четвертого пикселя, он классифицируется по категории 2. Когда пиксельное значение пикселя С меньше, чем пиксельные значения трех соседних пикселей и больше, чем пиксельное значение четвертого соседнего пикселя, он классифицируется по категории 3.
Когда пиксельное значение пикселя С больше, чем пиксельные значения трех соседних пикселей, и меньше, чем пиксельное значение четвертого соседнего пикселя, он классифицируется по категории 4. Когда пиксельное значение пикселя С больше, чем пиксельные значения трех соседних пикселей, и совпадает с пиксельным значением четвертого пикселя, он классифицируется по категории 5. Когда пиксельное значение пикселя С больше, чем пиксельные значения четырех соседних пикселей, он классифицируется по категории 6. Когда ничто из сказанного выше не применяется, он классифицируется по категории 0.
Как описано выше, при смещении края объем вычислений для одномерной структуры меньше, поскольку сравнение может делаться только с двумя соседними пикселями. В режиме высокоэффективного кодирования значение смещения на один бит делается с более высокой точностью по сравнению с режимом кодирования с низкой задержкой, и посылается на сторону декодирования.
Процесс адаптивного смещения, описанный выше, является процессом, выполняемым для каждого LCU в способе HEVC (непатентный документ 1). В процессе адаптивного смещения в способе HEVC все сигналы управления между компонентами Y, Cb, Cr передаются независимо.
Более конкретно, в способе HEVC информация управления SAO, такая как информация включения/выключения (ON/OFF), информация о типе фильтра и коэффициент фильтра передается для каждого LCU или полностью независимо для каждого компонента.
В отличие от этого, непатентный документ 2 предлагает следующую технологию: сигнал управления включением/выключением (ON/OFF) между компонентами в информации управления SAO, описанной выше, заменяется единым синтаксисом и передается.
Далее традиционный процесс передачи информации управления SAO для каждого LCU будет объясняться со ссылкой на блок-схему последовательности выполнения операций, приведенную на фиг. 8.
На этапе S11 компонент ID(cIdx) равен нулю. В этом случае cIdx = 0 указывает Y (сигнал яркости), cIdx = 1 указывает Cb (сигнал цветового контраста) и cIdx = 2 указывает Cr (сигнал цветового контраста).
На этапе S12 производится определение, сохранять ли cIdx < 3 или нет. Когда на этапе S12 определяется, что cIdx < 3 должно сохраняться, то далее выполняется процесс на этапе S13. На этапе S13 производится определение, должен ли сохраняться slice_sample_adaptive_offset_flag[cIdx] = 1 или нет. Флаг slice_sample_adaptive_offset_ flag[cIdx] является информацией, указывающей состояние ON/OFF (флага) каждого компонента для каждого среза.
Когда на этапе S13 определяется, что slice_sample_adaptive_offset_flag[cIdx] = 1 должен сохраняться (более конкретно, фильтр адаптивного смещения выборки выполняется на cIdx), далее выполняется процесс на этапе S14. На этапе S14 передается информация управления SAO для cIdx (= 0). В непатентном документе 2 информация о типе фильтра, коэффициент фильтра (смещение) и т. п. передаются в качестве информации управления SAO.
На этапе S13 slice_sample_adaptive_offset_flag[cIdx] = 0 сохраняется (более конкретно, фильтр адаптивного смещения выборки определяется как не подлежащий выполнению на cIdx, процесс на этапе S14 пропускается и далее выполняется процесс на этапе S15).
На этапе S15 cIdx++ выполняется (более конкретно, cIdx = 1), процесс на этапе S12 выполняется снова. На этапе S12 cIdx < 3 определяется как не подлежащее сохранению, далее выполняется процесс на этапе S16.
На этапе S16 делается определение в отношении того, должен ли текущий LCU, который обрабатывается в данный момент, быть последним LCU или нет. Когда текущий LCU, который обрабатывается в данный момент, на этапе S16 определяется как не являющийся последним LCU, далее выполняется процесс на этапе S17. На этапе S17 последующий LCU рассматривается как текущий LCU и обработка, выполняющаяся на этапе S11, проводится снова.
Когда текущий LCU, который обрабатывается в данный момент, на этапе S16 определяется как являющийся последним LCU, процесс передачи информации управления SAO заканчивается.
Как описано выше в непатентном документе 2 информация управления SAO, такая как информация о типе фильтра и коэффициент фильтра, передается для каждого LCU или полностью независимо для каждого компонента.
Однако в упомянутых выше непатентных документах 1 и 2 информация о типе передается независимо между компонентами Y, Cb, Cr и поэтому существует большой объем кодов, требующихся для управления фильтром адаптивного смещения выборки.
С точки зрения описанных выше вопросов, настоящая технология выполняется так, что тип фильтра делается общим для компонент (Y, Cb, Cr или Cb, Cr) и только коэффициенты независимо передаются в качестве информации управления SAO.
3. Первый вариант осуществления
Пример конфигурации фильтра адаптивного смещения выборки
На фиг. 9 представлена блок-схема примера конфигурации фильтра адаптивного смещения выборки и блока кодирования без потерь в устройстве кодирования изображения, показанном на фиг. 1.
В примере, представленном на фиг. 9, фильтр 41 адаптивного смещения выборки содержит блок 111 установки флага SAO, блок 112 установки типа, блок 113 установки смещения, блок 114 установки информации управления SAO, буфер 115 смещения, блок 116 процесса фильтрации и буфер 117 изображения.
Блок 26 кодирования без потерь содержит, по меньшей мере, блок 121 записи синтаксиса.
Деблокированные пиксельные значения, даваемые деблокирующим фильтром 31, вводятся в блок 111 установки флага SAO, блок 112 установки типа, блок 113 установки смещения и блок 116 процесса фильтрации. Блок 111 установки флага SAO использует деблокированные пиксельные значения для установки флага SAO (slice_sample_adaptive_offset_flag), указывающего состояние включения/выключения фильтра адаптивного смещения выборки каждого компонента в блоках срезов. Блок 111 установки флага SAO подает флаг SAO, который был установлен, на блок 112 установки типа и на блок 121 записи синтаксиса.
Блок 112 установки типа использует деблокированные пиксельные значения в блоках LCU для установки типа фильтра, являющегося общим для компонент Y, Cb, Cr. Например, вычисляется значение функции стоимости в блоках LCU и оптимальный тип устанавливается для LCU, значение функции стоимости которого является наименьшим. В этом случае используются сигналы всех компонент, но ограничений для используемых сигналов нет и, например, может использоваться только сигнал яркости. Блок 112 установки типа подает информацию, указывающую тип, на блок 113 установки смещения и на блок 121 записи синтаксиса. Блок 112 установки типа также подает флаг SAO каждого компонента на блок 113 установки смещения.
Блок 113 установки смещения использует значения деблокированных пикселей для установки смещений (коэффициентов) в блоках LCU независимо для каждого из компонент Y, Cb, Cr. В этом случае, например, сигналы каждого компонента (деблокированные пиксельные значения) используются для вычисления значения функции стоимости в блоках LCU, и устанавливается оптимальное смещение для LCU, значение функции стоимости для которого является наименьшим.
Блок 113 установки смещения подает на блок 116 процесса фильтрации флаг SAO, смещение для каждого из компонент и тип, общий для компонент. Блок 113 установки смещения также подает смещение на блок 114 установки информации управления SAO.
Блок 114 установки информации управления SAO записывает смещение, заданное блоком 113 установки смещения, в буфер 115 смещения для каждого компонента. Блок 114 установки информации управления SAO обращается к информации, записанной в буфере 115 смещения, и определяет, совпадает ли смещение, заданное блоком 113 установки смещения, со смещением левого LCU, являющегося соседним слева от текущего LCU, который обрабатывается в данный момент. Когда смещение, заданное блоком 113 установки смещения определяется как совпадающее со смещением левого LCU, который является соседним слева от текущего LCU, который обрабатывается в настоящий момент, блок 114 установки информации управления SAO устанавливает sao_merge_left_flag и подает установленный sao_merge_left_flag в блок 121 записи синтаксиса в качестве информации управления SAO.
Дополнительно, блок 114 установки информации управления SAO определяет, совпадает ли смещение, заданное блоком 113 установки смещения, со смещением верхнего LCU, являющегося соседним с верхней стороной текущего LCU. Когда смещение, заданное блоком 113 установки смещения, определяется как совпадающее со смещением верхнего LCU, являющегося соседним с верхней стороной текущего LCU, блок 114 установки информации управления SAO устанавливает sao_merge_top_flag и подает установленный sao_merge_top_flag в блок 121 записи синтаксиса в качестве информации управления SAO.
Когда смещение, заданное блоком 113 установки смещения, не совпадает ни с левым LCU, ни с верхним LCU, блок 114 установки информации управления SAO подает в качестве информации управления SAO на блок 121 записи синтаксиса только смещение. Более конкретно, sao_merge_left_flag является флагом, указывающим, что смещение является таким же, как для левого LCU, и sao_merge_top_flag является флагом, указывающим, что смещение является таким же, как для верхнего LCU. Когда эти флаги установлены, флаг, который был установлен, посылается вместо смещения. Для этого случая объясняется пример, в котором определение основано только на смещении. Альтернативно, блок 113 установки смещения может предоставлять не только тип, но также и смещение, и определение может делаться, основываясь на типе и смещении.
Буфер 115 смещения сохраняет смещение LCU, соседнего с текущим LCU. Буфер 115 смещения может хранить, по меньшей мере, смещение левого LCU и верхнего LCU от текущего LCU.
Блок 116 процесса фильтрации выполняет процесс фильтрации адаптивного смещения выборки для каждого LCU для значения деблокированного пикселя каждого компонента, заданного деблокирующим фильтром 31 на основе флага SAO, информации о типе и информации о смещении, заданном блоком 113 установки смещения. Блок 116 процесса фильтрации подает пиксельное значение, подвергнутое процессу смещения, в буфер 117 изображения.
Буфер 117 изображения временно сохраняет пиксельные значения, подвергнутые процессу смещения блоком 116 процесса фильтрации, и подает пиксельные значения на адаптивный контурный фильтр 42 с заданной синхронизацией.
Блок 121 записи синтаксиса записывает флаг SAO, заданный блоком 111 установки флага SAO, на участок заголовка кодированного потока для каждого среза. Блок 121 записи синтаксиса записывает на участок заголовка кодированного потока для каждого LCU тип, общий для компонент, заданный блоком 112 установки типа, и смещение или флаг слияния для каждого компонента, заданного блоком 114 установки информации управления SAO.
Процесс фильтрации адаптивного смещения выборки на стороне кодирования
Далее процесс фильтрации адаптивного смещения выборки, который выполняется фильтром 41 адаптивного смещения выборки, показанным на фиг. 9, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 10. Следует заметить, что процесс фильтрации адаптивного смещения выборки выполняется на этапе S23 на фиг. 2.
Деблокированные пиксельные значения, даваемые деблокирующим фильтром 31, вводятся в блок 111 установки флага SAO, блок 112 установки типа, блок 113 установки смещения и блок 116 процесса фильтрации. На этапе S111 блок 111 установки флага SAO использует деблокированные пиксельные значения для установки флага SAO (slice_sample_adaptive_offset_flag), указывающего состояние включения/выключения (ON/OFF) фильтра адаптивного смещения выборки каждого компонента в блоках срезов. Блок 111 установки флага SAO подает флаг SAO, который был установлен, на блок 112 установки типа и на блок 121 записи синтаксиса.
На этапе S112 блок 112 установки типа устанавливает ID(cIdx) = 0. В этом случае cIdx = 0 указывает Y (сигнал яркости), cIdx = 1 указывает Cb (сигнал цветового контраста signal) и cIdx = 2 указывает Cr (сигнал цветового контраста).
На этапе S113 блок 112 установки типа определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[0 или 1 ли 2] = 1 или нет. Более конкретно, на этапе S113 фильтр адаптивного смещения выборки по меньшей мере одного из параметров Y, Cb, Cr должен применяться или не определяется.
Когда slice_sample_adaptive_offset_flag[0 или 1 или 2] = 1 определяется как подлежащий сохранению и, более конкретно, когда на этапе S113 фильтр адаптивного смещения выборки по меньшей мере для одного из параметров Y, Cb, Cr определяется как применяемый, далее выполняется процесс на этапе S114.
На этапе S114 блок 112 установки типа использует значения деблокированных пикселей для установки в блоках LCU типа (sao_type) фильтра, являющегося общим для компонент Y, Cb, Cr. Блок 112 установки типа подает информацию, указывающую тип, на блок 121 записи синтаксиса и после этого далее выполняется обработка на этапе S115.
В связи с этим, блок 121 записи синтаксиса записывает sao_type в синтаксис, подает его в накопительный буфер 27 и передает его на этапе 143, показанном на фиг. 12, объясняемом позднее.
Когда slice_sample_adaptive_offset_flag[0 и 1 и 2] = 0 определяется как подлежащий сохранению и, более конкретно, когда на этапе S112 фильтры адаптивного смещения выборки для всех параметров Y, Cb, Cr определяются как применяемые, обработка на этапе S114 пропускается и далее выполняется этап S115.
Блок 112 установки типа определяет, сохраняется ли cIdx < 3 или нет на этапе S115. Когда на этапе S115 определяется, что cIdx < 3 должно сохраняться, то далее выполняется процесс на этапе S116.
На этапе S116 блок 112 установки типа определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[cIdx] = 1 или нет.
Когда на этапе S116 определяется, что slice_sample_adaptive_offset_flag[cIdx] = 1 должен сохраняться (более конкретно, фильтр адаптивного смещения выборки выполняется для cIdx), далее выполняется процесс на этапе S117. В этом случае, блок 112 установки типа подает тип фильтра, который установлен на этапе S114, и флаг SAO (slice_sample_adaptive_offset_flag) соответствующего cIdx, который установлен на этапе S111, в блок 113 установки смещения.
На этапе S117 блок 113 установки смещения и блок 114 установки информации управления SAO устанавливают информацию управления SAO для cIdx (= 0 (более конкретно, сигнал яркости Y)). Этот процесс установки информации управления SAO будет объяснен позже со ссылкой на фиг. 11. При этом процессе смещение или флаг слияния устанавливается как информация управления SAO и информация управления SAO, которая была установлена, подается на блок 121 записи синтаксиса. В этом случае смещение, которое было установлено, подается на блок 116 процесса фильтрации.
В связи с этим, блок 121 записи синтаксиса записывает управляющую информацию SAO cIdx в синтаксис, подает управляющую информацию SAO в накопительный буфер 27 и передает управляющую информацию SAO на этапе 146, показанном на фиг. 12, объясняемом позднее.
После этапа S117 далее выполняется обработка на этапе S118. На этапе S116, когда определяется, что slice_sample_adaptive_offset_flag[cIdx] = 0 должно сохраняться (более конкретно, фильтр адаптивного смещения выборки не выполняется для cIdx), процесс на этапе S117 пропускается и далее выполняется этап S118.
На этапе S118 блок 116 фильтрации выполняет процесс адаптивной фильтрации для деблокированных пикселей, поступающих от деблокирующего фильтра 31. В этом случае процесс адаптивной фильтрации выполняется на основе типа фильтра, который был установлен на этапе S114, флага SAO, соответствующего cIdx, который был установлен на этапе S111, и дополнительно установленного смещения на этапе S117.
Блок 116 фильтрации подает пиксельные значения, подвергнутое обработке смещения, в буфер 117 изображения. Буфер 117 изображения временно сохраняет пиксельные значения, подвергнутые процессу смещения блоком 116 фильтрации, и подает пиксельные значения на адаптивный контурный фильтр 42 с заданной синхронизацией.
На этапе S119 блок 112 установки типа выполняет cIdx++ (более конкретно, cIdx = 1 (который означает сигнал Cb цветового контраста)), и процесс этапа S115 выполняется снова. Когда определяется, что cIdx < 3 не должно сохраняться на этапе S115, то далее выполняется процесс на этапе S120.
На этапе S120 блок 112 установки типа определяет, является ли текущий LCU, который обрабатывается в данный момент, последним LCU или нет. Когда текущий LCU, который обрабатывается в данный момент, на этапе S120 определяется как не являющийся последним LCU, далее выполняется процесс на этапе S121. На этапе S121 текущий LCU изменяется на последующий LCU и обработка, выполняющаяся на этапе S112, проводится снова.
Когда текущий LCU, который обрабатывается в данный момент, на этапе S120 определяется как являющийся последним LCU, фильтрация адаптивного смещения выборки прекращается.
Процесс установки управляющей информации SAO
Далее процесс установки информации управления SAO на этапе S117, показанном на фиг. 10, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, приведенную на фиг. 11.
На этапе S131 блок 113 установки смещения использует значения деблокированных пикселей, чтобы установить смещения (коэффициенты) независимо в каждом компоненте cIdx в блоках LCU, и подает установленные смещения на блок 116 процесса фильтрации и на блок 114 установки информации управления SAO.
На этапе S132 блок 114 установки информации управления SAO записывает смещения, заданные блоком 113 установки смещения, в буфер 115 смещения для каждого компонента Y, Cb, Cr.
На этапе S133 блок 114 установки информации управления SAO определяет, может ли текущий LCU, который обрабатывается в настоящий момент, сливаться с левым LCU, соседствующим слева с текущим LCU. Более конкретно, блок 114 установки информации управления SAO обращается к информации, записанной в буфер 115 смещения, и определяет, совпадает ли смещение текущего LCU, заданное блоком 113 установки смещения, со смещением левого LCU.
Когда смещение текущего LCU, заданное блоком 113 установки смещения, определяется на этапе S133 как совпадающее со смещением левого LCU, и текущий LCU определяется как способный к слиянию с левым LCU, то далее выполняется процесс на этапе S134.
На этапе S134 блок 114 установки информации управления SAO устанавливает флаг sao_merge_left_flag и подает флаг sao_merge_left_flag, который был установлен, в блок 121 записи синтаксиса в качестве информации управления SAO.
С другой стороны, когда на этапе S133 текущий LCU определен как неспособный к слиянию с левым LCU, обработка далее производится на этапе S135. На этапе S135 блок 114 установки информации управления SAO определяет, может ли текущий LCU, который обрабатывается в настоящий момент, сливаться с верхним LCU, соседствующим с верхней стороной текущего LCU. Более конкретно, блок 114 установки информации управления SAO обращается к информации, записанной в буфер 115 смещения, и определяет, совпадает ли смещение текущего LCU, заданное блоком 113 установки смещения, со смещением верхнего LCU.
Когда смещение текущего LCU, заданное блоком 113 установки смещения, определяется как совпадающее со смещением верхнего LCU и текущий LCU на этапе S135 определяется как способный к слиянию с верхним LCU, то далее выполняется процесс на этапе S136.
На этапе S136 блок 114 установки информации управления SAO устанавливает флаг sao_merge_top_flag и подает флаг sao_merge_top_flag, который был установлен, в блок 121 записи синтаксиса в качестве информации управления SAO.
С другой стороны, когда на этапе S135 текущий LCU определяется как неспособный к слиянию с верхним LCU, далее выполняется процесс этапа S137.
На этапе S137 блок 114 установки информации управления SAO подает смещение на блок 121 записи синтаксиса в качестве информации управления SAO.
Процесс передачи информации управления SAO для каждого LCU
Далее процесс передачи информации управления SAO для каждого LCU с помощью традиционного примера, показанного на фиг. 8, будет объясняться, обращаясь к блок-схеме последовательности выполнения операций, приведенной на фиг. 12. Этот процесс соответствует процессу фильтра адаптивного смещения выборки, объясненному со ссылкой на фиг. 10, и является, например, процессом, выполняемым в процессе кодирования на этапе S26, показанном на фиг. 2.
Блок 121 записи синтаксиса на этапе S141 устанавливает компонент ID(cIdx) = 0.
На этапе S142 блок 121 установки типа определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[0 или 1 ли 2] = 1 или нет. Более конкретно, делается определение, применять ли фильтр адаптивного смещения выборки по меньшей мере для одного из параметров Y, Cb, Cr.
Когда на этапе S142 флаг slice_sample_adaptive_offset_flag[0 или 1 или 2] = 1 определяется как подлежащий сохранению, далее выполняется процесс на этапе S143. На этапе S143 блок 121 записи синтаксиса записывает в синтаксис информацию, указывающую тип (sao_type) фильтра, обеспечиваемого и устанавливаемого на этапе S114, показанном на фиг. 10, подает информацию в накопительный буфер 27 и передает информацию. Информация, указывающая тип, передается в PPS (Picture Parameter Sets, наборы параметров картинки) или срезах.
Когда на этапе S142 slice_sample_adaptive_offset_flag[0 и 1 и 2] = 0 определяется как подлежащий сохранению, этап S143 пропускается и далее выполняется процесс на этапе S144.
На этапе S144 блок 121 записи синтаксиса определяет, сохранять ли cIdx < 3 или нет. Когда на этапе S144 определяется, что cIdx < 3 должно сохраняться, то далее выполняется процесс на этапе S145.
На этапе S145 блок 121 установки типа определяет, должно ли сохраняться флаг slice_sample_adaptive_offset_flag[cIdx] = 1 или нет. Когда на этапе S145 флаг slice_sample_adaptive_offset_flag[cIdx] = 1 определяется как подлежащий сохранению (более конкретно, когда для cIdx должен применяться фильтр адаптивного смещения выборки), далее выполняется процесс на этапе S146.
На этапе S146 блок 121 записи синтаксиса записывает в синтаксис информацию управления SAO (кроме sao_type) для cIdx (= 0 (который является сигналом яркости Y)), установленную и поданную на этапе S117, показанном на фиг. 10, подает ее в накопительный буфер 27 и передает ее.
На этапе S147 блок 121 записи синтаксиса выполняет cIdx++ (более конкретно, cIdx = 1 (который означает сигнал Cr цветового контраста)) и процесс на этапе S144 выполняется снова. Когда на этапе S144 определяется, что cIdx < 3 не должно сохраняться, то далее выполняется процесс на этапе S148.
На этапе S148 блок 121 установки типа определяет, является ли текущий LCU, обрабатываемый в данный момент, последним LCU или нет. Когда текущий LCU, обрабатываемый в данный момент, на этапе S148 определяется как не являющийся последним LCU, далее выполняется процесс на этапе S149. На этапе S149 текущий LCU изменяется на последующий LCU и обработка, выполняющаяся на этапе S141, проводится снова.
На этапе S148, когда текущий LCU, обрабатываемый в данный момент, определяется как последний LCU, процесс передачи информации управления SAO заканчивается.
Как описано выше, информация, указывающая тип фильтра, делается общей для компонент Y, Cb, Cr и, более конкретно, информация, указывающая тип фильтра, делается общей для компонент яркости и цветового контраста и передается так, что только коэффициенты (смещения) передаются независимо между всеми компонентами, за счет чего объем кодирования может быть уменьшен.
Другой пример конфигурации фильтра адаптивного смещения выборки
На фиг. 13 представлена блок-схема другого примера конфигурации фильтра адаптивного смещения выборки и блока кодирования без потерь устройства кодирования изображения, показанного на фиг. 1.
В примере, представленном на фиг. 13, фильтр 41 адаптивного смещения выборки является таким же, как фильтр 41 адаптивного смещения выборки, показанный на фиг. 9, где он содержит блок 111 установки флага SAO, блок 113 установки смещения, блок 114 установки информации управления SAO, буфер 115 смещения, блок 116 процесса фильтрации и буфер 117 изображения.
Фильтр 41 адаптивного смещения выборки отличается от фильтра 41 адаптивного смещения выборки, показанного на фиг. 9, тем, что блок 112 установки типа заменяется блоком 141 установки типа.
Блок 26 кодирования без потерь, показанный на фиг. 13, отличается от блока 26 кодирования без потерь, показанного на фиг. 9, тем, что блок 121 записи синтаксиса заменяется блоком 161 записи синтаксиса.
Более конкретно, блок 141 установки типа, показанный на фиг. 13, содержит блок 151 установки типа для Y, выполненный с возможностью независимой установки типа фильтра для сигнала яркости, и блок 152 установки типа для Cm, выполненный с возможностью установки типа фильтра, общего для сигналов Cb и Cr цветового контраста.
Например, блок 151 установки типа для Y использует сигнал яркости для вычисления значения функции стоимости для каждого LCU и устанавливает оптимальный тип для LCU сигнала яркости, для которого значение функции стоимости является наименьшим. Например, блок 152 установки типа для Y использует сигнал яркости для вычисления значения функции стоимости для каждого LCU и устанавливает оптимальный тип для LCU сигнала яркости, для которого значение функции стоимости является наименьшим.
Аналогично блоку 121 записи синтаксиса, показанному на фиг. 9, блок 161 записи синтаксиса записывает флаг SAO, заданный блоком 111 установки флага SAO, на участок заголовка кодированного потока для каждого среза. Аналогично блоку 121 записи синтаксиса, блок 161 записи синтаксиса записывает на участок заголовка кодированного потока смещение или флаг слияния для каждого компонента, который задается блоком 114 установки информации управления SAO.
В отличии от блока 121 записи синтаксиса, блок 161 записи синтаксиса записывает на участок заголовка кодированного потока для каждого LCU информацию о типе, указывающую тип для Y для яркости, задаваемую блоком 112 установки типа, и информацию о типе, указывающую тип для Cm, общую для компонент цветового контраста.
Процесс фильтрации адаптивного смещения выборки на стороне кодирования
Далее процесс фильтрации адаптивного смещения выборки, выполняемый фильтром 41 адаптивного смещения выборки, представленным на фиг. 13, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 14. Следует заметить, что процесс фильтрации адаптивного смещения выборки выполняется на этапе S23, показанном на фиг. 2.
На этапе S161 блок 111 установки флага SAO использует деблокированные пиксельные значения для установки флага SAO, указывающего состояние включения/выключения (ON/OFF) фильтра адаптивного смещения выборки каждого компонента в блоках срезов. Блок 111 установки флага SAO подает установленный флаг SAO (slice_sample_adaptive_offset_flag) на блок 151 установки типа для Y, блок 152 установки типа для Cm и блок 161 записи синтаксиса.
На этапе S162 блок 151 установки типа для Y и блок 152 установки типа для Cm устанавливают компонент ID(cIdx) = 0.
На этапе S163 блок 151 установки типа для Y определяет, должен ли сохраняться флаг slice_sample_adaptive_offset_flag[0] = 1 или нет. Более конкретно, на этапе S163 определяется, должен ли применяться фильтр адаптивного смещения выборки по меньшей мере для одного из параметров Y, Cb, Cr .
Когда на этапе S163 slice_sample_adaptive_offset_flag[0] = 1 определяется как подлежащий сохранению и, более конкретно, когда на этапе S163 фильтр адаптивного смещения выборки для Y определяется как подлежащий применению, далее выполняется процесс на этапе S164.
На этапе S164 блок 151 установки типа для Y использует значения деблокированных пикселей для установки в блоках LCU типа (sao_type_Y) фильтра для Y. Блок 151 установки типа для Y подает информацию, указывающую тип lkz Y, на блок 161 записи синтаксиса и после этого последовательно выполняется процесс на этапе S165.
В связи с этим, блок 161 записи синтаксиса записывает в синтаксис sao_type_Y, подает его в накопительный буфер 27 и передает его на этапе 143, показанном на фиг. 15, объясняемом позднее.
Когда на этапе S163 slice_sample_adaptive_offset_flag[0] = 0 определяется как подлежащий сохранению, этап S164 пропускается и далее выполняется процесс на этапе S165.
На этапе S165 блок 152 установки типа для Y определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[1 или 2] = 1 или нет. Более конкретно, на этапе S165 делается определение, должен ли применяться фильтр адаптивного смещения выборки lkz Cr или Cb.
Когда slice_sample_adaptive_offset_flag[1 или 2] = 1 определяется как подлежащий сохранению и, более конкретно, когда фильтр адаптивного смещения выборки для Cm определяется как подлежащий применению на этапе S165, далее выполняется процесс на этапе S166.
На этапе S166 блок 152 установки типа для Cm использует значения деблокированных пикселей для установки типа (sao_type_Cm) фильтра, общего для Cb и Cr в блоках LCU. Блок 151 установки типа для Y подает информацию, указывающую тип для Cm, в блок 161 записи синтаксиса и после этого выполняется процесс на этапе S167.
В связи с этим, блок 161 записи синтаксиса записывает sao_type_Cm в синтаксис, подает его в накопительный буфер 27 и передает его на этапе S185, показанном на фиг. 15, объясняемом позднее.
Когда на этапе S165 slice_sample_adaptive_offset_flag[1 bkb 2] = 0 определяется как подлежащий сохранению, этап S166 пропускается и далее выполняется процесс на этапе S167.
На последующих этапах S167-S173, в основном выполняется тот же самый процесс, что и на этапах S115-S121, показанных на фиг. 10, поэтому их объяснение пропускается, так как оно является простым повторением.
Процесс передачи информации управления SAO для каждого LCU
Далее процесс передачи информации управления SAO для каждого LCU с помощью традиционного примера, показанного на фиг. 8, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, приведенную на фиг. 15. Этот процесс соответствует процессу фильтрации адаптивного смещения выборки, объясненному со ссылкой на фиг. 14, и является, например, процессом, выполняемым в процессе кодирования на этапе S26, показанном на фиг. 2.
На этапе S181 блок 161 записи синтаксиса устанавливает компонент ID(cIdx) = 0.
На этапе S182 блок 161 записи синтаксиса определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[0] = 1. Более конкретно, делается определение, применять ли фильтр адаптивного смещения выборки для Y.
Когда на этапе S182 флаг slice_sample_adaptive_offset_flag[0] = 1 определяется как подлежащий сохранению, далее выполняется процесс на этапе S183. На этапе S183 блок 161 записи синтаксиса записывает в синтаксис информацию, указывающую тип (sao_type_Y) фильтра, обеспечиваемого и устанавливаемого на этапе S164, показанном на фиг. 14, подает информацию в накопительный буфер 27 и передает информацию.
Когда на этапе S182 slice_sample_adaptive_offset_flag[0] = 0 определяется как подлежащий сохранению, процесс этапа S183 пропускается и далее выполняется процесс на этапе S184.
На этапе S184 блок 161 записи синтаксиса определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[1 или 2] = 1. Более конкретно, делается определение, применять ли фильтр адаптивного смещения выборки для Cm.
Когда на этапе S184 slice_sample_adaptive_offset_flag[1 или 2] = 1 определяется как подлежащий сохранению, далее выполняется процесс на этапе S185. На этапе S185 блок 161 записи синтаксиса записывает в синтаксис информацию, указывающую тип (sao_type_Cm) фильтра, обеспечиваемого и устанавливаемого на этапе S166, показанном на фиг. 14, подает информацию в накопительный буфер 27 и передает информацию.
Когда на этапе S184 slice_sample_adaptive_offset_flag[1 и 2] = 0 определяется как подлежащий сохранению, этап S185 пропускается и далее выполняется процесс на этапе S186.
На последующих этапах S186-S191, в основном, выполняется тот же самый процесс, что и на этапах S144-S149, показанных на фиг. 14, поэтому их объяснение пропускается, так как оно является простым повторением.
Как описано выше, информация о типе для фильтра может также делаться общей только между компонентами цветового контраста Cb и Cr и в этом случае объем кодов также может быть уменьшен.
4. Пятый вариант осуществления
Пример конфигурации фильтра адаптивного смещения выборки
На фиг. 16 представлена блок-схема примера конфигурации блока декодирования без потерь и фильтра адаптивного смещения выборки в устройстве кодирования изображения, показанном на фиг. 3. Пример конфигурации, показанной на фиг. 16, соответствует фильтру адаптивного смещения выборки и блоку кодирования без потерь, показанным на фиг. 9.
В примере, показанном на фиг. 16, блок 62 декодирования без потерь содержит по меньшей мере блок 211 получения синтаксиса.
Фильтр 81 адаптивного смещения выборки содержит блок 221 приема флага SAO, блок 222 приема типа, блок 223 приема флага слияния, буфер 224 смещения, блок 225 приема смещения, блок 226 процесса фильтрации и буфер 227 изображения.
Блок 211 получения синтаксиса получает участок заголовка кодированного потока из синтаксиса. Затем блок 221 получения синтаксиса передает параметр адаптивного смещения в полученном синтаксисе в блок 221 приема флага SAO, блок 222 приема типа, блок 223 приема флага слияния и блок 225 приема смещения.
Более конкретно, блок 211 получения синтаксиса подает флаг SAO (slice_sample_adaptive_offset_flag), являющийся одним из параметров адаптивного смещения, на блок 221 приема флага SAO. Блок 211 получения синтаксиса передает информацию о типе фильтра, которая является одним из параметров адаптивного смещения, на блок 222 приема типа. Блок 211 получения синтаксиса подает флаг слияния (sao_merge_left_flag or sao_merge_top_flag), являющийся одним из параметров адаптивного смещения, на блок 223 приема флага слияния. Блок 211 получения синтаксиса передает смещение (коэффициент), являющееся одним из параметров адаптивного смещения, на блок 225 приема смещения.
Следует заметить, что флаг SAO из числа параметров адаптивного смещения устанавливается и передается для каждого среза. Информация о типе, флаг слияния, смещение и т. п. из числа параметров адаптивного смещения устанавливаются и передаются для каждого LCU. Информация о типе передается в блоках PPS (Picture Parameter Set, набор параметров картинки) или срезах.
Блок 221 приема флага SAO подает на блок 226 процесса фильтрации флаг SAO, указывающий включенное/выключенное (ON/OFF) состояние для каждого компонента, передаваемого от блока 211 получения синтаксиса. Блок 222 приема типа подает на блок 226 процесса фильтрации информацию о типе фильтра, являющуюся общей для компонент, передаваемых от блока 211 получения синтаксиса. Блок 223 приема флага слияния подает на буфер 224 смещения флаг слияния, поступающий от блока 211 получения синтаксиса. Блок 225 приема смещения подает смещение, полученное от блока 211 получения синтаксиса, на буфер 224 смещения и блок 226 процесса фильтрации.
Буфер 224 смещения сохраняет смещение LCU, соседнего с текущим LCU. Буфер 224 смещения может хранить, по меньшей мере, смещение левого LCU от текущего LCU и верхнего LCU . Когда буфер 224 смещения принимает флаг слияния текущего LCU от блока 223 приема флага слияния, буфер 224 смещения считывает смещение, хранящееся связанным с соседним LCU (с левой или правой стороны), указанное флагом слияния, и подает его на блок 226 процесса фильтрации. Затем буфер 224 смещения сохраняет считанное смещение связанным с текущим LCU. Когда буфер 224 смещения принимает смещение текущего LCU от блока 225 приема смещения, буфер 224 смещения сохраняет принятое смещение связанным с текущим LCU.
Блок 226 процесса фильтрации обращается к информации, даваемой блоком 221 приема флага SAO, блоком 222 приема типа, буфером 224 смещения и блоком 225 приема смещения, и выполняет процесс фильтрации для значений деблокированных пикселей, полученных от деблокирующего фильтра 66.
Более конкретно, блок 226 процесса фильтрации обращается к флагу SAO, поданному блоком 221 приема флага SAO, тип фильтра которого делается общим между компонентами и который подается от блока 222 приема типа, и к смещению, поданному от буфера 224 смещения или от блока 225 приема смещения.
Блок 226 процесса фильтрации подает пиксели, подвергнутые процессу смещения, в буфер 227 изображения.
Буфер 227 изображения выполнен, в основном, так же, как буфер 117 изображения, показанный на фиг. 10. Более конкретно, буфер 227 изображения временно хранит пиксельные значения, подвергнутые процессу смещения блоком 226 процесса фильтрации, и подает пиксельные значения на адаптивный контурный фильтр 82 с заданной синхронизацией.
Процесс фильтрации адаптивного смещения выборки на стороне декодирования
Далее процесс фильтрации адаптивного смещения выборки, который выполняется фильтром 81 адаптивного смещения выборки, показанным на фиг. 16, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 17. Следует заметить, что процесс фильтрации адаптивного смещения выборки выполняется на этапе S59, показанном на фиг. 4.
Когда кодированный поток декодируется на этапе S52, показанном на фиг. 4, блок 211 получения синтаксиса считывает синтаксис из участка заголовка кодированного потока и помимо этого блок 211 получения синтаксиса подает параметр адаптивного смещения на каждый блок фильтра 81 адаптивного смещения выборки.
На этапе S211 блок 221 приема флага SAO принимает флаг SAO параметра адаптивного смещения (slice_sample_adaptive_offset_flag), подаваемый от блока 211 получения синтаксиса. Блок 221 приема флага SAO подает принятый флаг SAO на блок 226 процесса фильтрации.
На этапе S212 блок 226 процесса фильтрации устанавливает компонент ID(cIdx) = 0.
На этапе S213 блок 226 процесса фильтрации определяет, является ли slice_sample_adaptive_offset_flag[0 или 1 ли 2] = 1. Более конкретно, на этапе S213 делается определение, применять ли фильтр адаптивного смещения выборки по меньшей мере для одного из параметров Y, Cb, Cr.
Когда на этапе S213 slice_sample_adaptive_offset_flag[0 или 1 или 2] = 1 определяется как подлежащий сохранению и, более конкретно, когда фильтр адаптивного смещения выборки по меньшей мере для одного из параметров Y, Cb, Cr определяется как применяемый, далее выполняется процесс на этапе S214.
На этапе S214 блок 226 процесса фильтрации принимает информацию о типе фильтра (sao_type), которая делается общей для компонент, заданных блоком 211 получения синтаксиса через блок 222 приема типа.
Когда slice_sample_adaptive_offset_flag[0 и 1 и 2] = 0 определяется как подлежащий сохранению и, более конкретно, когда на этапе S213 фильтры адаптивного смещения выборки для всех параметров Y, Cb, Cr определяются как не применяемые, процесс на этапе S214 пропускается и далее выполняется этап S215.
На этапе S215 блок 226 процесса фильтрации определяет, сохранять ли cIdx < 3. Когда на этапе S215 определяется, что cIdx < 3 должно сохраняться, то далее выполняется процесс на этапе S216.
На этапе S216 блок 226 процесса фильтрации определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[cIdx] = 1.
Когда на этапе S216 определяется, что slice_sample_adaptive_offset_flag[cIdx] = 1 должен сохраняться (более конкретно, фильтр адаптивного смещения выборки выполняется на cIdx), далее выполняется процесс на этапе S217.
На этапе S217 блок 226 процесса фильтрации принимает информацию управления SAO для cIdx (= 0). Этот процесс приема информации управления SAO будет объяснен позже со ссылкой на фиг. 18 и с помощью этого процесса принимается флаг слияния или смещение и смещение, которое считывается с помощью принятого флага слияния, или принятое смещение подается на блок 226 процесса фильтрации.
После этапа S217 далее выполняется процесс на этапе S218. На этапе S216, когда определяется, что slice_sample_adaptive_offset_flag[cIdx] = 0 должно сохраняться (более конкретно, фильтр адаптивного смещения выборки не выполняется для cIdx), процесс на этапе S217 пропускается и далее выполняется этап S218.
На этапе S218 блок 226 процесса фильтрации выполняет процесс адаптивной фильтрации для пикселей, подвергнутых деблокированию, осуществляемому деблокирующим фильтром 66. В этом случае процесс адаптивной фильтрации выполняется на основе типа фильтра, который был принят на этапе S214, флага SAO, соответствующего cIdx, принятого на этапе S211, и дополнительно на основе смещения, полученного на этапе S217.
Блок 226 фильтрации подает пиксельные значения, подвергнутые процессу смещения, в буфер 227 изображения. Буфер 227 изображения временно сохраняет пиксельные значения, подвергнутые процессу смещения блоком 226 фильтрации, и подает пиксельные значения на адаптивный контурный фильтр 42 с заданной синхронизацией.
На этапе S219 блок 226 процесса фильтрации выполняет cIdx++ (более конкретно, cIdx = 1 и процесс на этапе S215 выполняется снова. Когда на этапе S215 определяется, что cIdx < 3 не должно сохраняться, то далее выполняется процесс на этапе S216.
На этапе S220 блок 226 процесса фильтрации определяет, является ли текущий LCU, который обрабатывается в данный момент, последним LCU. Когда на этапе S220 текущий LCU, который обрабатывается в данный момент, определяется как не являющийся последним LCU, далее выполняется процесс на этапе S221. На этапе S221 текущий LCU изменяется на последующий LCU и процесс на этапе S212 выполняется снова.
Когда на этапе S220 текущий LCU, который обрабатывается в данный момент, определяется как последний LCU, фильтрация адаптивного смещения выборки прекращается.
Процесс установки информации управления SAO
Далее процесс приема информации управления SAO на этапе S217, показанном на фиг. 17, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, приведенную на фиг. 18.
На этапе S231 блок 223 приема флага слияния принимает флаг слияния. На этапе S232 блок 223 приема флага слияния определяет, является ли таковым sao_merge_left_flag или нет. Когда sao_merge_left_flag определяется на этапе S232 как флаг слияния, далее выполняется процесс на этапе S233.
На этапе S233 блок 223 приема флага слияния управляет буфером 224 смещения и считывает смещение левого LCU и буфер 224 смещения подает смещение левого LCU, которое было считано, на блок 226 процесса фильтрации.
С другой стороны, когда sao_merge_left_flag определяется на этапе S232 как равный нулю, далее выполняется процесс на этапе S234. На этапе S234 блок 223 приема флага слияния определяет, является ли sao_merge_top_flag флагом слияния или нет. Когда sao_merge_top_flag определяется на этапе S234 как флаг слияния, далее выполняется процесс на этапе S235.
На этапе S235 блок 223 приема флага слияния управляет буфером 224 смещения и считывает смещение верхнего LCU и буфер 224 смещения подает смещение верхнего LCU, которое было считано, на блок 226 процесса фильтрации.
Когда sao_merge_top_flag определяется на этапе S234 как нулевой, далее выполняется процесс на этапе S236. На этапе S236 блок 225 приема смещения принимает смещение от блока 211 получения синтаксиса и подает смещение на блок 226 процесса фильтрации. Блок 225 приема смещения также подает принятое смещение на буфер 224 смещения.
На этапе S237 буфер 224 смещения записывает смещение, считанное на этапе S233 или S235, или смещение от блока 225 приема смещения на буфер в качестве смещения текущего LCU.
Как описано выше, информация, указывающая тип фильтра, посылается после того, как сделана общей для компонент Y, Cb, Cr и, более конкретно, информация, указывающая тип фильтра, посылается после того, как делается общей для компонент яркости и цветового контраста и, следовательно, независимо для всех компонент передаются только коэффициенты (смещения), за счет чего объем кодирования может быть уменьшен.
Другой пример конфигурации фильтра адаптивного смещения выборки
На фиг. 19 представлена блок-схема примера конфигурации блока декодирования без потерь и фильтра адаптивного смещения выборки в устройстве декодирования изображения, показанном на фиг. 3. Пример конфигурации, показанный на фиг. 19, соответствует фильтру адаптивного смещения выборки и блоку кодирования без потерь, показанным на фиг. 13.
В примере, показанном на фиг. 19, блок 62 декодирования без потерь отличается от блока 62 декодирования без потерь, показанного на фиг. 16, тем, что в нем блок 211 получения синтаксиса и блок 241 получения синтаксиса переключаются.
Фильтр 81 адаптивного смещения выборки является таким же, как фильтр 81 адаптивного смещения выборке, показанный на фиг. 16, причем фильтр 81 адаптивного смещения выборки содержит блок 221 приема флага SAO, блок 223 приема флага слияния, блок 225 приема смещения, блок 226 процесса фильтрации и буфер 227 изображения.
Фильтр 81 адаптивного смещения выборки отличается от фильтра 81 адаптивного смещения выборки, показанного на фиг. 16, тем, что блок 222 приема типа заменяется блоком 251 приема типа, составленным из блока 261 приема типа для Y и блока 262 приема типа для Cm.
Более конкретно, в примере, показанном на фиг. 16, информация о типе для фильтра, который сделан общим для Y, Cb, Cr, посылается в качестве одного из параметров адаптивного смещения. В отличие от этого, в примере, показанном на фиг. 19, посылается информация о типе фильтра для Y и информация о типе фильтра, являющегося общим для Cb и Cr.
Подобно блоку 211 получения синтаксиса, показанному на фиг. 216, блок 241 получения синтаксиса получает флаг SAO (slice_sample_adaptive_offset_flag) и подает его на блок 221 приема флага SAO. Подобно блоку 211 получения синтаксиса на фиг. 16, блок 241 получения синтаксиса получает флаг слияния (sao_merge_left_flag или sao_merge_top_flag) и подает его на блок 223 приема флага слияния. Подобно блоку 211 получения синтаксиса на фиг. 16, блок 241 получения синтаксиса получает смещение и подает его на блок 225 приема смещения.
С другой стороны, в отличие от блока 211 получения синтаксиса, показанного на фиг. 16, блок 241 получения синтаксиса получает информацию о типе для фильтра, сделанного общим для Cb и Cr, и информацию о типе фильтра для Y и подает их на блок 261 приема типа для Y и блок 262 приема типа для Cm.
Блок 261 приема типа для Y подает на блок 226 процесса фильтрации информацию о типе фильтра для Y, переданную от блока 211 получения синтаксиса. Блок 262 приема типа для Cm подает на блок 226 процесса фильтрации информацию о типе фильтра для Cm, которая делается общей для Cb и Cr, подаваемых от блока 211 получения синтаксиса.
Процесс фильтрации адаптивного смещения выборки на стороне декодирования
Далее процесс фильтрации адаптивного смещения выборки, выполняемый фильтром 81 адаптивного смещения выборки, показанным на фиг. 19, будет объясняться со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 20. Следует заметить, что процесс фильтрации адаптивного смещения выборки выполняется на этапе S59, показанном на фиг. 4.
На этапе S261 блок 221 приема флага SAO принимает флаг SAO параметра адаптивного смещения (slice_sample_adaptive_offset_flag), подаваемый от блока 211 получения синтаксиса. Блок 221 приема флага SAO подает принятый флаг SAO на блок 226 процесса фильтрации.
На этапе S262 блок 226 процесса фильтрации устанавливает компонент ID(cIdx) = 0. На этапе S263 блок 226 процесса фильтрации определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[0] = 1. Более конкретно, на этапе S263 делается определение, применять ли фильтр адаптивного смещения выборки для Y.
Когда slice_sample_adaptive_offset_flag[0] = 1 определяется как подлежащий сохранению и, более конкретно, когда фильтр адаптивного смещения выборки для Y определяется как подлежащий применению на этапе S263, далее выполняется процесс на этапе S264.
На этапе S264 блок 226 процесса фильтрации принимает информацию о типе фильтра Y (sao_type_Y), поданную блоком 241 получения синтаксиса через блок 261 приема типа для Y.
С другой стороны, на этапе S263, когда slice_sample_adaptive_offset_flag[0] = 0 определяется как подлежащий сохранению и, более конкретно, когда фильтр адаптивного смещения выборки для Y определяется как не подлежащий применению, процесс на этапе S264 пропускается и далее выполняется процесс на этапе S265.
На этапе S265 блок 226 процесса фильтрации определяет, должен ли сохраняться slice_sample_adaptive_offset_flag[1 или 2] = 1. На этапе S265 делается определение, применять ли фильтр адаптивного смещения выборки для Cb или Cr.
Когда slice_sample_adaptive_offset_flag[1 или 2] = 1 определяется как подлежащий сохранению и, более конкретно, когда фильтр адаптивного смещения выборки для Cb или Cr на этапе S265 определяется как подлежащий применению, далее выполняется процесс на этапе S266.
На этапе S266 блок 226 процесса фильтрации принимает информацию о типе фильтра для Cm (sao_type_Cm), поданную блоком 241 получения синтаксиса через блок 262 приема типа для Cm.
Когда slice_sample_adaptive_offset_flag[1 и 2] = 0 определяется как подлежащий сохранению и, более конкретно, когда фильтр адаптивного смещения выборки для Cb или Cr на этапе S265 определяется как не подлежащий применению, процесс на этапе S266 пропускается и далее выполняется процесс на этапе S267.
На последующих этапах S267-S273 в основном выполняется тот же самый процесс, что и на этапах S215-S221, показанных на фиг. 17, поэтому их объяснение пропускается, так как оно является просто повторением.
Как описано выше, информация о типе для фильтра может делаться общей только для компонент Cb и Cr цветового контраста. В этом случае объем кодов может быть уменьшен.
В приведенном выше объяснении был объяснен пример, в котором тип сделан общим для всех компонент яркости и цветового контраста, и пример, в котором тип сделан общим для компонент цветового контраста. Альтернативно, могут предоставляться оба режима, использующие описанное выше, и режимы для использования могут выбираться.
Более конкретно, режим, в котором тип сделан общим для всех компонент яркости и цветового контраста, определяется как режим, общий для всех, а режим, в котором тип делается общим только для компонент цветового контраста, определяется как режим, общий для цветового контраста, и эти два типа режимов могут предоставляться. В этом случае, информация об идентификации режима для идентификации, какой из режимов используется стороной кодирования, может посылаться на сторону декодирования.
В этом случае, сторона декодирования принимает информацию идентификации режима, которая была передана, устанавливает режим, используя принятую информацию идентификации режима, и выполняет фильтрацию адаптивного смещения выборки.
Как описано выше, информация о типе фильтра может делаться общей для компонент сигнала яркости и сигнала цветового контраста и передаваться. Поэтому объем кодов может быть уменьшен и эффективность кодирования может быть повышена.
В приведенном выше объяснении цветовым форматом является 4:2:0. Альтернативно, настоящая технология может применяться к любым другим форматам, таким как 4:2:2 и 4:4:4.
Например, когда используется choma_format_idc: в случае 4:2:0 (choma_format_idc==1), тип SAO может быть сделан общим для всех компонент; в случае 4:4:4 (choma_format_idc==3), тип SAO может не делаться общим; и в случае 4:2:2 (choma_format_idc==2), тип SAO может быть сделан общим только для Cb/Cr. Более конкретно, в соответствии с форматом цвета могут быть определены объяснявшиеся выше режим, общий для всех, или режим, общий для цветового контраста.
В приведенном выше объяснении был объяснен пример, в котором яркость и цветовой контраст являются цветовым пространством Y, Cb, Cr. Альтернативно, настоящая технология может также применяться к другому цветовому пространству, например, в котором яркостью и цветовым контрастом являются Y, U, V.
В приведенном выше объяснении в качестве основы способа кодирования используется способ HEVC. Однако, настоящее раскрытие этим не ограничивается. Могут также применяться другие способы кодирования/декодирования, в том числе, фильтр адаптивного смещения выборки в качестве внутриконтурного фильтра.
Дополнительно, например, настоящий способ может применяться к устройству кодирования изображения и устройству декодирования изображения, используемым для приема информации изображения (битового потока), сжатой посредством ортогонального преобразования, такого как дискретное косинусное преобразование и компенсация движения, подобно способу HEVC и т. п., через медиасеть, такую как спутниковое вещание, кабельное телевидение, Интернет или мобильное телефонное устройство. Настоящее раскрытие может применяться к устройству кодирования изображения и устройству декодирования изображения, используемым для обработки на носителе записи, таком как оптические диски, магнитные диски и флэш-памятть.
5. Третий вариант осуществления
Применение для мультипроекционного кодирования/декодирования изображения
Описанная выше последовательность процессов может применяться к мультипроекционному кодированию и декодированию изображения. На фиг. 21 показан пример способа мультипроекционного кодирования изображения.
Как показано на фиг. 21, мультипроекционное изображение содержит мультипроекционное изображение и изображение заданной проекции из числа множества проекций назначается в качестве изображения базовой проекции. Изображения проекций, отличные от изображения базовой проекции, обрабатываются как изображения небазовых проекций.
В случае, когда выполняется кодирование мультипроекционного изображения, как показано на фиг. 21, параметры фильтра адаптивного смещения выборки (флаг SAO, информация о типе для фильтра, смещение, информация идентификации режима и т. п. , объясненные выше) могут устанавливаться для каждой проекции (одной и той же проекции). В каждой проекции (другой проекции) параметры фильтра адаптивного смещения выборки, устанавливаемые в другой проекции, могут использоваться совместно.
В это случае параметры фильтра адаптивного смещения выборки, установленные в базовой проекции, используются по меньшей мере в одной небазовой проекции. Альтернативно, например, параметры фильтра деблокирующего смещения выборки, установленные в неосновной проекции (view_id = i), используются по меньшей мере в базовой проекции или в небазовой проекции (view_id = j).
Поэтому объем кодов может быть уменьшен.
Устройство кодирования мультипроекционного изображения
На фиг. 22 показано устройство кодирования мультипроекционного изображения, выполняющее кодирование мультипроекционного изображения, описанное выше. Как показано на фиг. 22, устройство 600 кодирования мультипроекционного изображения содержит блок 601 кодирования, блок кодирования 602 и блок 603 мультиплексирования.
Блок 601 кодирования кодирует изображения базовой проекции и формирует поток кодирования изображения базовой проекции. Блок 602 кодирования кодирует изображения небазовой проекции и формирует кодированный поток изображения небазовой проекции. Блок 603 мультиплексирования мультиплексирует кодированный поток изображения базовой проекции, сформированный блоком 601 кодирования, и кодированный поток изображения небазовой проекции, сформированный блоком 602 кодирования, и формирует кодированный поток мультипроекционного изображения.
Устройство 11 кодирования изображения (фиг. 11) может применяться к блоку 601 кодирования и блоку 602 кодирования устройства 600 кодирования мультипроекционного изображения. В этом случае устройство 600 кодирования мультипроекционного изображения устанавливает и передает параметры фильтра адаптивного смещения выборки, установленные блоком 601 кодирования, и параметры фильтра адаптивного смещения выборки, установленные блоком 602 кодирования.
Параметры фильтра адаптивного смещения выборки, установленные блоком 601 кодирования, как описано выше, могут устанавливаться и передаваться, так что параметры фильтра адаптивного смещения выборки могут использоваться совместно, а также использоваться блоком 601 кодирования и блоком 602 кодирования. Напротив, параметры фильтра адаптивного смещения выборки, установленные совместно блоком 602 кодирования, могут устанавливаться и передаваться, так что параметры фильтра адаптивного смещения выборки могут использоваться совместно, а также использоваться блоком 601 кодирования и блоком 602 кодирования.
Устройство декодирования мультипроекционного изображения
На фиг. 23 показано устройство декодирования мультипроекционного изображения, выполняющее декодирование мультипроекционного изображения, описанное выше. Как показано на фиг. 23, устройство 610 декодирования мультипроекционного изображения содержит блок 611 демультиплексирования, блок 612 декодирования и блок 613 декодирования.
Блок 611 демультиплексирования демультиплексирует кодированный поток мультипроекционного изображения, полученный посредством мультиплексирования кодированного потока изображения базовой проекции и кодированного потока изображения небазовой проекции, и извлекает кодированный поток изображения базовой проекции и кодированный поток изображения небазовой проекции. Блок 612 декодирования декодирует кодированный поток изображения базовой проекции, извлеченный блоком 611 демультиплексирования, и получает изображения базовой проекции. Блок 613 декодирования декодирует кодированный поток изображения небазовой проекции, извлеченный блоком 611 демультиплексирования, и получает изображения небазовой проекции.
Устройство 51 декодирования изображения (фиг. 3) может применяться к блоку 612 декодирования и блоку 613 декодирования устройства 610 декодирования мультипроекционного изображения. В этом случае, устройство 610 декодирования мультипроекционного изображения выполняет процесс, используя параметры фильтра адаптивного смещения выборки, установленные блоком 601 кодирования и декодированные блоком 612 декодирования, и параметры фильтра адаптивного смещения выборки, установленные блоком 602 кодирования и декодированные блоком 613 декодирования.
Параметры фильтра адаптивного смещения выборки, установленные блоком 601 кодирования (или блоком 602 кодирования), могут устанавливаться и передаваться так, что параметры фильтра адаптивного смещения выборки используются совместно, а также используются блоком 601 кодирования и блоком 602 кодирования. В этом случае, устройство 610 декодирования мультипроекционного изображения выполняет процесс, используя параметры фильтра адаптиввного смещения выборки, установленные блоком 601 кодирования (или блоком 602 кодирования) и декодированные блоком 612 декодирования (или блоком 613 декодирования).
6. Четвертый вариант осуществления
Применения для кодирования иерархического точечного изображения и декодирования иерархического изображения
Описанная выше последовательность процессов может применяться к кодированию иерархического изображения и декодированию иерархического изображения. На фиг. 24 показан пример способа кодирования мультипроекционного изображения.
Как показано на фиг. 24, иерархическое изображение содержит изображения множества иерархий (разрешений) и иерархическое изображение заданной иерархии из множества разрешений назначается в качестве изображения базового уровня. Изображения иерархий, отличные от изображения базового уровня, обрабатываются как изображения небазового уровня.
При выполнении кодирования иерархического изображения (пространственная масштабируемость), как показано на фиг. 24, параметры фильтра адаптивного смещения выборки могут устанавливаться на каждом уровне (одном и том же уровне). На каждом уровне (разных уровнях) параметры фильтра адаптивного смещения выборки, устанавливаемые на другом уровне, могут использоваться совместно.
В это случае параметры фильтра адаптивного смещения выборки, установленные на базовом уровне, используются по меньшей мере на одном небазовом уровне. Альтернативно, например, параметры фильтра адаптивного смещения выборки, установленные на небазовом уровне (view_id = i), используются по меньшей мере на базовом уровне или на небазовом уровне (view_id = j).
Поэтому объем кодов может быть уменьшен.
Устройство кодирования иерархического изображения
На фиг. 25 показано устройство кодирования иерархического изображения, выполняющее кодирование иерархического изображения, описанное выше. Как показано на фиг. 25, устройство 620 кодирования иерархического изображения содержит блок 621 кодирования, блок 622 кодирования и блок 623 мультиплексирования.
Блок 621 кодирования кодирует изображения базового уровня и формирует кодированный поток изображения базового уровня. Блок 622 кодирования кодирует изображения небазового уровня и формирует кодированный поток изображения небазового уровня. Блок 623 мультиплексирования мультиплексирует кодированный поток изображения базового уровня, сформированный блоком 621 кодирования, и кодированный поток изображения небазового уровня, сформированный блоком 622 кодирования, и формирует кодированный поток иерархического изображения.
Устройство 11 кодирования изображения (фиг. 1) может применяться к блоку 621 кодирования и к блоку 622 кодирования устройства 620 кодирования иерархического изображения. В этом случае устройство 620 кодирования иерархического изображения устанавливает информацию идентификации, установленную блоком 621 кодирования, и параметры фильтра адаптивного смещения выборки, установленные блоком 622 кодирования, и передает параметры фильтра адаптивного смещения выборки.
Следует заметить, что такая конфигурация может адаптироваться так, что параметры адаптивного смещения выборки, установленные блоком 621 кодирования, как описано выше, устанавливаются так, чтобы использоваться совместно и использоваться в блоке 621 кодирования и блоке 622 кодирования, и передаются. С другой стороны, такая конфигурация может адаптироваться так, что параметры адаптивного смещения выборки, установленные блоком 622 кодирования, устанавливаются так, чтобы использоваться совместно и использоваться в блоке 621 кодирования и блоке 622 кодирования, и передаются.
Устройство декодирования иерархического изображения
На фиг. 26 показано устройство декодирования иерархического изображения, выполняющее кодирование иерархического изображения, описанное выше. Как показано на фиг. 26, устройство 630 декодирования иерархического изображения содержит блок 631 демультиплексирования, блок 632 декодирования и блок 633 декодирования.
Блок 631 демультиплексирования демультиплексирует кодированный поток иерархического изображения, полученный посредством мультиплексирования кодированного потока изображения базового уровня и кодированного потока изображения небазового уровня, и извлекает кодированный поток изображения базового уровня и кодированный поток изображения небазового уровня. Блок 632 декодирования декодирует кодированный поток изображения базового уровня, извлеченный блоком 631 демультиплексирования, и получает изображение базового уровня. Блок 633 декодирования декодирует кодированный поток изображения небазового уровня, извлеченный блоком 631 демультиплексирования, и получает изображение небазового уровня.
Устройство 51 декодирования изображения (фиг. 3) может применяться к блоку 632 декодирования и к блоку 633 декодирования устройства 630 декодирования иерархического изображения. В этом случае, устройство 630 декодирования иерархического изображения выполняет процесс, используя параметры фильтра адаптивного смещения выборки, установленные блоком 621 кодирования и декодированные блоком 632 декодирования, и декодированные параметры фильтра адаптивного смещения выборки, установленные блоком 622 кодирования и декодированные блоком 633 декодирования.
Следует заметить, что параметры фильтра адаптивного смещения выборки, установленные блоком 621 кодирования (или блоком 622 кодирования), как описано выше, могут быть установлены так, чтобы использоваться совместно и использоваться в блоке 621 кодирования и блоке 622 кодирования и передаваться. В этом случае, в устройстве 630 декодирования иерархического изображения процесс выполняется, используя параметры фильтра адаптивного смещения выборки, установленные блоком 621 кодирования (или блоком 622 кодирования) и декодированные блоком 632 декодирования (или блоком 633 декодирования).
7. Пятый вариант осуществления
Конфигурация компьютера
Приведенные выше последовательности процессов могут исполняться аппаратурным обеспечением или могут исполняться программным обеспечением. Когда последовательности процессов исполняются программным обеспечением, программы, составляющие программное обеспечение, устанавливаются на компьютер. Здесь компьютер содержит компьютер, встроенный в специализированное аппаратурное обеспечение, и, например, универсальный персональный компьютер, способный исполнять различные виды функций посредством установленных различных программ.
На фиг. 27 показана блок-схема примера конфигурации аппаратурного обеспечения компьютера, исполняющего описанные выше последовательности процессов, используя программу.
В компьютере 800 CPU (центральный процессор) 801, ROM (постоянное запоминающее устройство) 802 и RAM (оперативное запоминающее устройство) 803 соединяются друг с другом через шину 804.
Шина 804 дополнительно соединяется с интерфейсом 805 ввода-вывода. Интерфейс 805 ввода-вывода соединяется с устройством 806 ввода, устройством 807 вывода, блоком 808 запоминающего устройства, блоком 809 связи и приводом 810.
Устройство 806 ввода образуется клавиатурой, мышью, микрофоном и т. п. Устройство 807 вывода образуется дисплеем, громкоговорителем и т. п. Блок 808 запоминающего устройства образуется жестким диском, энергонезависимой памятью и т. п. Блок 809 связи образуется сетевым интерфейсом и т. п. Привод 810 приводит в действие съемный носитель 811, такой как магнитный диск, оптический диск, магнито-оптический диск и полупроводниковая память.
В компьютере, выполненном, как описано выше, CPU 801 выполняет указанные выше последовательности процессов с помощью, например, выполнения программы, хранящейся в блоке 808 запоминающего устройства, загружая программу в RAM 803 через интерфейс 805 ввода-вывода и шину 804.
Программа, исполняемая компьютером 800 (CPU 801) может предоставляться как записанная на съемном носителе 811, служащем, например, в качестве пакетного носителя. Дополнительно, программа может предоставляться через кабельную или беспроводную среду передачи, такую как локальная сеть, Интернет и цифровое спутниковое вещание.
В компьютере программа может устанавливаться в блок 808 запоминающего устройства через интерфейс 805 ввода-вывода, монтируя съемный носитель 811 на привод 810. Дополнительно, программа может устанавливаться в блок 808 запоминающего устройства, принимая программу с помощью блока 809 связи через проводную или беспроводную среду передачи. Кроме того, программа может устанавливаться в ROM 802 и блок 808 запоминающего устройства заранее.
Программа, исполняемая компьютером, может быть программой, с помощью которой процесс выполняется во временной последовательности в соответствии с порядком, объясняемым в настоящем описании, или может быть программой, с помощью которой процесс выполняется параллельно или с необходимой синхронизацией, например, после вызова.
В настоящем описании этапы, описывающие программу, записанную на носителе для записи, содержат процесс, выполняемый во временной последовательности в соответствии с описанным порядком. Этапы не обязательно могут выполняться во временной последовательности и этапы содержат процессы, исполняемые параллельно или индивидуально.
В настоящем описании система содержит комплекс аппаратуры, образуемый множеством устройств.
Конфигурация, объясняемая как устройство (или процессорный блок) в приведенном выше объяснении, может быть разделена и структурирована как многочисленные устройства (или процессорные блоки). Конфигурация, объясняемая в приведенном выше описании как многочисленные устройства (или процессорные блоки), может быть объединена и структурирована как одиночное устройство (или процессорный блок). Альтернативно, следует понимать, что конфигурация каждого устройства (или каждого процессорного блока) может дополняться любой конфигурацией, отличной от описанной выше. Дополнительно, если конфигурация или операции системы в целом являются одними и теми же, часть конфигурации с определенным устройством (или процессорным блоком) может быть введена в конфигурацию другого устройства (или другого процессорного блока). Более конкретно, эта технология не ограничивается описанной выше средой и может изменяться различными способами, пока это происходит в пределах сущности настоящей технологии.
Устройство кодирования изображения и устройство декодирования изображения, соответствующие описанным выше вариантам осуществления, могут применяться в различных видах электронных устройств, таких как передатчик или приемник для распространения сигналов по терминалам посредством спутникового вещания, кабельного вещания, такого как кабельное телевидение, распространение через Интернет, устройства сотовой связи, устройства записи, записывающие изображения на носителе данных, таком как оптический диск, магнитный диск или флэш-память, или устройства воспроизведения, воспроизводящие изображения с этих носителей записи. Здесь далее будут описаны четыре примера применений.
8. Пример применения
Первый пример применения: телевизионное приемное устройство
На фиг. 28 показан пример конфигурации схемы, показывающей телевизионное устройство, к которому применяются описанные выше варианты осуществления. Телевизионное устройство 900 содержит антенну 901, тюнер 902, демультиплексор 903, декодер 904, блок 905 видеопроцессора, блок 906 отображения, блок 907 аудиопроцессора, громкоговоритель 908, внешний интерфейс 909, блок 910 управления, интерфейс 911 пользователя и шину 912.
Тюнер 902 извлекает сигнал желаемого канала из широковещательного сигнала, принятого через антенну 901, и демодулирует извлеченный сигнал. Затем тюнер 902 выводит кодированный битовый поток, полученный при демодуляции, на демультиплексор 903. Более конкретно, тюнер 902 играет роль средства передачи в телевизионном устройстве 900, принимающем кодированный поток, в котором закодировано изображение.
Демультиплексор 903 выбирает видеопоток и аудиопоток программы просмотра целевого объекта из кодированного битового потока и выводит разделенные потоки на декодер 904. Дополнительно, демультиплексор 903 извлекает вспомогательные данные, такие как EPG (Electronic Program Guide, электронная телевизионная программа), из кодированного битового потока и подает извлеченные данные на блок 910 управления. Следует заметить, что в случае, когда кодированный битовый поток скремблирован, демультиплексор 903 может выполнить дескремблирование.
Декодер 904 декодирует видеопоток и аудиопоток, принятые от демультиплексора 903. Затем декодер 904 выводит видеоданные, сформированные посредством процесса декодирования, на блок 905 видеопроцессора. Декодер 904 выводит аудиоданные, сформированные посредством процесса декодирования, на блок 907 аудиопроцессора.
Видеопроцессор 905 воспроизводит видеоданные, принятые от декодера 904, и разрешает отображение видеоданных на блоке 906 отображения. Видеопроцессор 905 может отображать на блоке 906 отображения экран прикладной программы, подаваемый через сеть. В зависимости от настроек, видеопроцессор 905 может выполнять дополнительную обработку, такую как удаление шумов видеоданных. Дополнительно, блок 905 видеопроцессора формирует изображение GUI (Graphical User Interface, графический интерфейс пользователя), такое как меню, кнопки или курсор, и накладывает сформированное изображение на выходное изображение.
Блок 906 отображения приводится в действие запускающим сигналом, поступающим от видеопроцессора 905, и отображает видеоданные или изображенияе на видеоэкране устройства отображения (такого как жидкокристаллический дисплей, плазменный дисплей или OELD (organic electroluminescence display, органоэлектролюминесцентный дисплей, органический EL-дисплей) и т. п.).
Аудиопроцессор 907 выполняет процесс воспроизведения, такой как D/A-преобразование и усиление аудиоданных, принятых от декодера 904, и выводит аудиосигнал через громкоговоритель 908. Блок 907 аудиопроцессора может выполнять дополнительную обработку, такую как снижение шумов аудиоданных.
Внешний интерфейс 909 является интерфейсом для соединения телевизионного устройства 90 с внешним устройством или сетью. Например, видеопоток или аудиопоток, принятый через внешний интерфейс 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 имеет функцию устройства декодирования изображения, соответствующую описанным выше вариантам осуществления. Поэтому при декодировании изображений телевизионным устройством 900 объем кодов может быть уменьшен.
Второй пример применения: сотовый телефон
На фиг. 29 показан пример конфигурации схемы, показывающей сотовый телефон, к которому применяются описанные выше варианты осуществления. Блок 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 видеопроцессора имеет функцию устройства кодирования изображения и устройства декодирования изображения, соответствующую описанным выше вариантам осуществления. Соответственно, при кодировании и декодировании изображений сотовым телефоном 920 объем кодов может быть уменьшен.
Третий пример применения: устройство записи/воспроизведения
На фиг. 30 представлен пример конфигурации схемы, показывающей устройство записи/воспроизведения, к которому применяются описанные выше варианты осуществления. Например, устройство 940 записи/воспроизведения кодирует аудиоданные и видеоданные принятой вещательной программы и записывает кодированные данные на носитель записи. Например, устройство 940 записи/воспроизведения может кодировать аудиоданные и видеоданные, принятые от другого устройства, и может записывать их на носитель записи. Например, устройство 940 записи/воспроизведения воспроизводит данные, записанные на носителе записи, используя монитор и громкоговоритель в соответствии с командой пользователя. В этом случае, устройство 940 записи/воспроизведения декодирует аудиоданные и видеоданные.
Устройство 940 записи/воспроизведения содержит тюнер 941, внешний интерфейс 942, кодер 943, блок 944 HDD (жесткий диск), дисковод 945, переключатель 946, декодер 947, блок 948 OSD (экранное меню), блок 949 управления и интерфейс 950 пользователя.
Тюнер 941 извлекает сигнал желаемого канала из широковещательного сигнала, принятого через антенну (не показана), и демодулирует извлеченный сигнал. Затем тюнер 941 выводит кодированный битовый поток, полученный при декодировании, на переключатель 946. Более конкретно, тюнер 941 играет в устройстве 940 записи/воспроизведения роль средства передачи записи/воспроизведения.
Внешний интерфейс 942 является интерфейсом для соединения устройства 940 записи/воспроизведения с внешним устройством или сетью. Внешний интерфейс 942 может быть, например, интерфейсом IEEE1394, сетевым интерфейсом, интерфейсом 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 выводит на декодер 947 кодированный битовый поток, вводимый от HDD 945 или от дисковода 945.
Декодер 947 декодирует кодированный битовый поток и формирует видеоданные и аудиоданные. Затем декодер 947 выводит сформированные видеоданные на OSD 948. Декодер 904 выводит сформированные аудиоданные на внешний громкоговоритель.
OSD 948 воспроизводит видеоданные, принятые от декодера 947, и отображает видеоданные. OSD 948 может накладывать на отображаемые видеоданные изображения GUI, такие меню, кнопки или курсор.
Блок 949 управления имеет память, такую как процессор для CPU и т. п., а также RAM и ROM. Память хранит программы, исполняемые CPU, программные данные и т. п. Программа, хранящаяся в памяти, может, например, считываться и исполняться CPU при включении устройства 940 записи/воспроизведения. CPU исполняет программу управления работой устройства 940 записи/воспроизведения в соответствии с рабочим сигналом, принятым, например, от интерфейса 971 пользователя.
Интерфейс 950 пользователя соединяется с блоком 949 управления. Интерфейс 950 пользователя имеет, например, кнопки или переключатели, с помощью которых пользователь работает с устройством 940 записи/воспроизведения, и приемный блок для приема сигнала дистанционного управления. Интерфейс 950 пользователя формирует рабочий сигнал, обнаруживая операцию пользователя через эти составляющие элементы, и выводит сформированный рабочий сигнал на блок 949 управления.
В устройстве 940 записи/воспроизведения, построенном так, как описано выше, кодер 943 имеет функцию устройства кодирования изображения, соответствующую описанным выше вариантам осуществления. Декодер 947 имеет функцию устройства декодирования изображения, соответствующую описанным выше вариантам осуществления. Соответственно, при кодировании и декодировании изображений устройством 940 записи/воспроизведения объем кодов может быть уменьшен.
Четвертый пример применения: устройство получения изображения
На фиг. 31 представлен пример конфигурации схемы, показывающей устройство получения изображения, к которому применяются описанные выше варианты осуществления. Устройство 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 (Charge Coupled Device, прибор с зарядовой связью) или CMOS (Complementary Metal Oxide Semiconductor, комплементарный металло-оксидный полупроводник) и преобразует оптическое изображение, полученное на поверхности получения изображения, в сигнал изображения в виде электрического сигнала, используя для этого фотоэлектрическое преобразование. Затем секция 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 исполняет программу управления работой устройства 940 получения изображения в соответствии с рабочим сигналом, принятым, например, от интерфейса 950 пользователя.
Интерфейс 971 пользователя соединяется с блоком 970 управления. Интерфейс 971 пользователя содержит, например, кнопки и переключатели, с помощью которых пользователь работает с устройством 960 получения изображения. Обнаруживая операцию пользователя через эти составляющие элементы, интерфейс 971 пользователя формирует рабочий сигнал и выводит сформированный рабочий сигнал на блок 970 управления.
В устройстве 960 получения изображения, построенном, как описано выше, блок 964 видеопроцессора имеет функцию устройства кодирования изображения и устройства декодирования изображения, соответствующую описанным выше вариантам осуществления. Соответственно, при кодировании и декодировании изображений устройством 960 получения изображения объем кодов может быть уменьшен.
В настоящем описании был представлен пример, в котором различные виды информации, такие как параметры и т. п. фильтра адаптивного смещения выборки, мультиплексируются в кодированный поток и передаются со стороны кодирования на сторону декодирования. Однако, способ передачи информации не ограничивается таким примером. Например, информация может не мультиплексироваться в кодированный битовый поток и может передаваться или записываться как отдельные данные, связанные с кодированным битовым потоком. В этом случае, термин "связанный" означает, что изображение, содержащееся в битовом потоке (которое может быть частью изображения, такой как срез или блок), и информация, соответствующая изображению, связываются во время декодирования. Более конкретно, информация может передаваться по пути прохождения информации, отличающегося от пути прохождения изображения (или битового потока). Информация может записываться на другом носителе записи, отличном от носителя записи для изображения (или битового потока) (или в другой области записи того же самого носителя записи). Дополнительно, информация и изображения (или битовый поток) могут связываться друг с другом в любом заданном блоке, таком как многочисленные кадры, один кадр или участок кадра.
Выше, со ссылкой на приложенные чертежи, были подробно описаны предпочтительные варианты осуществления настоящего раскрытия, но настоящее раскрытие не ограничивается таким примером. Очевидно, что специалист в области техники, к которой относится технология настоящего раскрытия, может предложить различные виды изменений или модификаций в рамках объема технической сущности, описанной в формуле изобретения, и следует понимать, что различные виды изменений и модификаций в рамках объема технической сущности, описанные в формуле изобретения, также содержатся в техническом объеме настоящего раскрытия.
Следует заметить, что настоящая технология может быть также выполнена следующим образом.
(1) Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью осуществления процесса декодирования кодированного потока для формирования изображения; и
блок фильтра адаптивного смещения выборки, выполненный с возможностью применения фильтра адаптивного смещения выборки к изображению, сформированному блоком декодирования в соответствии с типом фильтра адаптивного смещения выборки, являющегося общим для компонент изображения.
(2) Устройство обработки изображения по п. (1), в котором тип фильтра адаптивного смещения выборки является общим для компоненты яркости и компоненты цветового контраста изображения.
(3) Устройство обработки изображения по п. (1), в котором тип фильтра адаптивного смещения выборки является общим для компонент цветового контраста изображения.
(4) Устройство обработки изображения по п. (3), в котором тип фильтра смещения является общим для первой компоненты цветового контраста и для второй компоненты цветового контраста.
(5) Устройство обработки изображения по п. (4), в котором, когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является смещение полосы, типом фильтра адаптивного смещения выборки, соответствующим второму компоненту цветового контраста, является смещение полосы.
(6) Устройство обработки изображения по п. (4), в котором, когда типом фильтра адаптивного смещения выборки, соответствующим первому компоненту цветового контраста, является смещение края, типом фильтра адаптивного смещения выборки, соответствующим второму компоненту цветового контраста, является смещение края.
(7) Устройство обработки изображения по п. (4), в котором, когда типом фильтра адаптивного смещения выборки является смещение края, правило конфигурации смещения края является общим для компонент цветового контраста изображения.
(8) Устройство обработки изображения по п. (7), котором, когда типом фильтра смещения, соответствующий первому компоненту цветового контраста, является одномерная конфигурация смещения края, типом фильтра адаптивного смещения выборки, соответствующии второму компоненту цветового контраста, является одномерная конфигурация смещения края.
(9) Устройство обработки изображения по п. (7), котором, когда типом фильтра смещения, соответствующий первому компоненту цветового контраста, является двумерная конфигурация смещения края, типом фильтра смещения, соответствующим второму компоненту цветового контраста, является двумерная конфигурация смещения края.
(10) Устройство обработки изображения по п. (4), в котором, когда типом фильтра смещения, соответствующим первому компоненту цветового контраста, является тип, не применяющий смещение, типом фильтра смещения, соответствующим второму компоненту цветового контраста, является тип, не применяющий смещение.
(11) Устройство обработки изображения по любому из пп. (1)-(10), в котором цветовое пространство изображения имеет формат Y/Cb/Cr.
(12) Устройство обработки изображения по любому из пп. (1)-(11), дополнительно содержащее приемный блок, выполненный с возможностью приема кодированного потока и информации о типе, указывающей тип фильтра адаптивного смещения выборки, общий для компонент изображения,
в котором блок декодирования использует информацию о типе, принятую приемным блоком, чтобы декодировать кодированный поток, принятый приемным блоком.
(13) Устройство обработки изображения по любому из пп. (1)-(12), дополнительно содержащее блок деблокирующего фильтра, выполненный с возможностью применения деблокирующего фильтра к изображению, сформированному блоком декодирования, в котором блок фильтра адаптивного смещения выборки может применять фильтр адаптивного смещения выборки для изображения, к которому деблокирующий фильтр применяется блоком деблокирующего фильтра.
(14) Устройство обработки изображения по любому из пп. (1)-(13), в котором приемный блок принимает флаг слияния, указывающий то же самое смещение, что и у соседнего блока кодирования, соседствующего с текущим блоком кодирования, и
блок фильтра адаптивного смещения выборки использует флаг слияния, принятый приемным блоком, чтобы применять фильтр адаптивного смещения выборки к изображению, сформированному блоком декодирования.
(15) Способ обработки изображения, содержащий этапы, на которых:
выполняют процесс декодирования кодированного потока для формирования изображения; и
применяют фильтр адаптивного смещения выборки к сформированному изображению в соответствии с типом фильтра адаптивного смещения выборки, который является общим для компонент изображения.
Перечень ссылочных позиций
11 Устройство кодирования изображения
26 Блок кодирования без потерь
31 Деблокирующий фильтр
41 Фильтр адаптивного смещения выборки
42 Адаптивный контурный фильтр
51 Устройство декодирования изображения
62 Блок декодирования без потерь
66 Деблокирующий фильтр
81 Фильтр адаптивного смещения выборки
82 Адаптивный контурный фильтр
111 Флаг SAO
112 Блок установки типа
113 Блок установки смещения
114 Блок установки информации управления SAO
115 Буфер смещения
116 Блок процесса фильтрации
117 Буфер изображения
141 Блок установки типа
151 Блок установки типа для Y
152 Блок установки типа для Cm
161 Блок записи синтаксиса
211 Блок получения синтаксиса
221 Блок приема флага SAO
222 Блок приема типа
223 Блок приема флага слияния
224 Буфер смещения
225 Блок приема смещения
226 Блок процесса фильтрации
227 Буфер изображения
241 Блок получения синтаксиса
251 Блок приема типа
261 Блок приема типа для Y
262 Блок приема типа для Cm.