Область техники, к которой относится изобретение
Данное раскрытие относится к кодированию видео, а более конкретно к технологиям эффективного контроля ошибок в видео.
Уровень техники
Видеотелефония (VT) заключает в себе передачу в реальном времени пакетов, переносящих аудио- и видеоданные. Каждое VT-устройство включает в себя видеокодер, который получает видео из устройства видеозахвата, такого как видеокамера или видеоархив, и формирует пакеты видеоданных ("видеопакеты"). Аналогично, аудиокодер в каждом VT-устройстве получает аудио из устройства аудиозаписи, такого как микрофон или синтезатор речи, и формирует пакеты аудиоданных ("аудиопакеты"). Видеопакеты и аудиопакеты помещаются в очередь протокола линии радиосвязи (RLP). Модуль уровня управления доступом к среде (MAC) формирует пакеты уровня управления доступом к среде (MAC) из содержимого RLP-очереди. Пакеты MAC-уровня преобразуются в пакеты физического (PHY) уровня для передачи по каналу связи в другое VT-устройство.
В мобильных VT-приложениях, VT-устройство принимает пакеты физического уровня через беспроводную прямую линию связи (FL) (или "нисходящую линию связи") от базовой станции к VT-устройству, которое может быть мобильным беспроводным терминалом, таким как сотовый радиотелефон. VT-устройство передает пакеты PHY-уровня через беспроводную обратную линию связи (RL) (или "восходящую линию связи") от VT-устройства к базовой станции. Каждое VT-устройство включает в себя PHY- и MAC-уровни, чтобы преобразовывать принимаемые пакеты PHY- и MAC-уровня и повторно формировать рабочие данные пакета в аудиопакеты и видеопакеты. Видеодекодер в рамках VT-устройства декодирует видеоданные для представления пользователю через устройство отображения. Аудиодекодер в рамках VT-устройства декодирует аудиоданные для представления через звуковой динамик. Аналогично, VT-устройство может включать в себя видеокодер и аудиокодер, чтобы кодировать видео и аудио, соответственно, для передачи в другое VT-устройство.
Ошибки в видеоданных могут возникать в ходе передачи видеопакетов от видеокодера в видеодекодер. Например, ошибка может возникать в ходе передачи по RL (от видеокодера к базовой станции), в базовой станции или в ходе передачи по FL (от базовой станции к видеодекодеру). Ошибки могут нарушать визуальное качество видео, представляемого пользователю. Тем не менее, множество технологий коррекции или маскирования ошибок может быть применено, когда ошибки обнаруживаются.
Сущность изобретения
В общем, раскрытие сущности направлено на технологии для контроля ошибок в видеоданных, которые позволяют повышать эффективность видеокодера. Видеокодер выполнен с возможностью применять контроль ошибок к ошибкам в RL до приема отчета об ошибке от приемного устройства через сквозную (E2E) обратную связь по ошибкам. Ошибка, сообщаемая в E2E-обратной связи по ошибкам, может быть ошибкой обратной линии связи (RL) или ошибкой прямой линии связи (FL), которая включает в себя ошибки, относящиеся к сети доступа. Согласно раскрытым технологиям, фильтр ошибок отличает ошибки в RL от ошибок в FL или ошибок в сети доступа, указанных посредством E2E-обратной связи по ошибкам. Таким образом, раскрытые технологии могут исключать повторное применение посредством видеокодера контроля ошибок к ошибке в RL, которую видеокодер уже разрешил.
Применение контроля ошибок к одной ошибке в RL дважды может снижать эффективность кодирования видеокодера и также может быть неэффективным использованием полосы пропускания канала передачи, поскольку некоторые технологии контроля ошибок могут вносить дополнительную полосу пропускания. Посредством определения того, является ли ошибка, сообщаемая в E2E-обратной связи по ошибкам, ошибкой в RL, фильтр ошибок может предоставлять возможность системе кодера определять то, применен ли уже контроль ошибок к ошибке, сообщаемой в E2E-обратной связи по ошибкам, или видеокодер должен применять контроль ошибок к сообщаемой ошибке. Следовательно, раскрытые технологии уменьшают или исключают избыточную коррекцию ошибок и ассоциированную неэффективность.
В некоторых аспектах, система кодера также содержит модуль для адаптации контроля ошибок, применяемый посредством видеокодера к условиям полосы пропускания канала. В некоторых вариантах применения, например в сети с коммутацией пакетов, полоса пропускания беспроводного канала может варьироваться, к примеру, вследствие местоположения, окружения или нагрузки по трафику канала. Соответственно, чтобы помогать не допускать перегрузки беспроводного канала, система кодера может включать модуль, чтобы отслеживать условия полосы пропускания канала, и выбирать технологию контроля ошибок на основе условий полосы пропускания канала. В качестве иллюстрации внутрикадровое обновление может быть применено, когда полоса пропускания канала выше, тогда как случайное обновление внутри макроблока (MB) (RIR) может быть применено, когда полоса пропускания канала ниже.
В одном аспекте, раскрытие сущности направлено на способ, содержащий прием индикации относительно ошибки в видеоданных, обнаруженной посредством видеодекодера, определение того, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством, и применение контроля ошибок в ответ на индикацию относительно ошибки в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи, и не применение контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла в обратной линии связи.
В другом аспекте, раскрытие сущности направлено на систему, содержащую приемопередающее устройство, чтобы принимать индикацию относительно ошибки в видеоданных, обнаруженной посредством видеодекодера, видеокодера и фильтра ошибок, чтобы определять то, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством, при этом видеоустройство выполнено с возможностью применять контроль ошибок в ответ на индикацию относительно ошибки в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи.
В еще одном аспекте, раскрытие сущности направлено на компьютерный программный продукт, содержащий машиночитаемый носитель, содержащий инструкции. Инструкции инструктируют компьютеру принимать индикацию относительно ошибки в видеоданных, обнаруженной посредством видеодекодера, определять то, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством, и применять контроль ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи, и не применять контроль ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла в обратной линии связи.
В другом аспекте, раскрытие сущности направлено на систему, содержащую средство приема индикации относительно ошибки в видеоданных, обнаруженной посредством видеодекодера, средство определения того, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством, и средство применения контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи, и не применения контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла в обратной линии связи.
Подробности одного или более примеров данного раскрытия сущности изложены на прилагаемых чертежах и в нижеприведенном описании.
Краткое описание чертежей
Фиг. 1 является схемой, иллюстрирующей систему кодирования и декодирования видео/аудио для приложений видеотелефонии.
Фиг. 2 является схемой, иллюстрирующей систему кодирования и декодирования видео/аудио, реализующую технологию фильтрации ошибок.
Фиг. 3 является блок-схемой последовательности операций, иллюстрирующей технологию для фильтрации ошибок в обратной линии связи из сквозной обратной связи по ошибкам.
Фиг. 4 является блок-схемой последовательности операций, иллюстрирующей другую технологию для фильтрации ошибок в обратной линии связи из сквозной обратной связи по ошибкам.
Подробное описание изобретения
Фиг. 1 является блок-схемой, иллюстрирующей систему 10 кодирования и декодирования видео. Как показано на фиг. 1, система 10 включает в себя систему 12 кодера и систему 14 декодера, соединенные посредством канала передачи 16, который включает в себя один или более компонентов 15 сети доступа (AN). Система 12 кодера и система 14 декодера могут представлять различные типы устройств, такие как беспроводные телефоны, сотовые телефоны, портативные компьютеры, беспроводные мультимедийные устройства, устройства видеоигр, цифровые музыкальные проигрыватели, цифровые видеопроигрыватели, серверы цифровой широковещательной передачи, платы персонального компьютера для беспроводной связи, персональные цифровые устройства (PDA), внешние или внутренние модемы или любое устройство, которое обменивается данными через беспроводной канал.
AN-компонент 15 может упоминаться как сетевая часть системы связи и может включать в себя или реализовывать функцию базовой станции (BS), системы приемопередающего устройства базовой станции (BTS), точки доступа (AP), приемопередающего устройства модемного пула (MPT), узла B (к примеру, в системе типа WCDMA) и т.д. Система 12 кодера и система 14 декодера обмениваются данными с AN-компонентом 15 по прямой линии связи (FL) и/или обратной линии связи (RL). FL, которая также упоминается как "нисходящая линия связи", означает передачу от AN-компонента 15 в систему 12 или 14. Обратная линия связи, которая также упоминается как "восходящая линия связи", означает передачу от системы 12 или 14 в AN-компонент 15.
Система 10 может предоставлять двунаправленную передачу аудио и видео, к примеру, для видеотелефонии (VT) по каналу передачи 16. VT упоминается как передача в реальном времени аудио- и видеопакетов, по меньшей мере, между двумя устройствами, такими как системы 12 и 14. Соответственно, в общем, взаимно-обратные модули кодирования, декодирования и преобразования могут быть предоставлены в системах 12 и 14 на противоположных концах канала 16. Альтернативно, одна или обе из систем 12 могут быть выделены только кодированию и передаче аудио и видео или только приему и декодированию аудио и видео. В некоторых примерах, система 12 кодера и система 14 декодера могут быть осуществлены в устройствах видеосвязи, таких как беспроводные мобильные терминалы, оснащенные для потоковой передачи видео, видеотелефонии или и того, и другого. Мобильные терминалы могут поддерживать VT согласно стандартам с коммутацией пакетов, таким как транспортный протокол реального времени (RTP), протокол пользовательских датаграмм (UDP), Интернет-протокол (IP) или протокол соединения "точка-точка" (PPP).
Система 10 может быть выполнена с возможностью поддерживать одну или более технологий беспроводной связи, таких как множественный доступ с кодовым разделением каналов (CDMA), множественный доступ с частотным разделением каналов (FDMA), множественный доступ с временным разделением каналов (TDMA) или мультиплексирование с ортогональным частотным разделением каналов (OFDM) либо другую подходящую беспроводную технологию. Вышеупомянутые технологии беспроводной связи могут доставляться согласно любой из множества технологий радиодоступа. Например, CDMA может доставляться согласно стандартам cdma2000 или широкополосного CDMA (WCDMA). TDMA может доставляться согласно стандарту глобальной системы мобильной связи (GSM). Стандарт универсальной системы мобильных телекоммуникаций (UMTS) разрешает работу в режиме WCDMA или GSM. Как правило, для VT-приложений система 10 должна быть выполнена с возможностью поддерживать технологии по стандарту высокоскоростной передачи данных (HDR), такие как cdma2000 1x EV-DO версия 0 и редакция A.
Система 12 кодера ассоциирована с первым устройством видеосвязи и включает в себя аудиоисточник 17, видеоисточник 18, видеокодер 20, аудиокодер 22, модуль 26 преобразования транспортного протокола реального времени (RTP)/протокола пользовательских датаграмм (UDP)/Интернет-протокола (IP)/протокола соединения "точка-точка" (PPP), очередь 28 согласно протоколу линии радиосвязи (RLP), модуль 30 MAC-уровня и модуль 32 PHY-уровня. Как описано далее, система 12 кодера также может включать в себя фильтр ошибок, чтобы различать между ошибками, относящимися к различным источникам, а также модуль для адаптации контроля ошибок к доступной полосе пропускания канала 16. Система 14 декодера ассоциирована с другим устройством видеосвязи и включает в себя модуль 34 PHY-уровня, модуль 36 MAC-уровня, RLP-очередь 38, модуль 40 преобразования RTP/UDP/IP/PPP, видеодекодер 42 и аудиодекодер 44.
Видеоисточник 18 может быть устройством видеозахвата, таким как видеокамера, один или более видеоархивов или комбинация видеокамеры и видеоархивов, или источник прямой широковещательной передачи от поставщика содержимого. Система 10 может поддерживать видеотелефонию или потоковую передачу видео согласно протоколу инициирования сеанса (SIP), стандарту ITU-T H.323, стандарту ITU-T H.324 или другим стандартам. Видеокодер 20 формирует кодированные видеоданные согласно стандарту сжатия видео, такому как MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264 и его прототипу, ISO/IEC MPEG-4, Часть 10, т.е. усовершенствованное кодирование видео. Система 10 также может быть выполнена с возможностью поддерживать усовершенствованное кодирование видео H.264 для доставки видеоуслуг реального времени в системах наземной мобильной многоадресной передачи мультимедиа (TM3), использующих спецификацию радиоинтерфейса только прямой линии связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast", которая должна быть опубликована как Технический стандарт TIA-1099 ("FLO Specification").
Видеокодер 20 и видеодекодер 42 могут быть реализованы как один или более процессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем матричных БИС (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 20 и видеодекодера 42 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем абонентском устройстве, широковещательном устройстве, сервере и т.п. Помимо этого система 12 и система 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усилителя для передачи и приема кодированного видео, в зависимости от необходимости, включая радиочастотные (RF) беспроводные компоненты и антенны. Тем не менее, для упрощения иллюстрации эти компоненты не показаны на фиг. 1.
Аудиоисточник 17 может быть устройством аудиозаписи, таким как микрофон или устройство синтезатора речи, которое захватывает аудиоданные, чтобы сопровождать видеоданные из видеоисточника 18. Альтернативно, аудиоисточник 17 может включать в себя аудиоархив или источник прямой широковещательной передачи аудио от поставщика содержимого. Аудиокодер 22 может кодировать аудиоданные согласно способу сжатия звука, такому как узкополосное адаптивное многоскоростное кодирование (AMR-NB) или другие технологии. Для VT-приложений видео должно предоставлять возможность видеть участника VT-конференции, а аудио должно предоставлять возможность слышать речь этого участника. Для других приложений, таких как потоковая передача мультимедиа или передача в широковещательном режиме, аудио и видео являются частью мультимедийного содержимого, такого как презентация, показ или фильм.
При работе модуль 26 преобразования RTP/UDP/IP/PPP получает кодированный кадр видеоданных и кодированные аудиоданные от видеокодера 20 и аудиокодера 22 и добавляет соответствующую информацию заголовка (к примеру, информацию маршрутизации и упорядочения) в видео- и аудиопакеты и вставляет результирующие данные в RLP-очередь 28. Как правило, RTP выполняется поверх UDP, тогда как UDP выполняется поверх IP, а IP выполняется поверх PPP. RTP - это протокол, разработанный для передачи данных реального времени, таких как мультимедийные данные. В RTP вывод видеокодера 20, а также аудиокодера 22 группируется в пакеты данных. Таким образом, кадр видеоданных может быть разделен на один или более пакетов данных для передачи кадра по каналу 16 в систему 14 декодера, и множество кадров типично передается как несколько пакетов данных. Каждый пакет включает в себя порядковый номер (SN) для целей упорядочения и идентификации. SN может быть включен, например, в информацию заголовка RTP/UDP/IP/PPP.
Модуль 30 MAC-уровня извлекает данные из RLP-очереди 28 и формирует пакеты MAC-уровня из содержимого RLP-очереди 28. Каждый пакет MAC-уровня переносит информацию заголовка RTP/UDP/IP/PPP и данные аудио- или видеопакетов, которые содержатся в RLP-очереди 28. Аудиопакеты могут вставляться в RLP-очередь 28 независимо от видеопакетов. В некоторых случаях, пакет MAC-уровня, сформированный из содержимого RLP-очереди 28, должен переносить только информацию заголовка и данные видеопакетов. В других случаях, пакет MAC-уровня должен переносить информацию заголовка, данные аудиопакетов и данные видеопакетов, в зависимости от содержимого RLP-очереди 28. Пакеты MAC-уровня могут быть выполнены согласно RLP и также могут упоминаться как MAC RLP-пакеты.
Модуль 32 PHY-уровня преобразует MAC RLP-пакеты в пакеты PHY-уровня для передачи по каналу 16. В частности, приемопередающее устройство в системе 12 кодера передает пакеты PHY-уровня в AN-компонент 15 по каналу 16. Канал 16 переносит пакеты PHY-уровня в систему 14 декодера. Канал 16 может быть любым физическим соединением между системой 12 кодера и системой 14 декодера. Например, канал 16 может быть проводным соединением, таким как локальная или глобальная проводная сеть. Альтернативно, как описано в данном документе, канал 16 может быть беспроводным соединением, таким как сотовое, спутниковое или оптическое соединение. Более типично, канал 16 может включать в себя комбинацию проводных и беспроводных сред.
Модуль 34 PHY-уровня и модуль 36 MAC-уровня системы декодирования 14 работают взаимно-обратным способом. Модуль 34 PHY-уровня преобразует/повторно формирует пакеты PHY-уровня, принимаемые от канала 16, в MAC RLP-пакеты. Модуль 36 MAC-уровня повторно формирует содержимое MAC RLP-пакетов, чтобы предоставлять видео- и аудиопакеты для вставки MAC RLP-пакетов в RLP-очередь 38. Модуль 40 преобразования RTP/UDP/IP/PPP выделяет информацию заголовка из данных в RLP-очереди 38 и повторно формирует видео- и аудиоданные для доставки в видеодекодер 42 и аудиодекодер 44, соответственно.
Видеодекодер 42 декодирует кадры видеоданных, чтобы формировать поток видеоданных для использования в запуске устройства отображения (видеовывода) 48. SN, ассоциированный с каждым пакетом, может помогать видеодекодеру 42 переупорядочивать и повторно формировать пакеты видеоданных в кадры. Например, пакеты могут быть приняты из последовательности с временной перспективы, требуя переупорядочивания в надлежащую временную последовательность. Аудиодекодер 44 декодирует аудиоданные, чтобы формировать аудиоинформацию для представления пользователю (к примеру, через звуковой динамик (аудиовывод) 46).
Ошибки могут возникать в ходе передачи кадра видеоданных от системы 12 кодера в систему 14 декодера. Ошибки могут включать в себя потерянный пакет или пакет, содержащий потерянные данные. В дальнейшем в этом документе "потерянный пакет" упоминается и как потеря всего пакета, и как потеря данных в рамках пакета. Ошибка в видеоданных может возникать в RL (к примеру, от системы 12 кодера в AN-компонент 15), в FL (к примеру, от AN-компонента 15 в систему 14 декодера) или в рамках AN-компонента 15. Следовательно, ошибки могут рассматриваться как ошибки в RL или ошибки в FL. В общем, ошибки, возникающие в рамках AN-компонента 15, также должны упоминаться как ошибки в FL. Ошибки могут возникать в рамках AN-компонента 15 по многим причинам. Например, если AN-компонент 15 состоит из более чем одной базовой сети, потеря одного или более видеопакетов или данных в рамках пакетов может возникать, когда видеоданные передаются между базовыми сетями.
Система 12 кодера может идентифицировать ошибки в RL через одну или более технологий. В одной технологии идентификации ошибок, видеокодер 20 выполняет запрос к одному или более нижних уровней системы 12 кодера, чтобы определять то, произошла ли ошибка в ходе передачи последнего кодированного видеокадра, до того как видеокодер 20 кодирует новый видеокадр. Обнаружение ошибки до кодирования нового видеокадра позволяет видеокодеру 20 (или модулю контроля ошибок в системе 12 кодера) выполнять контроль ошибок для текущего, последнего кодированного кадра относительно быстро, не дожидаясь обратной связи от системы 14 декодера.
Фиг. 2 является схемой, иллюстрирующей устройство 12 кодера, реализующее технологию фильтрации ошибок. В примере, показанном на фиг.2, устройство 12 кодера включает в себя UDP/IP/PPP-уровень 26B, MAC-уровень 30, модуль 50 фильтра ошибок, модуль 55 протокола линии радиосвязи (RLP), модуль 56 протокола консолидации пакетов (PCP), модуль 58 адаптации скорости RL и модуль 60 адаптивного контроля ошибок по полосе пропускания канала. Некоторые компоненты системы 12 кодера, которые показаны на фиг. 1, такие как аудиокодер 22 и PHY-уровень 32, исключены из схемы по фиг. 2 для ясности иллюстрации.
Как описано подробнее ниже, модуль 50 фильтра ошибок, который определяет то, скорректирована ли уже ошибка, сообщаемая в E2E-обратной связи по ошибкам от системы 14 декодера. Таким образом, фильтр 50 ошибок отфильтровывает ошибки в RL из ошибок, сообщаемых в E2E-обратной связи по ошибкам, что может помогать видеокодеру 20 избегать излишнего применения контроля ошибок к ошибкам в RL, сообщаемым в E2E-обратной связи. В примере системы 12 кодера, показанной на фиг. 2, фильтр 50 ошибок находится в том же самом уровне, что и RTP 26A. Фильтр 50 ошибок включает в себя модуль 52 извлечения SN ошибок в RL и модуль 54 определения ошибок передачи (TX).
В одном примере, нижние уровни системы 12 кодера следят за состоянием передачи видеокадра посредством флага, такого как двоичное битовое поле. Например, когда ошибка возникает между системой 12 кодирования и AN-компонентом 15, AN-компонент 15 может отправлять отрицательное квитирование (NAK) в MAC-уровень 30. MAC-уровень 30 может сообщать PCP-модулю 56 о MAC-пакете, ассоциированном с NAK. PCP-модуль 56 определяет то, содержит ли потерянный MAC-пакет какие-либо данные видеопотока. Аудио- и видеоданные могут быть помещены в один MAC-пакет, даже если качество обслуживания (QoS) поддерживается в обратной линии связи по EV-DO Rev A. Если имеются видеоданные в потерянном MAC-пакете, то PCP-модуль 56 должен сообщать RLP-модулю 55 (показанному на фиг. 2) о потерянных данных и идентифицировать конкретную RLP-очередь (может быть несколько RLP-очередей), которая содержит пакет, который подвергнут ошибке при передаче, с помощью NAK RLP-пакета.
RLP-модуль 55 определяет то, какой пакет содержит потерянные данные. Затем RLP-модуль 55 сообщает RTP-уровню 26A в прикладном уровне то, какой пакет включает в себя потерянные данные, с помощью NAK пакета видеопотока. RTP-уровень 26A может хранить карту или таблицу, которая преобразует потерянный пакет в потерянные MB в кадре. Информация, идентифицирующая потерянные MB, передается в видеокодер 20 (или модуль контроля ошибок) для дополнительного контроля ошибок. Например, видеокодер 20 может применять внутрикадровое обновление или случайное обновление внутри MB для того, чтобы маскировать ошибку.
В другом подходе для идентификации ошибок в RL, при котором нижние уровни системы 12 кодера следят за состоянием передачи видеокадра посредством флага, видеокодер 20 может выполнять запрос в RLP-модуль 55 перед кодированием каждого нового кадра видеоданных, и сведения об ошибке могут передаваться непосредственно в видеокодер 20 для контроля ошибок. MAC-уровень 30 может автоматически отправлять NAK в PCP-модуль 56, если ошибка в RL возникает, и PCP-модуль может отправлять NAK в RLP-модуль 55, который задает флаг.
В любом из подходов, поясненных выше, если пакет видеокадра потерян, задается флаг в рамках нижнего уровня системы 12 кодера. После того как видеокодер 20 выполняет запрос в RLP-модуль 55, чтобы проверять флаг, флаг сбрасывается для следующего кодированного видеокадра. Видеокодер 20 применяет контроль ошибок к следующему кодированному кадру видеоданных, если флаг задан. Флаг указывает только то, произошла ли ошибка в RL при передаче последнего кодированного видеокадра, а не конкретный пакет, который потерян. Таким образом, видеокодер 20 может не знать, какая часть кадра потеряна, и применяет контроль ошибок с допущением, что ошибка произошла в любой части кадра. Поскольку контроль ошибок применяется ко всему кадру, сведения о том, произошла ли какая-либо ошибка, может быть столь же полезными, как сведения о том, какой пакет видеоданных потерян.
Технологии контроля ошибок в видео на основе нижнего уровня, описанные выше, разрешают ошибки, которые возникают в видеоданных в ходе передачи по RL (т.е. ошибки в RL). Технологии могут давать возможность видеокодеру 20 использовать сведения об ошибке из MAC-уровня 30 и немедленно применять контроль ошибок, не дожидаясь обратной связи от системы 14 декодера (т.е. приемного устройства).
Другая технология идентифицирует ошибки как в RL, так и в FL, которые включают в себя ошибки, возникающие в рамках AN-компонента 15. Например, система 14 декодера может предоставлять обратную связь в видеокодер 20 из системы 12 кодера, указывающую то, что ошибка возникла. Приемопередающее устройство (не показано) системы 12 кодера может принимать обратную связь от системы 14 декодера. Видеокодер 20 затем может применять контроль ошибок к следующему кодированному кадру, чтобы предотвращать распространение ошибки. Ошибки, сообщаемые из системы 14 декодера в систему 12 кодера, могут упоминаться "как сквозная (E2E) обратная связь".
Использование E2E-обратной связи может быть основано на RFC 4585 по обратной связи по аудио-видеопрофилю (AVPF), который предоставляет основанный на протоколе управления передачей в реальном времени (RTCP) механизм обратной связи, который дает возможность приемному устройству видеоданных (т.е. системе 14 декодера) предоставлять немедленную обратную связь в систему 12 кодера. E2E-обратная связь типично содержит SN потерянного RTP-пакета или RTP-пакета, содержащего потерянные данные. Например, если пакет RTP с SN 100 потерян, система 14 декодера обнаруживает потерю и отправляет обратную связь RTCP с SN 100
в систему 12 кодера с рабочими данными AVPF.
Как только видеокодер 20 обнаруживает ошибку, видеокодер 20 может применять контроль ошибок согласно любой подходящей технологии. Примеры подходящих технологий контроля ошибок включают в себя использование другого опорного кадра для следующего видеокадра, который кодируется, повышение внутренней частоты обновления в макроблоках (MB) (т.е. "обновление внутри макроблока") или вставку информационного кадра (I-кадра), чтобы останавливать распространение ошибки в устройстве 14 декодера (т.е. "вставку информационного кадра"). В I-кадре каждый MB является внутренне кодированным, т.е. каждый MB не зависит от предыдущего кадра, что может останавливать распространение ошибки. Для внутреннего обновления в MB только некоторые MB внутренне кодируются. Вставка информационного кадра может предоставлять лучшее качество видео, когда ошибки возникают, но потребляет больше полосы пропускания, поскольку передается весь I-кадр, а не MB, формирующие только часть кадра. В одном типе технологии контроля ошибок, которая использует опорный кадр для того, чтобы кодировать следующий кадр, MB кадра видеоданных могут быть кодированы посредством кодирования на основе движения. Кодирование на основе движения заключает в себе идентификацию MB предыдущего кадра, который является аналогичным (прогнозирующего MB), и отправку вектора движения, чтобы идентифицировать прогнозирующий MB в предыдущем кадре (или в последующем кадре в двунаправленном кодировании), и отправку разностного блока, служащего признаком различий между текущим MB и прогнозирующим MB. Вектор движения, в общем, характеризует расстояние между MB наилучшего совпадения (т.е. прогнозирующим MB) в ранее кодированном кадре и данным MB. Когда видеокодер 20 обнаруживает ошибку, видеокодер 20 может использовать кадр, кодированный перед кадром, включающим в себя ошибку, в качестве опорного кадра для следующего видеокадра, который кодируется.
Видеокодер 20 выполнен с возможностью применять контроль ошибок на основе двух источников информации: обратная связь по ошибкам в RL и E2E-обратная связь по ошибкам. Как пояснено выше, в беспроводной видеосвязи, ошибка, сообщаемая в E2E-обратной связи по ошибкам, может относиться к ошибке, возникающей в RL или FL. E2E-обратная связь не включает в себя индикацию относительно того, где ошибка произошла, и таким образом видеокодер 20 типично неспособен определять источник потерянного пакета.
В некоторых случаях, E2E-обратная связь по ошибкам может сообщать об ошибке в RL, которую видеокодер 20 уже идентифицировал посредством выполнения запроса к одному или более нижних уровней, таких как RLP-модуль 55, системы 12 кодера. Поскольку видеокодер 20 применяет контроль ошибок к ошибке в RL при идентификации ошибки в RL, видеокодер 20 типично разрешает RL к тому времени, когда ошибка в RL сообщена посредством E2E-обратной связи по ошибкам. Тем не менее, поскольку видеокодер 20 неспособен определять источник ошибки, сообщаемой в E2E-обратной связи по ошибкам, и различать ошибки в RL и ошибки в FL, видеокодер 20 может применять контроль ошибок к одной ошибке в RL больше одного раза, что может быть неэффективным использованием ресурсов и полосы пропускания. Например, применение контроля ошибок к одной ошибке дважды может снижать эффективность кодирования видеокодера 20 и приводить к ухудшению качества видеовывода 48.
Видеокодер 20 корректирует ошибки в RL до приема отчета об ошибке в RL от системы 14 декодера (через E2E-обратную связь по ошибкам). Корректирование ошибки в RL относительно быстро после обнаружения ошибки в RL помогает уменьшать артефакты, вызываемые посредством потерянного пакета или пакета, содержащего потерянные данные. В примере, показанном на фиг. 2, видеодекодер 42 предоставляет E2E-обратную связь по ошибкам. В других примерах, тем не менее, другие компоненты системы 14 декодера могут предоставлять E2E-обратную связь по ошибкам в систему 12 кодера. Как пояснено выше, видеокодер 20 может использовать любую подходящую технологию для идентификации ошибок в RL. В примере, показанном на фиг. 2, видеокодер 20 выполняет запрос в RLP-модуль 55 и считывает флаг, заданный в рамках модуля RLP 55, для того чтобы идентифицировать, произошла ли ошибка в RL в ходе передачи недавно кодированного видеокадра, в AN-компонент 15 (т.е. в ходе передачи по RL).
Фильтр 50 ошибок выполнен с возможностью принимать E2E-обратную связь по ошибкам от видеодекодера 42 и определять источник ошибки. Если фильтр 50 ошибок определяет то, что сообщаемая по E2E ошибка произошла в RL, может быть необязательным для видеокодера 20 корректировать ошибку в RL во второй раз. Тем не менее, если фильтр 50 ошибок определяет то, что ошибка, сообщаемая в E2E-обратной связи по ошибкам, произошла в FL, видеокодер 20 может корректировать ошибку в FL для того, чтобы останавливать распространение ошибки. Другими словами, фильтр 50 ошибок определяет то, скорректирована ли уже сообщаемая E2E ошибка как часть ошибки в RL, или видеокодер 20 должен корректировать ошибку.
Фильтр 50 ошибок может следить за ошибками в RL, которые корректируются посредством видеокодера 20, по меньшей мере, через две технологии. В первой технологии фильтр 50 ошибок принимает порядковый номер (SN) видеопакета видеокадра, который потерян в RL. Во второй технологии фильтр 50 ошибок принимает информацию, которая указывает, имеет ли недавно кодированный видеокадр ошибку в RL. Фильтр 50 ошибок в соответствии со второй технологией показан на фиг. 2. В одном примере второй технологии для идентификации ошибок в RL, RTP-уровень 26A назначает SN последнему пакету недавно кодированного видеокадра и предоставляет этот SN в модуль 52 извлечения SN ошибок в RL из 50 фильтра ошибок. Модуль 52 извлечения SN ошибок в RL определяет то, произошла ли ошибка в RL (т.е. потеряны ли один или более пакетов или данные в рамках пакетов), когда кодированный кадр, ассоциированный с SN, передан в AN-компонент 15, посредством считывания флага (к примеру, двоичного битового поля), заданного на нижнем уровне системы 12 кодера. Флаг, считываемый посредством модуля 52 извлечения SN ошибок в RL, является тем же флагом, считываемым посредством видеокодера 20, чтобы идентифицировать ошибку в RL. Флаг указывает, потеряны ли какие-либо данные в видеопотоке с момента, когда последний раз выполнялся запрос в нижний уровень. Если кадр, ассоциированный с SN, имеет ошибку, модуль 52 извлечения SN ошибок в RL сохраняет SN. Если кадр, ассоциированный с SN, не имеет ошибки, модуль 52 извлечения SN ошибок в RL продолжает хранить SN последнего кадра, который имел ошибку при передаче. SN, сохраненный в рамках модуля 52 извлечения SN ошибок в RL, упоминается как SN1.
В некоторых аспектах, если любой из пакетов, переносящих данные для кодированного кадра, потерян, видеокодер 20 применяет коррекцию ошибок ко всему видеокадру. Соответственно, посредством слежения за SN1 последнего пакета последнего кодированного видеокадра, который включает в себя одну или более ошибок в RL, модуль 52 извлечения SN ошибок в RL может отслеживать ошибки в RL, которые корректировал видеокодер 20. Например, если кодированный кадр разделен на пакеты с SN 101-115, и пакет, идентифицированный посредством SN 105, потерян в RL, видеокодер 20 применяет контроль ошибок к кодированному кадру. Таким образом, даже если передача пакета, идентифицированного посредством SN 115, не приводила к ошибке в RL, и поскольку SN типично являются последовательными, контроль ошибок также применяется к пакету, идентифицированному посредством SN 115. Таким образом, фильтр 50 ошибок отслеживает ошибки в RL, которые скорректированы, вместо точного отслеживания того, какие пакеты потеряны в RL. Фильтр 50 ошибок также может отслеживать ошибки в RL, которые скорректированы, посредством отслеживания SN точно соответствующего пакета(ов), которые потеряны или содержали ошибку.
В других аспектах, вместо применения коррекции ошибок ко всему видеокадру видеокодер 20 применяет коррекцию ошибок к части кадра видеоданных, в которой произошла ошибка. Например, видеокодер 20 может применять коррекцию ошибок к макроблоку в кадре или пакете, который переносит несколько макроблоков. Соответственно, посредством слежения за порядковым номером SN1 пакета, который скорректирован, или пакета, содержащего макроблок, который фактически скорректирован, модуль 52 извлечения SN ошибок в RL может отслеживать ошибки в RL, которые корректировал видеокодер 20.
Видеодекодер 42 сообщает E2E-обратную связь по ошибкам в модуль 54 определения ошибок TX фильтра 50 ошибок в форме порядкового номера SN2 потерянного RTP-пакета. Видеодекодер 42 отправляет E2E-обратную связь по ошибкам только тогда, когда имеется ошибка, и идентифицирует точно соответствующий пакет, который потерян. E2E-обратная связь по ошибкам может включать в себя более одного SN, если более одного пакета потеряно. В одном примере, модуль 54 определения ошибок TX отслеживает наибольший SN, сообщаемый посредством видеодекодера 42 как SN2, поскольку видеокодер 20 должен применять контроль ошибок ко всему кадру, и наибольший SN является характерным для видеокадра. Другими словами, только наибольший SN последнего пакета, используемого для того, чтобы кодировать видеокадр, требуется, чтобы уникально идентифицировать кадр.
Чтобы определять то, является ли ошибка, сообщаемая в E2E-обратной связи по ошибкам, ошибкой в RL, которая уже скорректирована, или ошибкой в FL, модуль 54 определения ошибок TX сравнивает SN2, принимаемый в E2E-обратной связи по ошибкам с SN1 последнего пакета последнего кодированного видеокадра, который имеет ошибки. Если SN2 больше, чем SN1, ошибка, сообщаемая в E2E-обратной связи по ошибкам, является ошибкой в FL, поскольку более высокий SN2 указывает то, что пакет, идентифицированный посредством SN2, передан после пакета, идентифицированного посредством SN1. Если ошибка произошла в ходе передачи пакета, идентифицированного посредством SN2, в RL, модуль 52 извлечения SN ошибок в RL должен записывать SN2 или SN последнего пакета кадра, частью которого является пакет, идентифицированный посредством SN2, как наибольший SN последней ошибки в RL, которую видеокодер 12 корректировал. Тем не менее, поскольку модуль 52 извлечения SN ошибок в RL сохранял SN1 как идентифицирующий последнюю ошибку в RL, вероятно, что ошибка в рамках пакета, идентифицированного посредством SN2, произошла после передачи в RL. Таким образом, если SN2 больше, чем SN1, модуль 54 определения ошибок TX сообщает видеокодеру 20 о том, чем ошибка, ассоциированная с SN2, до этого не корректировалась, и в этом случае видеокодер 20 применяет контроль ошибок к следующему кодированному кадру.
Напротив, если SN2 меньше, чем SN1, ошибка, сообщаемая в E2E-обратной связи по ошибкам, является ошибкой в RL, которая уже скорректирована, поскольку пакет, идентифицированный посредством SN2, передан до пакета, идентифицированного посредством SN1, и соответственно, уже скорректирован. Если SN2 меньше, чем SN1, видеокодер 20 не применяет контроля ошибок к следующему кодированному кадру. Если SN2 равен SN1, ошибка, сообщаемая в E2E-обратной связи по ошибкам, является такой же, как последняя ошибка в RL, которая уже скорректирована, и видеокодер 20 не применяет контроль ошибок к следующему кодированному кадру.
Фильтр 50 ошибок предоставляет возможность системе 12 кодера эффективно различать между ошибками при передаче видеоданных в RL и ошибками при передаче видеоданных в FL, которые включают в себя ошибки, возникающие в рамках AN-компонента 15. Посредством различения между различными типами ошибок двойные сообщения об ошибках отфильтровываются из E2E-обратной связи по ошибкам, тем самым предотвращая корректирование посредством видеокодера 20 одной ошибки дважды. Таким образом, видеокодер 20 может работать более эффективно по сравнению с системами, в которых видеокодер 20 корректирует все ошибки, сообщаемые в E2E-обратной связи по ошибкам.
Система 10 необязательно включает в себя модуль 58 адаптации скорости RL и модуль 60 адаптивного контроля ошибок по полосе пропускания канала, чтобы адаптировать контроль ошибок, реализованный посредством видеокодера 20, к доступной полосе пропускания канала 16. В примере системы 12 кодера, показанной на фиг. 2, модуль 54 определения ошибок TX предоставляет обратную связь в видеокодер 20 через модуль 60 адаптивного контроля ошибок по полосе пропускания канала. После того как фильтр 50 ошибок определяет то, следует ли применять контроль ошибок к ошибке, сообщаемой в E2E-обратной связи по ошибкам от видеодекодера 42, модуль 60 адаптивного контроля ошибок по полосе пропускания канала может инструктировать видеокодеру 20 применять контроль ошибок согласно конкретной технологии, причем технология адаптирована к доступной полосе пропускания канала 16.
Характеристики канала могут представлять важность для проводных и беспроводных каналов, но особенно проблематичны для мобильных VT-приложений, выполняемых по беспроводному каналу 16, в которых характеристики канала могут ухудшаться вследствие затухания или перегрузки. Например, канал 16 может быть характеризирован посредством обратной линии связи (RL), имеющей пропускную способность, которая варьируется согласно характеристикам канала. Пропускная способность может быть оценена на основе характеристик канала, как представлено посредством одного или более из текущей скорости передачи в беспроводном канале, активности беспроводной базовой станции и ограничений мощности передачи. Например, характеристики канала могут быть определены на основе текущей скорости передачи данных MAC-уровня, обратного бита активности (RAB) и ограничения в усилителе мощности (PA).
Как результат варьирующихся характеристик канала, видеокодер 20 может регулировать свою скорость кодирования, чтобы не допускать перегрузки канала 16. Контроль ошибок типично занимает дополнительную полосу пропускания или иным образом снижает эффективность кодирования, и поэтому, поскольку полоса пропускания канала 16 варьируется, модуль 60 адаптивного контроля ошибок по полосе пропускания канала может ограничивать типы контроля ошибок, применяемого посредством видеокодера 20. Модуль 58 адаптации скорости RL отслеживает условия в RL, и модуль 60 адаптивного контроля ошибок по полосе пропускания канала регулирует скорость кодирования видеокодера 20 и тип контроля ошибок, применяемого посредством видеокодера 20, в соответствии с условиями RL. Например, когда полоса пропускания канала ограничена, модуль 60 адаптивного контроля ошибок по полосе пропускания канала может инструктировать видеокодеру 20 применять контроль ошибок через обновление внутри MB, а не вставку информационного кадра, что типично требует более высокой полосы пропускания, чем контроль ошибок обновления внутри MB. Таким образом, модуль 60 адаптивного контроля ошибок по полосе пропускания канала дает возможность адаптации по полосе пропускания канала контроля ошибок, применяемого посредством видеокодера 20.
Примеры технологий адаптации скорости, которые могут использоваться, описываются в заявке на патент (США) порядковый номер 11/445,099, озаглавленной "VIDEO RATE ADAPTATION TO REVERSE LINK CONDITIONS" и поданной 31 мая 2006 года (адвокатская выписка номер 060767). Как описано в вышеупомянутой заявке на патент, в одной примерной технологии для адаптации скоростей кодирования видеоданных, реализованных посредством видеокодера 20, так чтобы соответствовать характеристикам канала RL, пропускная способность для видео оценивается на основе полного размера RLP-очереди 28 видеопотока (фиг. 1). В этом случае, полнота очереди используется как индикация относительно характеристик канала RL. Полнота очереди, вероятно, вызывается, по меньшей мере, частично, ухудшением характеристик канала, которые уменьшают скорость, на которой пакеты извлекаются из RLP-очереди 28.
В другой примерной технологии, видеокодер 20 может использовать информацию от MAC-уровня 30 и RLP-уровня 26 для того, чтобы отслеживать характеристики канала RL и регулировать его скорость кодирования согласно состоянию канала. Например, характеристики канала могут быть определены на основе текущей скорости передачи данных MAC-уровня, обратного бита активности (RAB) и ограничения в усилителе мощности (PA), которое указывается посредством PA-бита в рамках 30 MAC-уровня. Ограничение PA представляет запас мощности передачи и указывает, когда характеристики канала ухудшились. Ограничение запаса мощности измеряется в децибелах (дБ) и ограничивает максимальный возможный размер рабочих данных пакетов MAC-уровня. Чем ниже значение ограничения запаса мощности, тем меньше максимальный возможный размер рабочих данных, и, следовательно, ниже пропускная способность. Ограничение запаса мощности может указывать максимальную скорость, которой разрешено быть использованной при передаче, на основе текущей мощности передачи.
Фиг. 3 является блок-схемой последовательности операций, иллюстрирующей примерный режим работы устройства 12 кодера, который использует технологию для фильтрации ошибок в RL из E2E-обратной связи по ошибкам. После формирования одного или более пакетов с кодированным кадром видеоданных, принимаемых от видеоисточника 18 (61), RTP-уровень 26A назначает порядковый номер SNEF последнему пакету недавно кодированного видеокадра (62) и предоставляет SNEF в модуль 52 извлечения SN ошибок в RL. После того как кодированный видеокадр преобразован в пакеты PHY-уровня, система 12 кодера передает видеокадр в систему 14 декодера через AN-компонент 15 и канал 16 (64).
Видеокодер 20 может определять то, произошла ли ошибка при передаче в RL в ходе передачи пакетов недавно кодированного кадра в систему 14 декодера (66). Как описано выше, видеокодер 20 может использовать любую подходящую технологию для идентификации ошибок в RL, такую как выполнение запроса к нижнему уровню системы 12 кодера, такому как RLP-модуль 55, чтобы проверять флаг, который указывает, произошла ли ошибка. Если ошибка произошла (к примеру, если флаг на нижнем уровне задан), видеокодер 20 может применять коррекцию ошибок к ошибке при передаче в RL, например, посредством использования другого опорного кадра для следующего видеокадра, который кодируется, посредством применения обновления внутри MB или вставки I-кадра, чтобы останавливать распространение ошибки (68).
Модуль 52 извлечения SN ошибок в RL также может определять то, произошла ли ошибка при передаче, когда недавно кодированный видеокадр передан в систему 14 декодера. С другой стороны, модуль 52 извлечения SN ошибок в RL также может выполнять запрос к нижнему уровню системы 12 кодера, чтобы определять то, произошла ли ошибка при передаче. Если ошибка при передаче произошла, модуль 52 извлечения SN ошибок в RL записывает SNEF как SN1. Если ошибка при передаче не произошла, когда последний кодированный кадр передан в систему 14 декодера, модуль 52 извлечения SN ошибок в RL сохраняет ранее записанный SN1, который ассоциирован с последним кадром, который имел ошибку при передаче в RL (70).
Модуль 54 определения ошибок TX фильтра 50 ошибок может принимать E2E-обратную связь по ошибкам от системы 14 декодера, где E2E-обратная связь по ошибкам включает в себя порядковый номер SN2 потерянного пакета или пакета, содержащего потерянные данные. Фильтр 50 ошибок и, в частности, модуль 54 определения ошибок T сравнивает SN1 с SN2 (72), чтобы определять то, является ли ошибка, сообщаемая в E2E-обратной связи по ошибкам, ошибкой в RL, которая уже скорректирована посредством видеокодера 20. Если SN1 меньше, чем SN2 (74), ошибка, сообщаемая в E2E-обратной связи по ошибкам, является ошибкой в FL, которая еще не скорректирована. Модуль 54 определения ошибок TX сообщает видеокодеру 20 о том, что ошибка, сообщаемая в E2E-обратной связи по ошибкам, является ошибкой в линии связи FL, и видеокодер 20 затем может применять контроль ошибок к кадру, который впоследствии кодируется (76), чтобы останавливать распространение ошибки. Таким образом, если SN1 больше чем или равен SN2, видеокодер 20 может (a) использовать другой опорный кадр для нового кадра, (b) повышать внутреннюю частоту обновления в макроблоках (MB) или (c) вставлять информационный кадр (I-кадр), чтобы останавливать распространение ошибки в системе 14 декодера.
Если SN2 больше чем или равен SN1, ошибка, сообщаемая в E2E-обратной связи по ошибкам, является ошибкой в RL, которая уже скорректирована, и видеокодер 20 не предпринимает действия для того, чтобы корректировать ошибку. Если SN2 равен SN1, кадр, включающий в себя пакет, сообщаемый в E2E-обратной связи по ошибкам, является последним кадром, который имеет ошибку в RL, которую видеокодер 20 уже скорректировал, и видеокодер 20 не предпринимает дальнейших действий для того, чтобы корректировать видеопакет, ассоциированный с SN2.
Процесс, показанный на блок-схеме последовательности операций по фиг. 3, может осуществляться в пределах любого подходящего отрезка времени. В одном примере, ошибка, сообщаемая в E2E-обратной связи по ошибкам, корректируется, в случае необходимости, приблизительно в течение 660 миллисекунд со времени, когда видеокодер 20 формирует видеокадр (61). После временного кадра в 660 миллисекунд процесс может быть повторен для другого кадра видеоданных. Буфер SN в модуле 52 извлечения SN ошибок в RL сохраняет ранее записанный SN1 до тех пор, пока SN1 не перезаписывается с SN последней ошибки в RL.
Фиг. 4 является блок-схемой последовательности операций, иллюстрирующей другой примерный режим работы системы 12 кодера, использующей другую технологию для фильтрации ошибок в RL из E2E-обратной связи по ошибкам. Процесс, показанный на фиг. 4, практически соответствует процессу, показанному на фиг. 3, но отличается тем, что фильтр 50 ошибок идентифицирует последнюю ошибку в RL, которая скорректирована посредством видеокодера 20, посредством порядкового номера SN3 пакета, содержащего ошибку, а не последнего пакета последнего кадра видеоданных, включающих в себя ошибку. После того как видеокодер 20 формирует видеокадр (61) из данных, принимаемых от видеоисточника 18, система 12 кодера передает видеокадр в систему 14 декодера через AN-компонент 15 и канал 16 (64).
В отличие от примерной блок-схемы последовательности операций, показанной на фиг. 3, при работе в режиме, показанном на блок-схеме последовательности операций по фиг. 4, видеокодер 20 идентифицирует ошибку в RL посредством порядкового номера SN3 точно соответствующего пакета, содержащего потерянные данные (80), а не SN1 последнего пакета последнего кодированного кадра, который включает в себя ошибку. При работе системы 12 кодера в режиме, показанном на фиг. 4, видеокодер 20 может быть выполнен с возможностью применять коррекцию ошибок к пакету, идентифицированному посредством порядкового номера SN3, вместо применения коррекции ошибок ко всему видеокадру, который может охватывать несколько пакетов, как в примере, показанном на фиг. 3. Тем не менее, в качестве альтернативы, видеокодер 20 может применять коррекцию ошибок ко всему видеокадру, даже если порядковый номер SN3 точно соответствующего пакета, содержащего потерянные данные, идентифицирован и отслеживается посредством модуля 52 извлечения SN ошибок в RL.
В одном примере, AN-компонент 15 отправляет NAK в MAC-уровень 30, когда ошибка при передаче возникает, которое сообщает PCP-модулю 56 о MAC-пакете, ассоциированном с NAK. После того как PCP-модуль 56 определяет то, что MAC-пакет включает в себя видеоданные, PCP-модуль 56 сообщает RLP-модулю 55 о том, какая RLP-очередь содержит пакет, который подвергнут ошибке при передаче, с помощью NAK RLP-пакета. RLP-модуль 55 определяет то, какой пакет содержит потерянные данные или какой пакет потерян, что позволяет RLP-модулю 55 определять порядковый номер SN3 пакета. Реализация технологии, которая идентифицирует SN3 потерянного пакета или пакета, содержащего ошибку, может быть более сложной, чем реализация технологии, которая идентифицирует SN1 последнего пакета видеокадра, который включает в себя ошибку, поскольку первая технология может требовать модификации RTP-уровня 26A и RLP-модуля 55.
Модуль 52 извлечения SN ошибок в RL записывает SN3 точно соответствующего пакета, содержащего потерянные данные (82). Оставшаяся часть блок-схемы последовательности операций, показанной на фиг. 4, аналогична показанной на фиг. 3. В частности, видеокодер 20 корректирует ошибку в RL с использованием любой подходящей технологии (68), фильтр 50 ошибок принимает E2E-обратную связь по ошибкам от видеодекодера 42, которая указывает SN2 пакета, содержащего потерянные видеоданные (72), и сравнивает SN3 с SN2, чтобы определять то, является ли ошибка, сообщаемая в E2E-обратной связи по ошибкам, ошибкой в RL, которая скорректирована посредством видеокодера 20 (74). Если SN3 больше чем или равен SN2, пакет, содержащий ошибку, идентифицированный посредством SN2, является ошибкой в RL, и видеокодер 20 не предпринимает никаких действий по коррекции.
Если SN3 меньше, чем SN2, пакет, включающий в себя потерянные данные и имеющий SN2, является результатом ошибки в FL, которая не скорректирована посредством видеокодера 20. Фильтр 50 ошибок затем может запрашивать видеокодер 20 применять коррекцию ошибок к ошибке, сообщаемой в E2E-обратной связи по ошибкам, чтобы предотвращать дополнительное распространение ошибки (76). В частности, фильтр 50 ошибок может запрашивать модуль 60 адаптивного контроля ошибок по полосе пропускания канала, который затем запрашивает видеокодер. Как пояснено ранее, модуль 58 адаптации скорости RL отслеживает условия RL, а модуль 60 адаптивного контроля ошибок по полосе пропускания канала регулирует скорость кодирования видеокодера 20 в соответствии с условиями RL. Таким образом, модуль 60 адаптивного контроля ошибок по полосе пропускания канала может определять доступную полосу пропускания канала 16 в RL (73) на основе обратной связи от модуля 58 адаптации скорости RL перед запрашиванием видеокодеру 20 применять контроль ошибок. Хотя не показано на фиг. 3, процесс, показанный на нем, также может включать в себя определение доступной полосы пропускания канала 16 в RL перед запрашиванием видеокодеру 20 применять контроль ошибок.
Технологии, описанные в этом раскрытии сущности, могут быть реализованы в микропроцессоре общего назначения, процессоре цифровых сигналов (DSP), специализированной интегральной схеме (ASIC), программируемой пользователем вентильной матрице (FPGA) или других эквивалентных логических устройствах. Например, устройство 12 видеокодера, устройство 14 видеодекодера и ассоциированные компоненты и модули могут быть реализованы как части процесса кодирования или процесса кодирования/декодирования (кодека), выполняющегося в DSP или другом устройстве обработки. Соответственно, компоненты, описанные как модули, могут формировать свои программируемые признаки как процесс или отдельный процесс.
В одном или более примеров, описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации вышеозначенного. Если реализованы в программном обеспечении, функции могут быть сохранены или переданы как одна или более инструкций или код на машиночитаемом носителе. Машиночитаемые носители включают в себя как компьютерные носители хранения данных, так и среду связи, включающую в себя любую передающую среду, которая упрощает перемещение компьютерной программы из одного места в другое. Носителями хранения могут быть любые доступные носители, к которым можно осуществлять доступ посредством компьютера. В качестве примера, а не ограничения, эти машиночитаемые носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для того, чтобы переносить или сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Так же, любое подключение корректно называть машиночитаемым носителем. Например, если программное обеспечение передается с веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включены в определение носителя. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число машиночитаемых носителей. При использовании в данном документе передающая среда включает в себя любые среды, которые упрощают передачу компьютерной программы из одного места в другое.
Описаны различные примеры раскрытия сущности. Эти и другие примеры находятся в пределах объема нижеприведенной формулы изобретения.
Изобретение относится к кодированию видео и, в частности, к технологиям контроля ошибок в видео. Техническим результатом является создание способа контроля ошибок в видеоданных, который позволяет повышать эффективность видеокодера. Указанный технический результат достигается тем, что осуществляют прием индикации относительно ошибки в видеоданных от видеодекодера, определение того, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством, и применение контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи. Например, индикация относительно ошибки в видеоданных может включать в себя первый порядковый номер (SN) пакета, содержащего потерянные данные, и определение того, произошла ли ошибка в видеоданных в обратной линии связи, может включать в себя сравнение первого SN со вторым SN пакета, ассоциированного с последней ошибкой в обратной линии связи. 4 н. и 29 з.п ф-лы, 4 ил.
1. Способ контроля ошибок в видеоданных, содержащий этапы, на которых принимают индикацию относительно ошибки в видеоданных, обнаруживаемой посредством видеодекодера;
определяют, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством; и применяют контроль ошибок в ответ на индикацию относительно ошибки в видеоданных,
если ошибка в видеоданных произошла не в обратной линии связи, и не применяют контроль ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла в обратной линии связи.
2. Способ по п.1, в котором, если ошибка в видеоданных произошла в обратной линии связи беспроводной сети, способ дополнительно содержит этап, на котором сохраняют информацию, касающуюся ошибки в видеоданных, до приема индикации относительно ошибки в видеоданных от видеодекодера, и в котором определение, произошла ли ошибка в видеоданных в обратной линии связи, основано на сохраненной информации.
3. Способ по п.2, дополнительно содержащий этап, на котором применяют контроль ошибок в ответ на ошибку в видеоданных до приема индикации относительно ошибки в видеоданных от видеодекодера.
4. Способ по п.1, в котором ошибка в видеоданных является первой ошибкой в видеоданных, и способ дополнительно содержит этап, на котором сохраняют информацию, касающуюся второй ошибки в видеоданных, которая произошла в обратной линии связи беспроводной сети, до приема индикации относительно ошибки в видеоданных от видеодекодера, и в котором определение, произошла ли первая ошибка в видеоданных в обратной линии связи, основано на сохраненной информации.
5. Способ по п.4, дополнительно содержащий этап, на котором применяют контроль ошибок в ответ на вторую ошибку в видеоданных.
6. Способ по п.4, в котором индикация относительно первой ошибки в видеоданных включает в себя первый порядковый номер первого пакета, ассоциированного с первой ошибкой в видеоданных, и информация содержит второй порядковый номер второго пакета, ассоциированного со второй ошибкой в видеоданных, и определение, произошла ли первая ошибка в видеоданных в обратной линии связи, содержит этап, на котором сравнивают первый и второй порядковые номера.
7. Способ по п.6, в котором первый пакет содержит первую ошибку в видеоданных.
8. Способ по п.6, в котором второй пакет является последним пакетом кодированного кадра видеоданных, в котором вторая ошибка в видеоданных произошла в рамках кодированного кадра.
9. Способ по п.6, в котором второй пакет содержит вторую ошибку в видеоданных.
10. Способ по п.4, в котором сохранение информации, касающейся второй ошибки в видеоданных, содержит этапы, на которых назначают порядковый номер последнему пакету кодированного кадра видеоданных; передают кодированный кадр через беспроводную сеть; определяют, привела ли передача кодированного кадра через обратную линию связи беспроводной сети ко второй ошибке в видеоданных; и сохраняют порядковый номер, если передача кодированного кадра через обратную линию связи беспроводной сети привела ко второй ошибке в видеоданных.
11. Способ по п.10, в котором определение, привела ли передача кодированного кадра ко второй ошибке в видеоданных, содержит этап, на котором проверяют, задан ли флаг в модуле протокола линии радиосвязи.
12. Способ по п.1, в котором применение контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи, содержит этап, на котором выбирают технологию контроля ошибок на основе доступной полосы пропускания беспроводной сети.
13. Способ по п.1, дополнительно содержащий этапы, на которых кодируют кадр видеоданных, чтобы формировать кодированный кадр, формируют пакет, по меньшей мере, с частью кодированного кадра и передают пакет через беспроводную сеть в видеодекодер, в котором ошибка в видеоданных произошла в рамках кодированного кадра.
14. Способ по п.13, в котором перед кодированием последующего кадра видеоданных, способ содержит этап, на котором определяют, привела ли передача пакета через обратную линию связи беспроводной сети к ошибке в видеоданных.
15. Способ по п.14, в котором определение, привела ли передача пакета через обратную линию связи беспроводной сети к ошибке в видеоданных, содержит этапы, на которых определяют, принял ли уровень управления доступом к среде (MAC) отрицательное квитирование (NAK) из беспроводной сети, и определяют, является ли принимаемое NAK ассоциированным с пакетом.
16. Способ по п.15, в котором определение, принял ли МАС-уровень NAK из беспроводной сети, содержит этап, на котором проверяют, задан ли флаг в модуле протокола линии радиосвязи (RLP).
17. Способ по п.1, в котором контроль ошибок содержит, по меньшей мере, одно из кодирования кадра видеоданных как информационного кадра, увеличение процента внутренне кодированных макроблоков или использование первого кодированного кадра видеоданных, который кодирован перед вторым кадром видеоданных, содержащим ошибку в видеоданных, в качестве эталона для оценки движения.
18. Система для контроля ошибок в видеоданных, содержащая приемопередающее устройство, чтобы принимать индикацию относительно ошибки в видеоданных, обнаруживаемой посредством видеодекодера, видеокодер, фильтр ошибок, чтобы определять, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством, при этом видеокодер выполнен с возможностью применять контроль ошибок в ответ на индикацию относительно ошибки в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи.
19. Система по п.18, в которой, если ошибка в видеоданных произошла в обратной линии связи беспроводной сети, фильтр ошибок сохраняет информацию, касающуюся ошибки в видеоданных, до приема индикации относительно ошибки в видеоданных от видеодекодера.
20. Система по п.19, в которой видеокодер выполнен с возможностью кодировать кадр видеоданных, и система дополнительно содержит модуль, чтобы формировать пакет, по меньшей мере, с частью кодированного кадра, причем приемопередающее устройство выполнено с возможностью передавать пакет через беспроводную сеть в видеодекодер, и информация содержит порядковый номер последнего пакета кодированного кадра.
21. Система по п.18, в которой ошибка в видеоданных является первой ошибкой в видеоданных, и фильтр ошибок выполнен с возможностью сохранять информацию, касающуюся второй ошибки в видеоданных, которая произошла в обратной линии связи беспроводной сети, и определять, произошла ли первая ошибка в видеоданных в обратной линии связи, на основе сохраненной информации.
22. Система по п.18, в которой видеокодер выполнен с возможностью кодировать кадр видеоданных, и система дополнительно содержит модуль, чтобы формировать пакет, по меньшей мере, с частью кодированного кадра, причем приемопередающее устройство выполнено с возможностью передавать пакет через беспроводную сеть в видеодекодер, и информация содержит порядковый номер последнего пакета кодированного кадра, если передача кодированного видеокадра через беспроводную сеть привела ко второй ошибке в видеоданных.
23. Система по п.22, при этом система дополнительно содержит модуль протокола линии радиосвязи (RLP) и уровень управления доступом к среде (MAC), причем RLP-модуль выполнен с возможностью определять, принял ли МАС-уровень отрицательное квитирование (NAK) от сетевого устройства, и определять, ассоциировано ли NAK с пакетом, чтобы определять, произошла ли вторая ошибка в видеоданных, когда пакет передавался через беспроводную сеть.
24. Система по п.18, в которой пакет является первым пакетом, и индикация относительно ошибки в видеоданных содержит порядковый номер второго пакета, включающего в себя потерянные данные.
25. Система по п.24, в которой ошибка в видеоданных является первой ошибкой в видеоданных, а порядковый номер является первым порядковым номером, при этом фильтр ошибок содержит первый модуль, чтобы принимать первый порядковый номер от приемопередающего устройства; и второй модуль, чтобы принимать второй порядковый номер, идентифицирующий последний пакет последнего кодированного кадра видеоданных, содержащий вторую ошибку в видеоданных, которая произошла в обратной линии связи, при этом фильтр ошибок выполнен с возможностью сравнивать первый и второй порядковые номера, чтобы определять, произошла ли первая ошибка в видеоданных в обратной линии связи.
26. Система по п.25, при этом система дополнительно содержит уровень транспортного протокола реального времени (RTP), чтобы назначать второй порядковый номер последнему пакету и предоставлять второй порядковый номер во второй модуль, причем второй модуль определяет, произошла ли вторая ошибка в видеоданных при проверке, задается ли флаг в модуле протокола линии радиосвязи.
27. Система по п.24, в которой видеокодер выполнен с возможностью кодировать кадр видеоданных, и система дополнительно содержит модуль, чтобы формировать пакет, по меньшей мере, с частью кодированного кадра, причем приемопередающее устройство выполнено с возможностью передавать пакет через беспроводную сеть в видеодекодер, при этом ошибка в видеоданных является первой ошибкой в видеоданных, а порядковый номер является первым порядковым номером, и фильтр ошибок содержит первый модуль, чтобы принимать первый порядковый номер от приемопередающего устройства; и второй модуль, чтобы принимать второй порядковый номер, идентифицирующий пакет кадра видеоданных, если передача пакета через обратную линию связи беспроводной сети привела ко второй ошибке в видеоданных, при этом фильтр ошибок выполнен с возможностью сравнивать первый и второй порядковые номера, чтобы определять, произошла ли первая ошибка в видеоданных в обратной линии связи.
28. Система по п.24, в которой ошибка в видеоданных является первой ошибкой в видеоданных, пакет является первым пакетом, а порядковый номер является первым порядковым номером, при этом фильтр ошибок содержит первый модуль, чтобы принимать первый порядковый номер от приемопередающего устройства; и второй модуль, чтобы принимать второй порядковый номер, идентифицирующий второй пакет, содержащий вторую ошибку в видеоданных, которая произошла в обратной линии связи, при этом фильтр ошибок выполнен с возможностью сравнивать первый и второй порядковые номера, чтобы определять, произошла ли первая ошибка в видеоданных в обратной линии связи.
29. Система по п.18, дополнительно содержащая первый модуль, чтобы отслеживать состояние беспроводной сети; второй модуль, чтобы выбирать технологию контроля ошибок, применяемую посредством видеокодера, на основе состояния беспроводной сети.
30. Система по п.18, в которой контроль ошибок содержит, по меньшей мере, одно из кодирования кадра видеоданных как информационного кадра, увеличение процента внутренне кодированных макроблоков или использование первого кадра видеоданных, который кодирован перед вторым кадром видеоданных, содержащим ошибку в видеоданных, в качестве эталона для оценки движения.
31. Машиночитаемый носитель, содержащий инструкции, чтобы инструктировать компьютер принимать индикацию относительно ошибки в видеоданных, обнаруживаемой посредством видеодекодера;
инструкции, чтобы инструктировать компьютер определять, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством;
инструкции, чтобы инструктировать компьютер применять контроль ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи, и не применять контроль ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла в обратной линии связи.
32. Машиночитаемый носитель по п.31, дополнительно содержащий инструкции, чтобы инструктировать компьютер отслеживать состояние беспроводной сети и выбирать контроль ошибок на основе состояния беспроводной сети.
33. Система для контроля ошибок в видеоданных, содержащая средство приема индикации относительно ошибки в видеоданных, обнаруживаемой посредством видеодекодера;
средство определения, произошла ли ошибка в видеоданных в обратной линии связи беспроводной сети между видеокодером и сетевым устройством;
средство применения контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла не в обратной линии связи, и не применения контроля ошибок в ответ на ошибку в видеоданных, если ошибка в видеоданных произошла в обратной линии связи.
US 2002080802 A1, 27.06.2002 | |||
US 2006188025 A1, 24.08.2006 | |||
УСТРОЙСТВО ДЛЯ ПЕРЕДАЧИ И ПРИЕМА ДИСКРЕТНОЙ ИНФОРМАЦИИ С СЕЛЕКТИВНЫМ ЗАПРОСОМ ОШИБОК | 1991 |
|
RU2019044C1 |
Устройство передачи приема телевизионного сигнала с помощью дифференциальной импульсно-кодовой модуляции | 1988 |
|
SU1633521A1 |
CHEUNG G | |||
et al | |||
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
YAO WANG et al | |||
Error |
Авторы
Даты
2011-01-10—Публикация
2008-01-22—Подача