Адаптация отбрасываемого низкого уровня при масштабируемом кодировании видеосигнала
Иллюстрации
Показать всеИзобретение относится к области масштабируемого кодирования видеосигнала. Техническим результатом является улучшение эффективности кодирования и точности декодирования при масштабируемом кодировании видеосигнала. Указанный технический результат достигается тем, что осуществляют адаптацию отбрасываемого более низкого уровня видеосигнала, где приложения могут не выполнять передачу неиспользуемых данных межуровневого предсказания для всех уровней ниже рабочей точки приемников. Используются индикаторные флаги, чтобы избежать передачи элементов синтаксиса, которые должны быть установлены в фиксированные значения. Кроме того, в процессе кодирования используются алгоритмы заполнения или ограничения дополнительного кодирования. 6 н. и 6 з.п. ф-лы, 3 ил., 11 табл.
Реферат
Область техники
[0001] Настоящее изобретение в целом относится к области масштабируемого кодирования видеосигнала. Более конкретно, настоящее изобретение относится к адаптации отбрасываемого более низкого уровня при масштабируемом кодировании видеосигнала.
Уровень техники
[0002] Назначение этого раздела состоит в том, чтобы изложить предпосылки или контекст изобретения, которое раскрыто в пунктах формулы изобретения. Здесь описание может включать концепции, которые могли предлагаться, но не обязательно уже рассматривались и планировались. Поэтому, если не сказано иначе, то содержание этого раздела не является описанием известного уровня техники для данного изобретения и его формулы, и упоминание в настоящем разделе не предполагает, что это содержание есть описание известного уровня техники.
[0003] Существует множество стандартов кодирования видеосигнала, включая ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T Н.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 или ISO/IEC MPEG-4 AVC. Имеются также частные решения для кодирования видеосигнала (например, VC-1, известное также как стандарт SMPTE 421 М на основе Microsoft Windows Media Video, версия 9) и национальные стандарты, например кодек AVS, разработанный китайской рабочей группой Audio and Video Coding Standard Workgroup. Некоторые из этих стандартов уже определяют масштабируемое расширение, например MPEG-2 для видео и MPEG-4 для видео. Для стандарта H.264/AVC в настоящее время разрабатывается расширение по масштабируемому видеокодированию SVC, иногда также называемое стандартом SVC.
[0004] Самая последняя версия SVC описана в документе JVT-T201, "Joint Draft 7 of SVC Amendment," 20th JVT Meeting, Klagenfurt, Austria, July 2006, доступном по адресу http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T201.zip.
[0005] Стандарт SVC может обеспечить масштабируемые битовые видеопотоки. Часть масштабируемого битового видеопотока может быть извлечена и декодирована с ухудшением качества визуального воспроизведения. Масштабируемый битовый видеопоток содержит немасштабируемый базовый уровень и один или более уровней расширения. Уровень расширения может повышать временное разрешение (то есть частоту кадров), пространственное разрешение или просто качество видеоконтента, представленного более низким уровнем или его частью. В некоторых случаях данные уровня расширения могут быть усечены после некоторой позиции и даже в произвольных позициях, и каждая позиция усечения может включать некоторые дополнительные данные, соответствующие все более и более хорошему качеству изображения. Такая масштабируемость называется мелкозернистой масштабируемостью (FGS, fine-grained scalability). В отличие от FGS, масштабируемость, осуществляемая уровнем повышения качества, который не обеспечивает мелкозернистой масштабируемости, называется крупнозернистой масштабируемостью (CGS, coarse-grained scalability). Базовые уровни могут быть разработаны также с возможностью масштабирования FGS.
[0006] Механизм, обеспечивающий временную масштабируемость в самых последних версиях стандарта SVC, называется кодовой структурой "иерархические В-изображения" (hierarchical В pictures). Эта функция полностью поддерживается стандартом AVC (Advanced Video Coding), и часть сигнализации может быть выполнена с использованием сообщений с информацией о дополнительном расширении (SEI, supplemental enchancement information), относящейся к субпоследовательности.
[0007] Механизм, обеспечивающий временную масштабируемость в самых последних версиях стандарта SVC, называется кодовой структурой "иерархические В-изображения". Эта функция полностью поддерживается стандартом AVC, и часть сигнализации может быть выполнена с использованием сообщений с информацией о дополнительном расширении (SEI, supplemental enchancement information), относящейся к субпоследовательности.
[0008] Для механизмов, обеспечивающих пространственную масштабируемость и масштабируемость CGS, обычные многоуровневые технические решения по кодированию, аналогичные используемым в более ранних стандартах, используется с некоторыми новыми способами межуровневого предсказания. Данные, которые могут быть предсказаны межуровневым предсказанием, включают данные интратекстуры, данные движения и остаточные данные. Одноконтурное декодирование осуществляется в режиме усеченного предсказания интратекстуры, в то время как межуровневое предсказание интратекстуры может быть применено к макроблокам (MB), для которых соответствующий блок базового уровня расположен внутри интрамакроблока. В то же самое время, в этих интрамакроблоках в базовом уровне используется усеченное интрапредсказание. При одноконтурном декодировании декодер должен выполнять компенсацию движения и полное восстановление изображения только для масштабируемого уровня, который требуется воспроизвести (называемого желаемым уровнем). Поэтому сложность декодирования значительно снижается. Нет необходимости декодировать все уровни, кроме желаемого, поскольку все данные макроблоков или их часть, не используемые для предсказания промежуточного уровня (в этом межуровневом предсказании интратекстуры, межуровневом предсказании движения или межуровневом предсказании остаточных данных), не являются необходимыми для восстановления желаемого уровня.
[0009] Было произведено обобщение пространственной масштабируемости, чтобы базовый уровень представлял собой усеченную или масштабированную версию уровня расширения. Кодирующие модули квантования и энтропии были приспособлены для обеспечения возможностей FGS. Режим кодирования называют прогрессивным построчным уточнением, при этом последовательное уточнение коэффициентов преобразования кодируют путем периодического уменьшения размера шага квантования и применения кодирования "циклической" энтропии, близкого к кодированию в битовой плоскости
[0010] Структура масштабируемого уровня в текущем проекте стандарта SVC характеризуется тремя переменными, называемыми temporal_level, dependency_id и quality-level, которые сигнализируются в потоке двоичных сигналов или могут быть определены согласно техническим требованиям. Переменная temporal_level используется для идентификации временной иерархии уровня или скорости кадров. Уровень, включающий изображения с меньшими значениями temporal_level, имеет меньшую скорость кадров, чем уровень, включающий изображения с большим значением temporal_level. Переменная dependency_id используется для идентификации иерархии зависимости межуровневого кодирования. В любой момент времени изображение с меньшим значением dependency_id может использоваться в межуровневом предсказании для кодирования изображения с большим значением dependency_id. Переменная quality_level используется для идентификации иерархии уровня FGS. В любой момент времени при одинаковых значениях dependency_id изображение FGS со значением quality_level, равным QL, использует изображение FGS или изображение с базовым качеством (то есть изображение не-FGS, когда QL-1=0) при quality_level равном QL-1 для межуровневого предсказания.
[0011] При одноконтурном декодировании масштабируемого видеосигнала, включающего по меньшей мере два CGS- или пространственно масштабируемых уровня, только часть кодированного изображения на более низком уровне используется для предсказания соответствующего кодированного изображения на более высоком уровне (то есть для межуровневого предсказания). Поэтому, если отправитель знает, какой масштабируемый уровень требуется для воспроизведения в приемниках, скорость передачи данных, используемую для передачи, можно было бы снизить, опуская те части, которые не используются для межуровневого предсказания и не присутствуют ни в одном из масштабируемых уровней, желаемых для воспроизведения. Следует отметить, что в случае группового вещания или трансляции, когда различные клиенты могут требовать разных уровней воспроизведения, эти уровни будем называть желаемыми уровнями.
[0012] В настоящее время над развитием стандарта SVC работает объединенная группа по кодированию видеоизображений (JVT, Joint Video Team). Ранее в разработках JVT-R050rl ("Отбрасываемые биты и многоуровневая оценка RD для контурного декодировании," 18th Meeting: Bangkok, Thailand, 14-20 January, 2006, имеется по адресу http //ftp3.itu.ch/av-arch/jvt-site/2006_01_Bangkok/JVT-R050.zip) и JVT-R064 ("Избирательное межуровневое предсказание," 18th Meeting: Bangkok, Thailand, 14-20 January, 2006, имеется по адресу http://ftp3.itu.ch/av-arch/jvt-site/2006_01_Bangkok/JVT-R064.zip) была сделана попытка использовать "ненужные данные" для улучшения рабочих характеристик SVC в сценариях некоторых приложений. Если кратко, то в JVT-R050rl предложено, чтобы отбрасываемые остатки кодировались в отдельном блоке уровня сетевой абстракции (NAL, Network Abstraction Layer) или слайсе с установленным флагом NAL discardable_flag, где discardable_flag указывает, что для декодирования верхних уровней блок NAL не требуется. Однако были упомянуты только остаточные данные, и не определено, как кодировать эти "отбрасываемые" остатки для отдельного блока или слайса NAL. Согласно текущему проекту SVC, это невозможно, если только макроблоки, имеющие остаточные данные, которые не требуются для межуровневого предсказания, не являются последовательными в порядке сканирования растра, что маловероятно. В JVT-R064 предложено принудительно не использовать все макроблоки для межуровневого предсказания для набора изображений (то есть каждое кодируется как один слайс) в некоторых уровнях среди высоких временных уровней. В JVT-S051 ("Избирательное межуровневое предсказание на основе кадров," 19th Meeting: Geneva, CH, 31 March-7 April, 2006, имеется по адресу http://ftp3.itu.ch/av-arch/jvt-site/2006_04_Geneva/JVT-S051.zip), был предложен способ избирательного межуровневого предсказания на основе кадров, в котором для определенных изображений (каждое кодируется как один слайс) все макроблоки в изображении принудительно не используются для межуровневого предсказания. Выбор определенных изображений моделируется как "задача о ранце" (knapsack problem) и решается с использованием динамического программирования. В заявке на патент США №60/786496 и документе JVT-S039 ("Об адаптации отбрасываемого более низкого уровня," 19th Meeting: Geneva, CH5 31 March-7 April, 2006, имеется по адресу http://ftp3.itu.ch/av-arch//jvt-site/2006_04_Geneva//JVT-S039.zip), полностью включенных в настоящее описание путем ссылки, предложено использовать группы слайсов и/или секционирование данных для такого отделения данных, необходимых для межуровневого предсказания (неотбрасываемых данных) и данных, не необходимых для межуровневого предсказания (отбрасываемых данных), чтобы отбрасываемые данные можно было отбраковать и избежать их ненужной передачи и/или декодирования.
[0013] В стандарте SVC, если обеспечивается пространственная масштабируемость, макроблок высокого уровня может применять межуровневое предсказание с использованием масштабируемых данных движения базового уровня, когда флаг base_mode_flag или флаг base_mode_refinement_flag равен 1. В этом сценарии макроблок высокого уровня восстанавливается с использованием данных движения по умолчанию, полученных из базового уровня. Например, если базовый уровень имеет размер формата QCIF, а уровень расширения имеет размер формата CIF, то вектор движения одного блока в базовом уровне будет масштабирован с коэффициентом 2 с повышением частоты дискретизации до векторов движения 2×2 для четырех совмещенных блоков на уровне расширения.
[0014] Если пространственное разрешение изображений в уровне расширения и базовом уровне различается, то при предсказании текстуры структуры промежуточного уровня необходим интерполяционный фильтр для повышения частоты дискретизации базового уровня. Перед применением интерполяционного фильтра интрамакроблоки базового уровня расширяют границей с 4 выборками в каждом направлении с использованием процесса расширения границы. Перед выполнением расширения границы ко всем границам внутри интрамакроблока или между интрамакроблоками применяют деблокирующий фильтр.
[0015] При межуровневом разностном предсказании SVC, если предыдущий уровень представляет уровень с половинным пространственным разрешением относительно текущего уровня, частоту дискретизации остаточного сигнала повышают с использованием отдельного билинейного фильтра до того, как этот сигнал будет использоваться в качестве сигнала предсказания. Для коэффициентов пространственного разрешения промежуточного уровня, отличающихся от 1 и 2, процесс интерполяции основан на процессе четвертьпиксельной (quarter-pel) интерполяции, как определено в стандарте AVC.
[0016] Предположим, что в текущем SVC имеется два уровня, то есть более низкий уровень и более высокий уровень; кодированный блок слайса NAL в низком уровне можно маркировать как отбрасываемый, и этот отбрасываемый слайс не должен присутствовать при декодировании более высокого уровня. Поэтому декодирование более высокого уровня не должно зависеть ни от каких-либо данных, передаваемых в отбрасываемом слайсе, даже если отбрасываемый слайс присутствует. Это требование может быть выполнено, когда каждое изображение кодировано как один слайс, при этом base_id_plus1 для слайса/изображения более высокого уровня, чем слайс/изображение отбрасываемого более низкого уровня, устанавливают в 0. Однако, когда изображение более низкого уровня закодировано в более чем одном слайсе, и некоторые из слайсов являются отбрасываемыми, в то время как другие - неотбрасываемыми, возникают проблемы в выполнении вышеуказанного требования.
[0017] Первая проблема возникает, когда слайс в изображении высокого уровня охватывает области, охваченные как отбрасываемыми, так и неотбрасываемыми слайсами низкого уровня. Для каждой из охватываемых областей макроблоков, охватываемых отбрасываемыми слайсами низкого уровня, все экземпляры элементов синтаксиса base_mode_flag, base_mode_refinement_flag, intra_base_flag, motion_prediction_fiag_10 [], motion_prediction_flag_11[], и residual_prediction_fiag должны быть установлены в 0. Однако эти элементы синтаксиса все еще передаются в битовом потоке, что приводит к уменьшению эффективности кодирования по сравнению с случаем, когда эти элементы синтаксиса для макроблока не передаются.
[0018] Вторая проблема возникает, когда высокий уровень представляет собой пространственно масштабируемый уровень. Процесс декодирования включает процессы повышения частоты дискретизации для выборок или остаточных значений для изображений низкого уровня прежде, чем эти значения используются для межуровневого предсказания. Однако результат повышения частоты дискретизации может оказаться непредсказуемым для тех макроблоков, которые граничат с отбрасываемыми макроблоками, из-за неинициализированных значений отбрасываемых макроблоков. Следовательно, трудно обеспечить правильность результата декодирования.
Сущность изобретения
[0019] Настоящее изобретение обеспечивает создание системы и способа для эффективного кодирования слайса в кодированном изображении, состоящем из более чем одного слайса, кодируемого как отбрасываемый для более высоких уровней (то есть такой, который не требуется для декодирования на более высоких уровнях). Во-первых, предотвращается передача элементов синтаксиса, которые должны быть установлены в фиксированные значения, что улучшает эффективность кодирования. В частности, к заголовку слайса в масштабируемом расширении и/или к различным таблицам синтаксиса макроблоков могут быть добавлены различные флаги, чтобы можно было избежать передачи определенных элементов синтаксиса в переменных таблицах синтаксиса макроблоков. Во-вторых, предотвращаются также помехи от возможно отбрасываемых данных в процессе повышения частоты дискретизации в выборках или остаточных данных, используемых для межуровневого предсказания, и таким образом обеспечивается правильное декодирование более высоких уровней. В частности, значения выборок или остаточные значения отбрасываемых слайсов в течение процессов как кодирования, так и декодирования заполняют незначащей информацией независимо от того, имеются ли отбрасываемые слайсы. Альтернативно, можно наложить ограничения на процесс кодирования, чтобы значения выборок или остаточные значения отбрасываемых слайсов в изображениях низкого уровня не использовались в процессах повышения частоты дискретизации.
[0020] Эти и другие преимущества и признаки изобретения, а также устройство и способ его работы станут очевидными из последующего подробного описания совместно с сопровождающими чертежами, где одинаковые элементы обозначены одинаковыми позициями.
Краткое описание чертежей
[0021] На фиг.1 показана обобщенная система мультимедиасвязи для использования с настоящим изобретением,
[0022] на фиг.2 показан вид в перспективе мобильного телефона, который может использоваться в рамках настоящего изобретения; и
[0023] на фиг.3 показана схема мобильного телефона, изображенного на фиг.2.
Подробное описание предпочтительных вариантов выполнения настоящего изобретения
[0024] Настоящее изобретение обеспечивает создание системы и способа для эффективного кодирования слайса в кодированном изображении, состоящем из более чем одного слайса, кодируемого как отбрасываемый для более высоких уровней (то есть такой, который не требуется для декодирования на высоких уровнях). Во-первых, предотвращается передача элементов синтаксиса, которые должны быть установлены в фиксированные значения, что улучшает эффективность кодирования. Во-вторых, предотвращаются также помехи от возможно отбрасываемых данных в процессе повышения частоты дискретизации в выборках или остаточных данных, используемых для межуровневого предсказания, и таким образом обеспечивается правильное декодирование более высоких уровней.
[0025] Настоящее изобретение включает видеокодер (и способ кодирования), предназначенный для разделения данных, необходимых для межуровневого предсказания и не необходимых для межуровневого предсказания. Кроме того, настоящее изобретение включает видеодекодер (и способ декодирования), позволяющий идентифицировать данные, не необходимые для межуровневого предсказания и не находящиеся в желаемом для воспроизведения уровне, а также исключить декодирование таких идентифицированных данных, и декодирование желаемого для воспроизведения уровня без отбрасываемых данных.
[0026] На фиг.1 показана типичная система мультимедиасвязи для использования с настоящим изобретением. Как показано на фиг.1, источник 100 данных выдает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате или в любой комбинации этих форматов. Кодер 110 кодирует исходный сигнал в кодированный двоичный поток медиаданных. Кодер 110 может быть способен кодировать более одного типа медиаданных, например аудио и видео, или же для кодирования различных видов медиаданных исходного сигнала может понадобиться более одного кодера 110. Кроме того, кодер 110 может получать искусственно созданные входные сигналы, например графические данные и текст, или он может быть способен генерировать кодированные двоичные потоки медиаданных. Ниже для упрощения описания рассматривается обработка только одного кодированного двоичного потока одного типа медиаданных. Однако следует отметить, что типичные службы трансляции в реальном времени включают несколько потоков (обычно, по меньшей мере, потоки с аудиоданными, видеоданными и текстом для субтитров). Кроме того, следует отметить, что система может включать много кодеров, но в последующем описании для упрощения, не нарушающего общность, рассмотрен только один кодер 110.
[0027] Кодированный двоичный поток медиаданных попадает в память 120. Память 120 может включать любой тип памяти большой емкости, предназначенный для хранения кодированного двоичного потока медиаданных. Формат кодированного двоичного потока медиаданных в памяти 120 может быть элементарным автономным форматом двоичного потока или одним или несколькими кодированными битовыми потоками медиаданных, встроенными в контейнерный файл. Некоторые системы работают «на лету», то есть не используют память и передают кодированный двоичный поток медиаданных из кодера 110 непосредственно отправителю 130. Затем кодированный двоичный поток медиаданных передается отправителю 130, также называемому сервером, на основе потребности. Формат, используемый при передаче, может быть элементарным автономным форматом двоичного потока, форматом пакетного потока или одним или несколькими кодированными битовыми потоками медиаданных, включенными в контейнерный файл. Кодер 110, память 120 и отправитель 130 могут располагаться в одном и том же физическом устройстве или же они могут входить в отдельные устройства. Кодер 110 и отправитель 130 могут работать с контентом в реальном времени в прямом эфире, когда кодированный двоичный поток медиаданных, как правило, не хранится постоянно, а буферируется в течение небольших промежутков времени в кодере 110 контента и/или в отправителе 130 для сглаживания вариаций из-за задержек обработки, задержек передачи и скорости передачи кодированных медиаданных.
[0028] Отправитель 130 посылает кодированный двоичный поток медиаданных с использованием стека протоколов связи. Стек может включать протокол передачи в реальном времени (RTP, Real-Time Transport Protocol), протокол пользовательских дейтаграмм (UDP, User Datagramm Protocol) и протокол маршрутизации в среде Интернет (IP, Internet Protocol), но не обязательно только их. Когда стек протокола связи является пакетно-ориентированным, отправитель 130 инкапсулирует кодированный двоичный поток медиаданных в пакеты. Например, когда используется протокол RTP, отправитель 130 инкапсулирует кодированный двоичный поток медиаданных в пакеты RTP согласно формату полезной нагрузки протокола RTP. Как правило, каждый вид медиаданных имеет специфический формат полезной нагрузки для протокола RTP. Следует отметить, что система может содержать более одного отправителя 130, но ради простоты в последующем описании рассматривается только один отправитель 130.
[0029] Отправитель 130 может быть, а может и не быть связан со шлюзом 140 через систему связи. Шлюз 140 может выполнять различные функции, например передачу пакетного потока согласно стеку одного протокола связи в стек другого протокола связи, объединяя и разделяя потоки данных и манипулируя потоками данных согласно возможностям нисходящей связи и/или приемника, например, управляя скоростью передачи данных передаваемых потоков согласно преобладающим условиям нисходящей сети. Примеры шлюзов 140 включают устройство управления многосторонней связью (MCU, multipoint conference control unit), шлюзы между устройствами видеотелефонии с соединениями по коммутируемым линиям и с пакетной коммутацией, серверы симплексного канала для сотовой связи (РоС, Push-to-talk over Cellular), IP-инкапсуляторы в системах цифрового телевизионного вещания на мобильные устройства (стандарт DVB-H, digital video broadcasting-handheld) или телевизионные преобразователи (set-top box), которые передают транслируемые сигналы в локальные домашние беспроводные сети. При использовании протокола RTP шлюз 140 называют микшером протокола RTP, и этот шлюз действует как конечная точка соединения RTP.
[0030] Система включает один или несколько приемников 150, обычно способных к приему, демодуляции и декапсулированию переданного сигнала в кодированный двоичный поток медиаданных. Двоичный поток медиаданных кодека обычно подвергается дальнейшей обработке декодером 160, на выходе которого получается один или несколько потоков несжатых медиаданных. Наконец, рендерер 170 может воспроизвести несжатые потоки медиаданных, например, в громкоговорителе или на дисплее. Приемник 150, декодер 160 и рендерер 170 могут располагаться в одном и том же физическом устройстве или же они могут входить в отдельные устройства.
[0031] Масштабируемость в отношении скорости передачи данных, сложности декодирования и размера изображения является желательной характеристикой для неоднородной и подверженной ошибкам среды передачи. Эта характеристика желательна для обхода ограничений, например ограничений на скорость передачи данных, разрешение дисплея, пропускную способность сети и вычислительную мощность, в приемном устройстве.
[0032] Устройства связи согласно настоящему изобретению могут осуществлять связь с использованием различных способов передачи, включая, но этим не ограничиваясь, многостанционный доступ с кодовым разделением каналов (CDMA, Code Division Multiple Access), Глобальную систему мобильной связи (GSM, Global System for Mobile communications), Универсальную систему мобильной связи (UMTS, Universal Mobile Telecommunications System), Многостанционный доступ с временным разделением каналов (TDMA, Time Division Multiple Access), Многостанционный доступ с частотным разделением каналов (FDMA, Frequency-Division Multiple Access), Протокол управления передачей/Протокол Интернет (TCP/IP, Transmission Control Protocol/Internet Protocol), службу коротких сообщений (SMS, Short Message Service), службу передачи мультимедиасообщений (MMS, Multimedia Message Service), электронную почту (e-mail), службу мгновенной передачи сообщений (IMS, Instant Massaging Service), стандарт Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь с использованием различных средств, включая, но этим не ограничиваясь, радиоволны, инфракрасное излучение, лазерное излучение, кабельное соединение и т.п.
[0033] На фиг.2 и 3 показан типичный мобильный телефон 12, в котором может быть осуществлено настоящее изобретение. Однако должно быть понятно, что настоящее изобретение не ограничено конкретным типом мобильного телефона 12 или другого электронного устройства. Некоторые или все признаки, изображенные на фиг.2 и 3, могут быть встроены в любые из устройств, представленных на фиг.1.
[0034] Мобильный телефон 12 на фиг.2 и 3 содержит корпус 30, дисплей 32 в виде жидкокристаллического дисплея, клавиатуру 34, микрофон 36, динамик 38, батарею 40, инфракрасный порт 42, антенну 44, интеллектуальную карту 46, которая, согласно одному варианту выполнения настоящего изобретения, может быть картой с идентификационным кодом пользователя (UICC), считыватель 48 карты, схему 52 радиоинтерфейса, схему 54 кодека, контроллер 56 и память 58. Все отдельные схемы и элементы хорошо известны и могут быть найдены, например, среди мобильных телефонов фирмы Nokia.
[0035] Реализация настоящего изобретения согласно различным вариантам его выполнения основана на стандарте SVC и прогрессивном кодировании. Однако следует отметить, что настоящее изобретение применимо также к другим способам масштабируемого кодирования, а также к чересстрочному кодированию.
[0036] Рассмотрим, например, случай существования двух уровней, то есть низкого уровня и высокого уровня, где макроблоки низкого уровня могут быть отнесены к одному из двух следующих типов.
1. Данные из этого макроблока необходимы для межуровневого предсказания (Тип А).
2. Никакие данные из этого макроблока не необходимы для межуровневого предсказания (Тип В).
Макроблоки типа В в одном изображении кодированы в одном или нескольких слайсах, при этом элемент синтаксиса discardable_flag (флаг возможности отбрасывания) установлен в 1. Такие макроблоки типа В могут быть по желанию отброшены.
[0037] При решении первой проблемы, описанной выше, при кодировании к заголовку слайса в масштабируемом расширении добавляют флаг base_discardable_flag_present_flag (флаг присутствия базового флага discardable_flag) для указания того, присутствует ли базовый флаг base_discardable_flag в функции macroblock_layer_in_scalable_extension() в таблице синтаксиса макроблока. Добавляют base_discardable_flag к macroblock_layer_in_scalable_extension() в таблице синтаксиса макроблока, указывая, что базовый слайс, охватывающий ту же область в изображении базового уровня и обозначенный как base_id_plus1, является отбрасываемым, когда base_discardable_flag равен 1. Когда base_discardable_flag равен 0, флаг base_discardable_fiag не добавляют в таблице синтаксиса макроблока к macroblock_layer_in_scalable_extension(). Поэтому в масштабируемом расширении может быть применен следующий синтаксис заголовка слайса:
[0038] Кроме того, таблица синтаксиса уровня макроблока в масштабируемом расширении имеет следующий вид:
[0039] Синтаксис предсказания макроблока в масштабируемом расширении имеет следующий вид:
[0040] Синтаксис предсказания субмакроблока в масштабируемом расширении имеет следующий вид:
[0041] Синтаксис остатка в масштабируемом расширении имеет следующий вид:
Альтернативный способ, позволяющий избежать наличия base_discardable_flag в каждом макроблоке, заключается в следующем. К заголовку слайса в масштабируемом расширении добавляют флаг pps_discardable_info_flag, указывающий, имеется ли в наборе параметров изображения (PPS, picture parameter set), используемом в изображении базового уровня и обозначенном base_id_plus1, информация о карте групп слайсов, при этом каждая из групп слайсов соответствует отбрасываемым или неотбрасываемым слайсам. Группа 0 слайсов может включать неотбрасываемые слайсы, в то время как группа 1 слайсов может включать отбрасываемые слайсы. Переменная BaseDiscardableFlag определяется согласно информации о группе слайсов. Если текущий макроблок охватывает макроблок базового уровня отбрасываемого слайса, BaseDiscardableFlag устанавливают равным 1. В противном случае BaseDiscardableFlag приравнивают 0. Если имеется только одна группа слайсов для каждого кодированного изображения, то информация о карте уровней для макроблоков или слайсов может сигнализироваться, например, набором PPS, аналогично случаю, когда используется более одной группы слайсов. В этом случае переменную BaseDiscardableFlag можно определить аналогично. При этом переменная BaseDiscardableFlag может использоваться для замены переменной base_discardable_flag в вышеуказанных таблицах синтаксиса макроблоков, а сигнализация base_discardable_flag может отсутствовать.
Когда рассматривают изменение синтаксиса для независимого синтаксического анализа в JVT-T079 ("см. "Updated results for independent parsing of spatial and CGS layers," 20th JVT Meeting, Klagenfurf, Austria. July 2006, доступна по адресу http://ftp3. itu. ch/av-arch/ivt-site/2006 07 Klagenfurt/ JVT-T079 zip), измененные таблицы синтаксиса для решения этой задачи имеют следующий вид. Следует отметить, что применен альтернативный процесс использования pps_discardable_info_flag и BaseDiscardableFlag. Синтаксис заголовка слайса в масштабируемом расширении имеет следующий вид:
Уровень макроблока в синтаксисе масштабируемого расширения имеет следующий вид:
Предсказание макроблока в синтаксисе масштабируемого расширения имеет следующий вид:
Предсказание субмакроблока в масштабируемом синтаксисе имеет следующий вид:
Остаток в синтаксисе масштабируемого расширения имеет следующий вид:
[0042] Для решения второй проблемы, описанной выше, как при кодировании, так и при декодировании значения выборок или остаточные значения отбрасываемых слайсов заполняют незначащей информацией независимо от того, имеются ли эти отбрасываемые слайсы. Пример алгоритма заполнения, который может использоваться в различных вариантах настоящего изобретения, включает проверку каждого макроблока в порядке сканирования растра для определения, находится ли этот макроблок в отбрасываемом слайсе или нет. Если он находится в отбрасываемом слайсе, во время процесса заполнения макроблок в отбрасываемом слайсе рассматривают как находящийся в неотбрасываемом слайсе. Если имеется соседний слева макроблок, причем в неотбрасываемом слайсе, то значение ряда выборок в макроблоке устанавливают равным значению самой правой выборки в соседнем слева макроблоке из того же ряда. Этот процесс можно назвать процессом заполнения по горизонтали. Если соседний слева макроблок отсутствует (то есть текущий макроблок находится на левой границе изображения), и имеется соседний сверху макроблок, причем в неотбрасываемом слайсе, применяют процесс заполнения по вертикали, при котором значение колонки выборок в макроблоке приравнивают к самому нижнему значению самой нижней выборки соседнего верхнего макроблока из той же колонки. Процессы заполнения по горизонтали и вертикали применимы как для выборок, так и для остаточных сигналов. Если не имеется ни левого, ни верхнего соседнего макроблока в виде сигнала выборки, то все значения выборок для макроблока устанавливают равными 128, в то время как для остаточного сигнала все остаточные значения для макроблока устанавливают равными 0. Следует отметить, что в разных вариантах выполнения настоящего изобретения можно использовать и другие алгоритмы заполнения. Например, в противоположность вышеописанному заполнению макроблоками слева и сверху, можно использовать заполнение макроблоками снизу и справа.
[0043] Альтернативно, при решении второй проблемы, описанной выше, к процедуре кодирования могут быть применены ограничения, чтобы выборка или остаточные значения отбрасываемых слайсов в изображениях более низкого уровня не использовалась в процессах повышения частоты дискретизации. Для этого требуется, чтобы макроблок в неотбрасываемых слайсах и соседний макроблок в отбрасываемых слайсах не использовал межуровневого предсказания значений выборок или остаточных значений. Другими словами, для этих макроблоков в неотбрасываемых слайсах оба элемента синтаксиса intra_base_flag и residual_prediction_flag установлены в 0. Это альтернативное решение второй проблемы работает, когда в проект SVC включен синтаксис, предложенный в стандарте JVT-T079 ("Updated results for independent parsing of spatial and CGS layers," 20th JVT Meeting, Klagenfurt, Austria, July 2006, available from http://ftp3.itu.ch/av-arch/j'vt-site/2006_07_Klagenfurt/JVT-T079.zip).
[0044] Настоящее изобретение было описано в контексте шагов способа, которые в одном из вариантов выполнения настоящего изобретения могут быть реализованы в программном продукте, включающем выполняемые на компьютере инструкции, например программные коды, реализованные на считываемом компьютером носителе и выполняемые компьютерами в сетевом окружении. Примеры считываемых компьютером носителей могут включать различные типы носителей данных, включая, но этим не ограничиваясь, блоки электронной памяти, оперативную память (RAM, Random Access Memory), постоянную память (ROM, Read-Only Memory), диски CD, DVD и другие внутренние или внешние запоминающие устройства. В общем случае, программные модули включают процедуры, программы, объекты, компоненты, структуры данных и т.д., которые решают конкретные задачи или реализуют конкретные абстрактные типы данных. Выполняемые на компьютере инструкции, соответствующие структуры данных и программные модули являются примерами программного кода, предназначенного для реализации шагов способов, раскрытых в настоящем описании. Конкретная последовательность таких выполняемых инструкций или соответствующих структур данных представляет примеры соответствующих действий для реализации функций, описанных в таких шагах.
[0045] Программное обеспечение и сетевая реализация настоящего изобретения могут быть осуществлены с помощью стандартных методов программирования с логикой на базе правил и другой логикой, обеспечивающей реализацию шагов по поиску в различных базах данных, шагов сравнения и шагов принятия решения. Следует отметить, что используемые здесь и в формуле изобретения слова «компонент» и «модуль» подразумевают реализацию с использованием одной или нескольких строк программного кода, и/или аппаратных средств, и/или оборудования для приема данных, вводимых вручную.
[0046] Вышеизложение вариантов выполнения настоящего изобретения было дано только для иллюстрации и описания. Оно не задумано исчерпывающим или ограничивающим настоящее изобретение