СПОСОБ И УСТРОЙСТВО НЕЗАВИСИМОЙ СТРУКТУРЫ КОДИРОВАНИЯ ГРАНЕЙ ДЛЯ ВИДЕО В ФОРМАТЕ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ
METHOD AND DEVICE FOR INDEPENDENT STRUCTURE OF ENCODING FACES FOR VIDEO IN VIRTUAL REALITY FORMAT

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее изобретение заявляет приоритет предварительной патентной заявки США, серийный номер 62/353,584, поданной 23 июня 2016 г. Предварительные патентные заявки США включены в настоящее описание путем отсылки.
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к кодированию изображений и видео. В частности, настоящее изобретение относится к кодированию последовательностей граней, причем грани соответствуют граням куба или других многогранников, служащих для объемного представления видео в формате виртуальной реальности.
УРОВЕНЬ ТЕХНИКИ
Объемное видео, также известное как видеосреда с погружением, представляет собой новую технологию, позволяющую «приближать ощущения к реальности».  Ощущение погружения достигают путем окружения зрителя сценой с панорамным обзором, в частности, полем обзора в 360 градусов. «Приближение ощущений к реальности» можно дополнительно улучшить посредством стереографической визуализации. Соответственно, панорамное видео широко используется в системах виртуальной реальности (VR).
Видеосреда с погружением предполагает захват сцены с использованием нескольких камер для покрытия панорамного обзора, например, поля обзора в 360 градусов. Иммерсивная камера обычно содержит набор камер, скомпонованных таким образом, чтобы захватывать поле обзора в 360 градусов. Обычно в иммерсивной камере используют две и более камеры. Все видео должны сниматься одновременно, при этом производится запись отдельных фрагментов (также называемых отдельными ракурсами) сцены. Кроме того, набор камер часто выполняют с возможностью захвата изображений по горизонтали, хотя возможны и другие варианты расположения камер.
Панорамная камера кругового обзора захватывает зоны вокруг объекта, и сшитое сферическое изображение – один из способов представления видео в формате виртуальной реальности, не прерывающегося в горизонтальном направлении. Иными словами, содержание сферического изображения на левой стороне продолжается до правой стороны. Кроме того, сферическое изображение можно проецировать на шесть граней куба в качестве альтернативного формата кругового обзора. Преобразование можно выполнить посредством проекционного преобразования с получением изображений с шестью гранями, представляющих собой шесть граней куба. На гранях куба эти шесть изображений соединены по ребрам куба. На фигуре 1 изображение 100 соответствует развернутому изображению куба с пустыми зонами, заполненными фиктивными данными. Развернутое изображение куба также называют разверткой куба с пустыми зонами. Как показано на фигуре 1, развернутые изображения граней куба с пустыми зонами помещены в минимально возможный прямоугольник, охватывающий шесть развернутых изображений граней куба.
Шесть этих граней куба соединены между собой определенным образом (см. фиг. 1), поскольку они соответствуют шести изображениям на шести поверхностях куба. Соответственно, каждое ребро куба является общим для двух кубических граней. Иными словами, каждые четыре грани в направлениях x, y и z представляют собой непрерывную плоскость в соответствующем окружном направлении. Ребра собранной развертки куба с пустыми зонами в окружном направлении (см. изображение 100 на фиг. 1) представлены изображением 200 на фигуре 2. Ребра куба, связанные с границами граней куба, отмечены. Границы грани куба с одинаковым номером ребра указывают на то, что две границы грани куба связаны и имеют общее ребро куба. Например, ребро № 2 находится в верхней части грани 1 и на правой стороне грани 5. Таким образом, верхняя часть грани 1 соединена с правой стороной грани 5. Соответственно, содержание верхней части грани 1 плавно перетекает на правую сторону грани 5, когда грань 1 поворачивается на 90 градусов против часовой стрелки.
В настоящем изобретении раскрыты способы кодирования и передачи нескольких последовательностей граней.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В патентной заявке раскрыт способ и устройство кодирования или декодирования видео для системы кодирования или декодирования видео, применяемой к последовательностям нескольких граней, соответствующим последовательности виртуальной реальности с круговым обзором. Согласно вариантам осуществления настоящего изобретения, по меньшей мере, одну последовательность граней из ряда последовательностей нескольких граней кодируют или декодируют с использованием независимого от граней кодирования, причем независимое от граней кодирование предполагает кодирование или декодирование целевой последовательности граней с использованием опорных данных прогноза, полученных только на основании предыдущих кодированных данных целевой последовательности граней. Кроме того, один или несколько элементов синтаксиса могут быть включены в передаваемый битовый поток видео на стороне кодирующего устройства или выделены из битового потока видео на стороне декодирующего устройства, причем элементы синтаксиса содержат первую информацию, связанную с общим числом граней в последовательностях нескольких граней, и / или вторую информацию, связанную с индексом грани для каждой последовательности граней, кодированной независимо от граней. Элементы синтаксиса могут находиться на уровне последовательности, видео, грани, VPS (набор параметров видео), SPS (набор параметров последовательности) или APS (набор параметров приложения) битового потока видео.
В одном из вариантов осуществления все последовательности нескольких граней кодируются с использованием кодирования, независимого от граней. Визуальный опорный кадр, содержащий все грани последовательностей нескольких граней с заданным временным индексом, может использоваться для промежуточного и / или внутреннего прогноза в одной или нескольких последовательностях граней. В следующем варианте осуществления один или несколько наборов внутренних граней можно закодировать в виде точек произвольного доступа (RAP), причем каждый набор внутренних граней состоит из всех граней с одинаковым временным индексом, и каждую точку произвольного доступа кодируют с использованием внутреннего или промежуточного прогноза на основании только одного или нескольких определенных изображений. Если определенное целевое изображение используют для промежуточного прогноза, все грани определенного целевого изображения декодируют до того, как определенное целевое изображение будет использовано для промежуточного прогноза. Для любой целевой грани с временным индексом непосредственно после точки произвольного доступа (RAP), если целевая грань кодирована с использованием временных опорных данных, временные опорные данные исключают любые опорные данные, не относящиеся к RAP.
В одном из вариантов осуществления одну или несколько первых последовательностей граней кодируют с использованием данных прогноза, содержащих, по меньшей мере, часть, полученную из второй последовательности граней. Одна или несколько первых целевых граней в упомянутой одной или нескольких первых последовательностях граней используют, соответственно, внутренний прогноз, полученный на основании второй целевой грани во второй последовательности граней, причем упомянутая одна или несколько первых целевых граней в упомянутой одной или нескольких первых последовательностях граней и вторая целевая грань во второй последовательности граней имеют одинаковый временной индекс. В этом случае для текущего первого блока на границе первой целевой грани вторая целевая грань соответствует соседней грани, примыкающей к границе первой целевой грани.
В следующем варианте осуществления одна или несколько первых целевых граней в упомянутой одной или нескольких первых последовательностях граней используют, соответственно, промежуточный прогноз, полученный на основании второй целевой грани во второй последовательности граней, причем упомянутая одна или несколько первых целевых граней в упомянутой одной или нескольких первых последовательностях граней и вторая целевая грань во второй последовательности граней имеют одинаковый временной индекс. Для текущего первого блока в первой целевой грани первой целевой последовательности граней с текущим вектором движения (MV), указывающим на опорный блок, пересекающий границу первой опорной грани в указанной первой целевой последовательности граней, вторая целевая грань соответствует соседней грани, примыкающей к границе первой опорной грани.
В следующем варианте осуществления одна или несколько первых целевых граней в упомянутой одной или нескольких первых последовательностях граней используют, соответственно, промежуточный прогноз, полученный на основании второй целевой грани во второй последовательности граней, причем временной индекс второй целевой грани во второй последовательности граней ниже индекса любой первой целевой грани в упомянутой одной или нескольких первых последовательностях граней. Для текущего первого блока в первой целевой грани первой целевой последовательности граней с текущим вектором движения (MV), указывающим на опорный блок, пересекающий границу первой опорной грани в указанной первой целевой последовательности граней, вторая целевая грань соответствует соседней грани, примыкающей к границе первой опорной грани.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фигуре 1 изображен пример развернутого кадра куба, соответствующего развертке куба с пустыми зонами, заполненными фиктивными данными.
На фигуре 2 изображен пример ребер собранной развертки куба с пустыми зонами в окружном направлении, показанной на фигуре 1.
На фигуре 3 изображен пример полностью независимой от граней структуры кодирования для видео в формате виртуальной реальности, причем каждую последовательность граней куба обрабатывают видеокодером в виде единой входной последовательности видео.
На фигуре 4 изображен пример независимого от граней кодирования с точкой произвольного доступа (k+n), причем набор граней в момент времени k представляет собой определенное изображение.
На фигуре 5 изображен пример кодирования последовательности граней, допускающий составление прогноза по другим граням согласно одному из вариантов осуществления настоящего изобретения.
На фигуре 6 приведен пример внутреннего прогнозирования с использованием информации другой грани с временным индексом, совпадающим с индексом текущей грани.
На фигуре 7 приведен пример промежуточного прогнозирования с использованием информации другой грани с тем же временным индексом.
На фигуре 8 изображен другой пример кодирования последовательности граней, допускающий составление прогноза по другим граням с тем же временным индексом согласно одному из вариантов осуществления настоящего изобретения.
На фигуре 9 изображен еще один пример кодирования последовательности граней, допускающий составление прогноза по другим граням с тем же временным индексом согласно одному из вариантов осуществления настоящего изобретения.
На фигуре 10 изображен пример кодирования последовательности граней, допускающий использование временных опорных данных других граней согласно одному из вариантов осуществления настоящего изобретения.
На фигуре 11 изображен другой пример кодирования последовательности граней, допускающий использование временных опорных данных других граней согласно одному из вариантов осуществления настоящего изобретения.
На фигуре 12 приведен пример промежуточного прогноза, использующего в том числе опорные данные другой грани, причем текущий блок в текущем изображении (временной индекс k+2) на грани 0 построен на основании промежуточного прогноза с использованием, в том числе, опорных данных, соответствующих предыдущим изображениям (то есть, временной индекс k+1) на гранях 0 и 4.
На фигуре 13 изображена примерная блок-схема кодирования видео для нескольких последовательностей граней, соответствующих последовательности виртуальной реальности с круговым обзором, согласно одному из вариантов осуществления настоящего изобретения.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Следующее раскрытие относится к наилучшему варианту осуществления изобретения. Это раскрытие подготовлено с целью иллюстрации общих принципов изобретения и не является ограничивающим. Объем изобретения наилучшим образом определяется формулой изобретения.
В настоящем изобретении раскрыты способы кодирования и передачи отдельных последовательностей граней. На фигуре 3 изображена полностью независимая от граней структура кодирования для видео в формате виртуальной реальности, причем каждую последовательность граней куба обрабатывают видеокодером в виде единой входной последовательности видео. На стороне декодирующего устройства битовый поток видео для последовательности граней принимается и декодируется декодирующим устройством. Для граней куба, показанных на фигуре 3, шесть последовательностей граней обрабатывают в форме шести последовательностей видео и независимо кодируют. Иными словами, каждую последовательность граней кодируют только с использованием данных прогноза (промежуточного или внутреннего), полученных на основании одной и той же последовательности граней согласно данному варианту осуществления. На фигуре 3 грани с одинаковым временным индексом (например, k, k+1, k+2 и т. п.) называют внутренним набором граней в смысле данного описания.
Хотя на фигуре 3 шесть граней, связанных с кубом, используются в качестве примера представления видео в формате виртуальной реальности с несколькими гранями, настоящее изобретение может также применяться к другим представлениям нескольких граней. Другой аспект настоящего изобретения относится к передаче независимо кодированных граней. Например, один или несколько элементов синтаксиса могут быть переданы в битовый поток видео с целью передачи информации, относящейся к общему количеству граней в последовательностях с несколькими гранями. Кроме того, может быть передана информация, относящаяся к индексу каждой независимо кодированной грани. Один или несколько элементов синтаксиса могут быть переданы на уровне последовательности, видео, грани, VPS (набор параметров видео), SPS (набор параметров последовательности) или APS (набор параметров приложения).
Визуальный опорный кадр используется для составления прогноза с целью повышения качества кодирования. Визуальный опорный кадр содержит, по меньшей мере, две грани, связанные с одним временным индексом, который можно использовать для компенсации движения и / или внутреннего прогноза. Таким образом, визуальный опорный кадр можно использовать для получения опорных данных для каждой грани, используя другие грани в визуальном опорном кадре для получения опорных данных вне текущей грани. Например, если грань 0 является текущей гранью, опорные данные вне грани 0, вероятно, будут найдены на соседних гранях, в частности, гранях 1, 2, 4 и 5. Аналогичным образом, визуальный опорный кадр может предоставлять опорные данные для других граней, если опорные данные находятся вне выбранной грани.
Настоящим изобретением также введено независимое от граней кодирование с помощью точки произвольного доступа. Точка произвольного доступа может представлять собой внутреннее или промежуточное изображение, спрогнозированное на основании определенного изображения или изображений, которые могут представлять собой другие точки произвольного доступа. Для кадра с точкой произвольного доступа все грани определенного изображения должны быть декодированы. Можно выбрать и независимо закодировать другое обычное изображение. Изображения после точки произвольного доступа нельзя спрогнозировать на основании обычных изображений (то есть неспецифических изображений), закодированных перед точкой произвольного доступа. В случае применения визуального опорного кадра, как было описано выше, визуальный опорный кадр не может быть завершен, если декодируется только часть обычных изображений. В противном случае будет выведена ошибка прогнозирования. При этом распространение ошибки будет прекращено в точке произвольного доступа.
На фигуре 4 изображен пример независимого от граней кодирования с точкой произвольного доступа (k+n). Набор граней в момент k времени представляет собой определенное изображение. Наборы граней (то есть k+1, k+2 и т. п.) после определенного изображения в момент k времени кодируются в виде обычных изображений с использованием временного прогноза, построенного на основании тех же граней, до кодирования точки произвольного доступа. Как показано на фигуре 4, цепочка временного прогнозирования завершается непосредственно перед точкой произвольного доступа в момент k+n времени. Точка произвольного доступа в момент k+n времени допускает внутреннее или промежуточное кодирование только с использованием определенного изображения или изображений в качестве опорного изображения или изображений.
При этом полностью независимое от граней кодирование, показанное на фигурах 3 и 4, повышает надежность кодирования в смысле устранения зависимости кодирования между различными последовательностями граней. Тем не менее полностью независимое от граней кодирование не использует корреляцию между гранями, в частности, целостность границ между двумя соседними гранями. Для повышения эффективности кодирования прогноз может использовать опорные данные с других граней в соответствии с другим способом по настоящему изобретению. Например, внутренний прогноз для текущей грани может использовать опорные данные других граней с тем же временным индексом. Кроме того, для промежуточного прогнозирования, если вектор движения (MV) указывает на опорные пиксели вне границы текущей опорной грани, опорные пиксели для промежуточного прогнозирования можно получить на основании граней, соседних с текущей гранью и имеющих такой же временной индекс.
На фигуре 5 изображен пример кодирования последовательности граней, допускающий составление прогноза по другим граням согласно следующему способу по настоящему изобретению. В примере, показанном на фигуре 5, грани 5 и 3 используют информацию грани 4 для получения данных прогноза. Таким образом, грани 2 и 0 используют информацию грани 1 для получения данных прогноза. Пример, показанный на фигуре 5, соответствует варианту прогнозирования с использованием информации другой грани с тем же временным индексом. Для граней 4 и 1 последовательности граней кодируются независимо, без использования опорных данных других граней.
На фигуре 6 приведен пример внутреннего прогнозирования с использованием информации другой грани с временным индексом, совпадающим с индексом текущей грани, с целью получения опорных данных. Как показано на фигурах 1 и 2, нижняя граница грани 5 соединена с верхней границей грани 0. Таким образом, внутреннее кодирование текущего блока 612 в текущем изображении 610 грани 0 с временным индексом k+2 вблизи верхней границы 614 грани может использовать опорные данные 622 внутреннего прогноза на нижней границе 624 грани изображения 620 грани 5 со временным индексом k+2. В этом случае предполагается, что данные пикселей на нижней границе 624 изображения 620 грани 5 кодируются до текущего блока 612 на верхней границе изображения 610 грани 0. Если изображение 610 текущей грани 0 с временным индексом k+2 имеет промежуточное кодирование, оно может использовать изображение 630 грани 0 с временным индексом k+1 для получения данных промежуточного прогноза.
На фигуре 7 приведен пример промежуточного прогнозирования с использованием информации другой грани с тем же временным индексом. В этом примере изображение текущей грани 0 кодируется с использованием промежуточного прогноза, полученного на основании ранее закодированных данных в той же последовательности граней. Тем не менее, когда вектор движения указывает на опорные пиксели вне опорной грани в той же последовательности граней, опорные данные другой грани, имеющей тот же временной индекс, можно использовать для получения необходимых опорных данных. В примере, показанном на фигуре 7, текущий блок 712 на нижней границе 714 изображения 710 текущей грани-0 имеет промежуточное кодирование, и вектор 716 движения (MV) указывает на опорный блок 722, причем часть 726 опорного блока 722 находится вне нижней границы 724 опорного изображения 720 грани-0. Опорная зона 726, расположенная вне нижней границы 724 опорного изображения 720 грани-0, соответствует пикселям на верхней границе 734 грани 4, поскольку ребро верхней границы грани 4 совпадает с ребром нижней границы грани 0. В одном из вариантов осуществления настоящего изобретения соответствующие опорные пиксели 732 изображения грани-4 с тем же временным индексом используются для получения опорных пикселей (726) промежуточного прогноза вне нижней поверхности границы 724 опорного изображения 720 грани-0. Следует отметить, что опорные данные грани 4 с временным индексом, совпадающим с временным индексом изображения текущей грани-0, используются для получения опорных данных промежуточного прогноза вне текущей опорной грани 720.
На фигуре 8 изображен другой пример кодирования последовательности граней, допускающий составление прогноза по другим граням с тем же временным индексом согласно одному из вариантов осуществления настоящего изобретения. В этом примере грани 0, 1, 2 и 4 используют опорные данные грани 3, имеющей тот же временной индекс. Кроме того, грань 5 использует опорные данные грани 4, имеющей тот же временной индекс. Для грани 3 последовательность граней кодируется независимо, без использования опорных данных других граней.
На фигуре 9 изображен еще один пример кодирования последовательности граней, допускающий составление прогноза по другим граням с тем же временным индексом согласно одному из вариантов осуществления настоящего изобретения. В этом примере грани 1, 2 и 4 используют опорные данные, полученные для грани 3 с тем же временным индексом. Грани 0, 3 и 4 используют опорные данные, полученные для грани 5 с тем же временным индексом. Грани 1, 2 и 3 используют опорные данные, полученные для грани 0 с тем же временным индексом. Для грани 5 последовательность граней кодируется независимо, без использования опорных данных других граней. На фигуре 9 внутренняя зависимость граней показана только для времени k+1 с целью упрощения иллюстрации. Тем не менее, та же внутренняя зависимость граней применяется и к другим временным индексам.
В предыдущих примерах промежуточное прогнозирование использует данные других граней с тем же временным индексом. Согласно следующему способу настоящего изобретения, промежуточное прогнозирование может также использовать временные опорные данные других граней. На фигуре 10 изображен пример кодирования последовательности граней, допускающий использование временных опорных данных других граней согласно одному из вариантов осуществления настоящего изобретения. Иными словами, другие грани используются для получения промежуточного прогноза для текущего блока в текущей грани, причем временной индекс других граней, используемых для получения опорных данных, ниже временного индекса текущей грани. Например, грань 0 в момент k времени может использоваться для получения промежуточного прогноза для граней 1–5 с временным индексом k+1. Для грани 0 последовательность граней кодируется независимо, без использования опорных данных других граней.
На фигуре 11 изображен другой пример кодирования последовательности граней, допускающий использование временных опорных данных других граней согласно одному из вариантов осуществления настоящего изобретения. В этом примере грань 2 с временем k используется для получения данных промежуточного прогноза для граней 1, 3 и 4 с временным индексом k+1. Для граней 0, 2 и 5 последовательности граней кодируются независимо, без использования опорных данных других граней.
На фигуре 12 приведен пример промежуточного прогнозирования с использованием опорных данных другой грани. В этом примере текущий блок 1212 в текущем изображении 1200, имеющем временной индекс k+2 на грани 0, описывается промежуточным прогнозом с использованием опорных данных в предыдущем изображении 1220, имеющем временной индекс k+1 на грани 0. Вектор 1214 движения указывает на опорный блок 1222, частично выходящий за границу грани (то есть находящийся ниже границы 1224 грани). Зона 1226 вне границы 1224 грани 0 соответствует зоне 1232 на верхней стороне изображения 1230 грани-4 с временным индексом k+1. В одном из вариантов осуществления настоящего изобретения изображение грани-4, имеющее временной индекс k1, используется для получения опорных данных, соответствующих зоне 1226 вне границы грани 0.
Раскрытые выше изобретения могут быть встроены в различные системы кодирования или декодирования видео в различных формах. Например, изобретения могут быть реализованы с использованием аппаратных подходов, таких как специализированные интегральные схемы (IC), программируемая пользователем логическая матрица (FPGA), цифровой сигнальный процессор (DSP), центральный процессор (CPU) и т. д. Изобретения также могут быть реализованы с использованием программных кодов или кодов микропрограммного обеспечения, исполняемых на компьютере, ноутбуке или мобильном устройстве, таком как смартфоны. Кроме того, программные коды или коды микропрограммного обеспечения могут выполняться на платформе смешанного типа, такой как ЦП с выделенными процессорами (например, модуль видеокодирования видео или сопроцессор).
На фигуре 13 изображена примерная блок-схема кодирования видео для нескольких последовательностей граней, соответствующих последовательности виртуальной реальности с круговым обзором, согласно одному из вариантов осуществления настоящего изобретения. Согласно этому способу входные данные, связанные с последовательностями нескольких граней, соответствующими последовательности виртуальной реальности с круговым обзором, принимаются на этапе 1310. На стороне кодирующего устройства входные данные соответствуют данным пикселей последовательностей нескольких граней, подлежащих кодированию. На стороне декодирующего устройства входные данные соответствуют битовому потоку видео или кодированным данным, подлежащим декодированию. На этапе 1320 кодируют или декодируют, по меньшей мере, одну последовательности граней из ряда последовательностей нескольких граней с использованием независимого от граней кодирования, причем независимое от граней кодирование предполагает кодирование или декодирование целевой последовательности граней с использованием опорных данных прогноза, полученных только на основании предыдущих кодированных данных целевой последовательности граней.
Вышеприведенные блок-схемы могут соответствовать программным кодам, которые должны исполняться на компьютере, мобильном устройстве, процессоре цифровых сигналов или программируемом устройстве согласно описываемому изобретению. Программные коды могут быть написаны на различных языках программирования, например, C++. Блок-схема может также соответствовать аппаратной реализации, в которую входит одна или несколько электронных схем (например, ASIC (специализированные интегральные микросхемы) и FPGA (программируемая пользователем вентильная матрица)) или процессоры (например, DSP (процессор цифровых сигналов)).
Вышеуказанное раскрытие представлено, чтобы дать возможность специалисту в данной области техники практиковать настоящее изобретение, как это предусмотрено в контексте конкретной области применения и ее требований. Различные модификации раскрытого варианта осуществления будут понятны специалистам в данной области техники, и общие принципы, указанные здесь, могут быть применены к другим вариантам осуществления. Таким образом, данное изобретение не ограничено определенными показанными и раскрытыми вариантами осуществления, но может применяться в самой широкой области в соответствии с принципами и новыми функциями, раскрытыми здесь. В подробном раскрытии выше различные определенные детали показаны, чтобы обеспечить глубокое понимание настоящего изобретения. Несмотря на это, специалистам в данной области техники должно быть понятно, что данное изобретение может быть осуществлено.
Вариант осуществления настоящего изобретения, как описано выше, может быть реализован в различных аппаратных средствах, программных кодах или их сочетаниях. Например, вариантом осуществления настоящего изобретения может быть электронная схема, встроенная в микросхему сжатия видео, или программный код, интегрированный в программное обеспечение для сжатия видео, для выполнения раскрытой в настоящем документе обработки. Вариантом осуществления настоящего изобретения может быть также программный код для исполнения на цифровом сигнальном процессоре (DSP) для выполнения раскрытой в настоящем документе обработки. Изобретение также может включать в себя ряд функций, выполняемых компьютерным процессором, цифровым сигнальным процессором или микропроцессором, или программируемой логической интегральной схемой (FPGA). Эти процессоры могут быть реализованы с возможностью выполнения конкретных задач в соответствии с изобретением путем выполнения машиночитаемого программного кода или микропрограммного кода, который определяет конкретные способы, воплощенные в изобретении. Программный код или микропрограммный код может быть разработан на разных языках программирования и в разных форматах или стилях. Программный код также может быть скомпилирован для разных целевых платформ. Однако различные форматы кода, стили и языки программных кодов и другие средства конфигурирования кода для выполнения задач в соответствии с изобретением не будут отходить от сущности и объема изобретения.
Изобретение может быть осуществлено в других специальных формах без отступления от сущности или существенных характеристик. Раскрытые примеры следует рассматривать во всех отношениях только как иллюстративные и не имеющие ограничительного характера. Объем изобретения, таким образом, лучше всего отражается прилагаемой формулой изобретения, а не следующим раскрытием. Все изменения, относящиеся к значению и диапазону эквивалентности формулы изобретения, должны входить в их объем.