Электронное устройство и способ в электронном устройстве для обработки данных изображения

Иллюстрации

Показать все

Изобретение относится к электронному устройству для обработки данных. Устройство включает средство обработки данных (13, 14, 16, 18) и память (17), для выполнения обработки данных изображения (12.1) на основе блоков. Данные изображения (12.1) закодированы в модульные блоки (В, MB), расположены предварительно установленным образом, из которых область обработки (РА) согласно параметрам настройки может быть сформирована из данных одного или более блоков (В, MB). Для обработки данные по области обработки (РА) размещены в памяти (17), так же предварительно установленным способом, как и данные по граничным областям (ЕА1, ЕА2, ЕА4) области обработки (РА) для того, чтобы обработать краевые области для области обработки (РА). Часть области обработки (РА1, РА2) располагается, чтобы быть сформированной из одного или более модульных блоков (МВР1-МВР3, ВР1-ВР5), которые были предварительно закодированы, и из области, которая была возможно уже по меньшей мере частично обработана. Кроме того, изобретение также касается способа и программного продукта (31). Использование изобретения позволяет уменьшить требуемую память для обработки изображения. 5 н. и 24 з.п. ф-лы, 12 ил.

Реферат

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

Обработка изобразительной информации большого размера и/или с высоким разрешением увеличивает требуемый объем и конфигурацию памяти электронных устройств из-за огромного количества вовлеченных данных изображения. Как известно, основанный на блоках способ обработки изображения использовался в попытке решить проблемы, связанные с требованием памяти большой емкости. Некоторые известные примеры стандартов кодирования изображения, которые обрабатывают изображение от блока к блоку, включают в себя, например, JPEG (Объединенную группу экспертов по машинной обработке фотографических изображений), MPEG (экспертную группу по кинематографии), H.26x, и т.д. Другие кодеры-декодеры DCT (дискретного косинусного преобразования) могут также быть включены в эту группу. В основанной на блоках обработке размер модульного блока обычно составляет 8×8 или 16×16 пикселей. Блок 16 на 16 пикселей называют, в общем случае, макроблоком (MB).

Фиг.1 показывает структуру кадра I изображения при применении макроблочного подхода. Здесь каждая макроблочная строка MB_row, обрабатываемая в любой момент, состоит из одной или двух горизонтальных строк. Строка включает в себя блоки B для полной ширины кадра I изображения. Макроблоки MB могут иметь пиксельный размер, например 16×16.

Фиг.2 показывает некоторые примеры предшествующего уровня техники для течения данных (то есть потока), происходящего через канал передачи данных, который может также быть выполнен, используя блоки. Цепочка 10.1 в верхней части Фиг.2 показывает режим обработки на основе изображения. Цепочка 10.2' в нижней части показывает основанную на блоках обработку. В основанной на блоках обработке 10.2' принципом является выполнение декодирования, постобработки, других операций повышения качества изображения и масштабирование на одном макроблоке MB одновременно. Это означает, что для режима 10.2' основанной на блоках обработки, среди других вещей, необходимо осуществить обработку в реальном времени и для того, чтобы сократить потребление памяти, более чем рекомендовано, например, для режима на основе изображения.

Чтобы изменять точку изображения (то есть пиксель), многие алгоритмы 14 обработки изображений требует некоторую информацию относительно соседних пикселей, смежных с интересующим местоположением изображения. На основании этого, чтобы обработать определенную макроблочную область, алгоритмы 14 обработки изображения также требуют доступа к некоторым из макроблоков, окружающих рассматриваемое местоположение изображения. Фиг.3 показывает ситуации, касающиеся этого.

Однако существенные проблемы в условиях использования памяти касаются такой обработки, выполненной согласно, например, матрицеподобному, двумерному, блочно-модульному делению. Если области EA1, EA2, EA4, которые окружают макроблочную область PA, обрабатываются и были выбраны этим способом, принимается во внимание значительный объем памяти, требуемой в устройстве 10.2'.

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

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

Согласно первому возможному решению полное изображение должно быть обработано один раз в рабочей памяти. Однако это нельзя рекомендовать из условия использования памяти, из-за огромного количества данных изображения.

Фиг.3 показывает пример области, которую требуется обработать для обработки области PA размера одного модульного блока согласно предшествующей области техники (PA = макроблок N на строке макроблоков M). Таким образом, правильная законченная обработка соответствующего макроблока (N, M) также требует информации пикселей для блоков MBPx, MBNx (разрезанная область), окружающих обрабатываемую блочную область PA. В соответствии с этим способом определения области требуется информация даже для блока N+1 следующей строки M+1 блоков (=MBN4). Блок MBN4 является теперь конечным блоком в структуре единичной матрицы, который является соседом фактической блочной области PA, обрабатываемой в данное время (разрезанная поперек область).

Упомянутое выше означает, что все блоки, следующие за макроблоком (N, M) в последовательности обработки в данный момент времени должны всегда декодироваться, до конечного соседнего блока N+1, M+1 (=MBN4). Одним из способов выполнения является декодирование сначала строки М макроблоков, соответствующей уместной обрабатываемой области, до ее конца, то есть продолжение декодирования к правому краю кадра I изображения. Следующей, в свою очередь, является следующая строка M+1, от которой декодирование продолжается вправо, начиная с левого края кадра I изображения. Декодирование продолжается вправо к блоку N+1 строки M+1 (=MBN4). MBN4, таким образом, является конечным блоком, который является непосредственно смежным с областью PA, обрабатываемой в этот момент времени.

Как можно предположить, процедура, описанная выше, требует большой емкости памяти в устройстве, тем более что в зависимости от режима обработки часто требуется обработать только несколько пиксельных строк от соседних блоков MBP1-MBP3, MBP, MBN1-MBN4 для обработки краевой области для области PA. Данные пикселей края ближайших соседних блоков могут также быть представлены в памяти, например одна макроблочная строка за раз. В этом случае, при перемещении от одного обрабатываемого блока к следующему, нет никакой потребности всегда извлекать (декодировать) одни и те же краевые данные. Однако, также и в этом случае, потребление памяти остается существенно тем же самым.

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

Общий подход состоял в сохранении информации предварительно декодированных и обработанных блоков в некоторой временной рабочей памяти и использование, позднее, этой информации в более поздней обработке. Обычно это означает, что есть потребность хранить данные изображения нескольких горизонтальных прочитанных пиксельных строк. Однако данные блоков, следующих за областью, обрабатываемой в настоящее время, которые необходимы для того, чтобы иметь дело с краями обрабатываемой области, существенно увеличивают требуемые объемы памяти для процедуры, основанной на блоках.

Данное изобретение предназначено для создания способа нового типа для основанной на блоках обработки цифровых данных изображения, посредством которого края обрабатываемой области могут также быть обработаны, используя существенно меньшую требуемую память, чем в решениях согласно предшествующему уровню техники. Дополнительно, изобретение также предназначено для создания электронного устройства нового типа, в котором способ, в соответствии с изобретением, может быть применен с разумными требованиями к памяти при, однако, обеспечении соответствующей обработки данных. Характерные особенности электронного устройства, в соответствии с изобретением, заявлены в пункте 1 приложенной формулы изобретения, в то время как характерные особенности способа, применимого к этому, заявлены в пункте 9 приложенной формулы изобретения. Кроме того, изобретение также касается программного продукта, характерные особенности которого заявлены в пункте 17 приложенной формулы изобретения.

Электронное устройство, в соответствии с изобретением, включает в себя средство обработки данных и память для выполнения выбранных операций по обработке на данных изображения на основе блоков. Данные изображения размещены для того, чтобы быть закодированными в модульные блоки, размещенные предварительно установленным способом. Область обработки, согласно параметрам настройки, может быть сформирована из кодированных данных одного или более модульных блоков. Для обработки память устройства содержит данные относительно области обработки. Кроме того, память содержит данные об окружении области обработки, определенной способом настройки, для обработки краевых областей области обработки. В изобретении часть области обработки размещена для того, чтобы быть сформированной из одного или нескольких модульных блоков, которые были предварительно кодированы и, возможно, уже по меньшей мере частично обработаны. Использование такого выбора позволяет избежать или, по меньшей мере, уменьшить ненужное предшествующее кодирование модульных блоков, приходящих после обрабатываемой области, что, как известно, требует большого объема памяти в устройстве.

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

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

В соответствии с изобретением кодирование может быть, например, декодированием или закодированием.

Согласно первому варианту воплощения предварительно закодированные и, возможно, уже по меньшей мере частично обработанные модульные блоки могут быть выбраны несколькими различными способами. Они могут быть выбраны, например, только из блочно-модульной строки, которая была закодирована и, возможно, уже частично обработана, перед обработкой области обработки. В дополнение к вышеупомянотому, эти модульные блоки могут также быть выбраны из столбца модульных блоков, который был закодирован и, возможно, уже частично обработан перед обработкой области обработки.

Изобретение допускает эффективную по памяти, основанную на блоках модель обработки цифровых данных изображения или видеоданных. Изобретение особенно может быть использовано в приложениях, в которых обрабатываются потоки данных изображения или видеоданных. Модель, в соответствии с изобретением, имеет очень общую природу. Оно может быть применено к блоку или изображению вообще любого размера.

Использование изобретения имеет существенные преимущества перед предшествующим уровнем техники. Изобретение требует только любой предварительной обработки блоков/макроблоков кадра изображения, находящегося в процессе обработки в один момент времени, но вместо этого используют данные, закодированные вместе с обработкой предыдущих областей. Обрабатываемая область может быть закодирована из потока данных и может быть обработана непосредственно выбранным способом и затем сохранена для более позднего использования. Некоторыми примерами этих процедур обработки является повышение качества изображения или масштабирование и возможные их комбинации. Модель обработки, в соответствии с изобретением, является особенно подходящей для приложений, в которых применяются потоки данных.

Способ имеет удивительно малые требования по памяти. Например, в рабочей памяти в любой момент требуется несколько строк памяти для соседних блоков предыдущей области обработки, также как и малый объем памяти для обработки фактической области обработки.

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

Ниже изобретение, которое не ограничено вариантами воплощения, раскрытым ниже, исследуется более подробно при обращении к приложенным чертежам, в которых

Фиг.1 показывает один пример основанного на блоках деления данных изображения,

Фиг.2 показывает некоторые примеры конфигурации цепочек обработки данных изображения, согласно предшествующему уровню техники,

Фиг.3 показывает пример определения, согласно предшествующему уровню техники, области в основанной на блоках обработке,

Фиг.4 показывает первый вариант воплощения определения, в соответствии с изобретением, области обработки при масштабировании изображения,

Фиг.5 показывает пример требуемой для способа памяти в соответствии с изобретением, в варианте воплощения согласно Фиг.4,

Фиг.6 показывает вариант воплощения изобретения при применении его к деблокированию (распаковке блоков) и масштабированию,

Фиг.7 показывает пример цепочки обработки изображения в варианте воплощения по Фиг.6,

Фиг.8a-8e, показывают некоторые примеры требуемой памяти примера обработки согласно Фиг.6.

Фиг.7 показывает компоненты, в терминах изобретения, одного примера электронного устройства 10.2, в котором изобретение может быть применено. Устройство 10.2 включает в себя цепочку обработки изображения, которая может использоваться для обработки данных 12.1 изображения. Данные 12.1 изображения могут быть обнаружены, например, используя детектор 11, принадлежащий устройству 10.2. Данные изображения 12.1 могут, например, также быть получены от сети связи. Данные 12.1 изображения могут быть цифровыми фотографиями или видеоизображением, которые никоим образом не ограничены, в соответствии с изобретением. Некоторыми, но никоим образом не ограничительными, примерами электронных устройств 10.2, к которым изобретение имеет отношение, являются мобильные устройства, устройства мультимедиа, цифровые приставки/ресиверы и цифровые камеры.

Электронное устройство 10.2 включает в себя средство 13 обработки данных, 14.1, 14.2, 16, 18 и память 17 для выполнения выбранных операций по обработке данных 12.1 изображения на основе блоков. Средство 16 обработки данных, согласно одному варианту воплощения, может быть образовано компоновкой, показанной на фиг.7. В ней декодер 13, принадлежащий устройству 10.2, используется для декодирования потока данных 12.1. В этом случае декодер 13 действует на основе блоков.

Перед декодированием 13 данные 12.1 изображения были уже закодированы 30. При кодировании 30 данные изображения, выводимые детектором 11, принадлежащим, возможно, устройству 10.2, делятся, с помощью разделения на блоки, на модульные блоки B, MB способом, зависящим от способа кодирования. Модульные блоки B, MB могут быть размещены в матричном, двумерном табличном расположении, как показано на Фиг.1, например. Кодирование 30 и декодирование 13 могут упоминаться, в общем случае, как кодирование (преобразование в некоторый машинный код) данных изображения.

Декодер 13 помещает данные 12.1 изображения, закодированные кодером 30, в форме, которая может быть обработана снова (=, то есть распакована в ее более или менее первоначальную форму). При декодировании 13 в один момент времени декодируется один макроблок MB и после этого направляется в цепочку 16 для обработки выбранным способом.

Декодер 13 сопровождается желательными функциональными возможностями постобработки 14. Это может быть повышением качества изображения - функциональная возможность 14 масштабирования показана как пример в варианте воплощения, согласно Фиг.2, к которому основанная на блоках обработка может быть также применена. Также возможны другие функциональные возможности, как раскрыто в последующих прикладных примерах.

После постобработки 14 обработанные данные 12.3 изображения сохраняются в закодированной форме, например, в памяти большого объема, отображаясь также на дисплее 15 устройства 10.2, или могут быть посланы в сеть связи, в зависимости от варианта воплощения.

Фиг.4 показывает основной принцип изобретения. В изобретении, в зависимости от выполняемой в данный момент обработки, область PA обработки сформирована согласно настройке, используя данные одного или более модульных блоков, по меньшей мере уже декодированных на более ранней стадии. Область PA может быть предусмотрена дополнительно как сформированная из подобластей PA1, PA2, PA3 (Фиг.1 и 4). Макроблоки MBP1-MBP3, декодированные перед макроблоком MB (N, M), рассматриваемым как фактическая область обработки PA, могут быть, возможно, уже по меньшей мере частично обработаны в их области. Размер области PA определен согласно операциям, которые будут выполнены. Таким образом, область PA может быть установлена отдельно для каждого компонента 18, 14.1, 14.2 обработки из цепочки 16 обработки изображения так, чтобы даже конечная стадия 14.2 обработки могла быть осуществлена предпочтительным способом в соответствии с изобретением, в терминах использования памяти.

Декодирование 13 может выполняться всегда согласно тому же самому блочному делению B, MB изображения. Область PA определена уже перед началом декодирования первого блока изображения I. После обработки каждого блока MB область PA обработки передвигается так же, как и край блока MB, декодированного согласно делению набора блоков, так же передвигается по мере прогресса обработки. Область PA, которая на самом деле является несколькими строками и столбцами пикселей 'после' фактически декодированного блока, если о направлении обработки думают, как о происходящей слева направо и сверху вниз.

Кадр I изображения, показанный как обрабатываемый на Фиг.1, может самостоятельно состоять из, например, фотографического изображения или это может также быть один кадр I непрерывного видеоизображения. Информация о других кадрах изображения, типа, например, данных кадра изображения, который является предшествующим обрабатываемому кадру I изображения, или последующий кадр изображения изобретению вообще не требуется. Обработка для обрабатываемого кадра I изображения может быть выполнена по очереди для одной области PA за раз, продолжаясь в последовательности набора в кадре I. Таким образом, могут быть обработаны требуемые части всего кадра I изображения.

Фиг.1 показывает один пример такой последовательности. Здесь, чтобы выполнить обработку всей области I изображения, начинают, например, от левого верхнего угла кадра I изображения. Оттуда обработка продолжается от левого края области I изображения в макроблочной строке MB_row, от столбца до столбца, к правому краю, в соответствии с делением области набора (стрелка с прерывистой линией i на Фиг.1). Как только обработка будет закончена на правом краю кадра I, рассматриваемая строка будет обработана. После этого процесс перемещается вниз в следующую макроблочную строку. Обработка продолжается снова, начиная с левого края области I изображения, от начала этой следующей макроблочной строки (стрелка с прерывистой линии ii). Это продолжается до достижения правого, самого нижнего угла кадра I изображения. Как только кадр I изображения был обработан выбранным способом, в случае видеоданных, следующий кадр I+1 изображения может быть взят для обработки. Для этого выполняется соответствующая процедура обработки, являющаяся независимой от предыдущего кадра I изображения. Конечно, могут быть другие способы хода обработки.

Фиг.4 показывает один пример подхода к способу, в соответствии с изобретением, основанной на блоках обработки. Здесь область PA обработки кадра I изображения может быть представлена как сформированная из некоторого количества подобластей PA1, PA2, PA3. Область PA имеет размер индивидуального макроблока MB. Область PA показана как белая область, остающаяся внутри квадрата, нарисованного толстой линией. Здесь области периметра EA1, EA2, EA4, требуемые для обработки области PA, показаны заштрихованными.

Правая нижняя часть PA3 области PA обработки в кадре I изображения является сформированной, главным образом, из последнего декодированного макроблока MB (N, M). Благодаря декодированию макроблока, которое было выполнено как раз перед этим, данные от реального макроблока MB (N, M) относительно области обработки PA3 сохраняются в памяти 17.2 устройства 10.2. Далее, данные области EA4, окружающей область PA3, ниже и справа от области PA3, также сохраняются в памяти 17.2 устройства 10.2. Эта область EA4 была также только что декодирована так, чтобы она была соответствующим образом доступна от декодера 13. На Фиг.4 область EA4 ограничена областью PA3 и макроблоками MBP2, MBN1, MBN3 и MBP3.

Субблоки PA1 и PA2 области PA обработки теперь сформированы непредсказуемым способом из некоторых из предыдущих соседних блоков MBP1-MPB3 (=macroblock_previous) обрабатываемого кадра I изображения. Таким образом, данные от этих соседних блоков MBP1-MBP3 также сохраняются в памяти 17.1', от их областей PA1-PA2 и их областей EA1-EA2 периметра. Сохранение выполняется уже вместе с областью, обрабатывающей предыдущий соответствующий обрабатываемый макроблок MB (N, M).

Подобласти PA1 и PA2, расположенные в предыдущих блоках MBP1-MBP3, теперь формируют часть области PA, обрабатываемой способом в соответствии с изобретением. Далее, области EA1 и EA2, расположенные в предыдущих блоках MBP1-MBP3, состоят из верхней и левой части граничных областей, остающихся вне области PA обработки. В некоторых приложениях требуются граничные данные от граничных областей EA1, EA2 для того, чтобы должным образом обработать краевые области, принадлежащие областям PA1, PA2. Краевые области этих областей PA1, PA2 могут быть поняты как являющиеся пикселями около границ (толстая непрерывная линия выше и налево), определяющая области обработки PA, которые, таким образом, будут обработаны для их части, принадлежащей области PA обработки.

Согласно упомянутому выше, часть фактической области PA обработки, обрабатываемой в любое время, сформирована из одного или более модульных блоков MBP1-MBP3, которые были уже, возможно по меньшей мере частично, обработаны и, таким образом, по меньшей мере уже декодированы. На основании этого можно использовать в любое время относительно реального MB (N, M), который расценивается как частично обработанный, только пиксели блоков MBP1-MBP3, предыдущие этому. Эти блоки MBP1-MBP3 уже декодированы в памяти 17.1 устройства 10.2. Кроме того, по меньшей мере часть областей блоков MBP1-MBP3 была, возможно, уже обработана вместе с предыдущей соответствующей областью PA обработки.

В результате способа определения области обработки PA в соответствии с изобретением, нет никакой потребности передавать реальный конечный краевой блок MB (N, M) в направлении прогресса обработки, из которого теперь сформирован соответствующий блок MB (N, M) области обработки, в виде его подобласти PA3. Даже более подробно, это означает, что предварительное декодирование согласно предшествующему уровню техники не требуется для выполнения на блоках MBN1-MBN4 (=macroblock_next), находящихся на правой нижней стороне реального блока MB (N, M), находящегося в правом нижнем углу области обработки PA или даже вообще на любом из последующих макроблоков.

Модульные блоки MBP1-MBP3, которые для их частей формируют области PA1, PA2, PA3, могут быть выбраны в изобретении несколькими различными способами. Согласно первому более простому варианту воплощения предыдущий блочный модуль области PA1 может быть исключительно соседним блоком MBP2, найденным из предыдущей модульно-блочной строки M-1, где область была уже, возможно, по меньшей мере частично, обработана перед обработкой (N, M) макроблока или которая была, по меньшей мере, уже декодирована. Кроме того, малое количество дополнительных данных необходимо из предыдущей макроблочной строки M-1, от макроблоков MBP1, MBP2, MBP, находящихся в окружении обрабатываемой подобласти PA1. Дополнительные данные необходимы для обработки краевых частей обрабатываемой подобласти PA1. В этом случае предварительное кодирование должно быть выполнено на блоке MBN1 макроблоков, окружающих область PA. Несмотря на это есть очень небольшой результат потребления памяти устройства 10.2, сравнимый, например, с предварительным декодированием, включая все последующие блоки, согласно предшествующему уровню техники.

От предыдущей макроблочной строки M-1, в зависимости, например, от процедуры обработки или алгоритма, объем декодированных данных пиксельных строк краевых областей EA1, PA1 блоков MBP1, MBP2, MBP сохраняется в памяти. Кроме того, пиксели требуются от правого края блока MBP3 для формирования области EA2. Поскольку они являются уже полностью декодированными блоками MBP1, MBP2, MBP, данные их нижней части уже готовы в памяти 17.1. Это делает обработку эффективной и в терминах использования памяти, и в терминах времени обработки.

Согласно вышеупомянутому, полная обработанная область PA1, PA3 может теперь быть рассмотрена как 'смещенная' вверх элементом набора пикселей от реальной границы блока (N, M). В этом случае никакое смещение налево не имеет место на той же самой строке М как макроблок MB (N, M), который рассматривают, главным образом, как обрабатываемый, как описано в воплощении по Фиг.4.

Согласно второму варианту воплощения изобретения, показанному на Фиг.4, модульные блоки MBP1, MBP2, формирующие область PA обработки, которые уже были предварительно, по меньшей мере, декодированы, и, возможно, также области, которые уже, по меньшей мере частично, обработаны, могут, в дополнение к предыдущей строке M-1, также быть из блочно-модульного столбца N-I. Этот блочно-модульный столбец N-1 также уже, по меньшей мере, декодирован перед главной обработкой предполагаемого макроблока MB (N, M). В дополнение к декодированию, блочно-модульный столбец N-1 может также быть в его области, возможно уже, по меньшей мере частично, обработанной. Макроблоку MBP3 (=N-1, M), который является последним для декодирования и обработки, часто непосредственно предшествует в блочной матрице I фактический макроблочной области MB (N, M), которая воспринимается как главная обрабатываемая, таким образом, будучи также с этим в той же самой макроблочной строке М.

Данные, касающиеся макроблока MBP3 (=N-1, M), или по меньшей мере данные краевых областей EA2, PA2 этого блока MBP3, все еще выгодно декодируются в памяти 17.1 устройства 10.2. Из-за этого обработка макроблока MB (N, M), который в тот момент расценивается, главным образом, как обрабатываемый, и в своей части также формирование области PA могут быть выполнены, используя данные области PA1 выше области PA и, кроме того, данные области PA2 слева от нее.

Нижняя горизонтальная строка пикселей и самый правый вертикальный столбец пикселей, принадлежащий области обработки PA, находятся рядом с правым краем и нижним краем последнего реального блока (теперь MB (N, M)), формирующего, главным образом, обрабатываемую область PA так, что нет никакой потребности от пикселей блоков MBN1-MBN4, следующих за областью PA, быть декодированными/сохраненными или вниз, или также вперед. Такое решение обеспечивает, среди других вещей, чрезвычайно эффективное расположение для упорядочивания дополнительных данных, требуемых от окружения области PA.

Как может быть замечено на Фиг.4, обрабатываемые блочные области PA1, PA2, PA3 (главным образом = MB (N, M)) являются теперь несколькими пикселями в вертикальных и горизонтальных направлениях перед реальной блочной областью MB (N, M). Она включает в себя, однако, большинство пикселей реальной блочной области MB (N, M). Область PA, таким образом, является теперь, по-видимому, 'смещенной' на заданное число пикселей и в верхнем, и в противоположном направлении к направлению хода обработки (стрелки прерывистыми линиями i и ii на Фиг.1) из-за реального (N, M) макроблочного деления. 'Смещение' зависит от выполняемой обработки в этот момент времени.

На основе упомянутого выше способ вовлекает необходимость использовать только области EA1, PA1, EA2, PA2 пикселей, которые получены из областей, обработанных непосредственно перед блоком MB (N, M), который рассматривают как обрабатываемый. На одной ее части эта область EA2, PA2 сформирована из макроблока MBP3, уже обработанного, по меньшей мере частично, от его области, последней и, таким образом, уже полностью декодированной. На ее второй части эта область EA1, PA1 сформирована из нижних частей соседних макроблоков MBP1, MBP2 из предыдущей макроблочной строки M-1. Также, строка M-1 уже, по меньшей мере частично, обработана и для этой цели декодирована перед обработкой строки М, расцениваемой как обрабатываемая в этот момент.

Кроме того, дополнительно необходимо отметить, что в обоих случаях, описанных выше, размер фактической обрабатываемой области PA, однако является тем же самым, что и размер реальной макроблочной области MB (N, M).

Изобретение может использоваться для того, чтобы избежать предварительной обработки, которая требует много памяти. Согласно предшествующему уровню техники предварительная обработка должна быть выполнена даже на макроблоках или областях MBN1-MBN4 после макроблока (N, M), который расценивается как обрабатываемый в этот момент.

Данные пикселей, требуемые каждой процедурой обработки или алгоритмом, могут быть сохранены во временных рабочих блоках памяти 17.1 устройства 10.2. Объем данных пикселей областей EA1, EA2, EA4, формирующих и окружающих область PA, и, таким образом, также для ее части, 'смещения' области обработки PA в реальном (N, M) делении единичной матрицы, определяет алгоритм обработки или алгоритмы, которые используются в этот момент времени.

Фиг.5 показывает пример требований к памяти по способу, выполняемому в электронном устройстве 10.2. Как было заявлено выше, размер окрестности блочных областей PA1, PA2, PA3 уже обработан, и, следовательно, требования к памяти по способу зависят, в значительной степени, от обработки, выполненной на областях PA1, PA2, PA3. Ниже раскрывается, как первый пример применения, основанное на блоках масштабирование изображения, к которому способ, в соответствии с изобретением, может быть применен.

При масштабировании изображения область PA1, PA2, PA3 относится к области PA изображения, которая масштабируется до выходного изображения. В прикладном примере ниже масштабирование приводит к увеличению, то есть к большему изображению (более высокая разрешающая способность). Изобретение может быть одинаково хорошо применено к масштабированию с уменьшением, то есть к более низкой разрешающей способности.

При масштабировании применяются выбранные алгоритмы интерполяции. Алгоритмы интерполяции основаны на линейной комбинации входных данных и специального ядра, которое нет необходимости описывать более подробно в связи с этим. Интерполированное значение пикселя может быть рассчитано как линейная комбинация соседних пикселей. В связи с этим можно применить два примера способа. Первый из них относится к билинейной интерполяции BIL и второй - к бикубической сверточной интерполяции BIC.

В билинейной интерполяции BIL используются четыре (2×2) соседних значения пикселей для вычисления значения пикселя. Таким образом, требуется один пиксель с каждой стороны от пикселя, обрабатываемого в это время. В бикубической интерполяции BIC шестнадцать (4×4) соседних значений пикселей требуются для вычисления значения пикселя. Таким образом, требуются два последовательных пикселя, простирающихся от каждой стороны вокруг обрабатываемого пикселя. Согласно упомянутому выше, когда области PA1, PA2, PA3 являются, поскольку они здесь являются примерами, областями, соответствующими размеру макроблока MB (N, M), требуются одна или две пиксельные строки и столбцы вокруг него (k=1 или k=2, Фиг.5). Таким образом, несколько наиболее удаленных пиксельных строк принадлежат блочной области PA1, PA2, PA3.

Требуемые одна или две пиксельные строки и столбцы снаружи обработанной области PA1, PA2, PA3 являются непосредственно внешними к обработанным областям PA1, PA2, PA3. В случае двух пиксельных строк, они могут, в общем случае, простираться существенно последовательно относительно обрабатываемого пикселя. Соответственно, интерполяция каждого пикселя в пределах области PA1, PA2, PA3 требует, в зависимости от способа интерполяции, один или два пикселя, простирающихся последовательно вокруг фактически обрабатываемого пикселя.

Поскольку области PA1, PA2, PA3, которые является объектом масштабирования, обрабатываемого в любое время, выбраны таким способом, что они заданным количеством пикселей в направлении модульных блоков MBP1-MBP3, которые были предварительно, по меньшей мере, декодированы и возможно с областями уже по меньшей мере частично масштабируемыми, это необходимо также принять во внимание при определении строк EA1 и столбцов EA2 пикселей вне макроблоков (N, M) в этих направлениях. Необходимо отметить, что полные области PA1, PA2, PA3 имеют, однако, по-прежнему размер требуемой области PA обработки.

На основе упомянутого выше билинейная интерполяция BIL требует двух пиксельных столбцов EA2, PA2 и строк EA1, PA1 от левых блочных областей макроблочной области MB (N, M), рассматриваемой как обрабатываемая главным образом, и, соответственно, также от верхних блочных областей MBP3, MBP1, MBP2 (BIL=1+1=2, на Фиг.5). Из этих пиксельных строк EA1, PA1 и столбцов EA2, PA2, области PA1, PA2 ближе к области PA3 для ее части, формирующей обрабатываемую область PA. Соответственно, внешние области EA1, EA2 относительно области PA3 представляют данные окружения, внешнего к области PA, требуемой для масштабирования.

Бикубическая сверточная интерполяция BIC требует четырех пиксельных столбцов EA2, PA2 и строк EA1, PA1 от левой стороны блочных областей макроблочной области MB (N, M), рассматриваемой как обрабатываемая главным образом, и, соответственно, также от верхних блочных областей MBP3, MBP1, MBP2 (BIC=2+2=4, Фиг.5), которые уже были предварительно, по меньшей мере, декодированы и также уже, возможно, по меньшей мере частично,