Способ и устройство ввода, обработки и вывода видеоизображения
Иллюстрации
Показать всеИзобретение относится к средствам ввода, обработки и вывода видеоданных. Техническим результатом является повышение эффективности использования внутренней памяти независимо от типа алгоритмов обработки видеоданных. В способе на этапе ввода входное растровое видеоизображение в виде потока кадров построчно сохраняют во входном буфере строк, разбивают кадры на входные микроблоки, сжимают и сохраняют входные микроблоки во внешней памяти, на этапе обработки считывают входные микроблоки из внешней памяти, разжимают и записывают входные микроблоки во внутреннюю память, формируют растровые макроблоки, обрабатывают растровые макроблоки посредством процессоров обработки. 2 н. и 20 з.п. ф-лы, 2 ил.
Реферат
Изобретение относится к области обработки данных, а именно к способам и устройствам ввода, обработки и вывода видеоизображения, и может применяться в системах видеонаблюдения и видеоаналитики.
В последнее время наблюдается активное развитие технологий, позволяющих значительно повысить качество вводимого с различных источников видеосигнала. Происходит увеличение разрешения и частоты кадров видеопотока, что требует большего объема оборудования, необходимого для обработки и хранения данных, повышения скорости обработки, увеличения пропускной способности трактов передачи данных между обрабатывающими модулями и внешней памятью.
Современный уровень развития технологии СБИС (сверхбольших интегральных схем) не позволяет разместить на кристалле достаточное количество памяти для хранения полноразмерных кадров изображения высокого разрешения. С другой стороны, пропускная способность интерфейса внешней памяти недостаточна для применения современных алгоритмов обработки видеоизображений высокого разрешения на большой скорости.
Для решения вышеупомянутых проблем применяются технологии обработки данных «на проходе» с использованием небольших по объему буферов строк и макроблоков, кодирования/декодирования информации с использованием специальных методов сжатия для обмена с внешней памятью, блочной пост-обработки данных в режиме память-память.
Известны способ и устройство обработки и сохранения изображения в памяти (заявка US 20070242077 A1), основанные на блочном принципе, в которых вычисляют размер обрабатываемого блока в пикселах (исходя из производительности устройств обработки) и размер сохраняемого блока в мегабайтах (исходя из ограничений файловой системы). При этом в сохраняемом блоке должно быть целое количество обрабатываемых блоков. Один обрабатываемый блок должен целиком попадать в сохраняемый блок. Координаты обрабатываемых блоков вычисляют от центра изображения, координаты сохраняемых блоков - от левого нижнего угла изображения. Изображение сохраняют без сжатия.
Описанные выше способ и устройство применяют в рамках вычислительной системы, включающей процессор, память, сеть, диск и т.д., при этом предполагают, что изображение хранится на диске, поэтому размер сохраняемого блока достаточно большой и определяется ограничениями файловой системы. В современных системах объем оперативной памяти позволяет хранить множество кадров без необходимости сохранения на диске, при этом большей проблемой является необходимость снижения трафика обмена данными, которая при таком подходе не решается.
Существуют способ и устройство обработки изображения (патент RU 2376638), в которых данные изображения кодируют в модульные блоки, размещенные предварительно установленным способом, когда область обработки, согласно параметрам настройки, может быть сформирована из данных одного или более блоков (например, смещена относительно границ модульного блока влево и вверх), и данные, относящиеся к области обработки, размещают в памяти для того, чтобы обрабатывать краевые области для области обработки.
Эти способ и устройство предлагают хранение в памяти только одной строки модульных блоков. Однако при обработке изображения высокого разрешения и достаточно большого для реализации сложных алгоритмов обработки размера обрабатываемого блока требуемый объем памяти возрастает, а использование закодированных блоков различного размера (JPEG, MPEG) не позволяет обеспечить быстрый поиск произвольной области изображения в памяти, и поточный способ обработки является единственно возможным, что не всегда является оптимальным способом обработки.
В заявке US 20100296745 A1 описан способ обработки изображения, а именно сжатия блока изображения с определенным количеством пикселов, состоящий из нескольких шагов: 1) сжатие без потерь, 2) если длина блока после сжатия превышает заданную величину, выбирают параметры квантизации и производят сжатие, шаги 1) и 2) повторяют до тех пор, пока длина блока равна или менее заданной величины, 3) в память записывают сжатый блок и идентификатор, позволяющий определить параметры квантизации.
Описанный выше способ позволяет осуществить сжатие информации с максимально высоким качеством в рамках ограниченного размера блока после сжатия, однако итерационность метода оказывает негативное влияние на производительность. При этом размер сжатого блока, сохраняемого в памяти, не является строго определенной величиной, поэтому для осуществления быстрого поиска требуемой области в памяти (что часто бывает актуальным при решении видеоаналитических задач) требуется хранение дополнительной информации о соответствии между координатами областей в исходном изображении и адресами их размещения в памяти. Кроме того, не рассматривается применение этого способа в составе системы обработки видеоданных.
Наиболее близкой к заявленному изобретению является система обработки изображения, описанная в заявке US 20120033886 A1, включающая в себя порт ввода данных, порт вывода сжатых данных или узел сохранения сжатых данных, память инструкций и устройство обработки масштабируемых блоков, которое принимает и обрабатывает блоки, осуществляет их кодирование на основе wavelet-преобразования и выдает закодированный поток в систему. Система дополнительно включает порт ввода сжатых данных и порт вывода декодированных данных или узел хранения декодированных данных. Данная система выбрана в качестве прототипа заявленного изобретения.
В системе-прототипе рассматривается общий принцип программной и/или аппаратной системы обработки изображений, предполагающий разбиение изображения на блоки, которые могут декодироваться для обработки, обрабатываться параллельно, кодироваться для передачи по трактам данных и сохранения в памяти, при этом не определяются механизмы разделения на блоки для обработки и хранения, принципы хранения и поиска требуемой области в памяти, не регламентируется разделение функций между программной и аппаратной частью системы.
Задачей заявленного изобретения является создание способа и устройства ввода, обработки и вывода видеоизображения, в том числе растрового видеоизображения высокого разрешения, которые обладают малым объемом внутренней памяти на кристалле и низкой пропускной способностью интерфейса внешней памяти, но при этом обеспечивают быстрый поиск объектов во внешней памяти и эффективное использование внутренней памяти независимо от типа алгоритмов обработки, за счет передачи данных видеоизображения между устройством и внешней памятью в сжатом виде (на уровне микроблоков), а также за счет поблочной обработки кадров входного изображения, извлекаемых из внутренней памяти (на уровне перекрывающихся растровых макроблоков).
Поставленная задача решена путем создания способа ввода, обработки и вывода видеоизображения, в котором на этапе ввода входное растровое видеоизображение в виде потока кадров построчно сохраняют во входном буфере строк, разбивают кадры входного видеоизображения на входные микроблоки, сжимают и сохраняют входные микроблоки во внешней памяти; на этапе обработки считывают входные микроблоки из внешней памяти, разжимают и записывают входные микроблоки во внутреннюю память, при этом формируют растровые макроблоки, обрабатывают растровые макроблоки посредством процессоров обработки, при этом используют для сохранения промежуточных и окончательных результатов обработки только внутреннюю память, разбивают обработанные растровые макроблоки на выходные микроблоки, сжимают и сохраняют выходные микроблоки во внешней памяти, при этом формируют кадр выходного видеоизображения; на этапе вывода построчно считывают микроблоки кадра выходного изображения из внешней памяти, разжимают и записывают выходные микроблоки кадра выходного изображения в выходной буфер строк, из которого построчно считывают и передают получателю видеоизображения.
В предпочтительном варианте осуществления способа кадры входного видеоизображения разбивают на входные микроблоки фиксированного размера, которые сжимают с фиксированным коэффициентом, при этом получают сжатые входные микроблоки одинакового размера, которые сохраняют во внешней памяти.
В предпочтительном варианте осуществления способа при обработке растровых макроблоков одновременно загружают полностью все растровые макроблоки от нескольких кадров входного видеоизображения во внутреннюю память.
В предпочтительном варианте осуществления способа растровые макроблоки перекрываются между собой.
В предпочтительном варианте осуществления способа цикл обработки растрового макроблока повторяют такое число раз, которое необходимо для обработки хранящегося во внешней памяти разбитого на входные микроблоки кадра входного видеоизображения или его частей.
В предпочтительном варианте осуществления способа на этапе обработки выполняют несколько циклов обработки хранящегося во внешней памяти разбитого на входные микроблоки кадра входного видеоизображения.
В предпочтительном варианте осуществления способа на этапе обработки выполняют несколько циклов обработки хранящегося во внешней памяти разбитого на входные микроблоки кадра входного видеоизображения, при этом применяют различные схемы разбиения кадра входного видеоизображения на растровые макроблоки.
Поставленная задача решена также путем создания устройства ввода, обработки и вывода видеоизображения, содержащего модули ввода видеоданных, модули обработки видеоданных и модули вывода видеоданных, выполненные с возможностью обмена данными с внешней памятью через контроллер внешней памяти и систему соединений, причем модули ввода видеоданных выполнены в виде входного контроллера, который соединен с входным буфером строк, который соединен с делителем входного изображения, который соединен с модулем сжатия входных микроблоков, который соединен с системой внешних соединений, причем модули обработки видеоданных выполнены в виде сборщика макроблоков, который соединен с системой внешних соединений и с декодером обработки, который соединен с внутренней памятью, которая соединена с процессорами обработки и с делителем обработанных макроблоков, который соединен с модулем сжатия выходных микроблоков, который соединен с системой внешних соединений, причем модули вывода видеоданных выполнены в виде сборщика выходного видеоизображения, который соединен с системой внешних соединений и с выходным декодером, который соединен с выходным буфером строк, который соединен с выходным контроллером, причем входной контроллер выполнен с возможностью приема от источника видеоизображения входного растрового видеоизображения в виде потока кадров и передачи во входной буфер строк, выполненный с возможностью построчного сохранения видеоизображения; делитель входного изображения выполнен с возможностью считывания данных из буфера строк и формирования входных микроблоков; модуль сжатия входных микроблоков выполнен с возможностью сжатия входных микроблоков с фиксированным коэффициентом, при этом формирования сжатых входных микроблоков; система соединений и контроллер внешней памяти выполнены с возможностью передачи сжатых входных микроблоков во внешнюю память, выполненную с возможностью записи и хранения кадров входного видеоизображения целиком в виде сжатых входных микроблоков; сборщик макроблоков выполнен с возможностью считывания из внешней памяти сжатых входных микроблоков; декодер обработки выполнен с возможностью разжимания микроблоков и записи их во внутреннюю память, при этом формирования растровых макроблоков; процессоры обработки выполнены с возможностью обработки растрового макроблока, расположенного во внутренней памяти, при этом использования только внутренней памяти для сохранения результатов обработки и промежуточных результатов обработки; делитель обработанных макроблоков выполнен с возможностью разбиения обработанных растровых макроблоков на выходные микроблоки; модуль сжатия выходных микроблоков выполнен с возможностью сжатия выходных микроблоков; система соединений и контроллер внешней памяти выполнены с возможностью передачи сжатых выходных микроблоков во внешнюю память, которая выполнена с возможностью записи и хранения сжатых выходных микроблоков, которые формируют кадр выходного видеоизображения; сборщик выходного видеоизображения выполнен с возможностью считывания построчно сжатых выходных микроблоков кадра выходного видеоизображения из внешней памяти; выходной декодер выполнен с возможностью разжимания построчно сжатых выходных микроблоков кадра выходного видеоизображения и записи их в выходной буфер строк, выполненный с возможностью построчного сохранения выходного видеоизображения; выходной контроллер выполнен с возможностью построчного считывания данных из выходного буфера строк и передачи выходного растрового видеоизображения в виде потока кадров получателю видеоизображения.
В предпочтительном варианте осуществления устройства входной буфер строк выполнен с возможностью построчного сохранения входного видеоизображения, при этом записи новых строк на место наиболее старых строк при заполнении входного буфера строк.
В предпочтительном варианте осуществления устройства делитель входного изображения выполнен с возможностью считывания данных из буфера строк и формирования входных микроблоков, при этом размер входного микроблока по вертикали равен или меньше числа строк во входном буфере строк.
В предпочтительном варианте осуществления устройства модуль сжатия входных микроблоков выполнен с возможностью сжатия входных микроблоков с фиксированным коэффициентом, при этом формирования сжатых входных микроблоков одинакового размера, причем в качестве методов сжатия использования сжатия с потерями или отбрасыванием незначащей информации, а именно: плотной упаковки компонент или уменьшения разрядности компонент пиксела по логарифмическому закону или дискретно-косинусного преобразования с отбрасыванием малозначимых компонент.
В предпочтительном варианте осуществления устройства модуль сжатия входных микроблоков выполнен с возможностью сжатия входных микроблоков с фиксированным коэффициентом, при этом формирования сжатых входных микроблоков одинакового размера, причем в качестве метода сжатия частичного использования алгоритма JPEG сжатия с потерями: разбиения на микроблоки размером 8 на 8 пикселов, дискретно-косинусного преобразования, квантизации входного микроблока, в результате получения входного микроблока фиксированной длины и уменьшенного размера по отношению к исходному.
В предпочтительном варианте осуществления устройства декодер обработки выполнен с возможностью разжимания микроблоков и записи их во внутреннюю память, при этом формирования растровых макроблоков, при этом размер каждого растрового макроблока выбирают таким образом, чтобы растровый макроблок состоял из целого числа входных микроблоков; полностью, включая промежуточные результаты обработки, был пригоден для размещения во внутренней памяти; был пригоден для обработки независимо от остальной части кадра входного видеоизображения.
В предпочтительном варианте осуществления устройства процессор обработки выполнен в виде устройства, выбранного из набора, включающего скалярный процессор, векторный процессор, аппаратный ускоритель.
В предпочтительном варианте осуществления устройства метод сжатия, применяемый в модуле сжатия выходных микроблоков, аналогичен методу сжатия, применяемому в модуле сжатия входных микроблоков.
В предпочтительном варианте осуществления устройства процессоры обработки выполнены с возможностью обработки растрового макроблока, при этом одновременной загрузки растровых макроблоков от нескольких кадров входного видеоизображения.
В предпочтительном варианте осуществления устройства процессоры обработки выполнены с возможностью повторения цикла обработки растрового макроблока то количество раз, которое необходимо для обработки хранящегося во внешней памяти кадра входного видеоизображения или его частей.
В предпочтительном варианте осуществления устройства процессоры обработки выполнены с возможностью повторения цикла обработки растрового макроблока, при этом применения в каждом цикле различных схем разбиения кадра входного изображения на растровые макроблоки.
В предпочтительном варианте осуществления устройства процессоры обработки выполнены с возможностью обработки растрового макроблока различными процедурами обработки с сохранением промежуточных результатов во внешней памяти.
В предпочтительном варианте осуществления устройства растровые макроблоки перекрываются между собой, при этом область перекрытия определяется алгоритмом обработки растрового макроблока в процессорах обработки.
В предпочтительном варианте осуществления устройства растровый макроблок состоит из рабочей области и граничной области данных, расположенной вокруг рабочей области, при этом граничная область данных одного растрового макроблока является частью рабочей области соседнего растрового макроблока.
В предпочтительном варианте осуществления устройства выходной буфер строк выполнен с возможностью построчного сохранения выходного видеоизображения, при этом записи новых строк на место наиболее старых строк при заполнении выходного буфера строк.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими графическими материалами.
Фиг.1. Структурная схема устройства ввода, обработки и вывода видеоизображения, выполненная согласно изобретению.
Элементы:
1 - входной контроллер (IICtr);
2 - входной буфер строк (ILBuff);
3 - делитель входного изображения (ISegm);
4 - модуль сжатия входных микроблоков (IEnc);
5 - система соединений (Intrconnect);
6 - контроллер внешней памяти (MemCtr);
7 - внешняя память (ExtMem);
8 - сборщик макроблоков (PAssm);
9 - декодер обработки (PDec);
10 - внутренняя память (VRAM);
11 - процессоры обработки (Proc1 - ProcN);
12 - делитель обработанных макроблоков (PSegm);
13 - модуль сжатия выходных микроблоков (PEnc);
14 - сборщик выходного видеоизображения (OAssm);
15 - выходной декодер (ODec);
16 - выходной буфер строк (OLBuff);
17 - выходной контроллер (OLCtr).
Фиг.2. Блок-схема цепочки обработки видеоизображения, выполненная согласно изобретению.
Рассмотрим общий вариант выполнения заявленных способа и устройства ввода, обработки и вывода видеоизображения (Фиг.1-2).
Заявленное устройство ввода, обработки и вывода видеоизображения (Фиг.1) имеет в своем составе модули 1 - 4 ввода, модули 8, 9, 12, 13 обработки и модули 14-17 вывода видеоданных, которые обмениваются данными с внешней памятью 7, управляемой контроллером 6 внешней памяти, через систему 5 соединений. Заявленный способ ввода, обработки и вывода видеоизображения основан на двухуровневом разбиении исходного изображения на сжимаемые микроблоки, используемые в качестве элементов хранения и обмена данными между внешней памятью 7 и внутренней памятью 10, и перекрывающиеся растровые макроблоки, используемые в качестве элементов, над которыми осуществляют независимую обработку данных во внутренней памяти 10.
Входное видеоизображение, принимаемое от внешнего источника (CMOS-сенсор, видеокамера, линия передачи), сохраняют во входном буфере строк 2, затем разбивают на входные микроблоки фиксированного размера, которые сжимают с фиксированным коэффициентом таким образом, что сжатые входные микроблоки тоже имеют одинаковый размер. Сжатые входные микроблоки сохраняют во внешней памяти 7, рассчитанной на хранение требуемого для обработки количества кадров, так, чтобы их можно было считывать и записывать, при этом независимо вычислять адреса данных по координате входного микроблока в кадре входного изображения.
Для обработки кадров видеоизображения сжатые входные микроблоки по определенному алгоритму считывают из внешней памяти 7, разжимают и записывают во внутреннюю память 10, при этом формируют растровые макроблоки. Процессоры обработки 11, которые могут быть скалярными, векторными процессорами или специализированными аппаратными ускорителями, обрабатывают каждый растровый макроблок, при этом используют для сохранения промежуточных и окончательных результатов только внутреннюю память 10. Для обработки растрового макроблока может потребоваться одновременная загрузка растровых макроблоков от нескольких кадров входного видеоизображения, при этом они все должны быть полностью размещены во внутренней памяти 10. После обработки растровый макроблок разбивают на выходные микроблоки, которые сжимают и сохраняют во внешней памяти 10, при этом формируют кадр выходного видеоизображения, состоящий из сжатых выходных микроблоков. Цикл обработки растрового макроблока повторяют число раз, необходимое для обработки хранящегося во внешней памяти кадра входного видеоизображения или его частей, представляющих интерес. Растровые макроблоки могут перекрываться между собой, при этом область перекрытия определяется алгоритмом обработки. Для полной обработки кадра входного видеоизображения может потребоваться несколько циклов обработки кадра видеоизображения, при этом в каждом цикле могут применяться различные схемы разбиения кадра на растровые макроблоки.
Для вывода полностью обработанного кадра видеоизображения сжатые выходные микроблоки кадра выходного изображения построчно считывают из внешней памяти 10, разжимают и записывают в выходной буфер строк 16, откуда построчно считывают и передают получателю видеоизображения (дисплей, линия передачи).
Рассмотрим более подробно работу лучших вариантов выполнения заявленных способа и устройства ввода, обработки и вывода видеоизображения (Фиг.1-2).
Входное растровое видеоизображение (поток кадров) принимают от источника видеоизображения (CMOS-сенсор, видеокамера, линия передачи) посредством входного контроллера 1 и построчно сохраняют во входном буфере строк 2, рассчитанном на хранение небольшого (например, 4-16) числа строк. При заполнении входного буфера строк 2 новые строки записывают на место наиболее старых строк.
Делитель входного изображения 3 считывает данные из входного буфера строк 2 и формирует входные микроблоки небольшого размера (например, 4x4, 4x8 или 16x16 пикселов). Размер входного микроблока по вертикали равен или меньше числа строк во входном буфере строк 2.
Модуль 4 сжатия входных микроблоков сжимает входные микроблоки с фиксированным коэффициентом таким образом, что сжатые входные микроблоки также имеют одинаковый размер. В качестве методов сжатия могут использоваться сжатия с потерями или отбрасыванием незначащей информации, например: плотная упаковка компонент; уменьшение разрядности компонент пиксела по логарифмическому закону; дискретно-косинусное преобразование с отбрасыванием малозначимых компонент.
Для сжатия микроблоков может частично использоваться алгоритм JPEG сжатия с потерями. Этот алгоритм подразумевает разбиение на микроблоки размером 8 на 8 пикселов и последующее дискретно-косинусное преобразование. Далее преобразованный микроблок подвергают квантизации (т.е. разрядность некоторых компонент уменьшают или их вовсе обнуляют), после чего получают микроблок фиксированной длины и уменьшенного размера по отношению к исходному. На этом сжатие информации прекращают, и микроблоки упаковывают последовательно один за другим.
Для получения яркости пиксела по известным координатами (x,y) сначала определяют входной микроблок, в котором содержится пиксел - для этого делят значение координат на размер микроблока в пикселах (x/8, y/8). Зная размер упакованного микроблока в битах (М), определяют его положение в памяти и считывают ((round(x/8)+round(y/8)*W/8*)M, где W - ширина кадра в пикселах). К считанным данным применяют деквантизацию (умножают на соответствующие коэффициенты компоненты микроблока). Производят обратное дискретно-косинусное преобразование. В полученном микроблоке изображения выбирают интересующий пиксел.
Описанный выше способ сжатия микроблоков изложен с целью иллюстрации, возможны другие способы сжатия микроблоков, позволяющие получить сжатые микроблоки одинакового размера.
Сжатые входные микроблоки через систему 5 соединений и контроллер 6 внешней памяти сохраняют во внешней памяти 7, рассчитанной на хранение необходимого числа кадров видеоизображения целиком. Сжатые входные микроблоки располагают во внешней памяти 7 так, чтобы в дальнейшем их можно было считывать и записывать, независимо вычисляя адреса данных по координате входного микроблока в кадре входного видеоизображения (например, последовательно-непрерывно).
Для обработки кадров входного видеоизображения, сохраненного во внешней памяти 7 в виде сжатых входных микроблоков, сборщик 8 макроблоков по заданному алгоритму считывает из внешней памяти 7 сжатые входные микроблоки, которые затем разжимают декодером обработки 9 и записывают во внутреннюю память 10, при этом формируют растровые макроблоки.
Размер растрового макроблока выбирают таким образом, чтобы он: состоял из целого числа входных микроблоков; полностью, включая промежуточные результаты обработки, мог быть размещен во внутренней памяти 10; мог быть обработан независимо от остальной части кадра входного видеоизображения.
Процессоры 11 обработки обрабатывают растровый макроблок, расположенный во внутренней памяти 10, при этом используют только внутреннюю память 10 для сохранения результатов обработки и промежуточных результатов. В качестве процессоров 11 обработки могут быть применены скалярные, векторные процессоры или специализированные аппаратные ускорители.
После завершения обработки делитель 12 обработанных растровых макроблоков разбивает растровый макроблок, являющийся результатом обработки, на выходные микроблоки, которые сжимают с помощью модуля 13 сжатия выходных микроблоков. Метод сжатия в модуле 13 сжатия выходных микроблоков аналогичен методу, применяемому в модуле 4 сжатия входных микроблоков. Сжатые выходные микроблоки сохраняют во внешней памяти 7, при этом формируют кадр выходного видеоизображения в виде сжатых выходных микроблоков.
Для обработки растрового макроблока может потребоваться одновременная загрузка растровых макроблоков от нескольких кадров входного видеоизображения. В этом случае размеры растровых макроблоков от разных кадров также должны выбирать исходя из требований, аналогичных требованиям к растровым макроблокам, формируемым декодером обработки 9.
Растровые макроблоки могут перекрываться между собой, обеспечивая обработку краевых областей растрового макроблока. Область перекрытия определяется алгоритмом обработки и содержит целое количество входных микроблоков.
Описанный выше цикл обработки растрового макроблока может повторяться необходимое число раз, чтобы обработать хранящийся во внешней памяти 7 кадр входного видеоизображения целиком или его части, представляющие интерес.
Для полной обработки кадра может потребоваться несколько циклов обработки видеоизображения различными процедурами обработки с сохранением промежуточных результатов во внешней памяти 7, при этом для каждого фрагмента алгоритма могут применяться различные схемы разбиения кадров входного видеоизображения на растровые макроблоки.
На Фиг.2 показан пример цепочки обработки видеоизображения. Входное видеоизображение обрабатывают первой процедурой обработки, для этого изображение разбивают на растровые макроблоки типа МВО, которые обрабатываются первой процедурой обработки. Полученные в результате обработки растровые макроблоки типа МВ1 без сохранения во внешней памяти 7 обрабатывают второй процедурой обработки. Полученные в результате обработки растровые макроблоки типа МВ2 также без сохранения во внешней памяти 7 обрабатывают третьей процедурой обработки, а полученные в результате обработки растровые макроблоки типа МВ3 сохраняют во внешней памяти 7. Промежуточное видеоизображение считывают из внешней памяти 7, разбивают на растровые макроблоки типа МВ3′ (отличающегося от типа МВ3), которые обрабатывают четвертой процедурой обработки, при этом формируют обработанное выходное видеоизображение, которое записывают во внешнюю память 7.
Растровый макроблок состоит из рабочей области и граничной области данных, расположенной вокруг рабочей области. Граничная область является частью рабочей области соседнего растрового макроблока. Ниже приводятся примеры выбора размера растрового макроблока для различных процедур обработки.
Пример №1: Для применения фильтров с различной апертурой над входным изображением выбирают фильтр с наибольшей апертурой. Исходя из размера апертуры вычисляют минимальный размер растрового макроблока в пикселах и округляют в большую сторону до целых значений размера растрового макроблока в микроблоках.
Пример №2: Для последовательного применения фильтров с различной апертурой размер граничной области есть сумма апертур фильтров.
Пример №3: При маленьких апертурах фильтров размер блока выбирают из соображений уменьшения накладных расходов передачи данных - чем больше рабочая область по отношению к граничной области, тем меньше повторных чтений данных.
Для вывода полностью обработанного кадра видеоизображения сборщик 14 выходного видеоизображения считывает построчно сжатые выходные микроблоки кадра выходного видеоизображения из внешней памяти 7, которые затем разжимают выходным декодером 15 и записывают в выходной буфер строк 16, рассчитанный на хранение небольшого (например, 4-16) числа строк выходного видеоизображения. При заполнении выходного буфера строк 16 новые выходные микроблоки записывают на место наиболее старых выходных микроблоков.
Выходной контроллер 17 построчно считывает данные из выходного буфера строк 16 и передает сформированное выходное растровое видеоизображение (поток кадров) получателю видеоизображения (дисплей, линия передачи).
Заявленный способ и устройство ввода, обработки и вывода растровых видеоизображений используют внутреннюю память 10, объем которой может быть меньше, чем объем отдельного кадра видеоизображения. Высокая производительность обработки в условиях ограничения пропускной способности интерфейса с внешней памятью 7 достигается благодаря: передаче данных видеоизображения между устройством и внешней памятью 7 в сжатом виде (на уровне микроблоков); поблочной обработке кадров входного изображения, извлекаемого из внутренней памяти 10 (на уровне перекрывающихся растровых макроблоков).
Наибольшая эффективность работы устройства достигается, при параллельном выполнении следующих действий: обработке текущего растрового макроблока; пересылке данных для обработки следующего растрового макроблока из внешней памяти 7 во внутреннюю память 10; пересылке данных предыдущего обработанного растрового макроблока из внутренней памяти 10 во внешнюю память 7. При этом время обработки текущего растрового макроблока должно быть равно времени пересылки данных.
Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.
1. Способ ввода, обработки и вывода видеоизображения, в котором на этапе ввода входное растровое видеоизображение в виде потока кадров построчно сохраняют во входном буфере строк, разбивают кадры входного видеоизображения на входные микроблоки, сжимают и сохраняют входные микроблоки во внешней памяти; на этапе обработки считывают входные микроблоки из внешней памяти, разжимают и записывают входные микроблоки во внутреннюю память, при этом формируют растровые макроблоки, обрабатывают растровые макроблоки посредством процессоров обработки, при этом используют для сохранения промежуточных и окончательных результатов обработки только внутреннюю память, разбивают обработанные растровые макроблоки на выходные микроблоки, сжимают и сохраняют выходные микроблоки во внешней памяти, при этом формируют кадр выходного видеоизображения; на этапе вывода построчно считывают микроблоки кадра выходного изображения из внешней памяти, разжимают и записывают выходные микроблоки кадра выходного изображения в выходной буфер строк, из которого построчно считывают и передают получателю видеоизображения.
2. Способ по п.1, отличающийся тем, что кадры входного видеоизображения разбивают на входные микроблоки фиксированного размера, которые сжимают с фиксированным коэффициентом, при этом получают сжатые входные микроблоки одинакового размера, которые сохраняют во внешней памяти.
3. Способ по п.1, отличающийся тем, что при обработке растровых макроблоков одновременно загружают полностью все растровые макроблоки от нескольких кадров входного видеоизображения во внутреннюю память.
4. Способ по п.1, отличающийся тем, что растровые макроблоки перекрываются между собой.
5. Способ по п.1, отличающийся тем, что цикл обработки растрового макроблока повторяют такое число раз, которое необходимо для обработки хранящегося во внешней памяти разбитого на входные микроблоки кадра входного видеоизображения или его частей.
6. Способ по п.1, отличающийся тем, что на этапе обработки выполняют несколько циклов обработки хранящегося во внешней памяти разбитого на входные микроблоки кадра входного видеоизображения.
7. Способ по п.6, отличающийся тем, что на этапе обработки выполняют несколько циклов обработки хранящегося во внешней памяти разбитого на входные микроблоки кадра входного видеоизображения, при этом применяют различные схемы разбиения кадра входного видеоизображения на растровые макроблоки.
8. Устройство ввода, обработки и вывода видеоизображения, содержащее модули ввода видеоданных, модули обработки видеоданных и модули вывода видеоданных, выполненные с возможностью обмена данными с внешней памятью через контроллер внешней памяти и систему соединений, причем модули ввода видеоданных выполнены в виде входного контроллера, который соединен с входным буфером строк, который соединен с делителем входного изображения, который соединен с модулем сжатия входных микроблоков, который соединен с системой внешних соединений, причем модули обработки видеоданных выполнены в виде сборщика макроблоков, который соединен с системой внешних соединений и с декодером обработки, который соединен с внутренней памятью, которая соединена с процессорами обработки и с делителем обработанных макроблоков, который соединен с модулем сжатия выходных микроблоков, который соединен с системой внешних соединений, причем модули вывода видеоданных выполнены в виде сборщика выходного видеоизображения, который соединен с системой внешних соединений и с выходным декодером, который соединен с выходным буфером строк, который соединен с выходным контроллером, причем входной контроллер выполнен с возможностью приема от источника видеоизображения входного растрового видеоизображения в виде потока кадров и передачи во входной буфер строк, выполненный с возможностью построчного сохранения видеоизображения; делитель входного изображения выполнен с возможностью считывания данных из буфера строк и формирования входных микроблоков; модуль сжатия входных микроблоков выполнен с возможностью сжатия входных микроблоков с фиксированным коэффициентом, при этом формирования сжатых входных микроблоков; система соединений и контроллер внешней памяти выполнены с возможностью передачи сжатых входных микроблоков во внешнюю память, выполненную с возможностью записи и хранения кадров входного видеоизображения целиком в виде сжатых входных микроблоков; сборщик макроблоков выполнен с возможностью считывания из внешней памяти сжатых входных микроблоков; декодер обработки выполнен с возможнос