МОЗАИЧНОЕ РАСПОЛОЖЕНИЕ ПРИ КОДИРОВАНИИ И ДЕКОДИРОВАНИИ ВИДЕО
MOSAIC ARRANGEMENT AT VIDEO ENCODING AND DECODING

Перекрестная ссылка на родственные заявки
По настоящей заявке испрашивается приоритет в соответствии с (1) предварительной заявкой на патент США № 60/923014, поданной 12 апреля 2007 года, и имеющей название «Multiview Information» (реестровый номер поверенного PU070078), и (2) предварительной заявкой на патент США № 60/925400, поданной 20 апреля 2007 года, и имеющей название «View Tilling in MVC Coding» (реестровый номер поверенного PU070103). Каждая из двух вышеперечисленных заявок полностью включена в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Настоящие принципы, в целом, относятся к кодированию и/или декодированию видеосигнала.
Предшествующий уровень техники
Изготовители устройств отображения могут использовать структуру относительного или мозаичного расположения различных видов в одном кадре. В таком случае виды могут быть извлечены из их соответствующих местоположений и визуально воспроизведены.
Сущность изобретения
В соответствии с общим аспектом, осуществляется доступ к видеоизображению, которое включает в себя множество изображений, объединенных в одно изображение. Осуществляется доступ к информации, которая указывает то, как объединить множество изображений в видеоизображении, к которому осуществляется доступ. Видеоизображение декодируется для обеспечения декодированного представления объединенного множества изображений. Информация, к которой осуществляется доступ, и декодированное видеоизображение обеспечиваются в качестве вывода.
В соответствии с другим общим аспектом, генерируется информация, которая указывает то, как объединить множество изображений, включенных в состав видеоизображения, в одно изображение. Видеоизображение кодируется для обеспечения кодированного представления объединенного множества изображений. Сгенерированная информация и кодированное видеоизображение обеспечиваются в качестве вывода.
В соответствии с другим общим аспектом, сигнал или структура сигнала включает в себя информацию, которая указывает то, как объединить множество изображений, включенных в состав одного видеоизображения, в одно видеоизображение. Сигнал или структура сигнала также включает в себя кодированное представление объединенного множества изображений.
В соответствии с другим общим аспектом, осуществляется доступ к видеоизображению, которое включает в себя множество изображений, объединенных в одно изображение. Осуществляется доступ к информации, которая указывает то, как объединить множество изображений в видеоизображении, к которому осуществляется доступ. Видеоизображение декодируется для обеспечения декодированного представления, по меньшей мере, одного из множества изображений. Информация, к которой осуществляется доступ, и декодированное представление обеспечиваются в качестве вывода.
В соответствии с другим общим аспектом, осуществляется доступ к видеоизображению, которое включает в себя множество изображений, объединенных в одно изображение. Осуществляется доступ к информации, которая указывает то, как объединить множество изображений в видеоизображении, к которому осуществляется доступ. Видеоизображение декодируется для обеспечения декодированного представления объединенного множества изображений. Принимается пользовательский ввод, который выбирает, по меньшей мере, одно из множества изображений для отображения. Обеспечивается декодированный вывод, по меньшей мере, одного выбранного изображения, причем декодированный вывод обеспечивается на основе информации, к которой осуществляется доступ, на основе декодированного представления, а также на основе пользовательского ввода.
Ниже, на сопроводительных чертежах, а также в описании сформулированы детали одного или нескольких вариантов осуществления. Даже при описании со ссылкой на один конкретный способ, должно быть понятно, что варианты осуществления могут быть сконфигурированы или воплощены различными способами. Например, вариант осуществления может быть выполнен в качестве способа, или воплощен в качестве устройства, сконфигурированного для выполнения набора операций, или воплощен в качестве устройства, сохраняющего команды для выполнения набора операций, или воплощен в сигнале. Другие аспекты и отличительные признаки станут понятными из следующего подробного описания, которое рассматривается в связи с сопроводительными чертежами и формулой изобретения.
Краткий перечень чертежей
Фиг.1 изображает графическое представление, иллюстрирующее пример четырех видов, расположенных мозаикой в одном кадре;
Фиг.2 изображает графическое представление, иллюстрирующее пример четырех зеркально отраженных видов, расположенных мозаикой в одном кадре;
Фиг.3 изображает блок-схему для видеокодера, к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов;
Фиг.4 изображает блок-схему для видеодекодера, к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов;
Фиг.5 изображает схему последовательности операций для способа кодирования изображений с множеством видов с использованием стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.6 изображает схему последовательности операций для способа декодирования изображений с множеством видов с использованием стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.7 изображает схему последовательности операций для способа кодирования изображений с множеством видов и сигналами насыщенности с использованием стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.8 изображает схему последовательности операций для способа декодирования изображений с множеством видов и сигналами насыщенности с использованием стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.9 изображает графическое представление, иллюстрирующее пример сигнала насыщенности, в соответствии с вариантом осуществления настоящих принципов;
Фиг.10 изображает графическое представление, иллюстрирующее пример усиления сигнала насыщенности в виде мозаики, в соответствии с вариантом осуществления настоящих принципов;
Фиг.11 изображает графическое представление, иллюстрирующее пример пяти видов, расположенных мозаикой в одном кадре, в соответствии с вариантом осуществления настоящих принципов;
Фиг.12 изображает блок-схему для иллюстративного кодера, работающего по принципу кодирования видеосигнала с множеством видов (MVC), к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов;
Фиг.13 изображает блок-схему для иллюстративного декодера, работающего по принципу кодирования видеосигнала с множеством видов (MVC), к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов;
Фиг.14 изображает схему последовательности операций для способа обработки изображений с множеством видов при подготовке к кодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.15 изображает схему последовательности операций для способа кодирования изображений с множеством видов с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.16 изображает схему последовательности операций для способа обработки изображений с множеством видов при подготовке к декодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.17 изображает схему последовательности операций для способа декодирования изображений с множеством видов с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.18 изображает схему последовательности операций для способа обработки изображений с множеством видов и сигналами насыщенности при подготовке к кодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.19 изображает схему последовательности операций для способа кодирования изображений с множеством видов и сигналами насыщенности с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.20 изображает схему последовательности операций для способа обработки изображений с множеством видов и сигналами насыщенности при подготовке к декодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.21 изображает схему последовательности операций для способа декодирования изображений с множеством видов и сигналами насыщенности с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4, в соответствии с вариантом осуществления настоящих принципов;
Фиг.22 изображает графическое представление, иллюстрирующее примеры мозаичного расположения на уровне элементов изображения, в соответствии с вариантом осуществления настоящих принципов; и
Фиг.23 изображает блок-схему для устройства обработки видеосигнала, к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов.
Подробное описание
Различные варианты осуществления ориентированы на способы и устройство для мозаичного расположения видов при кодировании и декодировании видеосигнала. Следовательно, должно быть понятно, что специалисты в данной области техники смогут конструировать различные схемы относительного расположения, которые, несмотря на то, что они не были явно описаны или изображены в настоящем документе, реализуют настоящие принципы, а также включены в его сущность и объем.
Все описанные в настоящем документе примеры, а также условный язык предназначены для педагогических целей, заключаемых в помощи читателю в понимании настоящих принципов и понятий, вносимых изобретателем(-ями) для развития области техники, а также интерпретируются для неограниченного рассмотрения применительно к таким конкретно описанным примерам и условиям.
Кроме того, все формулировки настоящего документа, описывающие принципы, аспекты и варианты осуществления настоящих принципов, а также их конкретные примеры подразумевают охват как структурных, так и функциональных эквивалентов. Кроме того, предполагается, что такие эквиваленты включают в себя как эквиваленты, известные в настоящее время, так и эквиваленты, которые будут разработаны в будущем, то есть, любые элементы, разработанные для выполнения аналогичной функции, независимо от структуры.
Следовательно, к примеру, специалистам в данной области техники должно быть понятно, что представленная в настоящем документе блок-схема обеспечивает концептуальные представления иллюстративной схемы, воплощающей настоящие принципы. Также должно быть понятно, что любые логические схемы, схемы последовательности операций, диаграммы состояний, псевдокод и т.п., представляют различные процессы, которые по существу могут быть представлены на компьютерно-читаемом носителе, а также выполнены посредством компьютера или процессора, несмотря на то, был ли изображен такой компьютер или процессор явным образом.
Функции различных изображенных на фигурах элементов могут быть обеспечены посредством использования специализированных аппаратных средств, а также аппаратных средств, выполненных с возможностью выполнения программного обеспечения в связи с соответствующим программным обеспечением. При обеспечении посредством процессора, функции могут быть обеспечены посредством одного специализированного процессора, посредством одного совместно используемого процессора или посредством нескольких отдельных процессоров, некоторые из которых могут быть использованы совместно. Кроме того, явное использование термина «процессор» или «контроллер» не должно рассматриваться для ссылки исключительно на аппаратные средства, выполненные с возможностью выполнения программного обеспечения, а также может потенциально включать в себя, в числе прочего, аппаратные средства цифрового сигнального процессора (DSP), постоянное запоминающее устройство (ROM) для сохранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое запоминающее устройство.
Также могут быть включены и другие обычные или специализированные аппаратные средства. Также любые изображенные на фигурах переключатели являются исключительно концептуальными. Их функция может быть выполнена посредством операции логики программы, посредством специализированной логики, посредством взаимодействия управляющей программы и специализированной логики, или же вручную, причем конкретная технология может быть выбрана посредством конструктора, как будет понятно в большей степени из контекста.
В настоящей формуле изобретения подразумевается, что любой элемент, представленный в качестве средства для выполнения заданной функции охватывает любой способ выполнения этой функции, в том числе, например, a) комбинация элементов схемы, которые выполняют эту функцию, или b) программное обеспечение в любой форме, в том числе микропрограммное обеспечение, микрокод или подобное, объединенное с соответствующей схемой для выполнения этого программного обеспечения, для выполнения функции. Настоящие принципы, заданные посредством настоящей формулы изобретения, заключаются в том, что функциональные возможности, обеспечиваемые посредством различных описанных средств, объединяются и сводятся воедино способом, заявленным в формуле изобретения. Следовательно, считается, что любое средство, которое может обеспечить эти функциональные возможности, является эквивалентным средству, изображенному в настоящем документе.
Ссылка в описании на «один вариант осуществления» (или «один вариант реализации») или «вариант осуществления» (или «вариант реализации») настоящих принципов означает, что конкретный отличительный признак, структура, параметр и т.д., описанный в связи с вариантом осуществления, включен, по меньшей мере, в один вариант осуществления настоящих принципов. Следовательно, фраза «в одном варианте осуществления» или «в варианте осуществления», встречающаяся в различных местах по всему описанию, не ссылается в обязательном порядке на один вариант осуществления.
Должно быть понятно, что использование терминов «и/или» и «по меньшей мере, один из», например, в случаях «A и/или B» и «по меньшей мере, один из A и B», подразумевает выбор исключительно первого перечисленного варианта (A) или выбор исключительно второго перечисленного варианта (B), или выбор обоих вариантов (A и B). В качестве дополнительного примера, в случаях «A, B и/или C» и «по меньшей мере, один из A, B и C», такое выражение подразумевает выбор исключительно первого перечисленного варианта (A), или выбор исключительно второго перечисленного варианта (B), или выбор исключительно третьего перечисленного варианта (C), или выбор исключительно первого и второго вариантов (A и B) из перечисленных вариантов, или выбор исключительно первого и третьего вариантов (A и C) из перечисленных вариантов, или выбор исключительно второго и третьего вариантов (B и C) из перечисленных вариантов, или выбор всех трех вариантов (A и В, и C). Как должно быть понятно специалистам в данном и предшествующем уровнях техники, вариантов может быть и больше.
Кроме того, должно быть понятно, что несмотря на то, что один или несколько вариантов осуществления настоящих принципов описаны в настоящем документе применительно к стандарту кодирования AVC MPEG-4, настоящие принципы не ограничиваются исключительно этим стандартом и, следовательно, могут быть использованы применительно к другим стандартам, рекомендациям и их расширениям, в частности, к стандартам кодирования видеосигнала, рекомендациям и их расширениям, в том числе к расширениям стандарта кодирования AVC MPEG-4, наряду с поддержкой сущности настоящих принципов.
Кроме того, должно быть понятно, что, несмотря на то, что один или несколько других вариантов осуществления настоящих принципов описаны в настоящем документе применительно к расширению кодирования видеосигнала с множеством видов стандарта кодирования AVC MPEG-4, настоящие принципы не ограничиваются исключительно этим расширением и/или этим стандартом и, следовательно, могут быть использованы применительно к другим стандартам кодирования видеосигнала, рекомендациям и их расширениям, относящихся к кодированию видеосигнала с множеством видов, наряду с поддержкой сущности настоящих принципов. Кодирование видеосигнала с множеством видов (MVC) является структурой сжатия для кодирования последовательностей с множеством видов. Последовательность кодирования видеосигнала с множеством видов (MVC) является набором из двух или более видеопоследовательностей, которые захватывают одну сцену с различных точек наблюдения.
Кроме того, должно быть понятно, что несмотря на то, что в настоящем документе описан один или несколько других вариантов осуществления настоящих принципов, которые используют информацию о насыщенности применительно к информационному содержанию видеосигнала, настоящие принципы не ограничиваются этими вариантами осуществления и, следовательно, могут быть реализованы другие варианты осуществления, которые не используют информацию о насыщенности, наряду с поддержкой сущности настоящих принципов.
Кроме того, используемый в настоящем документе термин «синтаксис высокого уровня» относится к синтаксису, присутствующему в битовом потоке, который иерархически находится выше уровня макроблока. Например, используемый в настоящем документе синтаксис высокого уровня может относиться, в числе прочего, к синтаксису на уровне заголовка части, уровне дополнительной информации расширения (SEI), уровне набора параметров изображения (PPS), уровне набора параметров последовательности (SPS), уровне набора параметров вида (VPS) и уровне заголовка блока уровня сетевой абстракции (NAL).
В текущем варианте осуществления кодирования видеосигнала с множеством видов (MVC), основанного на стандарте усовершенствованного кодирования видеосигнала (AVC) экспертной группы по вопросам движущегося изображения 4 (MPEG-4) части 10 международной организации по стандартизации/международной электротехнической комиссии (ISO/IEC)/рекомендации H.264 сектора по стандартизации телекоммуникаций в составе международного телекоммуникационного союза (ITU-T) (далее «стандарт кодирования AVC MPEG-4»), связанное программное обеспечение достигает предсказания множества видов посредством кодирования каждого вида одним кодером, а также учитывает ссылки на перекрестные виды. Каждый вид кодируется в качестве отдельного битового потока посредством кодера в своем оригинальном разрешении, а затем все битовые потоки объединяются для формирования одного битового потока, который впоследствии декодируется. Каждый вид производит отдельный декодированный вывод YUV.
Другой подход для предсказания множества видов подразумевает группировку набора представлений в псевдовиды. В одном примере этого подхода мы можем расположить мозаикой изображения из каждых N видов из всех М видов (выбранных одновременно) в большем кадре или в суперкадре с возможной субдискретизацией или другими операциями. На Фиг.1 пример четырех видов, расположенных мозаикой в одном кадре, обозначен, в целом, посредством ссылочного номера 100. Все четыре вида имеют свою нормальную ориентацию.
На Фиг.2 пример четырех зеркально отраженных видов, расположенных мозаикой в одном кадре, обозначен, в целом, посредством ссылочного номера 200. Верхний левый вид имеет свою нормальную ориентацию. Верхний правый вид зеркально отражен по горизонтали. Нижний левый вид зеркально отражен по вертикали. Нижний правый вид зеркально отражен как по горизонтали, так и по вертикали. Следовательно, в случае присутствия четырех видов, изображение из каждого вида располагается в суперкадре подобно мозаике. Это приводит к одной некодированной последовательности ввода с большим разрешением.
Альтернативно, мы можем выполнить субдискретизацию для получения меньшего разрешения. Следовательно, мы создаем множество последовательностей, каждая из которых включает в себя различные виды, которые совместно располагаются мозаикой. Затем каждая такая последовательность формирует псевдовид, причем каждый псевдовид включает в себя N различных видов, расположенных мозаикой. Фиг.1 изображает один псевдовид, а Фиг.2 изображает другой псевдовид. Затем эти псевдовиды могут быть закодированы с использованием существующих стандартов кодирования видеосигнала, таких как стандарт ISO/IEC MPEG-2 и AVC MPEG-4.
Еще один подход для предсказания множества видов попросту подразумевает кодирование различных видов с независимым использованием нового стандарта и, после декодирования, мозаичное расположение видов, как требуется воспроизводящим устройством.
Кроме того, при другом подходе виды также могут быть расположены мозаикой по образу элементов изображения. Например, в супервиде, то есть составленном из четырех видов, элемент (x, y) изображения может принадлежать виду 0, наряду с тем, как элемент (x+1, y) изображения может принадлежать виду 1, элемент (x, y+1) изображения может принадлежать виду 2, а элемент (x+1, y+1) изображения может принадлежать виду 3.
Многие изготовители устройств отображения используют такую структуру относительного или мозаичного расположения различных видов в одном кадре, а затем извлекают виды из их соответствующих местоположений, и визуально воспроизводят их. В таких случаях отсутствует стандартный способ определения того, имеет ли битовый поток такое свойство. Следовательно, если система использует способ мозаичного расположения изображений различных видов в большом кадре, то способ извлечения различных видов является подходящим.
Однако, не существует стандартного способа определения того, имеет ли битовый поток такое свойство. Мы предлагаем синтаксис высокого уровня для упрощения средства визуализации или устройства воспроизведения, извлекающего такую информацию для помощи в отображении или другой постобработке. Также возможно, чтобы субизображения имели различные разрешения и, кроме того, для того, чтобы в конечном счете визуально воспроизвести вид может быть необходима некоторая передискретизация. Пользователь может пожелать иметь способ передискретизации, также обозначенной в синтаксисе высокого уровня. Кроме того, также могут быть переданы параметры для изменения фокуса насыщенности.
В варианте осуществления мы предлагаем новое сообщение с дополнительной информацией расширения (SEI) для передачи информации о множестве видов в битовом потоке, совместимом со стандартом кодирования AVC MPEG-4, где каждое изображение включает в себя субизображения, которые принадлежат отличному виду. Вариант осуществления предназначен, например, для легкого и удобного отображения потоков видеосигналов с множеством видов на трехмерных (3D) мониторах, которые могут использовать такую структуру. Понятие может быть расширено на другие стандарты кодирования видеосигнала, а также на рекомендации передачи такой информации с использованием синтаксиса высокого уровня.
Кроме того, в варианте осуществления мы предлагаем способ передачи структуры расположения видов перед их посылкой на видеокодер и/или видеодекодер множества видов. Преимущественно вариант осуществления может привести к упрощенному варианту осуществления кодирования множества видов, а также может быть полезен в отношении эффективности кодирования. Определенные виды могут быть сведены, а также сформировать псевдовид или супервид, после чего расположенный мозаикой супервид обрабатывается (рассматривается) в качестве обычного вида посредством стандартного видеокодера и/или видеодекодера, работающего по принципу кодирования видеосигнала с множеством видов, например, в соответствии с текущим вариантом осуществления, основанном на стандарте кодирования видеосигнала с множеством видов AVC MPEG-4. Для сигнализации об использовании технологии псевдовидов предлагается новый флаг в расширении набора параметров последовательности (SPS) кодирования видеосигнала с множеством видов. Вариант осуществления предназначен для легкого и удобного отображения потоков видеосигналов с множеством видов на трехмерных (3D) мониторах, которые могут использовать такую структуру.
Кодирование/декодирование с использованием стандарта/рекомендации кодирования/декодирования видеосигнала с одним видом
В текущем варианте осуществления кодирования видеосигнала с множеством видов (MVC), основанного на стандарте усовершенствованного кодирования видеосигнала (AVC) экспертной группы по вопросам движущегося изображения 4 (MPEG-4) части 10 международной организации по стандартизации/международной электротехнической комиссии (ISO/IEC) / рекомендации H.264 сектора по стандартизации телекоммуникаций в составе международного телекоммуникационного союза (ITU-T) (далее «стандарт кодирования AVC MPEG-4»), связанное программное обеспечение достигает предсказания множества видов посредством кодирования каждого вида одним кодером, а также учитывает ссылки на перекрестные виды. Каждый вид кодируется в качестве отдельного битового потока посредством кодера в своем оригинальном разрешении, а затем все битовые потоки объединяются для формирования одного битового потока, который впоследствии декодируется. Каждый вид производит отдельный декодированный вывод YUV.
Другой подход для предсказания множества видов подразумевает мозаичное расположение изображений из каждого вида (выбранного одновременно) в большем кадре или в суперкадре с возможной операцией субдискретизации. На Фиг.1 пример четырех видов, расположенных мозаикой в одном кадре, обозначен, в целом, посредством ссылочного номера 100. На Фиг.2 пример четырех зеркально отраженных видов, расположенных мозаикой в одном кадре, обозначен, в целом, посредством ссылочного номера 200. Следовательно, в случае присутствия четырех видов, изображение из каждого вида располагается в суперкадре подобно мозаике. Это приводит к одной некодированной последовательности ввода с большим разрешением. Затем сигнал может быть закодирован с использованием существующих стандартов кодирования видеосигнала, таких как стандарт ISO/IEC MPEG-2 и AVC MPEG-4.
Еще один подход для предсказания множества видов попросту подразумевает кодирование различных видов с независимым использованием нового стандарта и, после декодирования, мозаичное расположение видов, как требуется воспроизводящим устройством.
Многие изготовители устройств отображения используют такую структуру относительного или мозаичного расположения различных видов в одном кадре, а затем извлекают виды из их соответствующих местоположений, и визуально воспроизводят их. В таких случаях отсутствует стандартный способ определения того, имеет ли битовый поток такое свойство. Следовательно, если система использует способ мозаичного расположения изображений различных видов в большом кадре, то способ извлечения различных видов является подходящим.
На Фиг.3 видеокодер, выполненный с возможностью выполнения кодирования видеосигнала, в соответствии со стандартом кодирования AVC MPEG-4, обозначен, в целом, посредством ссылочного номера 300.
Видеокодер 300 включает в себя буфер 310 классификации кадров, имеющий выход, соединенный с возможностью передачи сигналов с неинвертированным входом модуля 385 объединения. Выход модуля 385 объединения соединен с возможностью передачи сигналов с первым входом модуля 325 преобразования и квантования. Выход модуля 325 преобразования и квантования соединен с возможностью передачи сигналов с первым входом модуля 345 статистического кодирования и первым входом модуля 350 обратного преобразования и обратного квантования. Выход модуля 345 статистического кодирования соединен с возможностью передачи сигналов с первым неинвертированным входом модуля 390 объединения. Выход модуля 390 объединения соединен с возможностью передачи сигналов с первым входом буфера 335 вывода.
Первый выход модуля 305 управления кодером соединен с возможностью передачи сигналов со вторым входом буфера 310 классификации кадров, вторым входом модуля 350 обратного преобразования и обратного квантования, входом модуля 315 определения типа изображения, входом модуля 320 определения типа макроблока (MB-type), вторым входом модуля 360 внутреннего предсказания, вторым входом фильтра 365 для удаления блочности, первым входом модуля 370 компенсации движения, первым входом модуля 375 оценки движения и вторым входом буфера 380 опорных (эталонных) изображений.
Второй выход модуля 305 управления кодером соединен с возможностью передачи сигналов с первым входом модуля 330 вставки дополнительной информации расширения (SEI), вторым входом модуля 325 преобразования и квантования, вторым входом модуля 345 статистического кодирования, вторым входом буфера 335 вывода и входом модуля 340 вставки набора параметров последовательности (SPS) и набора параметров изображения (PPS).
Первый выход модуля 315 определения типа изображения соединен с возможностью передачи сигналов с третьим входом буфера 310 классификации кадров. Второй выход модуля 315 определения типа изображения соединен с возможностью передачи сигналов со вторым входом модуля 320 определения типа макроблока 320.
Выход модуля 340 вставки набора параметров последовательности (SPS) и набора параметров изображения (PPS) соединен с возможностью передачи сигналов с третьим неинвертированным входом модуля 390 объединения. Выход модуля 330 вставки информации SEI соединен с возможностью передачи сигналов со вторым неинвертированным входом модуля 390 объединения.
Выход модуля 350 обратного квантования и обратного преобразования соединен с возможностью передачи сигналов с первым неинвертированным входом модуля 319 объединения. Выход модуля 319 объединения соединен с возможностью передачи сигналов с первым входом модуля 360 внутреннего предсказания и первым входом фильтра 365 для удаления блочности. Выход фильтра 365 для удаления блочности соединен с возможностью передачи сигналов с первым входом буфера 380 опорных изображений. Выход буфера 380 опорных изображений соединен с возможностью передачи сигналов со вторым входом модуля 375 оценки движения и первым входом модуля 370 компенсации движения. Первый выход модуля 375 оценки движения соединен с возможностью передачи сигналов со вторым входом модуля 370 компенсации движения. Второй выход модуля 375 оценки движения соединен с возможностью передачи сигналов с третьим входом модуля 345 статистического кодирования.
Выход модуля 370 компенсации движения соединен с возможностью передачи сигналов с первым входом модуля 397 переключения. Выход модуля 360 внутреннего предсказания соединен с возможностью передачи сигналов со вторым входом модуля 397 переключения. Выход модуля 320 определения типа макроблока соединен с возможностью передачи сигналов с третьим входом модуля 397 переключения для обеспечения управляющего входного сигнала модулю 397 переключения. Третий вход модуля 397 переключения определяет, должен ли «информационный» входной сигнал модуля переключения (по сравнению с управляющим входным сигналом, то есть, третьим входом) быть предоставлен посредством модуля 370 компенсации движения или модуля 360 внутреннего предсказания. Выход модуля 397 переключения соединен с возможностью передачи сигналов со вторым неинвертированным входом модуля 319 объединения, а также с инвертированным входом модуля 385 объединения.
Входы буфера 310 классификации кадров и модуля 105 управления кодером доступны в качестве входа кодера 300 для приема передаваемого изображения 301. Кроме того, вход модуля 330 вставки дополнительной информации расширения (SEI) доступен в качестве входа кодера 300 для приема метаданных. Выход буфера 335 вывода доступен в качестве выхода кодера 300 для вывода битового потока.
На Фиг.4 видеодекодер, выполненный с возможностью выполнения декодирования видеосигнала, в соответствии со стандартом кодирования AVC MPEG-4, обозначен, в целом, посредством ссылочного номера 400.
Видеодекодер 400 включает в себя буфер 410 ввода, имеющий выход, соединенный с возможностью передачи сигналов с первым входом модуля 445 статистического декодирования. Первый выход модуля 445 статистического декодирования соединен с возможностью передачи сигналов с первым входом модуля 450 обратного преобразования и обратного квантования. Выход модуля 450 обратного преобразования и обратного квантования соединен с возможностью передачи сигналов со вторым неинвертированным входом модуля 425 объединения. Выход модуля 425 объединения соединен с возможностью передачи сигналов со вторым входом фильтра 465 для удаления блочности, а также с первым входом модуля 460 внутреннего предсказания. Второй выход фильтра 465 для удаления блочности соединен с возможностью передачи сигналов с первым входом буфера 480 опорных изображений. Выход буфера 480 опорных изображений соединен с возможностью передачи сигналов со вторым входом модуля 470 компенсации движения.
Второй выход модуля 445 статистического декодирования соединен с возможностью передачи сигналов с третьим входом модуля 470 компенсации движения, а также с первым входом фильтра 465 для удаления блочности. Третий выход модуля 445 статистического декодирования соединен с возможностью передачи сигналов со входом модуля 405 управления декодером. Первый выход модуля 405 управления декодером соединен с возможностью передачи сигналов со вторым входом модуля 445 статистического декодирования. Второй выход модуля 405 управления декодером соединен с возможностью передачи сигналов со вторым входом модуля 450 обратного преобразования и обратного квантования. Третий выход модуля 405 управления декодером соединен с возможностью передачи сигналов с третьим входом фильтра 465 для удаления блочности. Четвертый выход модуля 405 управления декодером соединен с возможностью передачи сигналов со вторым входом модуля 460 внутреннего предсказания, с первым входом модуля 470 компенсации движения, а также со вторым входом буфера 480 опорных изображений.
Выход модуля 470 компенсации движения соединен с возможностью передачи сигналов с первым входом модуля 497 переключения. Выход модуля 460 внутреннего предсказания соединен с возможностью передачи сигналов со вторым входом модуля 497 переключения. Выход модуля 497 переключения соединен с возможностью передачи сигналов с первым неинвертированным входом модуля 425 объединения.
Вход буфера 410 ввода доступен в качестве входа декодера 400 для приема передаваемого битового потока. Первый выход фильтра 465 для удаления блочности доступен в качестве выхода декодера 400 для вывода изображения.
На Фиг.5 иллюстративный способ кодирования изображений с множеством видов с использованием стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 500.
Способ 500 включает в себя начальный блок 502, который передает управление функциональному блоку 504. Функциональный блок 504 располагает каждый вид в конкретном моменте в качестве фрагмента изображения в формате мозаики и передает управление функциональному блоку 506. Функциональный блок 506 задает синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 508. Функциональный блок 508 задает синтаксические элементы org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1, и передает управление функциональному блоку 510. Функциональный блок 510 задает переменной i нулевое значение и передает управление блоку 512 определения. Блок 512 определения определяет, является ли переменная i меньше количества видов. При положительном результате определения управление передается функциональному блоку 514. При отрицательном результате определения управление передается функциональному блоку 524.
Функциональный блок 514 задает синтаксический элемент view_id [i] и передает управление функциональному блоку 516. Функциональный блок 516 задает синтаксический элемент num_parts [view_id [i]] и передает управление функциональному блоку 518. Функциональный блок 518 задает переменной j нулевое значение и передает управление блоку 520 определения. Блок 520 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [view_id [i]]. При положительном результате определения управление передается функциональному блоку 522. При отрицательном результате определения управление передается функциональному блоку 528.
Функциональный блок 522 задает синтаксические элементы depth_flag [view_id [i]] [j], flip_dir [view_id [i]] [j], loc_left_offset [view_id [i]] [j], loc_top_offset [view_id [i]] [j], frame_crop_left_offset [view_id [i]] [f], frame_crop_right_offset [view_id [i]] [j], frame_crop_top_offset [view_id [i]] [j] и frame_crop_bottom_offset [view_id [i]] [j], увеличивает переменную j, а затем возвращает управление блоку 520 определения.
Функциональный блок 528 задает синтаксический элемент upsample_view_flag [view_id [i]] и передает управление блоку 530 определения. Блок 530 определения определяет, действительно ли текущее значение синтаксического элемента upsample_view_flag [view_id [i]] равняется единице. При положительном результате определения управление передается функциональному блоку 532. При отрицательном результате определения управление передается блоку 534 определения.
Функциональный блок 532 задает синтаксический элемент upsample_filter [view_id [i]] и передает управление блоку 534 определения.
Блок 534 определения определяет, равняется ли текущее значение синтаксического элемента upsample_filter [view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 536. При отрицательном результате определения управление передается функциональному блоку 540.
Функциональный блок 536 задает синтаксические элементы vert_dim [view_id [i]], hor_dim [view_id [i]] и quantizer [view_id [i]] и передает управление функциональному блоку 538.
Функциональный блок 538 задает коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 540.
Функциональный блок 540 увеличивает переменную i и возвращает управление блоку 512 определения.
Функциональный блок 524 записывает эти синтаксические элементы, по меньшей мере, либо в набор параметров последовательности (SPS), либо в набор параметров изображения (PPS), либо в сообщение с дополнительной информацией расширения (SEI), либо в заголовок блока уровня сетевой абстракции (NAL), либо в заголовок части, и передает управление функциональному блоку 526. Функциональный блок 526 кодирует каждое изображение с использованием стандарта кодирования AVC MPEG-4 или другого кодека с одним видом и передает управление оконечному блоку 599.
На Фиг.6 иллюстративный способ декодирования изображений с множеством видов с использованием стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 600.
Способ 600 включает в себя начальный блок 602, который передает управление функциональному блоку 604. Функциональный блок 604 анализирует нижеперечисленные синтаксические элементы, по меньшей мере, либо из набора параметров последовательности (SPS), либо из набора параметров изображения (PPS), либо из сообщения с дополнительной информацией расширения (SEI), либо из заголовка блока уровня сетевой абстракции (NAL), либо из заголовка части, и передает управление функциональному блоку 606. Функциональный блок 606 анализирует синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 608. Функциональный блок 608 анализирует синтаксические элементы org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1 и передает управление функциональному блоку 610. Функциональный блок 610 задает переменной i нулевое значение и передает управление блоку 612 определения. Блок 612 определения определяет, является ли переменная i меньше количества видов. При положительном результате определения управление передается функциональному блоку 614. При отрицательном результате определения управление передается функциональному блоку 624.
Функциональный блок 614 анализирует синтаксический элемент view_id [i] и передает управление функциональному блоку 616. Функциональный блок 616 анализирует синтаксический элемент num_parts_minus1 [view_id [i]] и передает управление функциональному блоку 618. Функциональный блок 618 задает переменной j нулевое значение и передает управление блоку 620 определения. Блок 620 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [view_id [i]]. При положительном результате определения управление передается функциональному блоку 622. При отрицательном результате определения управление передается функциональному блоку 628.
Функциональный блок 622 анализирует синтаксические элементы depth_flag [view_id [i]] [j], flip_dir [view_id [i]] [j], loc_left_offset [view_id [i]] [j], loc_top_offset [view_id [i]] [j], frame_crop_left_offset [view_id [i]] [j], frame_crop_right_offset [view_id [i]] [j], frame_crop_top_offset [view_id [i]] [j] и frame_crop_bottom_offset [view_id [i]] [j], увеличивает переменную j, а затем возвращает управление блоку 620 определения.
Функциональный блок 628 анализирует синтаксический элемент upsample_view_flag [view_id [i]] и передает управление блоку 630 определения. Блок 630 определения определяет, действительно ли текущее значение синтаксического элемента upsample_view_flag [view_id [i]] равняется единице. При положительном результате определения управление передается функциональному блоку 632. При отрицательном результате определения управление передается блоку 634 определения.
Функциональный блок 632 анализирует синтаксический элемент upsample_filter [view_id [i]] и передает управление блоку 634 определения.
Блок 634 определения определяет, равняется ли текущее значение синтаксического элемента upsample_filter [view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 636. При отрицательном результате определения управление передается функциональному блоку 640.
Функциональный блок 636 анализирует синтаксические элементы vert_dim [view_id [i]], hor_dim [view_id [i]] и quantizer [view_id [i]] и передает управление функциональному блоку 638.
Функциональный блок 638 анализирует коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 640.
Функциональный блок 640 увеличивает переменную i и возвращает управление блоку 612 определения.
Функциональный блок 624 декодирует каждое изображение с использованием стандарта кодирования AVC MPEG-4 или другого кодека с одним видом и передает управление функциональному блоку 626. Функциональный блок 626 отделяет каждый вид от изображения с использованием синтаксиса высокого уровня и передает управление оконечному блоку 699.
На Фиг.7 иллюстративный способ кодирования изображений с множеством видов и сигналами насыщенности с использованием стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 700.
Способ 700 включает в себя начальный блок 702, который передает управление функциональному блоку 704. Функциональный блок 704 располагает каждый вид и соответствующий сигнал насыщенности в конкретном моменте в качестве фрагмента изображения в формате мозаики, и передает управление функциональному блоку 706. Функциональный блок 706 задает синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 708. Функциональный блок 708 задает синтаксические элементы org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1 и передает управление функциональному блоку 710. Функциональный блок 710 задает переменной i нулевое значение и передает управление блоку 712 определения. Блок 712 определения определяет, является ли переменная i меньше количества видов. При положительном результате определения управление передается функциональному блоку 714. При отрицательном результате определения управление передается функциональному блоку 724.
Функциональный блок 714 задает синтаксический элемент view_id [i] и передает управление функциональному блоку 716. Функциональный блок 716 задает синтаксический элемент num_parts [view_id [i]] и передает управление функциональному блоку 718. Функциональный блок 718 задает переменной j нулевое значение и передает управление блоку 720 определения. Блок 720 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [view_id [i]]. При положительном результате определения управление передается функциональному блоку 722. При отрицательном результате определения управление передается функциональному блоку 728.
Функциональный блок 722 задает синтаксические элементы depth_flag [view_id [i]] [j], flip_dir [view_id [i]] [j], loc_left_offset [view_id [i]] [j], loc_top_offset [view_id [i]] [j], frame_crop_left_offset [view_id [i]] [j], frame_crop_right_offset [view_id [i]] [j], frame_crop_top_offset [view_id [i]] [j] и frame_crop_bottom_offset [view_id [i]] [j], увеличивает переменную j, а затем возвращает управление блоку 720 определения.
Функциональный блок 728 задает синтаксический элемент upsample_view_flag [view_id [i]] и передает управление блоку 730 определения. Блок определения 730 определяет, равняется ли текущее значение синтаксического элемента upsample_view_flag [view_id [i]] единице. При положительном результате определения управление передается функциональному блоку 732. При отрицательном результате определения управление передается блоку 734 определения.
Функциональный блок 732 задает синтаксический элемент upsample_filter [view_id [i]] и передает управление блоку 734 определения.
Блок определения 734 определяет, равняется ли текущее значение синтаксического элемента upsample_filter [view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 736. При отрицательном результате определения управление передается функциональному блоку 740.
Функциональный блок 736 задает синтаксические элементы vert_dim [view_id [i]], hor_dim [view_id [i]] и quantizer [view_id [i]], и передает управление функциональному блоку 738.
Функциональный блок 738 задает коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 740.
Функциональный блок 740 увеличивает переменную i и возвращает управление блоку 712 определения.
Функциональный блок 724 записывает эти синтаксические элементы, по меньшей мере, либо в набор параметров последовательности (SPS), либо в набор параметров изображения (PPS), либо в сообщение с дополнительной информацией расширения (SEI), либо в заголовок блока уровня сетевой абстракции (NAL), либо в заголовок части, и передает управление функциональному блоку 726. Функциональный блок 726 кодирует каждое изображение с использованием стандарта кодирования AVC MPEG-4 или другого кодека с одним видом и передает управление оконечному блоку 799.
На Фиг.8 иллюстративный способ декодирования изображений с множеством видов и сигналами насыщенности с использованием стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 800.
Способ 800 включает в себя начальный блок 802, который передает управление функциональному блоку 804. Функциональный блок 804 анализирует следующие синтаксические элементы, по меньшей мере, либо из набора параметров последовательности (SPS), либо из набора параметров изображения (PPS), либо из сообщения с дополнительной информацией расширения (SEI), либо из заголовка блока уровня сетевой абстракции (NAL), либо из заголовка части, и передает управление функциональному блоку 806. Функциональный блок 806 анализирует синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 808. Функциональный блок 808 анализирует синтаксические элементы org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1 и передает управление функциональному блоку 810. Функциональный блок 810 задает переменной i нулевое значение и передает управление блоку 812 определения. Блок 812 определения определяет, является ли переменная i меньше количества видов. При положительном результате определения управление передается функциональному блоку 814. При отрицательном результате определения управление передается функциональному блоку 824.
Функциональный блок 814 анализирует синтаксический элемент view_id [i] и передает управление функциональному блоку 816. Функциональный блок 816 анализирует синтаксический элемент num_parts_minus1 [view_id [i]] и передает управление функциональному блоку 818. Функциональный блок 818 задает переменной j нулевое значение и передает управление блоку 820 определения. Блок 820 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [view_id [i]]. При положительном результате определения управление передается функциональному блоку 822. При отрицательном результате определения управление передается функциональному блоку 828.
Функциональный блок 822 анализирует синтаксические элементы depth_flag [view_id [i]] [j], flip_dir [view_id [i]] [j], loc_left_offset [view_id [i]] [j], loc_top_offset [view_id [i]] [j], frame_crop_left_offset [view_id [i]] [j], frame_crop_right_offset [view_id [i]] [j], frame_crop_top_offset [view_id [i]] [j] и frame_crop_bottom_offset [view_id [i]] [j], увеличивает переменную j, а затем возвращает управление блоку 820 определения.
Функциональный блок 828 анализирует синтаксический элемент upsample_view_flag [view_id [i]] и передает управление блоку 830 определения. Блок 830 определения определяет, действительно ли текущее значение синтаксического элемента upsample_view_flag [view_id [i]] равняется единице. При положительном результате определения управление передается функциональному блоку 832. При отрицательном результате определения управление передается блоку 834 определения.
Функциональный блок 832 анализирует синтаксический элемент upsample_filter [view_id [i]] и передает управление блоку 834 определения.
Блок 834 определения определяет, равняется ли текущее значение синтаксического элемента upsample_filter [view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 836. При отрицательном результате определения управление передается функциональному блоку 840.
Функциональный блок 836 анализирует синтаксические элементы vert_dim [view_id [i]], hor_dim [view_id [i]] и quantizer [view_id [i]] и передает управление функциональному блоку 838.
Функциональный блок 838 анализирует коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 840.
Функциональный блок 840 увеличивает переменную i и возвращает управление блоку 812 определения.
Функциональный блок 824 декодирует каждое изображение с использованием стандарта кодирования AVC MPEG-4 или другого кодека с одним видом, и передает управление функциональному блоку 826. Функциональный блок 826 отделяет каждый вид и соответствующий сигнал насыщенности от изображения с использованием синтаксиса высокого уровня и передает управление функциональному блоку 827. Функциональный блок 827 потенциально выполняет синтез (объединение) видов с использованием извлеченного вида и сигналов насыщенности, и передает управление оконечному блоку 899.
Принимая во внимание насыщенность, используемую на Фиг.7 и 8, Фиг.9 изображает пример сигнала 900 насыщенности, где насыщенность обеспечена в качестве значения элемента изображения для каждого соответствующего местоположения изображения (не показано). Кроме того, Фиг.10 изображает пример двух сигналов насыщенности, включенных в мозаику 1000. Верхняя правая часть мозаики 1000 представляет собой сигнал насыщенности, имеющий значения насыщенности, соответствующие изображению, находящемуся в верхней левой части мозаики 1000. Нижняя правая часть мозаики 1000 представляет собой сигнал насыщенности, имеющий значения насыщенности, соответствующие изображению, находящемуся в нижней левой части мозаики 1000.
На Фиг.11 пример пяти видов, расположенных мозаикой в одном кадре, обозначен, в целом, посредством ссылочного номера 1100. Четыре верхних вида находятся в нормальной ориентации. Пятый вид также находится в нормальной ориентации, но разделен на две части вдоль основания мозаики 1100. Левая часть пятого вида изображает «верх» пятого вида, а правая часть пятого вида изображает «низ» пятого вида.
Кодирование/декодирование с использованием стандарта/рекомендации кодирования/декодирования видеосигнала с множеством видов
На Фиг.12 иллюстративный кодер, работающий по принципу кодирования видеосигнала с множеством видов (MVC), обозначен, в целом, посредством ссылочного номера 1200. Кодер 1200 включает в себя модуль 1205 объединения, имеющий выход, соединенный с возможностью передачи сигналов со входом модуля 1210 преобразования. Выход модуля 1210 преобразования соединен с возможностью передачи сигналов со входом модуля 1215 квантования. Выход модуля 1215 квантования соединен с возможностью передачи сигналов со входом модуля 1220 статистического кодирования, а также со входом модуля 1225 обратного квантования. Выход модуля 1225 обратного квантования соединен с возможностью передачи сигналов со входом модуля 1230 обратного преобразования. Выход модуля 1230 обратного преобразования соединен с возможностью передачи сигналов с первым неинвертированным входом модуля 1235 объединения. Выход модуля 1235 объединения соединен с возможностью передачи сигналов со входом модуля 1245 внутреннего предсказателя, а также со входом фильтра 1250 для удаления блочности. Выход фильтра 1250 для удаления блочности соединен с возможностью передачи сигналов со входом модуля 1255 сохранения опорных изображений (для вида i). Выход модуля 1255 сохранения опорных изображений соединен с возможностью передачи сигналов с первым входом модуля 1275 компенсации движения, а также с первым входом модуля 1280 оценки движения. Выход модуля 1280 оценки движения соединен с возможностью передачи сигналов со вторым входом модуля 1275 компенсации движения.
Выход модуля 1260 сохранения опорных изображений (для других видов) соединен с возможностью передачи сигналов с первым входом модуля 1270 оценки несоответствия, а также с первым входом модуля 1265 компенсации несоответствия. Выход модуля 1270 оценки несоответствия соединен с возможностью передачи сигналов со вторым входом модуля 1265 компенсации несоответствия.
Выход модуля 1220 статистического декодирования доступен в качестве выхода кодера 1200. Неинвертированный вход модуля 1205 объединения доступен в качестве входа кодера 1200, а также соединен с возможностью передачи сигналов как со вторым входом модуля 1270 оценки несоответствия, так и со вторым входом модуля 1280 оценки движения. Выход модуля 1285 переключения соединен с возможностью передачи сигналов со вторым неинвертированным входом модуля 1235 объединения, а также с инвертированным входом модуля 1205 объединения. Модуль 1285 переключения включает в себя первый вход, соединенный с возможностью передачи сигналов с выходом модуля 1275 компенсации движения, второй вход, соединенный с возможностью передачи сигналов с выходом модуля 1265 компенсации несоответствия, и третий вход, соединенный с возможностью передачи сигналов с выходом модуля 1245 внутреннего предсказания.
Модуль 1240 определения режима имеет выход, соединенный с модулем 1285 переключения для определения того, какой из входов выбран посредством модуля 1285 переключения.
На Фиг.13 иллюстративный декодер, работающий по принципу кодирования видеосигнала с множеством видов (MVC), обозначен, в целом, посредством ссылочного номера 1300. Декодер 1300 включает в себя модуль 1305 статистического декодирования, имеющий выход, соединенный с возможностью передачи сигналов со входом модуля 1310 обратного квантования. Выход модуля обратного квантования соединен с возможностью передачи сигналов со входом модуля 1315 обратного преобразования. Выход модуля 1315 обратного преобразования соединен с возможностью передачи сигналов с первым неинвертированным входом модуля 1320 объединения. Выход модуля 1320 объединения соединен с возможностью передачи сигналов со входом фильтра 1325 для удаления блочности, а также со входом модуля 1330 внутреннего предсказателя. Выход фильтра 1325 для удаления блочности соединен с возможностью передачи сигналов со входом модуля 1340 сохранения опорных изображений (для вида i). Выход модуля 1340 сохранения опорных изображений соединен с возможностью передачи сигналов с первым входом модуля 1335 компенсации движения.
Выход модуля 1345 сохранения опорных изображений (для других видов) соединен с возможностью передачи сигналов с первым входом модуля 1350 компенсации несоответствия.
Вход модуля 1305 статистического кодирования доступен в качестве входа декодера 1300 для приема остаточного битового потока. Кроме того, вход модуля 1360 определения режима также доступен в качестве входа декодера 1300 для приема управляющего синтаксиса для определения того, какой из входов выбран посредством модуля 1355 переключения. Кроме того, второй вход модуля 1335 компенсации движения доступен в качестве входа декодера 1300 для приема векторов движения. Помимо всего прочего, второй вход модуля 1350 компенсации несоответствия доступен в качестве входа декодера 1300 для приема векторов несоответствия.
Выход модуля 1355 переключения соединен с возможностью передачи сигналов со вторым неинвертированным входом модуля 1320 объединения. Первый вход модуля 1355 переключения соединен с возможностью передачи сигналов с выходом модуля 1350 компенсации несоответствия. Второй вход модуля 1355 переключения соединен с возможностью передачи сигналов с выходом модуля 1335 компенсации движения. Третий вход модуля 1355 переключения соединен с возможностью передачи сигналов с выходом модуля 1330 внутреннего предсказания. Выход модуля 1360 определения режима соединен с возможностью передачи сигналов с модулем 1355 переключения для определения того, какой из входов выбран посредством модуля 1355 переключения. Выход фильтра 1325 для удаления блочности доступен в качестве выхода декодера 1300.
На Фиг.14 иллюстративный способ обработки изображений с множеством видов при подготовке к кодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 1400.
Способ 1400 включает в себя начальный блок 1405, который передает управление функциональному блоку 1410. Функциональный блок 1410 располагает каждые N видов, из общего числа М видов, в конкретном моменте в качестве суперизображения в формате мозаики, и передает управление функциональному блоку 1415. Функциональный блок 1415 задает синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 1420. Функциональный блок 1420 задает синтаксический элемент view_id [i] для всех (num_coded_views_minus1 + 1) видов и передает управление функциональному блоку 1425. Функциональный блок 1425 задает информацию о зависимости опорного внутреннего вида для фиксированных изображений и передает управление функциональному блоку 1430. Функциональный блок 1430 задает информацию о зависимости опорного внутреннего вида для нефиксированных изображений и передает управление функциональному блоку 1435. Функциональный блок 1435 задает синтаксический элемент pseudo_view_present_flag и передает управление блоку 1440 определения. Блок 1440 определения определяет, равняется ли текущее значение синтаксического элемента pseudo_view_present_flag единице. При положительном результате определения управление передается функциональному блоку 1445. При отрицательном результате определения управление передается оконечному блоку 1499.
Функциональный блок 1445 задает синтаксические элементы tiling_mode, org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1, и передает управление функциональному блоку 1450. Функциональный блок 1450 вызывает синтаксический элемент pseudo_view_info (view_id) для каждого кодированного вида и передает управление оконечному блоку 1499.
На Фиг.15 иллюстративный способ кодирования изображений с множеством видов с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 1500.
Способ 1500 включает в себя начальный блок 1502, который имеет входной параметр pseudo_view_id и передает управление функциональному блоку 1504. Функциональный блок 1504 задает синтаксический элемент num_sub_views_minus1 и передает управление функциональному блоку 1506. Функциональный блок 1506 задает переменной i нулевое значение и передает управление блоку 1508 определения. Блок 1508 определения определяет, является ли переменная i меньше количества подвидов. При положительном результате определения управление передается функциональному блоку 1510. При отрицательном результате определения управление передается функциональному блоку 1520.
Функциональный блок 1510 задает синтаксический элемент sub_view_id [i] и передает управление функциональному блоку 1512. Функциональный блок 1512 задает синтаксический элемент num_parts_minus1 [sub_view_id [i]] и передает управление функциональному блоку 1514. Функциональный блок 1514 задает переменной j нулевое значение и передает управление блоку 1516 определения. Блок 1516 определения определяет, является ли переменная j меньше синтаксического элемента num_parts_minus1 [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 1518. При отрицательном результате определения управление передается блоку 1522 определения.
Функциональный блок 1518 задает синтаксические элементы loc_left_offset [sub_view_id [i]] [j], loc_top_offset [sub_view_id [i]] [j], frame_crop_left_offset [sub_view_id [i]] [j], frame_crop_right_offset [sub_view_id [i]] [j], frame_crop_top_offset [sub_view_id [i]] [j] и frame_crop_bottom_offset [sub_view_id [i] [j], увеличивает переменную j, и возвращает управление блоку 1516 определения.
Функциональный блок 1520 кодирует текущее изображение с текущим видом с использованием кодирования видеосигнала с множеством видов (MVC), и передает управление оконечному блоку 1599.
Блок 1522 определения определяет, равняется ли синтаксический элемент tiling_mode нулю. При положительном результате определения управление передается функциональному блоку 1524. При отрицательном результате определения управление передается функциональному блоку 1538.
Функциональный блок 1524 задает синтаксический элемент flip_dir [sub_view_id [i]] и синтаксический элемент upsample_view_flag [sub_view_id [i]], и передает управление блоку 1526 определения. Блок 1526 определения определяет, равняется ли текущее значение синтаксического элемента upsample_view_flag [sub_view_id [i]] единице. При положительном результате определения управление передается функциональному блоку 1528. При отрицательном результате определения управление передается блоку 1530 определения.
Функциональный блок 1528 задает синтаксический элемент upsample_filter [sub_view_id [i]] и передает управление блоку 1530 определения. Блок 1530 определения определяет, равняется ли значение синтаксического элемента upsample_filter [sub_view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 1532. При отрицательном результате определения управление передается функциональному блоку 1536.
Функциональный блок 1532 задает синтаксические элементы vert_dim [sub_view_id [i]], hor_dim [sub_view_id [i]] и quantizer [sub_view_id [i]] и передает управление функциональному блоку 1534. Функциональный блок 1534 задает коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 1536.
Функциональный блок 1536 увеличивает переменную i и возвращает управление блоку 1508 определения.
Функциональный блок 1538 задает синтаксический элемент pixel_dist_x [sub_view_id [i]] и синтаксический элемент flip_dist_y [sub_view_id [i]], и передает управление функциональному блоку 1540. Функциональный блок 1540 задает переменной j нулевое значение и передает управление блоку 1542 определения. Блок 1542 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 1544. При отрицательном результате определения управление передается функциональному блоку 1536.
Функциональный блок 1544 задает синтаксический элемент num_pixel_tiling_filter_coeffs_minus1 [sub_view_id [i]] и передает управление функциональному блоку 1546. Функциональный блок 1546 задает коэффициенты для всех фильтров мозаичного расположения элементов изображения и передает управление функциональному блоку 1536.
На Фиг.16 иллюстративный способ обработки изображений с множеством видов при подготовке к декодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 1600.
Способ 1600 включает в себя начальный блок 1605, который передает управление функциональному блоку 1615. Функциональный блок 1615 анализирует синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 1620. Функциональный блок 1620 анализирует синтаксический элемент view_id [i] для всех видов (num_coded_views_minus1 + 1) и передает управление функциональному блоку 1625. Функциональный блок 1625 анализирует информацию о зависимости опорного внутреннего вида для фиксированных изображений и передает управление функциональному блоку 1630. Функциональный блок 1630 анализирует информацию о зависимости опорного внутреннего вида для нефиксированных изображений и передает управление функциональному блоку 1635. Функциональный блок 1635 анализирует синтаксический элемент pseudo_view_present_flag и передает управление блоку 1640 определения. Блок 1640 определения определяет, равняется ли текущее значение синтаксического элемента pseudo_view_present_flag единице. При положительном результате определения управление передается функциональному блоку 1645. При отрицательном результате определения управление передается оконечному блоку 1699.
Функциональный блок 1645 анализирует синтаксические элементы tiling_mode, org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1 и передает управление функциональному блоку 1650. Функциональный блок 1650 вызывает синтаксический элемент pseudo_view_info (view_id) для каждого кодированного вида и передает управление оконечному блоку 1699.
На Фиг.17 иллюстративный способ декодирования изображений с множеством видов с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 1700.
Способ 1700 включает в себя начальный блок 1702, который инициируется совместно с входным параметром pseudo_view_id и передает управление функциональному блоку 1704. Функциональный блок 1704 анализирует синтаксический элемент num_sub_views_minus1 и передает управление функциональному блоку 1706. Функциональный блок 1706 задает переменной i нулевое значение и передает управление блоку 1708 определения. Блок 1708 определения определяет, является ли переменная i меньше количества подвидов. При положительном результате определения управление передается функциональному блоку 1710. При отрицательном результате определения управление передается функциональному блоку 1720.
Функциональный блок 1710 анализирует синтаксический элемент sub_view_id [i] и передает управление функциональному блоку 1712. Функциональный блок 1712 анализирует синтаксический элемент num_parts_minus1 [sub_view_id [i]] и передает управление функциональному блоку 1714. Функциональный блок 1714 задает переменной j нулевое значение и передает управление блоку 1716 определения. Блок 1716 определения определяет, является ли переменная j меньше синтаксического элемента num_parts_minus1 [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 1718. При отрицательном результате определения управление передается блоку 1722 определения.
Функциональный блок 1718 задает синтаксические элементы loc_left_offset [sub_view_id [i]] [j], loc_top_offset [sub_view_id [i]] [j], frame_crop_left_offset [sub_view_id [i]] [j], frame_crop_right_offset [sub_view_id [i]] [j], frame_crop_top_offset [sub_view_id [i]] [j] и frame_crop_bottom_offset [sub_view_id [i] [j], увеличивает переменную j и возвращает управление блоку 1716 определения.
Функциональный блок 1720 декодирует текущее изображение с текущим видом с использованием кодирования видеосигнала с множеством видов (MVC), и передает управление функциональному блоку 1721. Функциональный блок 1721 отделяет каждый вид от изображения с использованием синтаксиса высокого уровня и передает управление оконечному блоку 1799.
Отделение каждого вида от декодированного изображения выполняется с использованием синтаксиса высокого уровня, указанного в битовом потоке. Этот синтаксис высокого уровня может указывать точное местоположение, а также возможную ориентацию видов (а также возможную соответствующую насыщенность), присутствующих на изображении.
Блок 1722 определения определяет, равняется ли синтаксический элемент tiling_mode нулю. При положительном результате определения управление передается функциональному блоку 1724. При отрицательном результате определения управление передается функциональному блоку 1738.
Функциональный блок 1724 анализирует синтаксический элемент flip_dir [sub_view_id [i]] и синтаксический элемент upsample_view_flag [sub_view_id [i]], и передает управление блоку 1726 определения. Блок 1726 определения определяет, равняется ли текущее значение синтаксического элемента upsample_view_flag [sub_view_id [i]] единице. При положительном результате определения управление передается функциональному блоку 1728. При отрицательном результате определения управление передается блоку 1730 определения.
Функциональный блок 1728 анализирует синтаксический элемент upsample_filter [sub_view_id [i]] и передает управление блоку 1730 определения. Блок 1730 определения определяет, равняется ли значение синтаксического элемента upsample_filter [sub_view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 1732. При отрицательном результате определения управление передается функциональному блоку 1736.
Функциональный блок 1732 анализирует синтаксические элементы vert_dim [sub_view_id [i]], hor_dim [sub_view_id [i]] и quantizer [sub_view_id [i]] и передает управление функциональному блоку 1734. Функциональный блок 1734 анализирует коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 1736.
Функциональный блок 1736 увеличивает переменную i и возвращает управление блоку 1708 определения.
Функциональный блок 1738 анализирует синтаксический элемент pixel_dist_x [sub_view_id [i]] и синтаксический элемент flip_dist_y [sub_view_id [i]] и передает управление функциональному блоку 1740. Функциональный блок 1740 задает переменной j нулевое значение и передает управление блоку 1742 определения. Блок 1742 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 1744. При отрицательном результате определения управление передается функциональному блоку 1736.
Функциональный блок 1744 анализирует синтаксический элемент num_pixel_tiling_filter_coeffs_minus1 [sub_view_id [i]] и передает управление функциональному блоку 1746. Функциональный блок 1746 анализирует коэффициенты для всех фильтров мозаичного расположения элементов изображения и передает управление функциональному блоку 1736.
На Фиг.18 иллюстративный способ обработки изображений с множеством видов и сигналами насыщенности при подготовке к кодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 1800.
Способ 1800 включает в себя начальный блок 1805, который передает управление функциональному блоку 1810. Функциональный блок 1810 располагает каждые N видов и карт насыщенности, из общего числа М видов и карт насыщенности, в конкретном моменте в качестве суперизображения в формате мозаики, и передает управление функциональному блоку 1815. Функциональный блок 1815 задает синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 1820. Функциональный блок 1820 задает синтаксический элемент view_id [i] для всех (num_coded_views_minus1 + 1) сигналов насыщенности, соответствующих синтаксическому элементу view_id[i], и передает управление функциональному блоку 1825. Функциональный блок 1825 задает информацию о зависимости опорного внутреннего вида для изображений с фиксированной насыщенностью и передает управление функциональному блоку 1830. Функциональный блок 1830 задает информацию о зависимости опорного внутреннего вида для изображений с нефиксированной насыщенностью и передает управление функциональному блоку 1835. Функциональный блок 1835 задает синтаксический элемент pseudo_view_present_flag и передает управление блоку 1840 определения. Блок 1840 определения определяет, равняется ли текущее значение синтаксического элемента pseudo_view_present_flag единице. При положительном результате определения управление передается функциональному блоку 1845. При отрицательном результате определения управление передается оконечному блоку 1899.
Функциональный блок 1845 задает синтаксические элементы tiling_mode, org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1 и передает управление функциональному блоку 1850. Функциональный блок 1850 вызывает синтаксический элемент pseudo_view_info (view_id) для каждого кодированного вида и передает управление оконечному блоку 1899.
На Фиг.19 иллюстративный способ кодирования изображений с множеством видов и сигналами насыщенности с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 1900.
Способ 1900 включает в себя начальный блок 1902, который передает управление функциональному блоку 1904. Функциональный блок 1904 задает синтаксический элемент num_sub_views_minus1 и передает управление функциональному блоку 1906. Функциональный блок 1906 задает переменной i нулевое значение и передает управление блоку 1908 определения. Блок 1908 определения определяет, является ли переменная i меньше количества подвидов. При положительном результате определения управление передается функциональному блоку 1910. При отрицательном результате определения управление передается функциональному блоку 1920.
Функциональный блок 1910 задает синтаксический элемент sub_view_id [i] и передает управление функциональному блоку 1912. Функциональный блок 1912 задает синтаксический элемент num_parts_minus1 [sub_view_id [i]] и передает управление функциональному блоку 1914. Функциональный блок 1914 задает переменной j нулевое значение и передает управление блоку 1916 определения. Блок 1916 определения определяет, является ли переменная j меньше синтаксического элемента num_parts_minus1 [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 1918. При отрицательном результате определения управление передается блоку 1922 определения.
Функциональный блок 1918 задает синтаксические элементы loc_left_offset [sub_view_id [i]] [j], loc_top_offset [sub_view_id [i]] [j], frame_crop_left_offset [sub_view_id [i]] [j], frame_crop_right_offset [sub_view_id [i]] [j], frame_crop_top_offset [sub_view_id [i]] [j] и frame_crop_bottom_offset [sub_view_id [i] [j], увеличивает переменную j и возвращает управление блоку 1916 определения.
Функциональный блок 1920 кодирует текущую насыщенность для текущего вида с использованием кодирования видеосигнала с множеством видов (MVC) и передает управление оконечному блоку 1999. Сигнал насыщенности может быть закодирован подобно способу, которым закодирован его соответствующий видеосигнал. Например, сигнал насыщенности для вида может быть включен в мозаику, которая включает в себя либо исключительно другие сигналы насыщенности, либо исключительно видеосигналы, либо как сигналы насыщенности, так и видеосигналы. В таком случае мозаика (псевдовид) рассматривается в качестве одного вида для кодирования MVC, кроме того существуют и другие виды мозаики, которые рассматриваются в качестве других видов для кодирования MVC.
Блок 1922 определения определяет, равняется ли синтаксический элемент tiling_mode нулю. При положительном результате определения управление передается функциональному блоку 1924. При отрицательном результате определения управление передается функциональному блоку 1938.
Функциональный блок 1924 задает синтаксический элемент flip_dir [sub_view_id [i]] и синтаксический элемент upsample_view_flag [sub_view_id [i]] и передает управление блоку 1926 определения. Блок 1926 определения определяет, равняется ли текущее значение синтаксического элемента upsample_view_flag [sub_view_id [i]] единице. При положительном результате определения управление передается функциональному блоку 1928. При отрицательном результате определения управление передается блоку 1930 определения.
Функциональный блок 1928 задает синтаксический элемент upsample_filter [sub_view_id [i]] и передает управление блоку 1930 определения.
Блок 1930 определения определяет, равняется ли значение синтаксического элемента upsample_filter [sub_view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 1932. При отрицательном результате определения управление передается функциональному блоку 1936.
Функциональный блок 1932 задает синтаксические элементы vert_dim [sub_view_id [i]], hor_dim [sub_view_id [i]] и quantizer [sub_view_id [i]] и передает управление функциональному блоку 1934. Функциональный блок 1934 задает коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 1936.
Функциональный блок 1936 увеличивает переменную i и возвращает управление блоку 1908 определения.
Функциональный блок 1938 задает синтаксический элемент pixel_dist_x [sub_view_id [i]] и синтаксический элемент flip_dist_y [sub_view_id [i]] и передает управление функциональному блоку 1940. Функциональный блок 1940 задает переменной j нулевое значение и передает управление блоку 1942 определения. Блок 1942 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 1944. При отрицательном результате определения управление передается функциональному блоку 1936.
Функциональный блок 1944 задает синтаксический элемент num_pixel_tiling_filter_coeffs_minus1 [sub_view_id [i]] и передает управление функциональному блоку 1946. Функциональный блок 1946 задает коэффициенты для всех фильтров мозаичного расположения элементов изображения и передает управление функциональному блоку 1936.
На Фиг.20 иллюстративный способ обработки изображений с множеством видов и сигналами насыщенности при подготовке к декодированию изображений с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 2000.
Способ 2000 включает в себя начальный блок 2005, который передает управление функциональному блоку 2015. Функциональный блок 2015 анализирует синтаксический элемент num_coded_views_minus1 и передает управление функциональному блоку 2020. Функциональный блок 2020 анализирует синтаксический элемент view_id [i] для всех сигналов насыщенности (num_coded_views_minus1 + 1), соответствующих синтаксическому элементу view_id [i], и передает управление функциональному блоку 2025. Функциональный блок 2025 анализирует информацию о зависимости опорного внутреннего вида для изображений с фиксированной насыщенностью и передает управление функциональному блоку 2030. Функциональный блок 2030 анализирует информацию о зависимости опорного внутреннего вида для изображений с нефиксированной насыщенностью и передает управление функциональному блоку 2035. Функциональный блок 2035 анализирует синтаксический элемент pseudo_view_present_flag и передает управление блоку 2420 определения. Блок 2040 определения определяет, равняется ли текущее значение синтаксического элемента pseudo_view_present_flag единице. При положительном результате определения управление передается функциональному блоку 2045. При отрицательном результате определения управление передается оконечному блоку 2099.
Функциональный блок 2045 анализирует синтаксические элементы tiling_mode, org_pic_width_in_mbs_minus1 и org_pic_height_in_mbs_minus1 и передает управление функциональному блоку 2050. Функциональный блок 2050 вызывает синтаксический элемент pseudo_view_info (view_id) для каждого кодированного вида и передает управление оконечному блоку 2099.
На Фиг.21 иллюстративный способ декодирования изображений с множеством видов и сигналами насыщенности с использованием расширения кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 обозначен, в целом, посредством ссылочного номера 2100.
Способ 2100 включает в себя начальный блок 2102, который инициируется совместно с входным параметром pseudo_view_id, и передает управление функциональному блоку 2104. Функциональный блок 2104 анализирует синтаксический элемент num_sub_views_minus1 и передает управление функциональному блоку 2106. Функциональный блок 2106 задает переменной i нулевое значение и передает управление блоку 2108 определения. Блок 2108 определения определяет, является ли переменная i меньше количества подвидов. При положительном результате определения управление передается функциональному блоку 2110. При отрицательном результате определения управление передается функциональному блоку 2120.
Функциональный блок 2110 анализирует синтаксический элемент sub_view_id [i] и передает управление функциональному блоку 2112. Функциональный блок 2112 анализирует синтаксический элемент num_parts_minus1 [sub_view_id [i]] и передает управление функциональному блоку 2114. Функциональный блок 2114 задает переменной j нулевое значение и передает управление блоку 2116 определения. Блок 2116 определения определяет, является ли переменная j меньше синтаксического элемента num_parts_minus1 [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 2118. При отрицательном результате определения управление передается блоку 2122 определения.
Функциональный блок 2118 задает синтаксические элементы loc_left_offset [sub_view_id [i]] [j], loc_top_offset [sub_view_id [i]] [j], frame_crop_left_offset [sub_view_id [i]] [j], frame_crop_right_offset [sub_view_id [i]] [j], frame_crop_top_offset [sub_view_id [i]] [j] и frame_crop_bottom_offset [sub_view_id [i] [j], увеличивает переменную j и возвращает управление блоку 2116 определения.
Функциональный блок 2120 декодирует текущее изображение с использованием кодирования видеосигнала с множеством видов (MVC) и передает управление функциональному блоку 2121. Функциональный блок 2121 отделяет каждый вид от изображения с использованием синтаксиса высокого уровня и передает управление оконечному блоку 2199. Отделение каждого вида с использованием синтаксиса высокого уровня было описано ранее.
Блок 2122 определения определяет, равняется ли синтаксический элемент tiling_mode нулю. При положительном результате определения управление передается функциональному блоку 2124. При отрицательном результате определения управление передается функциональному блоку 2138.
Функциональный блок 2124 анализирует синтаксический элемент flip_dir [sub_view_id [i]] и синтаксический элемент upsample_view_flag [sub_view_id [i]] и передает управление блоку 2126 определения. Блок 2126 определения определяет, равняется ли текущее значение синтаксического элемента upsample_view_flag [sub_view_id [i]] единице. При положительном результате определения управление передается функциональному блоку 2128. При отрицательном результате определения управление передается блоку 2130 определения.
Функциональный блок 2128 анализирует синтаксический элемент upsample_filter [sub_view_id [i]] и передает управление блоку 2130 определения. Блок 2130 определения определяет, равняется ли значение синтаксического элемента upsample_filter [sub_view_id [i]] трем. При положительном результате определения управление передается функциональному блоку 2132. При отрицательном результате определения управление передается функциональному блоку 2136.
Функциональный блок 2132 анализирует синтаксические элементы vert_dim [sub_view_id [i]], hor_dim [sub_view_id [i]] и quantizer [sub_view_id [i]] и передает управление функциональному блоку 2134. Функциональный блок 2134 анализирует коэффициенты фильтрации для каждого компонента YUV и передает управление функциональному блоку 2136.
Функциональный блок 2136 увеличивает переменную i и возвращает управление блоку 2108 определения.
Функциональный блок 2138 анализирует синтаксический элемент pixel_dist_x [sub_view_id [i]] и синтаксический элемент flip_dist_y [sub_view_id [i]], и передает управление функциональному блоку 2140. Функциональный блок 2140 задает переменной j нулевое значение и передает управление блоку 2142 определения. Блок 2142 определения определяет, является ли текущее значение переменной j меньше текущего значения синтаксического элемента num_parts [sub_view_id [i]]. При положительном результате определения управление передается функциональному блоку 2144. При отрицательном результате определения управление передается функциональному блоку 2136.
Функциональный блок 2144 анализирует синтаксический элемент num_pixel_tiling_filter_coeffs_minus1 [sub_view_id [i]] и передает управление функциональному блоку 2146. Функциональный блок 2146 анализирует коэффициенты для всех фильтров мозаичного расположения элементов изображения и передает управление функциональному блоку 2136.
На Фиг.22 примеры мозаичного расположения на уровне элементов изображения обозначены, в целом, посредством ссылочного номера 2200. Фиг.22 дополнительно описана ниже.
Мозаичное расположение видов с использованием стандарта кодирования AVC или MVC MPEG4
Область применения кодирования видеосигнала с множеством видов является телевидением со свободным выбором точки наблюдения (или FTV). Эта область применения требует, чтобы пользователь мог свободно перемещаться между двумя или более видами. Для достижения этого «виртуальные» виды между двумя видами должны быть интерполированы или синтезированы. Существует несколько способов выполнения интерполяции видов. Один из способов для интерполяции/синтеза вида использует насыщенность.
Каждый вид может иметь соответствующий сигнал насыщенности. Следовательно, насыщенность, как может предполагаться, является другой формой видеосигнала. Фиг.9 изображает пример сигнала 900 насыщенности. Для реализации областей применения, таких как FTV, сигнал насыщенности передается наряду с видеосигналом. В предложенной структуре мозаичного расположения сигнал насыщенности также может быть добавлен в качестве одной из мозаик. Фиг.10 изображает пример сигналов насыщенности, добавленных в качестве мозаик. Сигналы/мозаики насыщенности изображены на Фиг.10 справа.
После кодирования насыщенности в качестве мозаики всего кадра, синтаксис высокого уровня должен указать, какая мозаика является сигналом насыщенности для того, чтобы модуль визуального воспроизведения мог соответственно использовать сигнал насыщенности.
В случае, когда входная последовательность (такая, как изображенная на Фиг.1) закодирована с использованием кодера, работающего в соответствии со стандартом кодирования AVC MPEG-4 (или кодера, работающего в соответствии с другим стандартом и/или рекомендацией кодирования видеосигнала), предложенный синтаксис высокого уровня может присутствовать, например, в наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке части и/или в сообщении с дополнительной информацией расширения (SEI). Вариант осуществления предложенного способа изображен в таблице 1, где в сообщении с дополнительной информацией расширения (SEI) присутствует синтаксис.
В случае, когда входные последовательности псевдовидов (таких, как изображенная на Фиг.1) закодированы с использованием кодера, работающего в соответствии с расширением кодирования видеосигнала с множеством видов (MVC) стандарта кодирования AVC MPEG-4 (или кодера, работающего в соответствии со стандартом кодирования видеосигнала с множеством видов с учетом другого стандарта и/или рекомендации кодирования видеосигнала), предложенный синтаксис высокого уровня может присутствовать в наборе SPS, наборе PPS, заголовке части, сообщении SEI или в заданном профиле. Вариант осуществления предложенного способа изображен в таблице. Таблица изображает синтаксические элементы, присутствующие в структуре набора параметров последовательности (SPS), включая синтаксические элементы, предложенные в соответствии с вариантом осуществления настоящих принципов.
Таблица 1
seq_parameter_set_mvc_extension() {
С
Дескриптор
num_views_minus_1
ue(v)
for(i=0, i<= num_views_minus_1; i++)
view_id[i]
ue(v)
for(i=0, i<= num_views_minus_1; i++){
num_anchor_refs_IO[i]
ue(v)
for(j=0; j < num_anchor_refs_IO[i]; j++)
anchor_ref_IO[i][|]
ue(v)
num_anchor_refs_H [i]
ue(v)
for(j=0; j < num_anchor_refs_H[i]; |++)
anchor_ref_M[i][j]
ue(v)
}
for(i=0, i <= num_views_minus_1; i++) {
num_non_anchor_refs_IO[i]
ue(v)
for(j=0; j < num_non_anchor_refs_IO[i], j++)
non_anchor_ref_IO[i]Q]
ue(v)
num_non_anchor_refs_H [i]
ue(v)
for(j=0; ] < num_non_anchor_refs_l1 [i], j++)
non_anchor_ref_H [i][j]
ue(v)
}
pseudo_view_present_flag
u(1)
if (pseudo_view_present_flag) {
tiling_mode
org_pic_width_in_mbs_minus1
org_pic_height_in_mbs_minus1
for(i=0, к num_views_mmus_1; i++)
pseudo_view_info(i),
}
}
Таблица 2 изображает синтаксические элементы для синтаксического элемента pseudo_view_info из таблицы 1, в соответствии с вариантом осуществления настоящих принципов.
Таблица 2
pseudo_view_info (pseudo_view_id) {
С
Дескриптор
num_sub_views_minus_1[pseudo_view_id]
5
ue(v)
if (num_sub_views_minus_1 != 0) {
for (i=0, к num_sub_views_minus_1[pseudo_view_id]; i++) {
sub_view_id[i]
5
ue(v)
num_parts_minus1 [sub_view_id[ i ]]
5
ue(v)
for(j= ; j <= num_parts_minus1[sub_view_id[ i ]]; j++) {
loc_left_offset[sub_view_id[ i ]] [ j ]
5
ue(v)
loc_top_offset[sub_view_id[ i ]] [ j ]
5
ue(v)
frame_crop_left_offset[sub_view_id[ i ]] [ j ]
5
ue(v)
frame_crop_right_offset[sub_view_id[ i ]] [ j ]
5
ue(v)
frame_crop_top_offset[sub_view_id[ i ]] [ j ]
5
ue(v)
frame_crop_bottom_offset[sub_view_id[ i ]] [ j ]
5
ue(v)
}
if (tiling_mode == 0) {
flip_dir[sub_view_id[ i ][ j ]
5
u(2)
upsample_view_flag[sub_view_id[ i ]]
5
u(l)
if(upsample_view_flag[sub_view_id[ i ]])
upsample_filter[sub_view_id[ i ]]
5
u(2)
if(upsample_fiter[sub_view_id[i]] == 3) {
vert_dim[sub_view_id[i]]
5
ue(v)
hor_dim[sub_view_id[i]]
5
ue(v)
quantizer[sub_view_id[i]]
5
ue(v)
for (yuv= 0, yuv< 3, yuv++) {
for (у=0, у < vert_dim[sub_view_id[i]] -1; у ++) {
for (x=; x < hor_dim[sub_view_id[i]] -1; x ++)
filter_coeffs[sub_view_id[i]] [yuv][y][x]
5
se(v)
}
}
}
} // if(tihng_mode == 0)
else if (tiling_mode == 1) {
pixel_dist_x[sub_view_id[ i ] ]
pixel_dist_y[sub_view_id[ i ] ]
for( j=0, j <= num_parts[sub_view_id[ i ]]; j++) {
num_pixel_tiling_filter_coeffs_minus1[sub_view_id[ i ] ][)]
for (coeffjdx = 0, coeffjdx <= num_pixel_tiling_filter_coeffs_minus1[sub_view_id[ i ] ][|]; j++)
pixel_tihng_filter_coeffs[sub_view_id[i]][)]
} // for (j=0, j <= num_parts[sub_view_id[ i ]]; j++)
} // else if (tihng_mode == 1)
} // for (i=0, к num_sub_views_minus_1;
} // if (num_sub_views_minus_1 '= 0)
}
Семантика синтаксических элементов, представленных в таблицах 1 и 2
Синтаксический элемент pseudo_view_present_flag, значение которого равно единице, указывает на то, что некоторый вид является супервидом из множества подвидов.
Синтаксический элемент tiling_mode, значение которого равно нулю, указывает на то, что подвиды расположены мозаикой на уровне изображения. Значение, равное единице указывает на то, что мозаичное расположение выполнено на уровне элементов изображения.
Новое сообщение SEI может использовать значение для типа полезной нагрузки SEI, который не используется в стандарте кодирования AVC MPEG-4 или расширении стандарта кодирования AVC MPEG-4. Новое сообщение SEI включает в себя множество синтаксических элементов со следующей семантикой.
Синтаксический элемент num_coded_views_minus1+1 указывает на то, что количество кодированных видов поддерживается битовым потоком. Значение синтаксического элемента num_coded_views_minus1 находится в пределах диапазона 0-1023, включительно.
Синтаксический элемент org_pic_width_in_mbs_minus1+1 определяет ширину изображения в каждом виде в единицах макроблоков.
Переменная для ширины изображения в единицах макроблоков получается следующим способом:
PicWidthInMbs = org_pic_width_in_mbs_minus1+1
Переменная для ширины изображения для компонента яркости получается следующим способом:
PicWidthInSamplesL = PicWidthInMbs * 16
Переменная для ширины изображения для компонентов цветности получается следующим способом:
PicWidthInSamplesC = PicWidthInMbs * MbWidthC
Синтаксический элемент org_pic_height_in_mbs_minus1+1 определяет высоту изображения в каждом виде в единицах макроблоков.
Переменная для высоты изображения в единицах макроблоков получается следующим способом:
PicHeightInMbs = org_pic_height_in_mbs_minus1+1
Переменная для высоты изображения для компонента яркости получается следующим способом:
PicHeightInSamplesL = PicHeightInMbs * 16
Переменная для высоты изображения для компонентов цветности получается следующим способом:
PicHeightInSamplesC = PicHeightInMbs * MbHeightC
Синтаксический элемент num_sub_views_minus1+1 указывает количество кодированных подвидов, включенных в текущий вид. Значение синтаксического элемента num_coded_views_minus1 находится в пределах диапазона 0-1023, включительно.
Синтаксический элемент sub_view_id [i] определяет синтаксический элемент sub_view_id подвида с порядком декодирования, указанным посредством переменной i.
Синтаксический элемент num_parts [sub_view_id [i]] определяет количество частей, на которые разделено изображение синтаксического элемента sub_view_id [i].
Синтаксические элементы loc_left_offset [sub_view_id [i]] [j] и loc_top_offset [sub_view_id [i]] [j] определяют местоположения в левом и верхнем смещениях элементов изображения, соответственно, где текущая часть j расположена на финальном восстановленном изображении вида с синтаксическим элементом sub_view_id, равным синтаксическому элементу sub_view_id [i].
Синтаксический элемент view_id [i] определяет синтаксический элемент view_id вида с порядком кодирования, указанным посредством переменной i.
Синтаксические элементы frame_crop_left_offset [view_id [i]] [j], frame_crop_right_offset [view_id [i]] [j], frame_crop_top_offset [view_id [i]] [j] и frame_crop_bottom_offset [view_id [i]] [j] определяют образцы изображений в кодированной видеопоследовательности, которые являются частью num_part j и view_id i в виде прямоугольной области, определенной в координатах кадра для вывода.
Переменные CropUnitX и CropUnitY получаются следующим способом:
- если значение синтаксического элемента chroma_format_idc равно нулю, то переменные CropUnitX и CropUnitY получаются следующим способом:
CropUnitX = 1
CropUnitY = 2 - frame_mbs_only_flag
- в противном случае (значение синтаксического элемента chroma_format_idc равно 1, 2 или 3) переменные CropUnitX и CropUnitY получаются следующим способом:
CropUnitX = SubWidthC
CropUnitY = SubHeightC * (2 - frame_mbs_only_flag)
Прямоугольник обрезанного кадра включает в себя образцы яркости с горизонтальными координатами кадра:
CropUnitX * frame_crop_left_offset до PicWidthInSamplesL - (CropUnitX * frame_crop_right_offset + 1) и вертикальными координатами кадра из CropUnitY * frame_crop_top_offset до (16 * FrameHeightInMbs) - (CropUnitY * frame_crop_bottom_offset + 1), включительно. Значение синтаксического элемента frame_crop_left_offset должно находиться в диапазоне 0 - (PicWidthInSamplesL / CropUnitX) - (frame_crop_right_offset + 1), включительно, а значение синтаксического элемента frame_crop_top_offset должно находиться в диапазоне 0 - (16 * FrameHeightInMbs / CropUnitY) - (frame_crop_bottom_offset + 1), включительно.
Когда значение синтаксического элемента chroma_format_idc не равно нулю, соответствующие определенные образцы двух наборов цветности являются образцами, имеющими координаты кадра (x / SubWidthC, у / SubHeightC), где (x, y) являются координатами кадра определенных образцов яркости.
При декодированных областях определенные образцы декодированной области являются образцами, которые находятся в пределах прямоугольника, определенного в координатах кадра.
Синтаксический элемент num_parts [view_id [i]] определяет количество частей, на которые разделено изображение синтаксического элемента view_id [i].
Синтаксический элемент depth_flag [view_id [i]] определяет, является ли текущая часть сигналом насыщенности. Если значение синтаксического элемента depth_flag равно нулю, то текущая часть не является сигналом насыщенности. Если значение синтаксического элемента depth_flag равно единице, то текущая часть является сигналом насыщенности, связанным с видом, идентифицированным посредством синтаксического элемента view_id [i].
Синтаксический элемент flip_dir [sub_view_id [i]] [j] определяет направление отражения для текущей части. Нулевое значение синтаксического элемента flip_dir указывает на отсутствие отражения, значение синтаксического элемента flip_dir, равное единице, указывает на отражение в горизонтальном направлении, значение синтаксического элемента flip_dir, равное двум, указывает на отражение в вертикальном направлении, а значение синтаксического элемента flip_dir, равное трем, указывает на отражение как в горизонтальном, так и в вертикальном направлениях.
Синтаксический элемент flip_dir [view_id [i]] [j] определяет направление отражения для текущей части. Нулевое значение синтаксического элемента flip_dir указывает на отсутствие отражения, значение синтаксического элемента flip_dir, равное единице, указывает на отражение в горизонтальном направлении, значение синтаксического элемента flip_dir, равное двум, указывает на отражение в вертикальном направлении, а значение синтаксического элемента flip_dir, равное трем, указывает на отражение как в горизонтальном, так и в вертикальном направлениях.
Синтаксические элементы loc_left_offset [view_id [i]] [j] и loc_top_offset [view_id [i]] [j] определяют местоположение в смещениях элементов изображения, где текущая часть j расположена на финальном восстановленном изображении вида с синтаксическим элементом view_id, равным синтаксическому элементу view_id [i]
Синтаксический элемент upsample_view_flag [view_id [i]] указывает, должно ли изображение, принадлежащее виду, определенному посредством синтаксического элемента view_id [i], быть передискретизировано. Нулевое значение синтаксического элемента upsample_view_flag [view_id [i]] определяет, что изображение с синтаксическим элементом view_id, равным синтаксическому элементу view_id [i], не будет передискретизировано. Значение синтаксического элемента upsample_view_flag [view_id [i]], равное единице, определяет, что изображение с синтаксическим элементом view_id, равным синтаксическому элементу view_id [i], будет передискретизировано.
Синтаксический элемент upsample_filter [view_id [i]] указывает тип фильтра, который будет использоваться для передискретизации. Нулевое значение синтаксического элемента upsample_filter [view_id [i]] указывает на то, что должен быть использован фильтр AVC с шестью сигналами, значение синтаксического элемента upsample_filter [view_id [i]], равное единице, указывает на то, что должен быть использован фильтр SVC с 4 сигналами, значение синтаксического элемента upsample_filter [view_id [i]], равное двум, указывает на то, что должен быть использован билинейный фильтр, значение синтаксического элемента upsample_filter [view_id [i]], равное трем, указывает на то, что были переданы специальные коэффициенты фильтрации. Если синтаксический элемент upsample_fiter [view_id [i]] отсутствует, то ему задается нулевое значение. В этом варианте осуществления мы используем специальный фильтр 2D. Он может быть легко расширен до фильтра 1D, а также до некоторого другого нелинейного фильтра.
Синтаксический элемент vert_dim [view_id [i]] определяет вертикальное измерение специального фильтра 2D.
Синтаксический элемент hor_dim [view_id [i]] определяет горизонтальное измерение специального фильтра 2D.
Синтаксический элемент quantizer [view_id [i]] определяет коэффициент квантования для каждого коэффициента фильтрации.
Синтаксический элемент filter_coeffs [view_id [i]] [yuv] [y] [x] определяет квантованные коэффициенты фильтрации. Сигналы yuv являются компонентом, к которому применяют коэффициенты фильтрации. Нулевое значение yuv определяет компонент Y, значение yuv, равное единице, определяет компонент U, а значение yuv, равное двум, определяет компонент V.
Синтаксические элементы pixel_dist_x [sub_view_id [i]] и pixel_dist_y [sub_view_id [i]] соответственно определяют расстояние в горизонтальном и вертикальном направлениях в финальном восстановленном псевдовиде между соседними элементами изображения в виде с синтаксическим элементом sub_view_id, равным синтаксическому элементу sub_view_id [i].
Синтаксический элемент num_pixel_tiling_filter_coeffs_minus1 [sub_view_id [i] [j] + 1 указывает количество коэффициентов фильтрации, когда значение синтаксического элемента tiling_mode задано равным единице.
Синтаксический элемент pixel_tiling_filter_coeffs [sub_view_id [i] [j] передает коэффициенты фильтрации, которые требуются для отображения фильтра, который может быть использован для фильтрации мозаичного изображения.
Примеры мозаичного расположения на уровне элементов изображения
На Фиг.22 два примера, изображающие формирование псевдовида посредством мозаичного расположения элементов изображения из четырех видов, соответственно обозначены посредством ссылочных номеров 2210 и 2220. Четыре вида совместно обозначены посредством ссылочного номера 2250. Синтаксические значения для первого примера, изображенного на Фиг.22, представлены ниже, в таблице 3.
Таблица 3
pseudo_view_mfo (pseudo_view_id) {
Значение
num_sub_views_minus_1[pseudo_view_id]
3
sub_view_id[0]
0
num_parts_minus1 [0]
0
loc_left_offset[0][0]
0
loc_top_offset[0][0]
0
pixel_dist_x[0][0]
0
pixel_dist_y[O][0]
0
sub_view_id[1]
0
num_parts_minus1 [1 ]
0
loc_left_offset[1][0]
1
loc_top_offset[1][0]
0
pixel_dist_x[1][0]
0
pixel_dist_y[1][0]
0
sub_view_id[2]
0
num_parts_mmus1 [2]
0
loc_left_offset[2][0]
0
loc_top_offset[2][0]
1
pixel_dist_x[2][0]
0
pixel_dist_y[2][0]
0
sub_view_id[3]
0
num_parts_mmus1 [3]
0
loc_left_offset[3][0]
1
loc_top_offset[3][0]
1
pixel_dist_x[3][0]
0
pixel_dist_y[3][0]
0
Синтаксические значения для второго примера, изображенного на Фиг.22, являются аналогичными за исключением двух нижеперечисленных синтаксических элементов: значение синтаксического элемента loc_left_offset [3] [0] равно пяти, а значение синтаксического элемента loc_top_offset [3] [0] равно трем.
Смещение указывает, что элементы изображения, соответствующие виду, должны начаться с определенного местоположения смещения. Это изображено на Фиг.22 (2220). Это может быть выполнено, например, когда два вида создают изображения, в которых общие объекты кажутся смещенными с одного вида на другой. Например, если первая и вторая камеры (представляющие первый и второй виды) снимают объект, то объект может казаться смещенным на пять элементов изображения вправо во втором виде, по сравнению с первым видом. Это означает, что элемент (i-5, j) изображения в первом виде соответствует элементу (i, j) изображения во втором виде. Если элементы изображения двух видов попросту расположены мозаикой «элемент за элементом», то может и не быть большой корреляции между соседними элементами изображения в мозаике, а также эффективность пространственного кодирования может быть низкой. С другой стороны, посредством смещения мозаичного расположения так, чтобы элемент (i-5, j) изображения из первого вида был размещен рядом с элементом (i, j) изображения из второго вида, пространственная корреляция может быть улучшена, и эффективность пространственного кодирования также может быть повышена. Это следует из того, что, например, соответствующие элементы изображения для объекта в первом и втором видах размещаются мозаикой рядом друг с другом.
Следовательно, присутствие синтаксических элементов loc_left_offset и loc_top_offset может повысить эффективность кодирования. Информация о смещении может быть получена с помощью внешнего средства. Например, информация о местоположении камер или глобальных векторов несоответствия между видами может быть использована для определения такой информации о смещении.
В результате смещения некоторые элементы изображения в псевдовиде не имеют назначенных значений элементов изображения из любого вида. В продолжении вышеупомянутого примера, элемент (i-5, j) изображения из первого вида, располагаемый мозаикой около элемента (i, j) изображения из второго вида со значениями i=0... 4, не является элементом (i-5, j) изображения из первого вида для мозаики, поэтому эти элементы изображения являются пустыми в мозаике. Для тех элементов изображения в псевдовиде (мозаике), которые не имеют назначенных значений элементов изображения из любого вида, по меньшей мере, один вариант осуществления использует процедуру интерполяции, подобную процедуре интерполяции фрагментов элементов изображения при компенсации движения в кодировании AVC. Таким образом, пустые элементы изображения мозаики могут быть интерполированы из соседних элементов изображения. Такая интерполяция может привести к большей пространственной корреляции в мозаике, а также к большей эффективности кодирования для мозаики.
При кодировании видеосигнала мы можем выбрать различный тип кодирования для каждого изображения, такого как изображение I, P или В. Кроме того, при кодировании видеосигнала с множеством видов мы определяем фиксированные и нефиксированные изображения. В варианте осуществления мы предлагаем, что решение о группировании может быть принято на основе типа изображения. Эта информация о группировании сообщается в синтаксисе высокого уровня.
На Фиг.11 пример пяти видов, расположенных мозаикой в одном кадре, обозначен, в целом, посредством ссылочного номера 1100. В частности, последовательность изображена с пятью видами, расположенными мозаикой в одном кадре. Кроме того, можно заметить, что пятый вид разделен на две части для того, чтобы он мог быть расположен в прямоугольном кадре. В данном случае каждый вид имеет размер QVGA, следовательно размер полного кадра является равным 640×600. Поскольку число 600 не является кратным числу 16, оно должно быть увеличено до 608.
Для этого примера, как показано в таблице 4, возможно сообщение SEI.
Таблица 4
multiview_display_info( payloadSize) {
Значение
num_coded_views_minus1
5
org_pic_width_in_mbs_minus1
40
org_pic_height_in_mbs_minus1
30
view_id[ 0 ]
0
num_parts[view_id[ 0 ]]
1
depth_flag[view_id[ 0 ]][ 0 ]
0
flip_dir[view_id[ 0 ]][ 0 ]
0
loc_left_offset[view_id[ 0 ]] [ 0 ]
0
loc_top_offset[view_id[ 0 ]] [ 0 ]
0
frame_crop_left_offset[view_id[ 0 ]] [ 0 ]
0
frame_crop_right_offset[view_id[ 0 ]] [ 0 ]
320
frame_crop_top_offset[view_id[ 0 ]] [ 0 ]
0
frame_crop_bottom_offset[view_id[ 0 ]] [ 0 ]
240
upsample_view_flag[view_id[ 0 ]]
1
if(upsample_view_flag[view_id[ 0 ]]) {
vert_dim[view_id[0]]
6
hor_dim[view_id[0]]
6
quantizer[view_id[0]]
32
for (yuv= 0; yuv< 3; yuv++) {
for (у = 0; у < vert_dim[view_id[i]] -1; у ++) {
for (x = 0, x < hor_dim[view_id[i]] -1; x ++)
filter_coeffs[view_id[i]] [yuv][y][x]
XX
view_id[ 1 ]
1
num_parts[view_id[ 1 ]]
1
depth_flag[view_id[ 0 ]][ 0 ]
0
fhp_dir[view_id[ 1 ]][ 0 ]
0
loc_left_offset[view_id[ 1 ]] [ 0 ]
0
loc_top_offset[view_id[ 1 ]] [ 0 ]
0
frame_crop_left_offset[view_id[ 1 ]] [ 0 ]
320
frame_crop_nght_offset[view_id[ 1 ]] [ 0 ]
640
frame_crop_top_offset[view_id[ 1 ]] [ 0 ]
0
frame_crop_bottom_offset[view_id[ 1 ]] [ 0 ]
320
upsample_view_flag[view_id[ 1 ]]
1
if(upsample_view_flag[view_id[ 1 ]]) {
vert_dim[view_id[1 ]]
6
hor_dim[view_id[1 ]]
6
quantizer[view_id[1 ]]
32
for (yuv= 0, yuv< 3; yuv++) {
for (у = 0, у < vert_dim[view_id[i]] -1; у ++) {
for (x = 0, x < hor_dim[view_id[i]] -1; x ++)
filter_coeffs[view_id[i]] [yuv][y][x]
XX
(подобно для видов 2 и 3)
view_id[ 4 ]
4
num_parts[view_id[ 4 ]]
2
depth_flag[view_id[ 0 ]][ 0 ]
0
flip_dir[view_id[ 4 ]][ 0 ]
0
loc_left_offset[view_id[ 4 ]] [ 0 ]
0
loc_top_offset[view_id[ 4 ]] [ 0 ]
0
frame_crop_left_offset[view_id[ 4 ]] [ 0 ]
0
frame_crop_nght_offset[view_id[ 4 ]] [ 0 ]
320
frame_crop_top_offset[view_id[ 4 ]] [ 0 ]
480
frame_crop_bottom_offset[view_id[ 4 ]] [ 0 ]
600
fhp_dir[view_id[ 4 ]][ 1 ]
0
loc_left_offset[view_id[ 4 ]] [ 1 ]
0
loc_top_offset[view_id[ 4 ]] [ 1 ]
120
frame_crop_left_offset[view_id[ 4 ]] [ 1 ]
320
frame_crop_right_offset[view_id[ 4 ]] [ 1 ]
640
frame_crop_top_offset[view_id[ 4 ]] [ 1 ]
480
frame_crop_bottom_offset[view_id[ 4 ]] [ 1 ]
600
upsample_view_flag[view_id[ 4 ]]
1
if(upsample_view_flag[view_id[ 4 ]]) {
vert_dim[view_id[4]]
6
hor_dim[view_id[4]]
6
quantizer! view_id[4]]
32
for (yuv= 0, yuv< 3, yuv++) {
for (у = 0, у < vert_dim[view_id[i]] -1; у ++) {
for (x = 0, x < hor_dim[view_id[i]] -1; x ++)
filter_coeffs[view_id[i]] [yuv][y][x]
XX
Таблица 5 изображает общую структуру синтаксиса для передачи информации о множестве видов, например, изображенной в таблице 4.
Таблица 5
multiview_display_mfo( payloadSize) {
С
Дескриптор
num_coded_views_minus1
5
ue(v)
org_pic_width_in_mbs_minus1
5
ue(v)
org_pic_height_in_mbs_minus1
5
ue(v)
for(i = 0, i<= num_coded_views_minus1; i++){
view_id[ i ]
5
ue(v)
num_parts[view_id[ i ]]
5
ue(v)
for( j = 0; j <= num_parts[i], j++) {
depthj lag[view_id[ i ]][ j ]
flip_dir[view_id[ i ]][j ]
5
u(2)
loc_left_offset[view_id[ i ]] [ j ]
5
ue(v)
loc_top_offset[view_id[ i ]] [ j ]
5
ue(v)
frame_crop_left_offset[view_id[ i ]] [ j ]
5
ue(v)
frame_crop_nght_offset[view_id[ i ]] [ j ]
5
ue(v)
frame_crop_top_offset[view_id[ i ]] [ j ]
5
ue(v)
frame_crop_bottom_offset[view_id[ i ]] [ j ]
5
ue(v)
}
upsample_yiew_flag[view_id[ i ]]
5
u(1)
if(upsample_view_flag[view_id[ i ]])
upsample_filter[view_id[ i ]]
5
u(2)
if(upsample_fiter[view_id[i]] == 3) {
vert_dim[view_id[i]]
5
ue(v)
hor_dim[view_id[i]]
5
ue(v)
quantizer[view_id[i]]
5
ue(v)
for (yuv= 0, yuv< 3; yuv++) {
for (у = 0; у < vert_dim[view_id[i]] -1; у ++) {
for (x = 0; x < hor_dim[view_id[i]] -1; x ++)
filter_coeffs[view_id[i]] [yuv][y][x]
5
se(v)
}
}
}
}
}
На Фиг.23 изображено устройство 2300 обработки видеосигнала. Устройство 2300 обработки видеосигнала может являться, например, телевизионной абонентской приставкой или другим устройством, которое принимает кодированный видеосигнал, а также обеспечивает, например, декодированный видеосигнал для отображения пользователю, или же для сохранения. Следовательно, устройство 2300 может выдать свой выходной сигнал на телевизор, на компьютерный монитор, на компьютер или на другое устройство обработки.
Устройство 2300 включает в себя декодер 2310, который принимает информационный сигнал 2320. Информационный сигнал 2320 может включать в себя, например, поток, совместимый с кодированием AVC или MVC. Декодер 2310 декодирует весь или часть принятого сигнала 2320, а также выдает в качестве выхода декодированный видеосигнал 2330 и информацию 2340 о мозаичном расположении. Декодированный видеосигнал 2330 и информация 2340 о мозаичном расположении предоставляются селектору 2350. Устройство 2300 также включает в себя пользовательский интерфейс 2360, который принимает пользовательский ввод 2370. Пользовательский интерфейс 2360 предоставляет селектору 2350 сигнал 2380 выбора изображения на основе пользовательского ввода 2370. Сигнал 2380 выбора изображения и пользовательский ввод 2370 указывают, какое из множества изображений пользователь желает отобразить. Селектор 2350 предоставляет выбранное изображение(я) в качестве выхода 2390. Селектор 2350 использует информацию 2380 о выборе изображения для выбора изображения из изображений в декодированном видеосигнале 2330 для предоставления в качестве выхода 2390. Селектор 2350 использует информацию 2340 о мозаичном расположении для определения местоположения выбранного изображения(й) в декодированном видеосигнале 2330.
В различных вариантах осуществления селектор 2350 включает в себя пользовательский интерфейс 2360, а в других вариантах осуществления пользовательский интерфейс 2360 не требуется, в связи с тем, что селектор 2350 непосредственно принимает пользовательский ввод 2370, без выполнения отдельной функции интерфейса. Например, селектор 2350 может быть реализован в программном обеспечении или в качестве интегральной схемы. Селектор 2350 также может включать в себя декодер 2310.
В общем, декодеры различных вариантов осуществления, описанных в настоящей заявке, могут предоставлять декодированный выходной сигнал, который включает в себя всю мозаику. Дополнительно или альтернативно, декодеры могут предоставлять декодированный выходной сигнал, который включает в себя исключительно одно или множество выбранных изображений (например, отображенные сигналы или сигналы насыщенности) из мозаики.
Как было отмечено выше, синтаксис высокого уровня может быть использован для выполнения передачи сигналов, в соответствии с одним или несколькими вариантами осуществления настоящих принципов. Синтаксис высокого уровня может быть использован, например, в числе прочего, для сообщения о количестве кодированных видов, присутствующих в большем кадре, об оригинальной ширине и высоте всех видов, об идентификаторе вида, соответствующего виду, для каждого кодированного вида, о количестве частей кадра вида, на которые он разделен, для каждого кодированного вида, о направлении отражения (которое может быть, например, отсутствием отражения, исключительно горизонтальным отражением, исключительно вертикальным отражением или и горизонтальным, и вертикальным отражением) для каждой части вида, о левой позиции в элементах изображения или количестве макроблоков, где текущая часть принадлежит в финальном кадре виду, для каждой части вида, о верхней позиции части в элементах изображения или количестве макроблоков, где текущая часть принадлежит в финальном кадре виду, для каждой части вида, о левой позиции, в текущем большом декодированном/кодированном кадре, обрезанного окна в элементах изображения или количестве макроблоков, для каждой части вида, о правой позиции, в текущем большом декодированном/кодированном кадре, обрезанного окна в элементах изображения или количестве макроблоков, для каждой части вида, о верхней позиции, в текущем большом декодированном/кодированном кадре, обрезанного окна в элементах изображения или количестве макроблоков, для каждой части вида, и о нижней позиции, в текущем большом декодированном/кодированном кадре, обрезанного окна в элементах изображения или количестве макроблоков, для каждой части вида, о том, должен ли вид быть передискретизирован перед выводом (где в случае, когда должна быть выполнена передискретизация, синтаксис высокого уровня может быть использован для указания способа передискретизации (включая в себя, в числе прочего, фильтр AVC с 6 сигналами, фильтр SVC с 4 сигналами, билинейный фильтр или специальный 1D, 2D линейный или нелинейный фильтр) для каждого кодированного вида.
Следует отметить, что термины «кодер» и «декодер» коннотируют общие структуры, а также не ограничены никакими конкретными функциями или отличительными признаками. Например, декодер может принять модулированную несущую, которая транспортирует кодированный битовый поток, демодулировать кодированный битовый поток, а также декодировать битовый поток.
Были описаны различные способы. Многие из этих способов были подробно описаны для обеспечения достаточного раскрытия. Однако следует отметить, что вариации являются предполагаемыми, которые могут изменить один или несколько определенных отличительных признаков, описанных для этих способов. Кроме того, многие из перечисленных отличительных признаков известны специалистам в данной области техники и, соответственно, подробно не описаны.
Кроме того, была сделана ссылка на использование синтаксиса высокого уровня для посылки определенной информации в нескольких вариантах осуществления. Однако, должно быть понятно, что другие варианты осуществления используют синтаксис низкого уровня, нежели совершенно другие механизмы (такие как, например, посылка информации в качестве части кодированных данных) для предоставления такой информации (или вариации этой информации).
Различные варианты осуществления обеспечивают мозаичное расположение, а также соответствующую передачу сигналов для предоставления множеству видов (в общем, изображений) возможности мозаичного расположения в одном изображении, кодированном в качестве одного изображения, а также посылки в качестве одного изображения. Сигнальная информация (служебное сообщение) может предоставить постпроцессору возможность разделения видов/изображений. Кроме того, множество изображений, которые расположены мозаикой, могут являться видами, а также, по меньшей мере, одно из изображений может являться информацией о насыщенности. Эти варианты осуществления могут предоставить одно или несколько преимуществ. Например, пользователи могут желать отобразить в виде мозаики множество видов, и эти различные варианты осуществления обеспечивают эффективный способ кодирования и передачи или сохранения таких видов посредством их мозаичного расположения до кодирования и передачи/сохранения их в виде мозаики.
Варианты осуществления мозаики из множества видов, применительно к кодированию AVC и/или MVC, обеспечивают дополнительные преимущества. Кодирование AVC является фиктивным и исключительно используется для одного вида, следовательно никакой дополнительный вид не ожидается. Однако, такие варианты осуществления, основанные на кодировании AVC, могут обеспечить множество видов в среде AVC в связи с тем, что, расположенные мозаикой виды могут быть расположены так, чтобы, например, декодер знал, что расположенные мозаикой изображения принадлежат различным видам (например, верхнее левое изображение в псевдовиде является первым видом, верхнее правое изображение является вторым видом и т.д.).
Кроме того, кодирование MVC уже включает в себя множество видов, следовательно не ожидается включение в один псевдовид множества видов. Кроме того, кодирование MVC имеет предел по количеству видов, которые могут быть поддержаны, и такие варианты осуществления, основанные на кодировании MVC, эффективно увеличивают количество видов, которые могут быть поддержаны, посредством предоставления (как в вариантах осуществления, основанных на кодировании AVC) дополнительным видам возможности мозаичного расположения. Например, каждый псевдовид может соответствовать одному из поддерживаемых видов кодирования MVC, и декодер может быть проинформирован о том, что каждый «поддерживаемый вид» фактически включает в себя четыре вида в заранее установленном мозаичном порядке. Следовательно, в таком варианте осуществления количество возможных видов в четыре раза больше количества «поддерживаемых видов».
Например, описанные в настоящем документе варианты осуществления могут быть реализованы в способе или процессе, устройстве или системной программе. Даже при обсуждении применительно исключительно к одной форме варианта осуществления (например, обсуждение исключительно в качестве способа), обсужденный вариант осуществления отличительных признаков также может быть реализован в других формах (например, в форме устройства или программы). Например, устройство может быть реализовано в соответствующих аппаратных средствах, программных средствах и микропрограммных средствах. Например способы могут быть реализованы в устройстве, таком как, например, процессор, которое, в целом, относится к устройству обработки, включающему в себя, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Устройства обработки также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/личные цифровые устройства («PDA») и другие устройства, которые содействуют связи между оконечными пользователями.
Варианты осуществления различных описанных в настоящем документе процессов и отличительных признаков могут быть реализованы во множестве различного оборудования или приложений, в частности, например, в оборудовании или приложении, связанном с кодированием и декодированием данных. Примеры оборудования включают в себя видеокодеры, видеодекодеры, видеокодеки, веб-серверы, телевизионные абонентские приставки, ноутбуки, персональные компьютеры, сотовые телефоны, устройства PDA и другие устройства связи. Как должно быть понятно, оборудование может являться мобильным, а также может быть установлено на подвижном транспортном средстве.
Кроме того, способы могут быть реализованы посредством команд, выполняемых посредством процессора, а также такие команды могут быть сохранены на носителе, считываемом посредством процессора, таком как, например, интегральная схема, программная несущая или другое запоминающее устройство, такое как, например, жесткий диск, компактная дискета, оперативное запоминающее устройство («RAM») или постоянное запоминающее устройство («ROM»). Команды могут сформировать прикладную программу, реально реализованную на носителе, считываемом посредством процессора. Как должно быть понятно, процессор может включать в себя носитель, считываемый посредством процессора, содержащий, например, команды для выполнения процесса. Такие прикладные программы могут быть загружены и выполнены посредством машины, включающей в себя любую подходящую архитектуру. Предпочтительно, машина реализуется на компьютерной платформе, содержащей аппаратные средства, такие как один или множество центральных процессоров («CPU»), оперативное запоминающее устройство («RAM») и интерфейсы ввода/вывода («I/O»). Компьютерная платформа также может включать в себя операционную систему и код микрокоманды. Различные описанные в настоящем документе процессы и функции могут являться либо частью кода микрокоманды, либо частью прикладной программы, либо любой комбинацией вышеперечисленного, которая может быть выполнена посредством центрального процессора (CPU). Кроме того, с компьютерной платформой могут быть соединены различные другие периферийные устройства такие, как дополнительное устройство хранения данных и печатающее устройство.
Как должно быть понятно специалистам в данной области техники, варианты осуществления также могут создать сигнал, отформатированный для транспортировки информации, которая может быть, например, сохранена или передана. Информация может включать в себя, например, команды для выполнения способа, или данные, сформированные посредством одного из описанных вариантов осуществления. Такой сигнал может быть отформатирован, например, в качестве электромагнитной волны (например, с использованием части радиочастотного спектра) или в качестве видеосигнала. Форматирование может включать в себя, например, кодирование потока данных, создание синтаксиса и модуляцию несущей с кодированным потоком данных и синтаксисом. Информация, которую транспортирует сигнал, может являться, например, аналоговой или цифровой информацией. Как известно, сигнал может быть передан по нескольким различным проводным или беспроводным линиям связи.
Кроме того, дополнительно следует понимать, что, в связи с тем, что некоторые из составляющих системных компонентов и способов, изображенных на сопроводительных чертежах, предпочтительно реализованы в программном обеспечении, и фактические соединения между системными компонентами или функциональными блоками процесса могут отличаться, в зависимости от способа, которым запрограммированы настоящие принципы. Благодаря обучающему материалу настоящего документа, специалисты в данной области техники смогут рассмотреть эти и подобные варианты осуществления или конфигурации настоящих принципов.
Было описано несколько вариантов осуществления. Тем не менее, подразумевается, что могут быть сделаны различные модификации. Например, элементы различных вариантов осуществления могут быть объединены, добавлены, изменены или удалены для создания других вариантов осуществления. Кроме того, специалистам в данной области техники будет понятно, что другими структурами и процессами можно заменить раскрытые и получаемые варианты осуществления, выполняющие, по меньшей мере, по существу, аналогичную функцию(и), по меньшей мере, по существу, аналогичный способ (ы), для достижения, по меньшей мере, по существу, аналогичного результата(ов) по сравнению с раскрытыми вариантами осуществления. В частности, несмотря на то, что иллюстративные варианты осуществления были описаны в настоящем документе со ссылкой на сопроводительные чертежи, следует подразумевать, что настоящие принципы не ограничиваются этими определенными вариантами осуществления, а также что специалистами в данной области техники могут быть сделаны изменения и модификации, не отступая от объема или сущности настоящих принципов. Соответственно, эти и другие варианты осуществления рассматриваются посредством настоящей заявки, а также в пределах объема следующей формулы изобретения.