способ переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения
Классы МПК: | H04N21/44 обработка элементарных видеопотоков, например соединение видеоклипа, восстановленного из локальной памяти, с входящим видео потоком или визуализация сцен в соответствии с MPEG-4 графами сцены H04N21/234 обработка элементарных видеопотоков, например соединение потоков контента или манипулирование MPEG-4 графами сцены |
Автор(ы): | ФЕРГЮСОН Кейт Лэмонт (ZA) |
Патентообладатель(и): | КСИР (ZA) |
Приоритеты: |
подача заявки:
2008-08-26 публикация патента:
20.07.2014 |
Изобретение относится к потоковой видеопередаче, в частности, к способу/устройству переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения. Техническим результатом является снижение вероятности случайного переключения между двумя произвольными (похожими или несхожими) кодированными видеопотоками в течение короткого промежутка времени, при любой (низкой или высокой) скорости передачи в битах, без разрыва частоты кадров или без введения заметных долговременных ошибок из-за дрейфа. Предложен способ переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения, и к соответствующим устройству, видеоплатформе и системе. Способ предусматривает использование промежуточного потока переключения, который зависит от потока пункта назначения причем поток переключения содержит множество последовательных GOP последовательностей, при этом каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр, а также предусматривает переключение от видеопотока источника к I-кадру GOP последовательности потока переключения и затем переключение от потока переключения к потоку пункта назначения, так что последующие кадры потока пункта назначения могут быть декодированы с использованием накопленного опорного уровня GOP последовательности потока переключения. 5 н. и 15 з.п. ф-лы, 8 ил.
Формула изобретения
1.Способ переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения в канале с узкой шириной полосы пропускания или в канале с широкой шириной полосы пропускания, который время от времени имеет низкую пропускную способность, причем независимый поток доставляется каждому пользователю и каждый пользователь может управлять процессом переключения без воздействия на поток любого другого пользователя, наблюдающего этот же самый поток источника или пункта назначения, включающий в себя следующие операции: использование промежуточного потока переключения, который зависит от потока пункта назначения, причем поток переключения содержит множество последовательных GOP последовательностей, при этом каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр; переключение от видеопотока источника к I-кадру GOP последовательности потока переключения; и переключение от потока переключения к потоку пункта назначения, так что последующие кадры потока пункта назначения могут быть декодированы с использованием накопленного опорного уровня GOP последовательности потока переключения.
2. Способ по п.1, в котором последовательные кадры конкретной GOP последовательности потока переключения и соответствующие кадры потока пункта назначения имеют постепенно уменьшающуюся ошибку из-за дрейфа.
3. Способ по п.1, в котором каждая GOP последовательность потока переключения имеет период менее 1 сек.
4. Способ по п.3, в котором период каждой GOP последовательности потока переключения по меньшей мере на один порядок величины короче чем период каждой GOP последовательности потока пункта назначения.
5. Способ по п. 1, в котором начальный I-кадр конкретной GOP последовательности потока переключения образует точку входа от потока источника в поток переключения.
6. Способ по п.5, который предусматривает задержку переключения от потока источника к потоку переключения, пока не будет обнаружен I-кадр GOP последовательности потока переключения, за счет чего переключение происходит непосредственно в I-кадр GOP последовательности потока переключения.
7. Способ по п.1, в котором каждый кадр в потоке пункта назначения имеет соответствующий согласованный кадр в потоке переключения, так что кадровая скорость (передачи в битах) потока переключения совпадает с кадровой скоростью (передачи в битах) потока пункта назначения.
8. Способ по п.1, в котором каждый кадр потока переключения имеет кадровую скорость передачи в битах, которая совпадает с кадровой скоростью передачи в битах соответствующего кадра в потоке пункта назначения, так что кадровая скорость передачи в битах потока переключения никогда не превышает кадровую скорость передачи в битах потока пункта назначения.
9. Способ по п.8, в котором кодирование каждого кадра в потоке переключения производят без выходного буфера кодирования, за счет использования в кадровом кодере потока переключения стратегии назначения числа кадровых битов, в которой максимальное или среднее искажение для каждого кадра сведено к минимуму, при условии, что ограничение полного числа кадровых битов равно или меньше полного числа битов в соответствующем кадре в потоке пункта назначения.
10. Способ по п.1, который предусматривает сравнение декодированного кадра потока переключения с соответствующим декодированным кадром потока пункта назначения, чтобы определить, превышает различие между двумя кадрами или нет заданный порог ошибки из-за дрейфа и который предусматривает переключение от потока переключения к потоку пункта назначения только если различие между двумя соответствующими кадрами соответствующих потоков будет меньше чем порог ошибки из-за дрейфа.
11. Способ по п.1, в котором каждая GOP последовательность потока переключения содержит постоянное число кадров.
12. Способ по п.1, в котором каждая GOP последовательность потока переключения содержит переменное число кадров.
13. Машинно-считываемый носитель, имеющий хранящийся на нем набор команд, который, при выполнении вычислительной машиной, побуждает вычислительную машину осуществлять способ переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения в канале с узкой шириной полосы пропускания или в канале с широкой шириной полосы пропускания, который время от времени имеет низкую пропускную способность, причем независимый поток доставляется
каждому пользователю и каждый пользователь может управлять процессом переключения без воздействия на поток любого другого пользователя, наблюдающего этот же самый видеопоток источника или пункта назначения, при этом указанный способ включает в себя следующие операции: использование промежуточного потока переключения, который зависит от потока пункта назначения, причем поток переключения содержит множество последовательных GOP последовательностей, при этом каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр; переключение от видеопотока источника к I-кадру GOP последовательности потока переключения; и переключение от потока переключения к потоку пункта назначения, так что последующие кадры потока пункта назначения могут быть декодированы с использованием накопленного опорного уровня GOP последовательности потока переключения.
14. Устройство видеокодирования, которое содержит главный кодер, выполненный с возможностью приема входного видеопотока и, на основании этого, позволяющий кодировать видеопоток пункта назначения со ссылкой на опорный кадр в канале с узкой шириной полосы пропускания или в канале с широкой шириной полосы пропускания, который время от времени имеет низкую пропускную способность, причем устройство дополнительно содержит: кодер переключения, который зависит от главного кодера, причем кодер переключения получает в качестве ввода как опорный кадр от главного кодера, так и число бит, генерируемых для каждого кадра потока пункта назначения при помощи главного кодера, за счет чего он генерирует каждый соответствующий кадр потока переключения, который содержит множество последовательных GOP последовательностей, причем каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр.
15. Устройство по п.14, в котором кодер переключения выполнен с возможностью использования опорного кадра главного кодера в качестве ввода для кодирования каждого кадра потока переключения, причем число бит конкретного кодированного кадра потока пункта назначения действует как ограничитель скорости передачи в битах для соответствующего кадра потока переключения.
16. Устройство по п.14, в котором кодер переключения дополнительно получает в качестве ввода входной видеопоток и использует входной видеопоток для генерирования I-кадра каждой GOP последовательности.
17. Платформа видеодоставки, которая содержит множество видеоустройств, причем каждое видеоустройство содержит главный кодер, выполненный с возможностью приема входного видеопотока и, на основании этого, позволяющий кодировать видеопоток пункта назначения со ссылкой на опорный кадр в канале с узкой шириной полосы пропускания или в канале с широкой шириной полосы пропускания, который время от времени имеет низкую пропускную способность, причем устройство видеокодирования дополнительно содержит: кодер переключения, который зависит от главного кодера, причем кодер переключения получает в качестве ввода как опорный кадр от главного кодера, так и число бит, генерируемых для каждого кадра потока пункта назначения при помощи главного кодера, за счет чего он генерирует каждый соответствующий кадр потока переключения, который содержит множество последовательных GOP последовательностей, причем каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр.
18. Платформа видеодоставки по п.17, которая содержит: множество переключателей видеоустройств, причем каждый переключатель связан с конкретным видеоустройством и производит переключение между потоком переключения и потоком пункта назначения этого устройства; и переключатель платформы, который выбирает поток из конкретного видеоустройства в качестве выходного потока платформы видеодоставки.
19. Система для потоковой передачи видео, содержащая: платформу видеодоставки по п.17; и по меньшей мере один декодер.
20. Система по п.19, которой платформа видеодоставки и по меньшей мере один декодер взаимосвязаны по сети связи, содержащей Internet, которая может иметь, время от времени, низкую пропускную способность.
Описание изобретения к патенту
Область применения изобретения
Настоящее изобретение в общем имеет отношение к потоковой видеопередаче, а более конкретно к способу переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения, а также имеет отношение к соответствующим устройству и системе.
Предпосылки к созданию изобретения
Известны видеопередачи в истинном масштабе времени в сети сервер/пользователь, когда имеются множество контентных каналов, каждый из которых потенциально имеет множество скоростей передачи в битах, где требуется обеспечивать возможность для пользователей переключаться гладко и быстро между каналами и скоростями передачи в битах. Использование видеопотоков с цифровым кодированием создает проблему обеспечения качества такого переключения. Существующие технические решения относятся к высоким скоростям передачи в битах, когда средняя скорость передачи в битах в канале доставки для каждого пользователя выше чем для доставляемого потока. Эти технические решения не могут обеспечивать гарантированное быстрое переключение при низких скоростях передачи в битах без разрыва видеопотока у пользователя.
Известно, что сжатые видеопотоки типично образованы из последовательностей следующих друг за другом кадров, подразделенных на группы изображений (GOP). Каждая группа GOP содержит I-кадр, который не зависит от других предыдущих кадров, за которым следуют один или несколько Р-кадров или В-кадров, которые прогнозированы за счет окружающих кадров в этой же группе. Для получения одинакового визуального качества I-кадры типично требуют число бит, которое превышает больше чем в 3 раза число бит для Р-кадров или В-кадров. Переключение между статистически различными потоками, такое как псевдослучайное переключение каналов, или введение потока в первый раз, должно происходить во время I-кадра. Переключение Р-кадра требует согласования опор прогнозирования в декодере или у пользователя. Опора прогнозирования представляет собой кадр, который хранится в кодере, причем требуется его точное отображение на выходе декодера. Если переключения производят во время Р-кадра без согласования опор, то тогда накопленное рассогласование за счет неправильных опор создает визуальные артефакты (ложные изображения) в декодере. Это обычно называют ошибкой из-за дрейфа (из-за ухода параметров).
Заявителю также известна практика переключения между сходными потоками, когда один поток отличается от другого только средней скоростью передачи в битах, а в остальном эти потоки поступают от одного и того же исходного видеоисточника, с использованием SI-кадров или SP-кадров (S-кадров). Существуют перекрывающиеся кадры между двумя потоками, причем стремятся кодировать различия между текущим потоком и потоком пункта назначения, чтобы обеспечивать точное совпадение опор прогнозирования для снижения ошибки из-за дрейфа. Однако эти перекрывающиеся кадры также могут генерировать намного больше бит, чем стандартные Р-кадры и, кроме того, каждый перекрывающийся кадр должен быть уникальным S-кадром.
Частота I/S-кадров в потоке определяет точки переключения. Другими словами, канал пункта назначения может быть переключен во время I-кадра или непосредственно сразу после получения S-кадра, так что последующие Р-кадры будут иметь совпадающие внутренние опорные кадры. Таким образом, поток, имеющий высокую частоту I/S-кадров, имеет больше потенциальных точек переключения, за счет повышенной средней скорости передачи в битах, что допустимо только в каналах, которые поддерживают высокие средние скорости передачи в битах.
В описании настоящего изобретения поток или канал с низкой скоростью передачи в битах может быть определен как имеющий достаточную полосу пропускания только для передачи Р-кадров и в лучшем случае нескольких или имеющих плохое качество I-кадров с промежутками тысячи кадров (несколько минут). Это подразумевает отсутствие естественных точек переключения или их очень ограниченное число. Повышение частоты I/S-кадров приводит к повышению стоимости бита, что потенциально не может быть обеспечено в каналах с низкой скоростью передачи в битах и вызывает разрыв видеопередачи, когда требуется повторная буферизация в декодере.
Для обеспечения быстрого и гладкого обслуживания при низкой скорости передачи в битах, когда время переключения от одного потока к другому является коротким и детерминистическим, требуются периоды I-кадров (для несхожих потоков) или S-кадров (для похожих потоков) около 1 секунды или меньше. Таким образом, для любого переключения от одного канала к другому период разрыва должен быть меньше чем 1 секунда (а в среднем 0.5 секунды), пока не будет получен следующий I-кадр или S-кадр, и следующие Р-кадры не будут иметь достаточно согласованные опоры, чтобы произвести декодирование без заметной ошибки из-за дрейфа.
Проблемой является случайное переключение между двумя произвольными (похожими или несхожими) кодированными видеопотоками в течение короткого промежутка времени, при любой (низкой или высокой) скорости передачи в битах, без разрыва частоты кадров или без введения заметных долговременных ошибок из-за дрейфа. Задачей настоящего изобретения является решение или по меньшей мере сведение к минимуму этой проблемы.
Известный уровень техники
В публикации Н.264 International Standard video coding definition [1] приведена стандартизованная концепция S-кадров для переключения между похожими потоками. Она основана на предложении Karczewicz и Kurceren [2, 3] и объяснение ее замысла приведено в академической публикации [4]. Альтернативные проекты S-кадров предложены для использования в преобразованиях элементарной волны [5], чтобы уменьшить число бит S-кадра. В этих методиках используют единственный кадр переключения и поэтому главным образом создают больше битов на S-кадр, чем поток пункта назначения, причем невозможно гарантировать гладкое переключение при низкой скорости передачи в битах с незаметной ошибкой из-за дрейфа. В другом известном способе не используют переключение в S-кадре, а выбирают прямую точку переключения, в которой различие между кадрами текущего потока и потока пункта назначения находится ниже заметной ошибки из-за дрейфа [6]. В этом способе невозможно гарантировать время переключения в заданных пределах. Дополнительная информация также может быть использована для оценки различия между опорными кадрами при переключении от потоков и к потокам, однако это также требует больше бит, чем может обеспечить канал [7]. Следует иметь в виду, что все эти методики основаны на статистических подобиях текущего потока и потока пункта назначения, и поэтому не могут быть использованы для псевдослучайного переключения каналов.
Сущность изобретения
В связи с изложенным, в соответствии с настоящим изобретением предлагается способ переключения от кодированного видеопотока источника к кодированному видеопотоку пункта назначения, причем указанный способ включает в себя следующие операции:
использование промежуточного потока переключения, который зависит от потока пункта назначения, причем поток переключения содержит множество последовательных GOP последовательностей, при этом каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр;
переключение от видеопотока источника к 1-кадру GOP последовательности потока переключения; и
переключение от потока переключения к потоку пункта назначения, так что последующие кадры потока пункта назначения могут быть декодированы с использованием накопленного опорного уровня GOP последовательности потока переключения.
Другими словами, способ может предусматривать постепенное переключение от потока источника к потоку пункта назначения с использованием промежуточной GOP последовательности (потока переключения). Таким образом, начальный I-кадр конкретной GOP последовательности потока переключения образует точку входа от потока источника в поток переключения. Следовательно, последующие кадры конкретной GOP последовательности потока переключения могут сходиться в направлении соответствующих кадров потока пункта назначения. Под схождением понимают, что последующие кадры конкретной GOP последовательности потока переключения и соответствующие кадры потока пункта назначения могут иметь постепенно уменьшающуюся ошибку из-за дрейфа.
Поток переключения может зависеть только от потока пункта назначения. Вместо этого поток переключения может зависеть как от потока пункта назначения, так и от видеовхода.
Каждая GOP последовательность потока переключения может иметь короткий период или короткую длительность. Под коротким периодом понимают, что переключение от потока источника к потоку переключения и после этого к потоку пункта назначения может быть осуществлено быстро и преимущественно гладко (seamlessly), без введения заметных долговременных артефактов в виде ошибки из-за дрейфа. Период каждой GOP последовательности потока переключения может быть по меньшей мере на один порядок величины (или на несколько порядков величины) короче чем период каждой GOP последовательности (то есть период между последовательными I-кадрами) потока пункта назначения. Период каждой GOP последовательности может быть меньше чем 1 секунда.
Начальный I-кадр конкретной GOP последовательности потока переключения образует точку входа от потока источника в поток переключения. Следовательно, когда получен запрос переключения (например, когда пользователь изменяет каналы), способ предусматривает задержку переключения от потока источника к потоку переключения, пока не будет обнаружен I-кадр GOP последовательности потока переключения, за счет чего переключение происходит непосредственно в I-кадр GOP последовательности.
Таким образом, задержка переключения от потока источника к потоку пункта назначения может быть не больше чем период GOP последовательности потока переключения и при случайных запросах переключения в среднем составляет половину периода. Таким образом, если, например, период равен 1 секунде, задержка переключения может составлять от 0 до 1 секунды (в зависимости от того, когда получен запрос переключения относительно специфической GOP последовательности), и в среднем составляет 0.5 секунды.
Частота кадров потока переключения может совпадать с частотой кадров потока пункта назначения. Каждый кадр потока переключения может иметь скорость передачи в битах, которая совпадает со скоростью передачи в битах соответствующего или синхронного кадра в потоке пункта назначения. Таким образом, отсутствует изменение частоты кадров и/или скорости передачи в битах между потоком переключения и потоком пункта назначения, за счет чего обеспечивается гладкий поток декодера или у пользователя (или поток в другом приемном устройстве), когда получают потоки переключения и пункта назначения.
Каждый кадр потока переключения может быть рассчитан или выведен из соответствующего кадра потока пункта назначения с использованием существующих алгоритмов или методик кодирования кадров.
Кодирование каждого кадра в потоке переключения может быть осуществлено с использованием стратегии назначения числа битов, когда максимальное (или среднее) искажение сведено к минимуму, при условии, что ограничение полного числа кадровых битов равно или меньше полного числа битов в соответствующем кадре в потоке пункта назначения. Искажение может быть измерено как различие между опорами потока переключения и потока пункта назначения. Эта стратегия кодирования может обеспечивать сведение к минимуму ошибки из-за дрейфа.
Способ может предусматривать сравнение декодированного кадра потока переключения с соответствующим декодированным кадром потока пункта назначения, чтобы определить, превышает различие между двумя кадрами или нет заданный порог ошибки из-за дрейфа. Способ предусматривает переключения от потока переключения к потоку пункта назначения, только если различие между двумя соответствующими кадрами соответствующих потоков будет меньше, чем порог ошибки из-за дрейфа. Если различие между соответствующими кадрами соответствующих потоков будет не меньше чем порог ошибки из-за дрейфа, тогда способ предусматривает пропускание последующего кадра потока переключения.
Каждая GOP последовательность потока переключения может иметь постоянное число кадров или переменное число кадров. Если число кадров постоянное, то это число может быть задано пользователем (например, 10 кадров для каждой GOP последовательности). Если число кадров переменное, то новая GOP последовательность (и, следовательно, новый I-кадр потока переключения) могут запускаться в ответ на определение того, что различие между соответствующими кадрами потока переключения и потока пункта назначения меньше чем порог ошибки из-за дрейфа. Если число кадров постоянное, то период GOP последовательности может определяться частотой кадров. Например, если GOP последовательность содержит 10 кадров и частота кадров равна 25 кадров в секунду, то период составляет 10/25 секунды или около 0.4 секунды.
Способ может найти особое применение в каналах связи, имеющих узкую полосу пропускания или иным образом способных обеспечивать только низкие скорости передачи в битах, однако следует иметь в виду, что применение настоящего изобретения не обязательно ограничено только такими каналами связи.
Потоки источника и пункта назначения могут быть независимыми потоками (например, имеющими полностью различный контент) или могут быть зависимыми потоками (например, имеющими одинаковый контент, но различные частоты смены кадров /скорости передачи в битах).
В изобретении предлагается также машинно-считываемый носитель, имеющий хранящийся на нем набор команд, который при выполнении вычислительной машиной, побуждает вычислительную машину осуществлять описанный здесь выше способ.
В изобретении предлагается также устройство видеокодирования, которое содержит главный кодер, выполненный с возможностью приема входного видеопотока и на основании этого позволяющий кодировать видеопоток пункта назначения со ссылкой на опорный кадр, причем устройство видеокодирования дополнительно содержит:
кодер переключения, который зависит от главного кодера, причем кодер переключения получает в качестве ввода как опорный кадр от главного кодера, так и число бит, генерируемых для каждого кадра потока пункта назначения при помощи главного кодера, за счет чего он генерирует каждый соответствующий кадр потока переключения, который содержит множество последовательных GOP последовательностей, причем каждая GOP последовательность содержит начальный I-кадр и по меньшей мере один последующий Р-кадр.
Более конкретно кодер переключения может быть выполнен с возможностью использования опорного кадра главного кодера в качестве ввода для кодирования каждого кадра потока переключения, причем число бит конкретного кодированного кадра потока пункта назначения действует как ограничитель скорости передачи в битах для соответствующего кадра потока переключения.
Кодер переключения может дополнительно получать в качестве ввода входной видеопоток (то есть ввод в главный кодер). Кодер переключения может использовать входной видеопоток для генерирования I-кадра каждой GOP последовательности.
Альтернативно, если кодер переключения не получает в качестве ввода входной видеопоток, он может использовать опорный кадр от главного кодера для генерирования I-кадра.
В изобретении предлагается также платформа видеодоставки, которая содержит множество описанных здесь выше устройств.
Платформа видеодоставки может содержать:
множество переключателей устройств, причем каждый переключатель устройства связан с конкретным устройством и производит переключение между потоком переключения и потоком пункта назначения этого устройства; и
переключатель платформы, который выбирает поток из конкретного устройства в качестве выходного потока платформы видеодоставки.
В изобретении предлагается также система для потоковой видеопередачи, причем указанная система содержит описанную здесь выше платформу видеодоставки и по меньшей мере один декодер. Платформа видеодоставки и декодер могут быть взаимосвязаны при помощи сети связи.
Указанные ранее и другие характеристики изобретения будут более ясны из последующего детального описания, приведенного в качестве примера со ссылкой на сопроводительные чертежи.
Краткое описание чертежей
На фиг.1 схематично показано устройство видеокодирования в соответствии с настоящим изобретением.
На фиг.2a схематично показана система, которая содержит устройство, показанное на фиг.1.
На фиг.2b и 2c показаны соответствующие участки системы, показанной на фиг.2a.
На фиг.3 показана схема последовательности операций верхнего уровня способа в соответствии с настоящим изобретением.
На фиг.4 показана схема последовательности операций нижнего уровня способа в соответствии с настоящим изобретением.
На фиг.5 схематично показаны кадры множества видеопотоков в соответствии с настоящим изобретением.
На фиг.6 схематично показана вычислительная машина в примерном виде вычислительной системы, в которой может быть выполнен набор команд, побуждающий вычислительную машину осуществлять любую одну или несколько обсуждающихся здесь методологий.
Подробное описание изобретения
Обратимся теперь к рассмотрению фиг.1, на которой позицией 100 показано в общем виде устройство видеокодирования в соответствии с настоящим изобретением. Устройство 100 содержит главный кодер 102, который сконфигурирован с возможностью приема входного видеопотока 106 и, обычным образом, с возможностью кодирования этого видеопотока 106 в кодированный видеопоток 108 пункта назначения. Видеопоток 106 может иметь любой подходящий формат, который может распознать главный кодер 102.
Главный кодер 102 содержит, обычным образом, процессор 110, который сконфигурирован или запрограммирован так, чтобы управлять работой главного кодера 102. Главный кодер 102 дополнительно содержит модуль 112 памяти (которым может быть любая обычная имеющая высокую скорость среда для хранения информации, оперативная память и т.п.), который предназначен для хранения на нем по меньшей мере временно, опорного кадра, и который используют для кодирования соответствующего кадра в потоке 108 пункта назначения.
Поток 108 пункта назначения содержит множество GOP последовательностей, которые, обычным образом, начинаются с опорного I-кадра и содержат после него множество Р-кадров, имеющих меньшую скорость передачи в битах. Однако в этом примере устройство 100 сконфигурировано для передачи видеопотоков через каналы или соединения с узкой шириной полосы пропускания. Поэтому кадры потока 108 пункта назначения сконфигурированы так, что имеют относительно низкие скорости передачи в битах, а число I-кадров небольшое, и они расположены на большом расстоянии друг от друга, причем их конкретное расположение в потоке 108 пункта назначения не обязательно является детерминированным.
В соответствии с настоящим изобретением устройство 100 также содержит кодер 104 переключения, который аналогичным образом содержит процессор 120 и модуль 122 памяти. Кодер 104 переключения предназначен для получения на входе по меньшей мере опорного кадра 114 от главного кодера 102 и индикации 116 о мгновенной скорости передачи в битах для каждого кадра в потоке 108 пункта назначения. Кодер 104 переключения под управлением процессора 120 затем генерирует поток 130 переключения, который содержит множество последовательных GOP последовательностей, имеющих относительно короткие периоды. GOP последовательность потока 130 переключения содержит начальный I-кадр, за которым следуют множество Р-кадров. Несмотря на то, что число кадров в конкретной GOP последовательности может быть различным, в этом примере это число равно 10.
Устройство 100 показано в виде единого устройства, которое содержит два кодера 102, 104. Однако следует иметь в виду, что устройство 100 может быть выполнено в виде множества отдельных устройств, связанных по сети друг с другом. Дополнительно, несмотря на то, что главный кодер 102 и кодер 104 переключения показаны раздельно, они при необходимости могут быть объединены в единый модуль или блок и могут совместно использовать общий процессор. Кроме того, несмотря на то, что это не показано на чертежах, устройство 100 содержит машинно-считываемый носитель, имеющий хранящийся на нем набор команд в виде машинной программы. Таким образом, машинная программа управляет работой процессоров 110, 120, которые соответственно управляют работой устройства 100.
Как уже было указано здесь выше, процессор 120 кодера переключения предназначен для генерирования двух различных типов кадров для потока 130 переключения, а именно I-кадров и Р-кадров. Р-кадры генерируют с использованием опорного кадра 114 и скорости передачи в битах соответствующего кадра в потоке 108 пункта назначения. Таким образом, за счет использования скорости передачи в битах кадров потока 108 пункта назначения в качестве ограничения скорости передачи в битах, кадры потока 130 переключения будут иметь скорость передачи в битах, согласованную со скоростью передачи в битах соответствующих кадров потока 108 пункта назначения.
Несмотря на то, что возможно генерировать I-кадры аналогично описанному выше генерированию Р-кадров, в данном примере I-кадры генерируют с использованием в качестве ввода самого входного видеопотока 106 (вместо опорного кадра 114 главного кодера 102) и с использованием скорости передачи в битах соответствующего кадра потока 108 пункта назначения. Таким образом, опорный кадр 124, который хранится в модуле 122 памяти кодера 104 переключения будет для Р-кадров преобразован в опорный кадр 114 главного кодера 102, однако будет для I-кадров скорее новым опорным кадром, извлеченным из входного видеопотока 106, для улучшения производительности.
Таким образом, переключатель 132 выполнен с возможностью переключения входа кодера 104 переключения от опорного кадра 114 к входному видеопотоку 106 и назад, в каждом цикле переключения, которым в этом примере является каждый десятый кадр.
Опорные кадры потока 130 переключения в конкретной GOP последовательности конвертируют в опорные кадры потока 108 пункта назначения. Это означает, что ошибка из-за дрейфа между декодированным кадром переключения и соответствующим декодированным кадром пункта назначения снижается от начального I-кадра к последнему Р-кадру этой GOP последовательности. Дополнительно, кодер 104 переключения сконфигурирован так, что ошибка из-за дрейфа между оконечным Р-кадром GOP последовательности потока 130 переключения и соответствующим кадром потока пункта назначения будет меньше заданного порога ошибки из-за дрейфа. Потенциально различие между одним или несколькими предшествующими кадрами GOP последовательности потока 130 переключения и соответствующими кадрами потока 108 пункта назначения также может быть меньше порога ошибки из-за дрейфа в зависимости от контента входного видеопотока, и переключение к потоку 108 пункта назначения поэтому может происходить раньше десятого кадра, но по меньшей мере при десятом кадре.
Обратимся теперь к рассмотрению фиг.2а, на которой показана система 200, которая содержит платформу 210 видеодоставки, в которой капсулированы по меньшей мере одно, а типично множество устройств 100 видеокодирования, таких как показанное на фиг.1. В этом примере платформа 210 видеодоставки содержит четыре устройства 100.1, 100.2, 100.3, 100.4 видеокодирования (совместно называемые устройством 100 видеокодирования). Устройства 100.1, 100.2 видеокодирования имеют соответствующие независимые видеоканалы 106 входных потоков, в то время как устройства 100.3, 100.4 видеокодирования имеют общий видеоканал 106 входного потока, чтобы генерировать различные версии скорости передачи в битах по одному каналу.
Платформа 210 видеодоставки соединена по сети 202 связи по меньшей мере с одним медиаплеером 216, в котором капсулирован декодер 204. Сетью 202 связи в этом примере является Internet, который может иметь, время от времени, низкую пропускную способность. Медиаплеер 216 соединен с сетью 202 связи при помощи имеющего узкую ширину полосы пропускания канала 206 (или при помощи имеющего широкую ширину полосы пропускания канала, который временами имеет низкую пропускную способность) и поэтому не может получать непрерывно и надежно контент с высокой шириной спектра. По этой причине платформа видеодоставки сконфигурирована для передачи имеющего относительно низкую ширину спектра потока.
Платформа 210 видеодоставки содержит множество переключателей 212, 214. Переключатель 212 устройства объединен с каждым устройством 100 и предназначен для переключения между потоком 130 пункта назначения и потоком 108 переключения связанного с ним устройства 100. Единственный переключатель 214 платформы предназначен для выбора потока (потока 108 пункта назначения или потока 130 переключения) от конкретного устройства 100 в качестве выходного сигнала платформы 210 видеодоставки. Другими словами, переключатель платформы позволяет избирательно назначать выходной сигнал конкретного устройства 100 в качестве главного выходного сигнала платформы 210 видеодоставки. Поэтому устройство 100 создает множество потоков пункта назначения, каждый из которых может быть избирательно выбран как выходной сигнал при помощи платформы 210 видеодоставки.
Платформа 210 видеодоставки может получать запросы переключения от любого источника, как дистанционно, например, от пользователя медиаплеера 216, так и локально, например, от внешнего контроллера. Локальные запросы переключения могут поступать от сети 202 связи для измерения доступной ширины полосы пропускания (для зависимых потоков), или, например, от тега, который производит переключение на рекламный канал (для независимых потоков).
Медиаплеер 216 выполнен с возможностью получения запросов переключения от пользователя (абонента), например, в виде запросов изменения канала. Таким образом, обычным образом, пользователь может наблюдать один видеопоток при помощи медиаплеера 216 и может в любой момент времени послать запрос переключения (то есть может изменить канал), чтобы видеть другой видеопоток или канал. Медиаплеер 216 не обязательно должен быть реконфигурирован или изменен для использования в соответствии с настоящим изобретением и на самом деле может быть полностью независимым от конфигурации устройства 100 и платформы 210 видеодоставки.
Как только медиаплеер 216 получает запрос переключения, чтобы видеть другой поток (то есть поток 108 пункта назначения), он передает этот запрос переключения на платформу 210 видеодоставки.
Далее настоящее изобретение будет дополнительно описано со ссылкой сначала на фиг.3 и затем на фиг.4. На фиг.3 показана схема последовательности операций высокого уровня способа 300 в соответствии с настоящим изобретением. В перспективе очень высокого уровня поток 130 переключения непрерывно получают в операции 302 при помощи устройства 100. В ответ на запрос переключения устройство 100 переключается (или его переключают) в операции 304 на поток 130 переключения. Наконец, устройство 100 переключается (или его переключают) в операции 306 на поток 108 пункта назначения.
Обратимся теперь к рассмотрению фиг.4, на которой показана более подробно схема последовательности операций низкого уровня способа 310 в соответствии с настоящим изобретением, со ссылкой на фиг.2b и 2c, а также на фиг.5, на которой схематично показаны кадры множества видеопотоков. Способы 300, 310 описаны со ссылкой на устройство 100 и систему 200, однако следует иметь в виду, что способы 300, 310 могут быть применены и к другим устройствам или системам, причем устройство 100 и система 200 могут быть конфигурированы для осуществления других способов, если это диктует контекст.
Каждое устройство 100 непрерывно генерирует два потока, то есть поток 108 пункта назначения и поток 130 переключения. Поток 130 переключения непрерывно генерируют на основании потока 108 пункта назначения. Как уже было описано здесь выше, поток 130 переключения содержит множество последовательных GOP последовательностей. Для создания последовательности кодер 104 переключения определяет в операции 312, следует или нет начинать новую GOP последовательность. Если да, то генерируют I-кадр, в операции 314, на основании входного видеопотока 106 и скорости передачи в битах соответствующего кадра потока 108 пункта назначения. Если нет, то генерируют Р-кадр, в операции 316, на основании опорного кадра 114 главного кодера 102 и скорости передачи в битах.
В качестве примера, медиаплеер 216 получает, в операции 318, поток 134 источника от устройства 100.4, который рассматривает (наблюдает) пользователь. (Таким образом, поток 134 источника соответствует потоку 108 пункта назначения устройства 100.4.) Обратимся теперь к рассмотрению фиг.2а, на которой переключатель 214 платформы соединен с устройством 100.4, а переключатель 212 устройства 100.4 подключен к потоку 108 пункта назначения, то есть к потоку 134 источника). Потоком 134 источника может быть телевизионный канал или потоковая видеопередача. В некоторый случайный момент времени пользователь желает увидеть другой поток. Тогда пользователь вводит запрос переключения, например запрос изменения канала, на интерфейсе пользователя, имеющемся на медиаплеере 216, обычным образом. Медиаплеер 216 в действительности не учитывает события, происходящие на платформе 210 видеодоставки.
Например, запрос переключения указывает, что поток пункта назначения должен поступать на медиаплеер 216 от устройства 100.1. Поэтому платформа 210 видеодоставки должна переключиться от потока, подаваемого при помощи устройства 100.4, к потоку, подаваемому при помощи устройства 100.1.
После получения запроса переключения в операции 320 медиаплеером 216 он передается на платформу 210 видеодоставки, которая затем ожидает в операции 322 соответствующей точки ввода в поток 130 переключения устройства 100.1. Ввод в поток 130 переключения должен быть сделан в начальном 1-кадре новой GOP последовательности. Так как в этом примере принято, что любая GOP последовательность содержит 10 кадров, то устройство никогда не будет ожидать больше чем 0.4 секунды (для потока, имеющего частоту кадров 25 кадров в секунду), а в среднем будет ожидать половину этого времени. Таким образом, когда генерируют следующий I-кадр (обозначенный как Is(bn) на фиг.5) в операции 314, платформа 210 видеодоставки переключается в операции 304 на поток 130 переключения устройства 100.1 и начинает посылать в операции 324 поток 130 переключения на медиаплеер 216 для декодирования при помощи декодера 204. Для работы декодера 204, когда он начинает получать новый поток, нет разницы, является ли новый поток потоком переключения или потоком пункта назначения.
Для осуществления этого переключения переключатель 212 устройства 100.1 переключается на поток 130 переключения, а переключатель 214 платформы переключается на устройство 100.1 (см. фиг.2b).
Платформа 210 видеодоставки может быть конфигурирована для прохождения всей GOP последовательности (всех 10 кадров) потока 130 переключения и, в конце, для переключения на поток 108 пункта назначения. Однако в этом примере для более быстрого переключения на поток 108 пункта назначения платформа 210 видеодоставки сравнивает каждый декодированный кадр потока 130 переключения с соответствующим декодированным кадром потока 108 пункта назначения, чтобы определить, в операции 326, находится ли ошибка из-за дрейфа ниже заданного порога ошибки из-за дрейфа. На фиг.5 показаны кадры потока 130 переключения, которые сближаются (сходятся) с кадрами потока 108 пункта назначения, что свидетельствует о том, что ошибка из-за дрейфа между соответствующими кадрами последовательно снижается. Как только ошибка из-за дрейфа становится меньше порога ошибки из-за дрейфа (в этом примере, после кадра Ps(b n+7)), платформа 210 видеодоставки переключается, в операции 306, на поток 108 пункта назначения, даже если GOP последовательность потока 130 переключения еще не является завершенной. Для этого переключатель 212 устройства 100.1 просто переключается от потока 130 переключения к потоку 108 пункта назначения (как это показано на фиг.2c).
Если отсутствует поток 134 источника, то ничего не посылают до I-кадра (Is(bn )) GOP последовательности.
В заключение можно сказать, что после получения запроса переключения остальные кадры (Рс(an-2) и Pc(an-1 )) потока 134 источника воспроизводятся до тех пор, пока не будет обнаружен I-кадр Is(bn), и в этот момент времени происходит первое переключение. Затем посылают кадры от Ps(bn+1) до Ps(bn+2 ) потока 130 переключения, пока ошибка из-за дрейфа не будет ниже порога ошибки из-за дрейфа, и в этот момент посылают кадры впереди Pd(bn+8) из потока 108 пункта назначения. Опять, следует иметь в виду, что скорость передачи в битах (обозначенная как (bn)) для соответствующих кадров в потоке 130 переключения и в потоке 108 пункта назначения является одинаковой. Таким образом, декодер 204 не испытывает никакого изменения скорости передачи в битах при переключении от потока 130 переключения к окончательному потоку 108 пункта назначения. "Тракт переключения" показан на фиг.5 при помощи стрелок, соединяющих кадры, образующие тракт переключения.
Таким образом, наблюдатель, который рассматривает видеопоток, предоставленный ему при помощи декодера 204, будет иметь только короткую задержку переключения (порядка тысячных долей секунды), с небольшой или незаметной ошибкой из-за дрейфа, даже при низких скоростях передачи в битах.
Затем неограниченно посылают поток 108 пункта назначения, пока не придет другой запрос переключения, и в этот момент описанный способ может быть повторен по меньшей мере частично.
На фиг.6 схематично показана вычислительная машина в примерном виде вычислительной системы 400, которая содержит набор команд, побуждающих при их выполнении вычислительную машину выполнять любую одну или несколько обсуждавшихся здесь методологий. В альтернативных вариантах вычислительная машина работает как автономное устройство или может быть подключена (например, по сети связи) к другим вычислительным машинам. В сети связи вычислительная машина может работать как сервер или как машина пользователя, в сетевой среде сервер - пользователь, или как одноранговая вычислительная машина в сетевой среде с соединением равноправных машин (или в распределенной сетевой среде). Вычислительной машиной может быть персональный компьютер (PC), планшетный компьютер, компьютерная приставка к телевизору (STB), карманный" компьютер (PDA), сотовый телефон, web приложение, сетевой трассировщик, переключатель или мост, или любая другая машина, которая может выполнять набор команд (последовательно или иным образом), который задает действия, предпринимаемые машиной. Дополнительно, несмотря на то, что показана только одна машина, термин "машина" также включает в себя любой набор машин, которые индивидуально или совместно выполняют набор команд (или множество наборов команд) для осуществления любой одной или нескольких методологий, обсуждавшихся здесь.
Примерная вычислительная система 400 содержит процессор 402 (например, центральный процессор (ЦП) или блок обработки графиков (GPU), или то и другое, оперативную память 404 и статическую память 406, которые имеют связь друг с другом посредством шины 408. Вычислительная система 400 может дополнительно содержать видеодисплей 410 (например, жидкокристаллический дисплей (LCD), плазменный дисплей или дисплей на электронно-лучевой трубке (ЭЛТ)). Вычислительная система 400 также содержит алфавитно-цифровое устройство 412 ввода (например, клавиатуру), навигационное устройство 414 интерфейса пользователя (UI) (например, мышь), дисковое ЗУ 416, устройство 418 выработки (звукового) сигнала (например, акустическую систему) и сетевой интерфейс 420.
Дисковое ЗУ 416 содержит машинно-считываемый носитель 422, на котором хранятся один или несколько наборов команд и структуры данных (например, программа 424), которые реализуются или используются любой одной или несколькими описанными здесь методологиями или функциями. Программа 424 также может постоянно храниться, полностью или по меньшей мере частично, в оперативной памяти 404 и/или в процессоре 402 при ее выполнении при помощи вычислительной системы 400, причем оперативная память 404 и процессор 402 также образуют машинно-считываемую среду.
Программа 424 может быть дополнительно передана или принята по сети 426 через сетевой интерфейс 420 с использованием любого одного из ряда известных протоколов передачи (например, HTTP, RTP, RTSP, FTP).
В то время как машинно-считываемый носитель 422 показан в примерном варианте как единственный носитель, термин "машинно-считываемый носитель" может относиться как к единственному носителю, так и к множеству носителей (например, к централизованной или распределенной базе данных, и/или к связанным элементам кэш-памяти и серверам), на которых хранятся один или несколько наборов команд. Термин "машинно-считываемый носитель" также относится к любому носителю, который позволяет хранить, кодировать или нести набор команд, выполняемых машиной, которые побуждают машину осуществлять любую одну или несколько методологий в соответствии с вариантами осуществления настоящего изобретения, или который позволяет хранить, кодировать или нести структуры данных, используемых в этих наборах команд или связанных с ними. Термин "машинно-считываемый носитель" соответственно содержат (но без ограничения) твердотельную память, оптические и магнитные носители и сигналы несущей.
Устройство 100 может иметь вид вычислительной системы 400 или по меньшей мере может содержать некоторые ее компоненты.
Авторы настоящего изобретения полагают, что приведенный в качестве примера способ переключения от одного видеопотока к другому, с малой задержкой и с малой или незаметной ошибкой из-за дрейфа, может быть применен к каналам, имеющим различную ширину полосы пропускания, в том числе к каналам, имеющим узкую ширину полосы пропускания.
ССЫЛКИ
[1] "Advanced Video Coding for Generic Audiovisual Services" ITU-T Recommendation H.264 & ISO/IEC 14 496-10 AVC, 2005.
[2] M. Karczewicz and R. Kurceren, "A Proposal for SP-Frames," ITU-T Video Coding Experts Group Meeting, Eibsee, Germany, Jan. 09-12, 2001, Doc. VCEG-L-27.
[3] US 6,765,963, "Video decoder architecture and method for using same," United States Patent, Jul. 2004.
[4] M.Karczewicz and R.Kurceren, "The SP- and SI-Frames Design for H.264/AVC," IEEE Transactions on Circuits and Systems for Video Technology, Vol.13, No.7, July 2003, pp.637-644.
[5] W.Zhang and B.Zeng, "Seamless Bit-Stream Switching in Multirate-Based Video Streaming Systems," EURASIP Journal on Applied Signal Processing, Vol.2006, Article ID 49084, pp.1-11.
[6] В.Xie and W.Zeng, "Fast Bitstream Switching Algorithms for Real-Time Adaptive Video Multicasting," IEEE Transactions on Multimedia, Vol.9, No.1, January 2007, pp.169-175.
[7] M.Guo, Y.Lu, F.Wu, D.Zhao and W.Gao, "Wyner-Ziv Switching Scheme for Multiple Bit-Rate Video Streaming," IEEE Transactions on Circuits and Systems for Video Technology, Vol.18, No.5, May 2008, pp.569-581.
Класс H04N21/44 обработка элементарных видеопотоков, например соединение видеоклипа, восстановленного из локальной памяти, с входящим видео потоком или визуализация сцен в соответствии с MPEG-4 графами сцены
Класс H04N21/234 обработка элементарных видеопотоков, например соединение потоков контента или манипулирование MPEG-4 графами сцены