Масштабируемое видеокодирование с обратной связью

Иллюстрации

Показать все

Изобретение относится к области масштабируемого видеокодирования и, в частности, к обеспечению обратной связи посредством использования кодов проверки целостности. Техническим результатом является обеспечение контроля ошибок в ситуациях, когда декодеру не удается предоставить кодеру достоверную информацию в отношении фактически декодированных данных. Указанный технический результат достигается тем, что используют первый код проверки целостности, который вычисляется в кодере и затем передается декодеру в виде сообщения дополнительной информации оптимизации. Декодер вычисляет второй код проверки целостности по фактически принятым блокам сетевого абстрактного уровня, причем второй код проверки целостности сравнивается с первым кодом проверки целостности, генерированным кодером и отправленным в сообщении дополнительной информации оптимизации, чтобы определить, действительно ли все из переданных блоков сетевого абстрактного уровня (NAL), по которым был генерирован код проверки целостности, приняты без изменения их содержания. Кроме того, обеспечивается алгоритм контроля ошибок, который может выполняться в кодере или декодере, чтобы определить на стороне декодера, являются ли блоки сетевого абстрактного уровня правильными по содержанию. Следовательно, изображения, которые передаются только в виде кадров с внутренним кодированием, и изображения, которые передаются только в виде кадров с интеркодированием, проверяются на наличие ошибок. 9 н. и 24 з.п. ф-лы, 5 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящее изобретение относится в общем к области масштабируемого видеокодирования. Более конкретно, настоящее изобретение относится к обеспечению обратной связи посредством использования кодов проверки целостности.

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ

[0002] В данном разделе описываются предпосылки или условия создания изобретения, изложенного в прилагаемой формуле изобретения. Данное описание может включать идеи, которые могли быть осуществлены, но необязательно являются идеями, которые ранее были сформулированы или осуществлены. Поэтому если не указано другое, то информация, представленная в данном разделе, не является известным уровнем техники по отношению к данному описанию и формуле в данной заявке и не признается известным уровнем техники вследствие включения в данный раздел.

[0003] Стандарты видеокодирования включают ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (известный так же как ISO/IEC MPEG-4 AVC). Кроме того, существуют проекты разработки новых стандартов видеокодирования. Одним из таких стандартов, находящимся в разработке, является стандарт SVC (scalable video coding, масштабируемое видеокодирование), который станет расширением стандарта H.264/AVC. Другим стандартом на стадии разработки является стандарт MVC (Multiview Coding, многоракурсное кодирование), который также является расширением стандарта H.264/AVC. Еще существуют разработки китайских стандартов видеокодирования.

[0004] Проект стандарта SVC описывается в документе JVT-U202 «Joint Draft 8 with proposed changes» 21 заседание JVT, HangZhou, Китай, октябрь, 2006, который доступен на ресурсе: http://ftp3.itu.ch/av-arch/ivt-site/2006 10 Hanqzhou/JVT-U202.zip. Проект стандарта MVC описывается в документе JVT-U209, "Joint Draft 1.0 on Multiview Video Coding", 21 заседание JVT, HangZhou, Китай, октябрь, 2006, который доступен на ресурсе: ftp3.itu.ch/av-arch/ivt-site/2006 10 Hancizhou/JVT-U209.zip.

[0005] Масштабируемый мультимедийный сигнал обычно упорядочивается в иерархические уровни данных, где видеосигнал кодируется в базовый уровень и один или более уровней расширения. Базовый уровень может включать отдельное представление кодированного мультимедийного потока, такое как последовательность видеоизображений. Уровни расширения могут включать данные для повышения качества относительно предыдущих уровней в иерархии уровней. Качество декодированного мультимедийного потока постепенно улучшается при добавлении уровней расширения к базовому уровню. Уровень расширения улучшает временное разрешение (т.е. частоту кадров), пространственное разрешение и/или просто качество видеоконтента, представляемое другим уровнем или его частью. Каждый уровень вместе со всеми зависимыми уровнями является представлением видеосигнала при конкретном пространственном разрешении, временном разрешении и/или уровне качества. Поэтому термин «представление масштабируемого уровня» используется в данном документе для описания масштабируемого уровня вместе со всеми зависимыми уровнями. Часть масштабируемого потока битов, соответствующая представлению масштабируемого уровня, может быть выделена и декодирована для получения представления исходного сигнала с определенной точностью.

[0006] Концепции VLC (Video Coding Layer - уровень видеокодирования) и NAL (Network Abstraction Layer - сетевой абстрактный уровень) пришла из стандарта AVC (Advanced Video Coding - усовершенствованное видеокодирование). VLC включает функциональные возможности кодека по обработке сигнала, например алгоритмы, такие как преобразование, квантование, предсказание с компенсацией движения, контурный фильтр и межуровневое предсказание. Кодированное изображение базового уровня или уровня расширения включает один или более слоев ("слайсов"). NAL инкапсулирует каждый слой, сформированный VLC, в один или более блоков NAL.

[0007] Каждый уровень SVC формируется из блоков NAL, представляющих собой кодированные видеобиты на данном уровне. Поток RTP (Real Time Transport Protocol - протокол реального времени), передающий только один уровень, может передавать блоки NAL, принадлежащие только этому уровню. Поток RTP, передающий полный масштабируемый поток видеобитов, может передавать блоки NAL базового уровня и один или более уровней расширения. SVC определяет порядок декодирования блоков NAL.

[0008] В некоторых случаях данные на уровне расширения могут отбрасываться после определенной позиции или на случайных позициях, где каждая позиция отбрасывания может включать дополнительные данные, предоставляющие все более улучшающееся визуальное качество. В случаях когда точки отбрасывания расположены часто, масштабируемость называется «мелкозернистой», далее используется термин FGS (Fine Grained Scalability - мелкозернистая масштабируемость). В отличие от FGS масштабируемость, которая обеспечивается уровнями расширения, которые могут усекаться только в определенных редких позициях, называется CGS (Coarse-grained Scalability - крупнозернистая масштабируемость). Кроме того, проект стандарта кодирования SVC, указанный выше, может также поддерживать масштабируемость, обычно называемую MGS (Medium Grained Scalability - среднезернистая масштабируемость). В соответствии с MGS изображения повышенного качества кодируются аналогично изображениям масштабируемого уровня CGS, но отображаются элементами синтаксиса высокого уровня, так же как и изображения уровня FGS. Необходимо отметить, что уровни расширения могут включать одновременно масштабирование качества (отношение сигнал/шум) CGS, MGS и FGS и пространственную масштабируемость.

[0009] В соответствии с H.264/AVC блок доступа включает одно первичное кодированное изображение. В некоторых системах обнаружение границ блока доступа упрощается путем вставки в поток битов разделительного блока NAL. В SVC блок доступа может включать множество первичных кодированных изображений, но не более одного изображения на каждую уникальную комбинацию значений dependency_id, temporal_id и quality_id. Кодированное изображение здесь может относиться ко всем блокам NAL в блоке доступа, имеющем конкретные значения dependency_id и quality_id. Необходимо отметить, что термины, используемые в SVC, могут быть изменены. Поэтому понятие, обозначаемое здесь как кодированное изображение, впоследствии может обозначаться другим термином, например представление уровня.

[0010] В SVC используется алгоритм, аналогичный используемому в H.264/AVC, для обеспечения иерархической временной масштабируемости. В SVC определенный набор опорных и неопорных изображений может отбрасываться из кодированного потока битов без влияния на декодирование остального потока битов. При иерархической временной масштабируемости требуется несколько опорных изображений для компенсации движения, т.е. существует буфер опорных изображений, включающий множество декодированных изображений, из которых кодер может выбрать опорное изображение для интер-предсказания. В H.264/AVC функция, называемая подпоследовательностями, обеспечивает иерархическую временную масштабируемость, где каждый уровень расширения включает подпоследовательности, а каждая подпоследовательность включает несколько опорных и/или неопорных изображений. Подпоследовательность также включает несколько взаимозависимых изображений, которые могут быть отброшены без нарушения любой другой подпоследовательности на любом более низком уровне подпоследовательностей. Уровни подпоследовательностей иерархически организованы на основе зависимости друг от друга и являются аналогом временных уровней в SVC. Поэтому когда подпоследовательность отбрасывается на самом верхнем уровне, остальной поток битов остается полноценным. В H.264/AVC передача информации о временной масштабируемости осуществляется посредством связанных с подпоследовательностями сообщений SEI (Supplemental Enhancement Information - дополнительная информация оптимизации). В SVC иерархия временных уровней указывается в заголовке блоков NAL.

[0011] Помимо этого в SVC используется механизм межуровневого предсказания, в котором определенная информация может быть предсказана на базе уровней, отличных от текущего воспроизводимого уровня или следующего более низкого уровня. Информация, которую можно предсказать между уровнями, включает внутреннюю текстуру, движение и данные остатков. Межуровневое предсказание движения также включает предсказание режима кодирования блоков, информацию заголовка и т.п., причем информация о движении на более низком уровне используется для предсказания более высокого уровня. Возможно также использовать внутреннее кодирование в SVC, т.е. предсказание на базе соседних макроблоков или на базе расположенных рядом макроблоков более низких уровней. В таких способах предсказания не используется информация о движении и поэтому их относят к способам внутреннего предсказания. Кроме того, данные остатков на более низких уровнях также могут использоваться для предсказания текущего уровня.

[0012] По сравнению с предыдущими стандартами сжатия видеоизображения пространственная масштабируемость SVC была расширена так, что базовый уровень может являться обрезанной и увеличенной в масштабе версией уровня расширения. Кроме того, модули квантования и энтропийного кодирования также были откорректированы для обеспечения поддержки FGS. Такой режим кодирования называется прогрессивной детализацией, когда последовательное уточнение коэффициентов преобразования кодируется при многократном уменьшении размера шага квантования с применением «циклического» энтропийного кодирования, сходного с кодированием битовой подплоскости.

[0013] SVC также определяет принцип декодирования за один цикл. Декодирование за один цикл может обеспечиваться на базе режима ограниченного предсказания внутренней текстуры, когда межуровневое предсказание внутренней текстуры применяется к макроблокам, для которых соответствующий блок базового уровня размещается во внутренних макроблоках. Одновременно внутренние макроблоки базового уровня используют ограниченное внутреннее предсказание. Поэтому при декодировании за один цикл декодеру требуется производить компенсацию движения и воссоздание полного изображения только для масштабируемого уровня, необходимого для воспроизведения (т.е. желаемого уровня), что снижает сложность декодирования. Все уровни, отличные от желаемого уровня, не требуется декодировать полностью, поскольку все или часть данных в макроблоках, не используемых для межуровневого предсказания (будь это межуровневое предсказание внутренней текстуры, межуровневое предсказание движения или межуровневое предсказание остаточных данных), не требуется для воссоздания нужного уровня.

[0014] Обычно для декодирования большинства изображений требуется один цикл декодирования, тогда как второй цикл декодирования применяется для воссоздания базовых представлений. Необходимо отметить, что расширение FGS или MGS блока доступа не используется при воссоздании базового представления блока доступа. Базовые представления требуются как опорные данные для предсказания, но не для вывода или отображения, и воссоздаются только для «ключевых изображений». Базовое представление обычно используется для интер-предсказания базового представления следующего ключевого изображения. Периодическое использование базовых представлений при интер-предсказании устраняет потенциальный дрейф и его временное распространение, вызываемое блоками NAL уровня расширения FGS или MGS, которые были отброшены или потеряны в тракте передачи от кодера к декодеру.

[0015] Масштабируемая структура в проекте SVC, указанном выше, характеризуется тремя элементами синтаксиса: temporal_id; dependency_id и quality_id. Элемент синтаксиса temporal_id используется для указания иерархии временной масштабируемости или косвенно частоты кадров. Представление масштабируемого уровня, включающее изображения с меньшим максимальным значением temporal_id, имеет меньшую скорость кадров, чем представление масштабируемого уровня, включающее изображения с большим максимальным значением temporal_id. Данный временной уровень обычно зависит от более низких временных уровней (например, временные уровни с меньшими значениями temporal_id), но обычно не зависит от более высокого временного уровня.

[0016] Элемент синтаксиса dependency_id используется для указания иерархии зависимостей межуровневого кодирования CGS (которая включает и масштабируемость отношения сигнал/шум и пространственную масштабируемость). При любом положении временного уровня изображение с меньшим значением dependency_id может использоваться для межуровневого предсказания при кодировании изображения с большим значением dependency_id.

[0017] Элемент синтаксиса quality_id используется для указания иерархии уровней качества на уровне FGS или MGS. При любом временном положении и с одинаковым значением dependency_id изображение со значением quality_id равным QL (Quality Level - уровень качества) использует изображение со значением quality_id равным QL-1 для межуровневого предсказания. Кодированный слой со значением quality_id больше нуля может кодироваться либо как отбрасываемый слой FGS, либо как неотбрасываемый слой MGS.

[0018] Для упрощения все блоки данных (например, блоки NAL или блоки NAL в SVC) в одном блоке доступа, имеющие одинаковое или совпадающее значение dependency_id, называются блоком зависимостей, причем иерархия временных уровней указывается в заголовке блока NAL.

[0019] Характерной особенностью SVC является то, что блоки FGS NAL можно легко отбрасывать или усекать, а блоки MGS NAL легко отбрасывать без влияния на пригодность потока битов. Тем не менее, когда данные FGS или MGS используются в качестве опорных данных для интерпредсказания при кодировании, то отбрасывание или усечение этих данных приведет к несоответствию между сигналом воспроизведения на стороне декодера и сигналом воспроизведения на стороне кодера. Такое несоответствие называется дрейфом, как указано выше.

[0020] Для управления дрейфом вследствие отбрасывания или усечения данных FGS или MGS стандарт SVC позволяет в определенном блоке зависимостей хранить базовое представление (путем декодирования только изображения CGS со значением quality_id равным нулю и всех зависимых данных более низкого уровня) в буфере декодированных изображений. При кодировании последующего блока зависимостей с таким же значением dependency_id все блоки NAL, включающие блоки NAL FGS или MGS, используют базовое представление как опорные данные для интер-предсказания. В результате полный дрейф вследствие отбрасывания или усечения блоков NAL FGS или MGS в предыдущем блоке доступа сохраняется в данном блоке доступа. Для других блоков зависимостей с таким же значением dependency_id все блоки NAL используют расширенные представления (декодированные из блоков NAL с самым большим значением quality_id и зависимых данных более низкого уровня) как опорные данные для интер-предсказания. Такая технология приводит к высокой эффективности кодирования.

[0021] В соответствии с проектом SVC, представленным в документе JVT-U202, как указано выше, каждый блок NAL включает в заголовке блока NAL элемент синтаксиса с именем use_base_prediction_flag. Если значение use_base_prediction_flag равно единице, это указывает, что для декодирования данного блока NAL используются базовые представления опорных изображений во время процесса интер-предсказания. Элемент синтаксиса store_base_rep_flag (может принимать значение ноль или единица) указывает, следует ли хранить базовое представление текущего изображения для следующих изображений, чтобы использовать для интерпредсказания, в дополнение к расширенному представлению.

[0022] В системах двухсторонней видеосвязи, например видеотелефонии, обычно существует канал обратной связи от приемника к передатчику. Канал обратной связи может использоваться помимо всего прочего для восстановления после ошибок передачи. Интерактивные сообщения контроля ошибок от приемника к передатчику можно классифицировать как запросы внутреннего обновления, индикацию потерь и положительное подтверждение правильного приема и декодирования данных. Кодер может реагировать на такие сообщения посредством внутреннего кодирования или выполнением кодирования с использованием опорных изображений, которые являются правильными по содержанию. Кодер также может далее повышать эффективность сжатия и степень коррекции ошибок, если он отслеживает пространственное распространение ошибок на стороне декодера. Кроме того, кодер может восстанавливать области, которые искажены из-за пространственного распространения ошибок, и использовать неискаженные области в качестве опорных данных для интер-предсказания.

[0023] Существует различная документация и стандарты по вопросу интерактивного контроля ошибок для видеосвязи с малым временем ожидания, где рассматриваются системы видеоконференцсвязи на базе ITU-T H.323/H.324, а также системы конференцсвязи на базе RTP.

[0024] Рекомендация ITU-T H.245 - это протокол управления для систем видеоконференцсвязи на базе ITU-T H.323/H.324. Помимо других вопросов в этой рекомендации определены команды и индикация, используемые в канале обратной связи от приемника к передатчику. Согласно H.245 команда может представлять собой сообщение, которое требует выполнения действия, но не явный ответ. В другом варианте согласно H.245 индикация может включать информацию, которая не требует действия или ответа. В рекомендации H.245 определяются сообщения для Н.261, Н.263, MPEG-1, MPEG-2. Кроме того, использование H.264/AVC в системах видеоконференцсвязи Н.323/324 описывается в рекомендации ITU-ТН.241.

[0025] Протокол RTP может использоваться для передачи аналоговых мультимедийных отсчетов, например кодированных аудио- и видеопотоков в сетях на базе протокола Интернета (IP). Протокол RTCP (Real-time Transport Protocol - протокол управления передачей в реальном времени) является сопутствующим протоколом RTP, т.е. RTCP может использоваться для дополнения RTP, когда это позволяет инфраструктура сети и приложения. Протоколы RTP и RTCP обычно передаются по протоколу UDP (User Datagram Protocol - протокол дейтаграмм пользователя), который в свою очередь передается по протоколу IP. Существует две версии IP, т.е. IPv4 и IPv6, причем одним из различий между этими двумя версиями является число адресуемых конечных точек.

[0026] Протокол RTCP может использоваться для контроля качества услуги, предоставляемой сетью, и для передачи информации об участниках текущего сеанса связи. RTP и RTCP разработаны для различных сеансов связи: от соединения между двумя конечными пунктами до многоадресной передачи, включающей тысячи конечных пунктов. Для управления общей скоростью потока битов, вызванного пакетами RTCP при многостороннем сеансе связи, интервал передачи пакетов RTCP, передаваемых одним конечным пунктом, соответствует числу участников данного сеанса связи. Любой формат кодирования мультимедийных отсчетов имеет специальный формат полезной нагрузки RTP, который определяет структуру мультимедийных отсчетов в полезной нагрузке пакета RTP.

[0027] Для RTP установлено несколько конфигураций, каждая из которых определяет расширения и модификации RTP, которые являются специфическими для конкретного семейства приложений. Распространенную конфигурацию называют конфигурацией (профилем) RTP для аудио- и видеоконференций с минимальным управлением (RTP/AVP). Данная спецификация обеспечивает семантику типовых полей в заголовке RTP для использования в аудио- и видеоконференциях. Данная спецификация также определяет формат полезной нагрузки RTP для некоторых аудио- и видеокодеков.

[0028] Другая конфигурация RTP известна как аудиовизуальная конфигурация с обратной связью (RTP/AVPF). RTP/AVPF позволяет терминалам посылать сигнал обратной связи быстрее, чем позволяет исходный протокол RTCP, и поэтому может использоваться для передачи сообщений с целью интерактивного исправления ошибок. Если число участников сеанса связи меньше, чем некоторое пороговое значение, можно использовать режим немедленной обратной связи RTP/AVPF. Режим немедленной обратной связи позволяет каждому участнику сообщать о событиях обратной связи практически немедленно. Первый режим RTCP в RTP/AVPF применяется, когда число участников такое, что режим немедленной обратной связи использовать невозможно. Поэтому обеспечивается более быстрая обратная связь, чем позволяет простой RTCP, но менее быстрая по сравнению с немедленной обратной связью RTP/AVPF.

[0029] Простым способом восстановления после ошибок передачи является отправка кодеру дальнего конца запроса на кодирование ошибочных областей в режиме внутреннего кодирования. Помимо исправления ошибок передачи блоком MCU (Multipoint Conference Control Unit - блок управления многосторонней связью) может быть подана команда быстрого обновления изображения, когда существует потребность переключиться от одного видеоисточника к другому в течение централизованной многостанционной конференции. Н.245 обеспечивает три команды быстрого обновления видеосигнала: команды быстрого обновления для изображения, команды быстрого обновления для GOB (Group of Blocks - группа блоков) Н.261 и Н.263 и команды быстрого обновления для некоторого числа MB (MackroBlock - макроблок) в последовательности растровой развертки. Такие команды быстрого обновления обычно называются videoFastUpdatePicture, videoFastUpdateGOB и videoFastUpdateMB соответственно.

[0030] Эти команды быстрого обновления требуют, чтобы кодер обновил указанную область изображения, что практически выполняется как внутреннее кодирование, хотя ответ кодера на команды быстрого обновления в спецификации Н.245 явно не определен. В отличие от Н.245, Н.241 обеспечивает только команду быстрого обновления изображения для H.264/AVC и определяет две альтернативные процедуры для ответа на принятую команду быстрого обновления изображения. В первой процедуре передается изображение IDR (Instantaneous Decoding Refresh - мгновенное обновление декодирования) и любые связанные наборы параметров. Во второй процедуре область изображения обновляется постепенно, например, за определенное число последовательных изображений. При внутреннем кодировании посылается сообщение SEI с точкой восстановления для указания момента, когда вся область изображения является правильной по содержанию, а также передаются любые связанные наборы параметров. Такая процедура постепенного восстановления может быть использована в средах передачи, подверженных ошибкам, в которых изображение IDR, вероятно, подвергнется ошибкам передачи вследствие своего большого размера относительно типового интер-кодированного изображения. Сообщения управления кодеком RTP/AVPF включают команду полного внутреннего запроса, которая является эквивалентной команде быстрого обновления изображения Н.245.

[0031] При внутреннем кодировании вследствие команд быстрого обновления снижается эффективность сжатия по сравнению с интеркодированием. Для повышения эффективности сжатия кодер может выбрать опорное изображение для интер-предсказания, в отношении которого известно, что оно является правильным, и которое доступно на базе обратной связи от декодера дальнего конца. Такой способ часто называют NEWPRED, как описывается в работе "Study on Adaptive Reference Picture Selection Coding Scheme For the NEWPRED-Receiver-Oriented Mobile Visual Communication System", автор Kimata и другие. Этот способ требует, чтобы схема видеокодирования допускала использование множества опорных изображений. Поэтому могут использоваться, например, Н.263, Приложение N, Приложение U или H.264/AVC. В соответствии с NEWPRED используется два типа сообщений обратной связи: NACK (Negative Acknowledgement - отрицательное подтверждение приема), которое указывает, что определенный пакет, определенное изображение или определенная область конкретного изображения приняты с ошибками; и ASK (Positive Acknowledgement - положительное подтверждение приема), которое указывает, какие изображения или части изображений либо приняты без ошибок либо являются правильными по содержанию. Изображение или часть изображения является правильным по содержанию, если кодированные данные приняты безошибочно и все данные, используемые для предсказания, являются правильными.

[0032] При применении NACK кодер обычно использует для интерпредсказания любое доступное опорное изображение, за исключением изображений, про которые известно, что они содержат ошибки в результате полученных сообщений NACK. Поскольку задержка сквозной передачи может быть больше, чем интервал между двумя кодируемыми изображениями, кодер может не знать, что некоторые из последних кодированных опорных изображений приняты с ошибками на момент кодирования нового изображения. Таким образом, режим NACK в NEWPRED устраняет распространение ошибок примерно за период времени, необходимый для передачи и подтверждения приема, что аналогично запросам на быстрое обновление. При применении ASK кодер обычно использует для интерпредсказания только те опорные изображения, про которые известно, что они являются правильными по содержанию в результате полученных сообщений АСК.

[0033] Существуют различные способы передачи сообщений о выборе опорного изображения. Синтаксис для таких сообщений может указываться в используемом протоколе управления. В другом варианте протокол управления может обеспечивать общий механизм формирования кадров для передачи сообщений о выборе опорного изображения, которые определяются как внешние для протоколов управления. В соответствии с установленным протоколом управления сообщениями спецификация Н.245 включает команды потери, которые относятся к полным изображениям (т.е. команда lostPicture). H.245 также включает команды потери, которые указывают число потерянных макроблоков в последовательности растровой развертки (т.е. команда videoBadMB для использования с Приложением N спецификации Н.263). Наконец H.245 также включает команды потери, которые явно указывают изображение, в котором произошли потери (т.е. команда lostPartialPicture для использования с Приложением U спецификации Н.263).

[0034] Видеокодер на удаленном конце должен выполнить корректирующее действие, такое как внутреннее кодирование или выбор безошибочного опорного изображения, в качестве ответа на принятую команду потери. Команда восстановления опорного изображения H.245 требует, чтобы кодер на удаленном конце использовал для предсказания только указанные изображения. Другими словами, это аналогично сообщению ASK, упомянутому выше. Необходимо отметить, что RTP/AVPF включает универсальное сообщение NACK, которое способно указывать потерю одного или более пакетов RTP, индикацию потери изображения, индикацию потери слоя. Индикация потери изображения является равнозначной команде H.245 lostPicture, а индикация потери слоя является равнозначной команде H.245 lostPartialPicture.

[0035] Как указано выше, синтаксис полезной нагрузки сообщений обратного канала может быть специальным для конкретного кодека, или синтаксис может быть универсальным для любого кодека, а семантика универсального синтаксиса определяется для каждого кодека отдельно. Примеры синтаксиса обратного канала для конкретного кодека включают сообщения, определяемые в Приложении N и Приложении U спецификации Н.263 и обратное сообщение NEWPRED в MPEG-4 Visual, указанном выше. В другом варианте рекомендация ITU-T H.271 определяет универсальный синтаксис сообщения обратного канала для использования с любым видеокодеком. В H.271 определяется шесть сообщений, включающих:

индикацию того, что декодирование одного или более изображений выполнено без обнаружения ошибок; индикацию того, что одно или более изображений полностью или частично потеряны, и индикацию того, что все или конкретные разделы данных из набора блоков кодирования какого-либо изображения потеряны. Кроме того, в Н.271 также определены следующие сообщения: значение CRC (Cyclical Redundancy Check - контроль циклическим избыточным кодом) для одного набора параметров; значение CRC для всех наборов параметров определенного типа и запрос на восстановление, который указывает, что кодер на удаленном конце должен полностью обновить передаваемый поток битов, как будто предыдущие видеоданные не были приняты.

[0036] Семантика, используемая для идентификации изображения, размер блока кодирования, выраженный в отсчетах, и определение набора параметров являются специальными для каждого формата кодирования. Поэтому Н.271 определяет семантику универсального синтаксиса сообщений для Н.261, Н263 и H.264/AVC. Сообщения обратного канала, установленные в Приложении N и Приложении U рекомендации Н.263, а также в Н.271, передаются в отдельном логическом канале поверх Н.245. Аналогично RTP/AVPF включает индикацию выбора опорного изображения, которая включает сообщение обратного канала в соответствии со стандартом видеокодирования, при этом расширение RTP/AVPF для сообщений управления кодеком включает сообщение обратного видеоканала, который передает сообщения в соответствии с Н.271.

[0037] Контроль ошибок включает определение того, что изображение или часть изображения является правильным по содержанию. В другом варианте контроль ошибок включает определение того, что изображение или часть изображения так или иначе не соответствует связанной информации о потере данных, искажениям при передаче и/или схеме предсказания кодирования. Схема предсказания кодирования включает стандартное интер-предсказание (т.е. предсказание с компенсацией движения), стандартное предсказание внутри изображения (т.е. внутренний отсчет изображения или коэффициент предсказания, предсказание векторов движения и контурная фильтрация) и межуровневое предсказание в соответствии с SVC. Контроль ошибок может выполняться кодером или декодером.

[0038] Например, если кадр n имеет искажения, и соответствующее сообщение канала обратной связи поступает в кодер в момент кодирования кадра n+d, кодер восстанавливает положение искаженных областей в кадрах от n до n+d-1 в декодере. Восстановление производится на базе векторов движения в кадрах от n+1 до n+d-1. Следовательно, кодер может устранить использование искаженных областей для интер-предсказания в кадрах от n до n+d-1. Пример алгоритма контроля ошибок обеспечивается в Н.263.

[0039] Качество контроля ошибок может быть повышено, если сообщения обратной связи содержат информацию о том, какой способ маскирования ошибок использует декодер, или какой способ маскирования ошибок задан в системе. В ответ на прием сообщения обратной связи относительно кадра n кодер должен восстановить процесс декодирования для кадров от n до n+d-1, чтобы опорные изображения в кодере точно соответствовали опорным изображениям в декодере. Поддержка маскирования ошибок и контроля ошибок включена в Н.245. Конкретнее, сигналы Н.245 «non-decoded MBs indication» могут указывать, какие макроблоки приняты с ошибками и обработаны как некодированные данные. Другими словами, такое сообщение указывает, что копия совмещенных макроблоков в предыдущем кадре была использована для маскирования ошибок. Однако вследствие вычислительных требований и сложности контроля ошибок, связанного с известным маскированием ошибок, не существует подходящих механизмов, отличных от индикации недекодированных макроблоков Н.245. Кроме того, индикация недекодированных макроблоков не является широко распространенной.

[0040] Использование сообщения обратной связи совместно с изображениями, хранящимися в качестве опорных изображений, но не выходных данных, аналогично базовым представлениям для FGS и MGS, описывается в заявках на патент США №09/935.119 и №11/369.321. Однако в вышеупомянутых традиционных системах и способах существуют проблемы. Такая проблема показана в следующем примере для системы видеосвязи с кодированием и каналом обратной связи в реальном времени от декодера на удаленном конце до кодера. Рассмотрим два блока доступа в потоке битов:

Q1, n … Q1, n+m

Q0, n … Q0, n+m, где применяются следующие обозначения:

Q0, n - кодированное изображение со значением qualityjd равным нулю в блоке доступа n

Q1, n - кодированное изображение со значением quality_id равным единице в блоке доступа n

Q0, n+m - кодированное изображение со значением quality_id равным нулю в блоке доступа n+m

Q1, n+m - кодированное изображение со значением quality_id равным единице в блоке доступа n+m

[0041] Блок доступа п является ключевым изображением, т.е. кодер устанавливает значение store_base_rep_flag равным 1. Допустим, что все уровни качества блока доступа n успешно декодированы и декодер удаленного конца посылает кодеру сообщение обратной связи, указывающее на успешное выполнение декодирования. Сообщение обратной связи принимается перед кодированием следующего «ключевого» блока доступа (n+m). Во время кодирования блока доступа n+m кодер может установить значение флага use_base_prediction_flag. Значение use_base_prediction_flag может быть установлено на ноль для (Q0, n+m) и (Q1, m+n), так что эти оба кодированных изображения предсказываются на базе (Q1, n) вместо (Q0, n) для повышения эффективности кодирования. В то же время флагу store_base_rep_flag может быть установлено значение единицы для обоих блоков (Q1, n+m) и (Q0, n+m), так что базовое представление сохраняется для последующего интер-предсказания изображений.

[0042] Поэтому существует проблема в том, что изображение (Q1,n) может быть потеряно во время передачи. В другом варианте элемент MANE (Media-Aware Network Element - сетевой элемент, осведомленный о медиаданных) или передатчик может сократить его путем отбрасывания некоторых или всех данных (Q1,n). А именно определение того, что декодирование блока доступа n выполнено полностью правильно, требуется для создания достоверного сообщения обратной связи от декодера на удаленном конце к кодеру. Однако в соответствии с проектом SVC в JVT-U202 декодер удаленного конца не имеет средств для определения того, что блок (Q1, n) первоначально присутствовал в потоке битов или содержал больше данных. Это происходит потому, что поток битов может быть полноценным независимо от присутствия изображения FGS или MGS (Q1, n). Кроме того, когда (Q1, n) включает слои FGS, не существует способа, чтобы определить, были ли усечены блоки NAL.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0043] Различные варианты осуществления данного изобретения обеспечивают систему и способ, в которой в кодере вычисляется/генерируется первый код проверки целостности по набору блоков NAL. Первый код проверки целостности затем пересылается декодеру в форме сообщения SEI. Декодер затем вычисляет второй код проверки целостности по фактически принятым блокам NAL. Этот второй код проверки целостности сравнивается с первым кодом проверки целостности, сгенерированным кодером и отправленным в сообщении SEI, чтобы указать, все ли фактически переданные блоки NAL, по которым был сгенерирован код проверки целостности, приняты без изменения их содержания. Кроме того, различные варианты осуществления обеспечивают способ контроля ошибок, который выполняется либо в кодере либо в декодере с целью определить, что блоки NAL являются правильными по содержанию на стороне декодера. Следовательно, изображения, которые передаются просто в виде кадров с внутренним кодированием, и изображения, которые передаются просто в виде кадров с интер-кодированием, проверяются на наличие ошибок. В соответствии с различными вариантами осуществления контроль ошибок обеспечивается в ситуациях, когда декодеру не удается предоставить кодеру достоверную информацию в отношении фактически декодированных данных.

[0044] Эти и другие преимущества и особенности настоящего изобретения вместе с устройством и способом работы станут очевидными из последующего подробного описания, которое сопровождается пояснительными чертежами, в которых одинаковые элементы имеют одинаковые обозначения на всех чертежах.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0045] На фиг.1 представлена типовая система мультимедийной связи для использования с настоящим изобретением.

[0046] На фиг.2 показан общий вид мобильного устройства, которое может быть использовано при осуществлении настоящего изобретения.

[0047] На фиг.3 представлена схема мобильного устройства, показанного на фиг.2.

[0048] На фиг.4 представлена схема операций процесса, осуществляемого в соответствии с одним вариантом осуществления.

[0049] На фиг.5 представлена схема операций процесса, осуществляемого в соответствии с другим вариантом осуществления.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

[0050] На фиг.1 представлена типовая система мультимедийной связи для использования с настоящим изобретением. Как показано на фиг.1, источник 100 данных обеспечивает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате, или в любой комбинации этих форматов. Кодер 110 кодирует исходный сигнал в кодированный мультимедийный поток битов. Кодер 110 способен выполнять кодирование более одно