СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ С ПОМОЩЬЮ АДАПТИВНОГО ПОРЯДКА СКАНИРОВАНИЯ КОЭФФИЦИЕНТОВ
METHOD AND APPARATUS FOR ENCODING AND DECODING IMAGE AND METHOD AND APPARATUS FOR DECODING IMAGE USING ADAPTIVE COEFFICIENT SCAN ORDER

Область техники, к которой относится изобретение
Устройства и способы, находящиеся в соответствии с иллюстративными вариантами воплощения, относятся к кодированию изображения и декодированию изображения, в частности к кодированию информации о коэффициентах и декодированию информации о коэффициентах путем использования различных порядков сканирования коэффициентов.
Уровень техники
Схема сжатия изображений делит исходное изображение на блоки, каждый из которых имеет заранее заданный размер, и генерирует предсказанное изображение путем внешнего предсказания или внутреннего предсказания в объединениях блоков. Кроме того, схема сжатия изображений преобразует, квантует и кодирует с помощью энтропийного кодирования остаточные данные, которые являются разностью между предсказанным изображением и исходным изображением. Коэффициенты преобразования, полученные после преобразования и квантования, могут быть закодированы кодером, чтобы они имели меньший размер перед их сохранением или передачей. Когда кодер выводит закодированные коэффициенты преобразования, в высокочастотном компоненте существует много коэффициентов, значения которых равны 0.
Раскрытие изобретения
Техническая проблема
В традиционной области техники порядок сканирования коэффициентов заранее определен и не может быть изменен в соответствии с характеристикой коэффициента.
Решение проблемы
Аспекты иллюстративных вариантов воплощения обеспечивают адаптивный порядок сканирования коэффициентов, который может улучшить эффективность сжатия изображения посредством эффективного упорядочивания коэффициентов.
Аспекты иллюстративных вариантов воплощения также обеспечивают способ и устройство для кодирования изображения и способ и устройство для декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, который может эффективно определять различные порядки сканирования, используя только один параметр.
Выгодные эффекты изобретения
Эффективность сжатия изображений может быть улучшена с помощью эффективного определения различных порядков сканирования, используя только информацию об угле.
Краткое описание чертежей
Фиг. 1 является характерной схемой, изображающей блок для сканирования в зигзагообразном порядке;
фиг. 2 является характерной схемой, изображающей блок для сканирования в вертикальном порядке;
фиг. 3 является характерной схемой, изображающей блок для сканирования в горизонтальном порядке;
фиг. 4 является блок-схемой, изображающей устройство для кодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения;
фиг. 5 является характерной схемой для объяснения адаптивного порядка сканирования согласно иллюстративному варианту воплощения;
фиг. 6 является характерной схемой, изображающей порядок сканирования, примененный к коэффициентам блока 4x4, согласно иллюстративному варианту воплощения;
фиг. 7 является схемой, изображающей коэффициенты, отсканированные в порядке сканирования фиг. 6, согласно иллюстративному варианту воплощения;
фиг. 8 является блок-схемой последовательности операций, изображающей способ кодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения;
фиг. 9 является блок-схемой, изображающей устройство для декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения; и
фиг. 10 является блок-схемой последовательности операций, изображающей способ декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения.
Лучший вариант осуществления изобретения
Согласно аспекту иллюстративного варианта воплощения обеспечен способ кодирования изображения с помощью адаптивного порядка сканирования коэффициентов, способ, включающий в себя: проецирование коэффициентов текущего блока на опорную ось, из числа горизонтальной оси и вертикальной оси, вдоль первой прямой линии, перпендикулярной ко второй прямой линии с заранее заданным углом α от опорной оси; сканирование коэффициентов текущего блока в порядке расположения спроецированных коэффициентов, проецируемых на опорную ось; и кодирование с помощью энтропийного кодирования информации о заранее заданном угле α и отсканированных коэффициентов.
Согласно аспекту другого иллюстративного варианта воплощения обеспечено устройство для кодирования изображения с помощью адаптивного порядка сканирования коэффициентов, устройство, включающее в себя: блок сканирования, который проецирует коэффициенты текущего блока на опорную ось, из числа горизонтальной оси и вертикальной оси, вдоль первой прямой линии, перпендикулярной ко второй прямой линии с заранее заданным углом α от опорной оси, и сканирует коэффициенты текущего блока согласно порядку расположения спроецированных коэффициентов, проецируемых на опорную ось; и блок энтропийного кодирования, который кодирует с помощью энтропийного кодирования информацию о заранее заданном угле α и отсканированные коэффициенты.
Согласно аспекту другого иллюстративного варианта воплощения обеспечен способ декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, способ, включающий в себя: получение информации о заранее заданном угле α для определения порядка сканирования коэффициентов текущего блока, которые будут декодироваться из битового потока; используя заранее заданный угол α, проецирование коэффициентов текущего блока на опорную ось, из числа горизонтальной оси и вертикальной оси, вдоль первой прямой линии, перпендикулярной ко второй прямой линии с заранее заданным углом α от опорной оси, и определение порядка сканирования на основании порядка расположения спроецированных коэффициентов, проецируемых на опорную ось; и сканирование коэффициентов текущего блока из битового потока в этом определенном порядке сканирования.
Согласно аспекту другого иллюстративного варианта воплощения обеспечено устройство для декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, устройство, включающее в себя: блок энтропийного кодирования, который получает информацию о заранее заданном угле α для определения порядка сканирования коэффициентов текущего блока, который будет декодироваться из битового потока; и блок сканирования, который, используя заранее заданный угол α, проецирует коэффициенты текущего блока на опорную ось, из числа горизонтальной оси и вертикальной оси, вдоль первой прямой линии, перпендикулярной ко второй прямой линии с заранее заданным углом α от опорной оси, для определения порядка сканирования на основании порядка расположения спроецированных коэффициентов, проецируемых на опорную ось, и сканирует коэффициенты текущего блока из битового потока в этом определенном порядке сканирования.
Согласно аспекту другого иллюстративного варианта воплощения обеспечен способ кодирования изображения с помощью адаптивного порядка сканирования коэффициентов, способ, включающий в себя: сканирование коэффициентов текущего блока согласно определенному порядку сканирования; кодирование с помощью энтропийного кодирования информации о заранее заданном угле α и отсканированных коэффициентов, при этом определено, что порядок сканирования соответствует порядку расположения коэффициентов, спроецированных на опорную ось, из числа горизонтальной оси и вертикальной оси, вдоль первой прямой линии, перпендикулярной ко второй прямой линии с заранее заданным углом α от опорной оси.
Вариант изобретения
Теперь будут более полно описаны иллюстративные варианты воплощения со ссылкой на прилагаемые чертежи.
Фиг. 1 - 3 являются характерными схемами для объяснения разницы между коэффициентами, порядок которых изменен с соответствии с порядками сканирования коэффициентов. Фиг. 1 изображает коэффициенты, расположенные в зигзагообразном порядке сканирования, фиг. 2 изображает коэффициенты, расположенные в вертикальном порядке сканирования и фиг. 3 изображает коэффициенты, расположенные в горизонтальном порядке сканирования.
На фиг. 1, если коэффициенты текущего блока последовательно сканируются в зигзагообразном порядке сканирования, начиная с коэффициента 11 постоянного тока (DC), отсканированные коэффициенты будут следующими {10, 3, 4, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}. Во время кодирования значащей карты сканирование выполняется до тех пор, пока не будет достигнут последний значащий коэффициент 12 преобразования, флаг конца блока (EOB), указывающий, является ли каждый коэффициент последним значащим коэффициентом преобразования, присваивается последнему значащему коэффициенту 12 преобразования, и сканирование, по сути, не выполняется после последнего значащего коэффициента 12 преобразования.
На фиг. 2, если коэффициенты текущего блока последовательно сканируются в вертикальном порядке сканирования, начиная с коэффициента 21 DC, отсканированные коэффициенты будут следующими {10, 4, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}. Во время кодирования значащей карты сканирование выполняется до тех пор, пока не будет достигнут последний значащий коэффициент 22 преобразования, флаг EOB, указывающий, является ли каждый коэффициент последним значащим коэффициентом преобразования, присваивается последнему значащему коэффициенту 22 преобразования, и сканирование, по сути, не выполняется после последнего значащего коэффициента 22 преобразования.
На фиг. 3, если коэффициенты текущего блока последовательно сканируются в горизонтальном порядке сканирования, начиная с коэффициента 31 DC, отсканированные коэффициенты будут следующими {10, 3, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0}. Во время кодирования значащей карты сканирование выполняется до тех пор, пока не будет достигнут последний значащий коэффициент 32 преобразования, флаг EOB, указывающий, является ли каждый коэффициент последним значащим коэффициентом преобразования, присваивается последнему значащему коэффициенту 32 преобразования, и сканирование, по сути, не выполняется после последнего значащего коэффициента 32 преобразования.
Так как порядок коэффициентов изменяется с помощью сканирования для того, чтобы собрать коэффициенты, кроме коэффициентов, значения которых равно 0, то если порядок коэффициентов текущего блока должен быть изменен, как показано на фиг. 1-3, вертикальный порядок сканирования является самым эффективным порядком сканирования. Также, когда сканируются коэффициенты одного и того же текущего блока, типы расположения, в которых изменен порядок коэффициентов, изменяются в зависимости от порядков сканирования. Однако, если используются различные порядки сканирования, число битов, которые будут переданы как дополнительная информация, увеличивается, так как информация о том, которой порядок сканирования применен к текущему блоку, также должна быть закодирована. Соответственно, сканирование, как правило, выполняется в заранее заданном порядке сканирования. Соответственно, один или более иллюстративных вариантов воплощения могут определять различные порядки сканирования в зависимости от угла и эффективно сжимать изображение путем уменьшения количества битов, добавляемых для определения различных порядков сканирования.
Фиг. 4 является блок-схемой, изображающей устройство 400 для кодирования изображения с использованием адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения.
На фиг. 4 устройство 400 включает в себя блок 405 вычитания, блок 410 предсказания, блок 420 преобразования и квантования, блок 430 энтропийного кодирования, блок 425 сканирования и блок 440 управления.
Блок 410 предсказания делит входное изображение на блоки, каждый из которых имеет заранее заданный размер, и генерирует предсказанный блок путем выполнения внешнего предсказания или внутреннего предсказания для каждого из блоков. Если говорить более подробно, блок 411 оценки движения выполняет оценку движения, которая генерирует вектор движения, указывающий область, подобную текущему блоку в заранее заданном диапазоне поиска опорного изображения, которое было ранее закодировано и затем восстановлено. Блок 412 компенсации движения выполняет компенсацию движения, которая генерирует предсказанный блок текущего блока путем получения соответствующих данных области опорного изображения, указанного вектором движения. Кроме того, блок 416 внутреннего предсказания выполняет внутреннее предсказание, которое генерирует предсказанный блок путем использования данных соседних блоков, смежных по отношению к текущему блоку.
Блок вычитания 405 генерирует остаточные данные, вычитая предсказанный блок текущего блока, сгенерированный блоком 410 предсказания, из данных исходного изображения. Блок 420 преобразования и квантования преобразует остаточные данные в частотную область, выполняя частотное преобразование, такое как дискретное косинусное преобразование (DCT), и квантует частотную область для вывода квантованных коэффициентов преобразования. Здесь термин коэффициенты преобразования относится к коэффициентам, которые преобразованы и квантованы блоком 420 преобразования и квантования.
Блок 425 сканирования изменяет порядок вывода коэффициентов преобразования из блока 420 преобразования и квантования в соответствии с порядком сканирования коэффициентов, который определяется путем использования заранее заданного угла α, и затем выводит коэффициенты преобразования с измененным порядком. Адаптивное сканирование коэффициентов, выполняемое блоком 425 сканирования, будет подробно объяснено ниже.
Блок 430 энтропийного кодирования выполняет кодирование переменной длины коэффициентов преобразования для генерирования битового поток. Блок 430 энтропийного кодирования кодирует коэффициенты преобразования путем генерирования дополнительной информации, такой как информация о размере и значащей карты коэффициентов преобразования.
Блок 415 обратного преобразования и обратного квантования восстанавливает остаточные данные, выполняя обратное квантование и обратное преобразование. Блок 417 сложения восстанавливает текущий блок, добавляя предсказанный блок к восстановленным остаточным данным. Восстановленный текущий блок проходит через фильтр 414 удаления блочности, сохраняется в устройстве 413 хранения данных и используется в качестве опорных данных следующего блока.
Блок 440 управления управляет каждым элементом устройства 400 и определяет режим предсказания и порядок сканирования для кодирования текущего блока, например, сравнивая затраты битового потока, например, показатели скорость-искажения (RD), в соответствии с порядками сканирования, которые будут подробно объяснены ниже.
Фиг. 5 является характерной схемой для объяснения адаптивного порядка сканирования согласно иллюстративному варианту воплощения.
Что касается фиг. 5, чтобы отсканировать коэффициенты текущего блока, блок 425 сканирования проецирует каждый из коэффициентов текущего блока на ось, выбранную в качестве опорной оси из числа горизонтальной оси x и вертикальной оси y, вдоль прямой линии, перпендикулярной к прямой линии с заранее заданным углом α, который принимает значения в пределах от 0 до 90 градусов, от опорной оси. Например, как показано на фиг. 5, коэффициенты 51 и 52 проецируются на горизонтальную ось x вдоль прямых линий 55 и 56, перпендикулярных к прямой линии 50 с заранее заданным углом α от горизонтальной оси x.
В зависимости от порядка расположения проецируемых коэффициентов 53 и 54 определяется, в котором порядке должны быть отсканированы коэффициенты. В общем, так как низкочастотный компонент, включая коэффициент DC, может с большей вероятностью иметь значение, не равное 0, коэффициенты могут быть последовательно отсканированы в порядке расположения, в котором спроецированные коэффициенты, проецируемые на опорную ось, расположены на опорной оси, начиная с коэффициента DC. Если коэффициенты проецируются в одно и то же положение на базисной оси, потому что, например, заранее заданный угол α равен 0, 45 или 90 градусам, сначала могут сканироваться коэффициенты, расположенные ближе к опорной оси. В этом случае, если заранее заданный угол α равен 0 градусов, порядок сканирования является вертикальным порядком сканирования, если заранее заданный угол α равен 45 градусам, порядок сканирования является зигзагообразным порядком сканирования, и если заранее заданный угол α равен 90 градусам, порядок сканирования является горизонтальным порядком сканирования.
Фиг. 6 является характерной схемой, изображающей порядок сканирования, примененный к коэффициентам блока 4x4, согласно иллюстративному варианту воплощения. Фиг. 7 является схемой, изображающей коэффициенты, отсканированные в порядке сканирования фиг. 6, согласно иллюстративному варианту воплощения.
На фиг. 6 блок 425 сканирования проецирует каждый из коэффициентов текущего блока на горизонтальную ось x вдоль прямой линии, перпендикулярной к прямой линии с заранее заданным углом α от горизонтальной оси x, которая является опорной осью. Если произвольный коэффициент, расположенный в x-й строке и y-м столбце, выражается как (x, y), то на фиг. 6 последовательно сканируются коэффициенты (0, 0), (1, 0), (0, 1), (2, 0), (1, 1), (3, 0), (0, 2), (2, 1), (1, 2), (3, 1), (0, 3), (2, 2), (1, 3), (3, 2), (2, 3) и (3, 3). Что касается фиг. 7, если коэффициенты текущего блока, как показано на фиг. 7, сканируются в порядке сканирования фиг. 6, то отсканированные коэффициенты равны {10, 4, 3, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}.
Как было описано выше, так как если заранее заданный угол α равен 0 градусов, порядок сканирования является вертикальным порядком сканирования, если заранее заданный угол α равен 45 градусам, порядок сканирования является зигзагообразным порядком сканирования, и если заранее заданный угол α равен 90 градусам, порядок сканирования является горизонтальным порядком сканирования, то, согласно настоящему иллюстративному варианту воплощения, различные порядки сканирования, в том числе порядок сканирования связанных областей техники, могут быть определены с помощью только одного угла α.
Между тем, чтобы определить порядок сканирования, который позволяет расположить коэффициенты текущего блока наиболее эффективно, блок 425 сканирования может отсканировать и вывести коэффициенты текущего блока в различных порядках сканирования, используя множество углов, сравнить затраты, полученные после кодирования, выполняемого блоком 430 энтропийного кодирования согласно различным порядкам сканирования, и определить порядок сканирования с наименьшими затратами как порядок сканирования, который будет в конечном итоге применен к текущему блоку. То есть блок 425 сканирования изменяет заранее заданный угол α по меньшей мере на один измененный угол α', сравнивает затраты, полученные после сканирования и энтропийного кодирования коэффициентов при измененном угле α', с затратами, полученными после сканирования и энтропийного кодирования коэффициентов при заранее заданном угле α, и определяет угол с наименьшими затратами как окончательный угол для определения порядка сканирования коэффициентов. Информация о порядке сканирования текущего блока, то есть информация об угле α, использованном для определения порядка сканирования, кодируется блоком 430 энтропийного кодирования. В этом случае, если информация о порядке сканирования добавляется в каждый блок, число битов может увеличиться. Соответственно, информация о порядке сканирования может быть закодирована путем выбора одного из множества заранее заданных углов в блоках последовательностей или кадров. Например, метод сканирования с помощью одного из заранее заданных углов α1, α2 и α3 может выполняться в одной и той же последовательности или кадре.
Фиг. 8 является блок-схемой последовательности операций, изображающей способ кодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения.
На фиг. 8 в операции 810 каждый из коэффициентов текущего блока проецируется на ось, выбранную в качестве опорной оси из числа горизонтальной оси и вертикальной оси, вдоль прямой линии, перпендикулярной к прямой линии с заранее заданным углом α от опорной оси.
В операции 820 определяется порядок сканирования согласно порядку расположения коэффициентов, проецируемых на опорную ось, и коэффициенты сканируются в этом определенном порядке сканирования. Как было описано выше, коэффициенты могут последовательно сканироваться в порядке расположения, в котором коэффициенты, проецируемые на опорную ось, расположены на опорной оси, начиная с коэффициента DC.
В операции 830 информация о заранее заданном угле и отсканированных коэффициентах кодируется с помощью энтропийного кодирования.
Как было описано выше, когда порядок сканирования определен и коэффициенты, отсканированные в этом определенном порядке сканирования, введены, блок 430 энтропийного кодирования генерирует значащую карту Sigmap, выражая значащий коэффициент, имеющий значение, отличное от 0, с помощью '1' и коэффициент, имеющий значение, равное 0, как '0'. В значащей карте Sigmap флаг EOB, указывающий, является ли каждый коэффициент последним значащим коэффициентом, присваивается каждому из значащих коэффициентов, значение которого равно 1.
Между тем, если существует только коэффициент DC, например, если параметр QP квантования большой, то даже при том, что используются различные порядки сканирования, изменения в типах расположения отсканированных коэффициентов отсутствуют. Соответственно, чтобы уменьшить издержки, когда имеется только коэффициент DC, блок энтропийного кодирования 430 может не кодировать информацию об угле для определения порядка сканирования. То есть блок 430 энтропийного кодирования определяет, является ли коэффициент DC последним значащим коэффициентом с помощью значащей карты Sigmap и флага EOD, и может закодировать информацию об угле для определения порядка сканирования только тогда, когда коэффициент DC является не последним значащим коэффициентом.
Кроме того, чтобы уменьшить издержки, блок 430 энтропийного кодирования может закодировать информацию об угле для определения порядка сканирования, присваивая '0' информации об угле для заранее заданного угла для определения порядка сканирования, который встречается часто, и присваивая другие значения другим углам. Например, если могут использоваться зигзагообразный порядок сканирования, горизонтальный порядок сканирования и вертикальный порядок сканирования, но зигзагообразный порядок сканирования выбран как порядок сканирования, наиболее подходящий для сканирования коэффициентов текущего блока, эффективность сжатия может быть улучшена при выполнении энтропийного кодирования путем присвоения '0' зигзагообразному порядку сканирования и, соответственно, присвоения '01' и '10' горизонтальному порядку сканирования и вертикальному порядку сканирования.
Как было описано выше, так как способ кодирования изображения с помощью адаптивного порядка сканирования коэффициентов согласно настоящему иллюстративному варианту воплощения может использовать различные порядки сканирования с небольшими издержками, эффективность сжатия согласно характеристикам изображения может быть улучшена.
Фиг. 9 является блок-схемой, изображающей устройство 1000 для декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения.
На фиг. 9 устройство 1000 включает в себя блок 1010 энтропийного декодирования, блок 1020 предсказания, блок 1030 реконструкции остатка, блок 1040 управления, блок 1050 сложения, блок 1015 сканирования и блок 1060 хранения данных.
Блок 1010 энтропийного декодирования получает информацию о заранее заданном угле для определения порядка сканирования и информации о коэффициентах текущего блока, которые будут декодироваться из входного битового потока. Используя информацию об угле для определения порядка сканирования, блок 1015 сканирования проецирует каждый из коэффициентов текущего блока на ось, выбранную в качестве опорной оси из числа горизонтальной оси и вертикальной оси, вдоль прямой линии, перпендикулярной к прямой линии с заранее заданным углом от опорной оси, и определяет порядок сканирования на основании порядка расположения коэффициентов, спроецированных на опорную ось, как было описано выше. Блок 1015 сканирования изменяет порядок коэффициентов, извлеченных из блока 1010 энтропийного декодирования, и выводит коэффициенты с измененным порядком блоку 1030 реконструкции остатка. Блок 1030 реконструкции остатка реконструирует остаточные данные, выполняя обратное квантование и обратное преобразование над коэффициентами преобразования. Блок 1020 предсказания генерирует и выводит предсказанное изображение согласно режиму предсказания текущего блока, извлеченного из битового потока. Блок 1050 сложения реконструирует текущий блок, складывая реконструированный остаток и предсказанное изображение. Восстановленный текущий блок сохраняется в блоке 1050 хранения данных и используется для декодирования следующего блока. Блок 1040 управления управляет каждым элементом устройства 1000.
Фиг. 10 является блок-схемой последовательности операций, изображающей способ декодирования изображения с помощью адаптивного порядка сканирования коэффициентов, согласно иллюстративному варианту воплощения.
На фиг. 10 в операции 1010 извлекается информация о заранее заданном угле α для определения порядка сканирования коэффициентов текущего блока, который будет декодироваться из битового потока.
В операции 1020, используя полученную информацию об угле, каждый из коэффициентов текущего блока проецируется на ось, выбранную в качестве опорной оси из числа горизонтальной оси и вертикальной оси, вдоль прямой линии, перпендикулярной к прямой линии с заранее заданным углом α от опорной оси, и определяется порядок сканирования коэффициентов на основании порядка расположения коэффициентов, спроецированных на опорную ось.
В операции 1030 изменяется порядок и выводятся коэффициенты, полученные из битового потока в этом определенном порядке сканирования. Переставленные и выведенные коэффициенты подвергаются обратному квантованию и обратному преобразованию для генерации остаточных данных. Текущий блок реконструируется путем сложения генерированных остаточных данных и предсказанного изображения текущего блока.
Как было описано выше, эффективность сжатия изображений может быть улучшена путем эффективного определения различных порядков сканирования, используя только информацию об угле.
Иллюстративные варианты воплощения могут быть воплощены в виде машиночитаемых кодов в машиночитаемом носителе информации. Машиночитаемый носитель информации может быть любым устройством записи, которое может хранить данные, которые считываются с помощью компьютерной системы. Примеры машиночитаемого носителя информации включают в себя постоянную память (ROM), память прямого доступа (RAM), компакт-диски, предназначенный только для чтения (CD-ROM), магнитные ленты, гибкие диски и оптические устройства хранения данных. Машиночитаемый носитель может быть распределен между компьютерными системами, которые соединены через сеть, и иллюстративный вариант воплощения может быть сохранен и реализован как машиночитаемые коды в распределенной системе. Кроме того, один или более блоков устройства 400 кодирования и устройства 1000 декодирования могут включать в себя процессор или микропроцессор, выполняющий компьютерную программу, сохраненную на машиночитаемом носителе.
Хотя иллюстративные варианты воплощения были, в частности, показаны и описаны выше с использованием конкретных терминов, иллюстративные варианты воплощения и термины являются просто иллюстративными и не должны рассматриваться как ограничивающие объем идеи настоящего изобретения, которая определена в формуле изобретения. Соответственно, специалистам в области техники следует иметь в виду, что в изобретении могут быть сделаны различные изменения в форме и деталях, не отступая от духа и объема настоящей идеи изобретения, определенной в нижеследующей формуле изобретения.