Область техники, к которой относится изобретение
Настоящее изобретение относится к обработке информации, представляющей цифровые изображения.
Уровень техники
Быстрый прогресс в сфере цифровой технологии привел к соответствующим успехам в различных областях, связанных с обработкой сигналов цифровых изображений, к примеру, телевидении высокой четкости (ТВЧ). К этому относится и разработка стандарта уплотнения сигналов MPEG (Экспертная группа по подвижным изображениям ЭГПИ) для обработки видеосигналов MPEG-2 (Международный стандарт 13818-2 ISO/IEC (Международная организация по стандартизации/Международная электротехническая комиссия), 20 января, 1995). Признано, что этот широко распространенный стандарт обработки изображений особенно подходит для использования в спутниковых, кабельных и наземных телевещательных системах, включая системы ТВЧ.
Цифровая наземная телевещательная система ТВЧ, утвержденная недавно в США как система ТВЧ Большого альянса, определяет стандарт цифрового вещания материала программ высокой четкости (ВЧ), который подвергается уплотнению данных с использованием стандарта уплотнения MPEG-2. Описание системы ТВЧ Большого альянса можно найти, например, в Трудах Национальной ассоциации телевещателей за 1994 год, Труды 48-й ежегодной конференции по технике телевещания, 20-24 марта, 1994. Стандарт телевещания ВЧ обеспечивает разрешающую способность изображения до 1920 пикселей на строку (по горизонтали) на 1080 строк (по вертикали). Стандарт MPEG-2 определяет процедуры, необходимые для распаковки изображения ВЧ для воспроизведения с помощью устройства отображения, к примеру, в телевизионном приемнике. Для декодера MPEG требуется около 80 мегабит (Мбит) памяти для правильного декодирования изображения ВЧ, как определено в стандарте наземного телевещания. В приемнике телезрителя потребовалось бы 96 Мбит памяти.
В декодере видеосигнала MPEG, который можно встретить в приемнике телевизионных сигналов, для декодирования потока цифровых данных, закодированного согласно MPEG, который, как известно, представляет собой I, P и В кадры изображения, обычно требуется больше одного кадра памяти. В общем случае для декодирования потока данных MPEG требуются три кадра памяти. Два кадра памяти необходимы для хранения данных опорного кадра I или P, а дополнительный кадр памяти используется для хранения данных кадра В.
Декодер MPEG содержит контур ДИКМ (дифференциальная импульсно-кодовая модуляция), как известно, связанный с функцией компенсации движения, для создания окончательно декодированных выборок пикселей. Как раскрыто в одновременно рассматриваемом Патенте США 5847762, выданном 8 декабря 1998, контур ДИКМ подходящим образом модифицирован путем включения в него цепи уплотнения данных. Эта цепь уплотнения вновь уплотняет раскованные данные MPEG, прежде чем передать их в память кадров, что снижает требования к памяти декодера MPEG. Контур ДИКМ устроен так, что значение уплотняемого пикселя зависит от результатов работы схемы предсказателя, оценивающей пиксели, расположенные непосредственно слева, прямо над и по диагонали вверх налево от обрабатываемого пикселя. Операция предсказателя представляет собой объемную по вычислениям последовательную операцию в реальном времени. Операция предсказателя весьма важна, поскольку затрагивается более одного значения пикселя, и поэтому для хорошего уплотнения требуется точное предсказание, а не "догадка" о значении пикселя.
Сущность изобретения
В соответствии с принципами настоящего изобретения процессор цифровых сигналов изображений, к примеру декодер, совместимый со стандартом MPEG, обрабатывает множество потоков данных, содержащих заранее определенную последовательность перемежающихся данных изображения.
Краткое описание чертежей
Фиг.1 - блок-схема части приемника телевизионных сигналов, использующего декодер MPEG и соответствующие цепи обработки цифровых сигналов, скомпонованные в соответствии с принципами настоящего изобретения;
Фигуры 2-17 - форматы обработки блоков пикселей, помогающие понять операцию уплотнения/распаковки и соответствующие цепи, показанные на фиг.1;
Фиг.18 - субдискретизация и сверхдискретизация пикселей;
Фиг.19 - блок-схема устройства для выполнения процесса, изображенного на фиг.18;
Фиг.20 - подробности цепи уплотнения по фиг.1;
Фиг.21 - подробности цепи распаковки по фиг.1;
Фиг. 22 - расположение пикселей, помогающее понять аспекты работы цепи, показанной на фиг.20;
Фиг.23-26 - операция управления потоками данных для системы по фиг.1;
Фиг.27 - таблица, изображающая связи между пикселями во время работы цепи, показанной на фиг.20;
Фиг.28 - альтернативное устройство схемы, показанной на фиг.23.
Подробное описание предпочтительных вариантов осуществления изобретения
В раскрытом варианте изобретения в декодере MPEG телевизионного приемника используется сжатие данных, включая повторное уплотнение, между декодером и памятью кадров декодера, из которой извлекается отображаемая информация об изображении. В системе используется конвейерная обработка с учетом требований синхронизации процессора предсказателя, где для предсказания значения заданного четвертого пикселя должны быть доступными три значения пикселя (элементы изображения). Однако конвейерная обработка замедляет процесс обработки (уменьшает пропускную способность). Эта проблема решается путем перемежения данных пикселей из независимых блоков пикселей 8•8, подаваемых от устройства распаковки MPEG. Перемежение увеличивает скорость обработки, поскольку дает возможность обрабатывать данные пикселей на чередующихся тактовых импульсах, так что всегда генерируется уплотненное значение пикселя. Функция повторного уплотнения использует сокращенное количество операций уплотнения и представляет собой перемежающуюся операцию, выполняемую совместно с другими функциями, что экономит площадь интегральной схемы.
На фиг.1 изображена часть процессора цифровых видеосигналов, который, к примеру, можно встретить в телевизионном приемнике, для обработки входного видеосигнала высокой четкости. Видеопроцессор выполняет функции, установленные в известном декодере MPEG. Кодер MPEG и декодер MPEG описаны, например, Аng и др. в "Video Compression Makes Big Gains" IEEE Spectrum, октябрь, 1991. Эти функции обычно включают в себя входную буферизацию, декодирование с переменной длиной слова, обратное квантование и обратное ДКП (дискретное косинусное преобразование) до соответствующей обработки с компенсацией движения, в результате которой создаются окончательно декодированные выходные выборки. Дополнительную информацию, касающуюся этих и связанных с ними функций обработки видеосигнала, можно найти в Weiss, Issues in Advanced Television Technology (Focal Press, Boston, USA).
Система на фиг.1 получает управляемый поток уплотненных данных, закодированных согласно MPEG, из источника, представленного модулем 10, который включает в себя транспортный декодер, разделяющий пакеты данных после демодуляции входного сигнала. В этом примере полученный входной поток данных представляет собой материал по изображениям высокой четкости (1920 пикселей/горизонтальная строка х 1088 горизонтальных строк), как определено в спецификации Большого альянса для наземной системы телевещания высокой четкости США. Скорость передачи информации высокой четкости 1920•1088 составляет 94 003 200 байт/с, которая определяется следующим образом:
(1920H•1088V•30F•(8+4)YC)/B, где
Н представляет горизонтальные пиксели,
V представляет вертикальные строки,
F представляет количество кадров/с,
YC представляет биты (яркость + цветность) и
В представляет 8 бит/байт.
На практике уплотненный поток данных MPEG обеспечивается через внутреннюю шину памяти 55 и интерфейс уплотненных данных, включенный в модуль 128, который получает данные от шины управления 114 под управлением микропроцессора 120. Микропроцессор 120 получает поток данных MPEG через вход для уплотненных данных.
Входной поток данных от источника 10, представленный в виде блоков данных 8•8 пикселей, поступает на входную цепь (12, 14). Эти данные представляют собой уплотненную закодированную внутрикадровую и межкадровую информацию. Внутрикадровая информация содержит зафиксированные кадры (anchor frames) типа I-кадра. Межкадровая информация содержит кодированную с предсказанием движения остаточную информацию изображения, которая представляет различие между соседними кадрами изображения. Кодирование межкадрового движения включает в себя генерацию векторов движения, которые представляют смещение между текущим обрабатываемым блоком и блоком в ранее восстановленном изображении. Вектор движения, который дает наилучшее совпадение между текущим и предыдущим блоками, кодируется и передается. Также различие (остаток) между каждым блоком 8•8 с компенсацией движения и восстановленным перед ним блоком перед передачей подвергается ДКП, квантуется и кодируется с переменной длиной слова. Такой процесс кодирования с компенсацией движения более подробно описан в различных публикациях, включая упомянутые выше работы Weiss и Аng и др.
Декодер MPEG предъявляет пониженные требования к памяти, что позволяет значительно уменьшить объем внешней памяти кадров. Как поясняется далее, это достигается путем повторного уплотнения распакованных видеокадров, подлежащих хранению в памяти, и путем избирательной горизонтальной фильтрации и прореживания (то есть субдискретизации) данных пикселей в контуре декодера, в зависимости от рабочего режима декодера. Например, в одном режиме система обеспечивает уплотнение зафиксированного кадра. В другом режиме система обеспечивает уплотнение после сжатия горизонтальных деталей путем низкочастотной фильтрации и субдискретизации.
Входные уплотненные блоки данных пикселей буферизируются модулем 12 перед их декодированием с переменной длиной слова с помощью модуля 14, что, как известно, также создает векторы движения ВД. Буфер 12 имеет емкость памяти 1,75 Мбит для случая потока данных MPEG основного уровня, основного профиля. Декодированные уплотненные блоки данных выводятся из модуля 14 через мультиплексор (Мульт) 15, который создает выходные потоки данных Р1 и Р2. Выходы Р1 и Р2 представляют конвейеры двойных данных, которые далее обозначаются как канал 1 (Р1) и канал 2 (Р2). Канал Р1 содержит группу коэффициентов ДКП (дискретного косинусного преобразования) для блока пикселей 8•8 "А" данного макроблока, за которой следует группа коэффициентов ДКП блока пикселей 8•8 "С" для этого макроблока. Коэффициенты ДКП, как известно, располагаются в диагональном или "зигзагообразном" формате развертки. Канал 1 передает последовательность таких блоков А и С для последовательности соответствующих макроблоков. Подобным же образом канал 2 содержит группу коэффициентов ДКП "В" в "D" для данного макроблока и для последующих соответствующих макроблоков. Расположение данных пикселей для указанных блоков и макроблоков пикселей в конвейерной последовательности показано и обсуждается в связи с фигурами 2-17.
Данные блоков пикселей пересылаются соответствующими каналами по трактам параллельной обработки данных, каждый из которых включает обратный квантователь (18, 20), модуль обратного дискретного косинусного преобразования (ДКП) (22, 21), выходные буферы с обслуживанием типа ПП-ПО (первый пришел - первым обслужен) (26, 28), модули переупорядочивания блоков (23, 25), модули перемежения блоков (24, 27) и сумматоры (30, 32). Декодирование с распаковкой и преобразованием выполняются соответственно модулями обратного квантования и модулями обратного ДКП в каждом конвейере перед подачей на один из входов соответствующих сумматоров 30 и 32.
Модули переупорядочивания 23, 25 удаляют зигзагообразный формат развертки данных пикселей, прошедших обратное ДКП в модулях 21 и 22, для создания горизонтальной построчной последовательности развертки пикселей для каждого блока 8•8. Таким образом, например, в канале 1 выход модуля 23 представляет значения пикселей в виде а1 а2 а3...а63 а64 (для блока А), с1 с2 с3. ..с63 с64 (для блока С) и т.д. В модуле перемежения 24 используется способ мультиплексирования для создания выходных данных канала 1 в виде а1 с1 а2 с2 а3 с3...а64 с64. Перемежитель 27 создает подобную последовательность для блоков В, D.
Величина шага квантования обратных квантователей 18 и 20 регулируется сигналом управления квантованием из буфера 12 для обеспечения равномерного потока данных. Декодированные векторы движения ВД подаются из декодера 14 в модуль компенсации движения 90, как обсуждается ниже. Декодер 14, как известно, выдает также сигнал управления выбором межкадрового/внутрикадрового режима, который здесь не показан в целях упрощения чертежа. Операции, выполняемые модулями 14, 18/20, 21/22 и 23/25 являются обратными по отношению к соответствующим операциям, выполняемым кодером MPEG в передатчике. Декодер MPEG на фиг.1 воссоздает полученное изображение, используя способы обработки MPEG, которые кратко описаны ниже.
Восстановленные блоки пикселей получаются соответственно на выходах сумматоров 30 и 32 путем суммирования остаточных данных изображения из модулей 26 и 28 с предсказанными данными изображения, обеспечиваемыми на выходах модуля компенсации движения 90 на основе содержимого памяти видеокадров 20. Весь кадр из восстановленных блоков пикселей, представляющих изображение, запоминается в памяти кадров 60. В межкадровом режиме векторы движения ВД, полученные из декодера 14, используются для определения местоположения предсказанных блоков из модуля 90. Процесс компенсации движения создает предсказания на основе ранее декодированных изображений, которые комбинируются с данными о коэффициентах (с выходов модулей обратного ДКП 21 и 22), для того чтобы восстановить окончательно декодированные выборки. Модуль компенсации движения 90 работает в соответствии с обсужденными известными способами, совместимыми со стандартом MPEG, например, в соответствии с упомянутыми ранее спецификацией MPEG и публикациями Weiss и Аng. Выходы А, С и В, D представляют собой распакованные перемежающиеся данные блоков пикселей А, С и перемежающиеся данные блоков пикселей В, D, как обсуждается ниже.
Выгодно то, что процесс восстановления изображения, затрагивающий сумматоры 30, 32, внешнюю память кадров декодера 60 и модуль компенсации движения 90, предъявляет значительно сниженные требования к памяти кадров из-за использования параллельных устройств уплотнения данных 40 и 42, работающих на блочной основе, и модулей горизонтального прореживания пикселей (субдискретизации) 36 и 38, что сжимает горизонтальные детали. Объем памяти кадров 60 может быть уменьшен на 25%, 50% или более, в зависимости от сжатия данных, достигнутого модулями повторного уплотнения 40, 42, и прореживания, выполняемого модулями 36, 38. Выходные данные из модулей прореживания 36 и 38 обрабатываются модулем переупорядочивания блоков 43 перед пересылкой в устройство уплотнения 40 в рабочем режиме со сжатием данных, когда используется горизонтальное прореживание, как обсуждается ниже. Результат операции переупорядочивания рассматривается в связи с фигурами 12 и 14 и связанными с ними фигурами. Сигнал управления режимом и переключатель режима 45 изменяют работу устройства уплотнения в рабочем режиме со сжатием данных, когда активизированы модули горизонтального прореживания 36 и 38, как объясняется ниже. Устройство уплотнения 42 в режиме со сжатием данных блокируется (например, к нему не подводится питание). В других случаях, например при обработке входного сигнала высокой четкости, активизированы оба устройства уплотнения 40 и 42.
Модули распаковки 80-84 выполняют операцию, обратную уплотнению, выполняемому модулями 40 и 42. Модуль 88 выполняет операцию, обратную прореживанию, выполняемому модулями 36 и 38. Дополнительные подробности выполнения этих операций обсуждаются далее. Модуль форматирования 86 отбрасывает ненужные распакованные строки пикселей, пока не будут обнаружены строки, содержащие распакованные пиксели, необходимые для обработки предсказателя с компенсацией движения, обрабатываемого модулем 90. Такой процесс выбора предотвращает накопление ненужных данных, и его выгодно использовать в системе уплотнения (к примеру, в раскрытой здесь системе), которая не обеспечивает для каждого пикселя его уникальное отображение в памяти. В этой связи следует отметить, что значение пикселя может быть уплотнено или подвергнуто квантованию, например, с помощью 3, 4 или 5 бит, и значение пикселя станет известным после распаковки.
Преимуществом является то, что обработка входного потока данных высокой четкости, декодированного согласно MPEG, выполняется путем перемежения входного потока данных до повторного уплотнения и путем обработки перемежающихся данных с использованием цепи уплотнения перемежающихся данных. Цепь повторного уплотнения данных содержит одинаковые устройства уплотнения 40 и 42, которые работают с перемежающимся потоком данных. Эти устройства уплотнения совместно используют некоторые логические схемы и просмотровые таблицы, содержащиеся в модуле 44, и работают в соответствии с локально генерируемыми тактовыми импульсами ТИ 54 МГц (2•27 МГц), которые создаются генератором тактовых импульсов 50. Сигнал ТИ подается также в схему горизонтальной сверхдискретизации 88. Тактовый сигнал 81 МГц (3•27 МГц), также создаваемый генератором 50, подается в устройства распаковки 62, 80, 82 и 84 и на процессор дисплея 70.
Прежде чем продолжить описание работы системы, будет полезно разобраться в сущности процесса обработки перемежающихся данных пикселей, показанного на фигурах 2-17. На фиг.2 показана известная конфигурация макроблока MPEG, содержащая составляющие яркости (Y) и цветности (U, V). Составляющая яркости каждого макроблока образуется блоками яркости Ya, Yb, Yc и Yd 8•8 пикселей. Составляющая цветности, как показано, содержит блоки "U" 4•4 пикселя Ua-Ud и блоки "V" 4•4 пикселя Va-Vd. Перемежители 24 и 27 (фиг.1) выполняют перемежение этих блоков пикселей соответственно в каналах данных Р1 и Р2, упомянутых ранее, а на фиг.3 показано, как расположены блоки яркости и цветности во время процесса конвейерной обработки А, С и В, D. Более подробно конвейерный процесс перед перемежением показан на фиг.4 применительно к блокам 4•4 пикселя, которые образуют составляющую цветности "U". На фиг.4 показан результат процесса, с помощью которого модули 23 и 25 помещают блоки пикселей цветности Ua и Uc в канал данных 1, а блоки пикселей Ub и Ud в канал 2. На этой схеме А1 представляет значение первого пикселя (8-разрядное) блока А, А2 представляет значение второго пикселя (8-разрядное) блока А, В1 представляет 8-разрядное значение первого пикселя блока В и так далее вплоть до последних значений А16 и В16 для блока D. Аналогичные выводы подходят и к данным пикселей яркости.
На фигурах 5-7 показано расположение данных пикселей в предположении, что модули 36 и 38 на фиг.1 не выполняют горизонтальное прореживание. При таком рабочем режиме модули 36 и 38 обходятся в зависимости от величины сжатия данных (прореживание плюс уплотнение), требуемой для данной конфигурации системы. Обработка данных пикселей с горизонтальным прореживанием показана на фигурах 11-17.
На фиг.5 показана последовательность А, С перемежающихся данных пикселей в канале 1, передаваемая с выхода перемежителя 24 на устройство уплотнения 40 через буфер 26 и сумматор 30 без прореживания, выполняемого модулем 36. Подобным же образом данные пикселей в канале 2 передаются в устройство уплотнения 42 от перемежителя 27 и сумматора 32 в последовательности B1, D1, B2, D2, . .. и т.д. Способ расчленения макроблока на секции, представленные группами данных А, В, С, и D, не имеет значения. Например, в другой системе канал Р1 мог бы передавать данные А, В или данные А, D. Подобным же образом, канал 2 мог бы передавать комбинацию данных, отличную от В, D. В показанном примере данные А, С, передаваемые каналом 1, соответствуют "четным" блокам данных в соответствии со спецификацией MPEG, а данные канала 2В, D соответствуют "нечетным" блокам данных в спецификации MPEG.
На фиг.6 показан выход уплотненных данных пикселей от первого устройства уплотнения 40 в первом канале после кодирования по Хаффмену. Каждый символ "х" в потоке данных на фиг.6 представляет "безразличное" состояние, созданное для упрощения процесса синхронизации, в результате чего для каждого тактового цикла используется длительный тактовый импульс (а не менее желательный старт-стопный тактовый импульс), охватывающий 8 бит данных. Сигнал разрешения записи (не показан) обеспечивает запись в память только действительно уплотненных данных, если они имеются. Для каждых шестнадцати 8-разрядных пикселей (цветности) (8 байт) на входе создается 16 байт уплотненных данных на выходе. Аналогичный выход данных пикселей из второго устройства уплотнения 42 для блоков В, D в канале 2 не показан. Детали схемы уплотнения, подходящей для использования в устройствах уплотнения 40 и 42, будут показаны и обсуждены в связи с фиг.20.
После уплотнения с помощью модулей 40 и 42 данные пикселей передаются через внутреннюю шину памяти шириной 128 бит (то есть, 128 параллельных линий данных, пересылающих каждая один бит) 55 (фиг.1) и внешнюю шину памяти 57 шириной 64 бит во внешнюю память кадров декодера 60. Память 60 запоминает данные блока пикселей в неперемежающемся виде. Выходные схемы, связанные с устройствами уплотнения 40 и 42, или схемы перед памятью 60 могут выполнить обратное перемежение под управлением локального микропроцессора 120. В этих схемах для выполнения функции обратного перемежения используются известные способы обработки сигналов, которые для упрощения чертежа не показаны. На фиг. 7 показан вид уплотненных данных пикселей, посылаемых в память 60 после обратного перемежения. Каждый уплотненный пиксель представлен 3-6 битами данных. В блоке уплотненных данных А "а1'" представляет не пиксель а1 в этот момент, а 8 бит, образованных комбинацией уплотненных пикселей и дополнительных служебных данных. Длина данных пикселя определяется самими данными и местоположением пикселя. Количество бит, используемых для уплотнения данных в блоке цветности, составляет 64. Исходные данные цветности образованы 128 битами (8•16 бит). Подобные выкладки применимы для данных с "В" по "D".
Вновь вернемся к фиг.1, где уплотненные данные пикселей, хранящиеся в памяти 60, обрабатываются для отображения с помощью цепи обработки отображения, включающей устройство распаковки отображения 62, буфер отображения ПП-ПО 64, мультиплексор 68 и процессор отображения 70. Буфер отображения 64 поддерживает 16 строк изображения, разделенных между парой восьмистрочных буферов. Распакованные данные для обработки отображения считываются из одного из строчных буферов через мультиплексор 68, в то время как другой строчный буфер заполняется уплотненными данными из модуля 62. Буферы 64 могут располагаться в модуле памяти 60. Процессор отображения 70 может включать, например, схему кодирования NTSC (Национальный комитет по ТВ системам, США), схемы для отбора пикселей для отображения и цепь возбуждения отображения для подачи видеосигналов на устройство воспроизведения изображений 72, например, кинескоп высокой четкости или другое подходящее средство отображения.
Перед распаковкой, выполняемой модулем 62, данные пикселей вновь перемежаются, образуя последовательность блоков "ab", показанную на фиг.8. Это перемежение может быть выполнено путем соответствующей адресации операции считывания памяти 60 или входными логическими схемами, связанными с устройством распаковки отображения 62. Подобным же образом пиксели c и d повторно перемежаются для образования последовательности данных "сd" (не показана) до распаковки. Последовательности повторного перемежения для отображения, а именно ab и cd, отличаются от исходных входных перемежающихся последовательностей (ас и bd). Исходные перемежающиеся допущенные данные пикселей, например а и b, доступные сначала, и данные а и b обработаны параллельно. Последовательность отображения после повторного перемежения подходит для целей отображения, когда необходимы данные из одного и того же кадра изображения (пиксели а, b и с, d находятся в одном и том же кадре изображения). Последовательность перемежающихся распакованных данных пикселей для последовательности "ab" показана на фиг.9. Также создается не показанная подобная последовательность перемежающихся распакованных данных пикселей для последовательностей "cd" (C1, D1, C2, D2, С3, D3,...). После обработки в модулях 64, 68 и 70 пиксели данного блока перестраиваются в формат отображения, как показано на фиг.10. Этот упрощенный пример в форме 4:2:0 предпочтительней, чем в форме 4:2:2.
Снова обратимся к фиг.1, где контур декодера MPEG имеет также функцию распаковки, выполняемую множеством устройств распаковки 80, 82 и 84 вместе с форматированием данных и горизонтальной сверхдискретизацией, выполняемыми соответственно модулями 86 и 88. Вышеописанные комментарии, касающиеся фигур 8 и 9, применимы также к этой функции распаковки контура управления, где перед распаковкой данные пикселей перемежаются схемами, связанными с устройствами распаковки, для создания последовательности данных "ab" (и "cd"), как показано на фиг.8.
На фигурах 11-17 показаны компоновки последовательностей данных пикселей в предположении, что была предоставлена возможность горизонтального прореживания (то есть субдискретизации) с помощью модулей 36 и 38 по фиг.1. При разрешении сжатия данных в виде горизонтального прореживания с помощью модулей 36 и 38 устройство уплотнения 42 заблокировано, и для уплотнения данных из-за уменьшенного объема данных используется только устройство уплотнения 40. Цепь 44 содержит логические схемы и просмотровые таблицы, используемые модулями 40 и 42. Эти схемы и таблицы используются только одним из устройств уплотнения, в то время как другое устройство не активизировано в режиме работы с уменьшенным объемом данных, когда требования к обработке данных ниже. В режиме высокой разрешающей способности, когда работают оба устройства уплотнения 40 и 42, совместное использование этих схем и таблиц облегчается с помощью процесса конвейерной обработки перемежающихся данных. В частности, модуль 44 содержит две просмотровые таблицы: одну для использования устройством уплотнения 40 и другую для использования устройством уплотнения 42. ПТ (просмотровая таблица) для устройства уплотнения 40 используется для уплотнения перемежающихся данных как А, так и С, поскольку эти данные уплотняются в различные моменты времени, к примеру, на чередующихся тактовых импульсах, как обсуждается далее. Подобным же образом ПТ для устройства уплотнения 42 используется во время уплотнения как данных В, так и данных D.
На фиг. 11 показана последовательность данных пикселей, поступающих из канала данных 1 на вход прореживающего фильтра 36 на фиг.1. В результате прореживания фильтров 36 создается последовательность данных пикселей по фиг. 12, которая подается на вход цепи переупорядочивания 43. На фиг.12 элементы, отмеченные символом "х", представляют "безразличные" данные или отсутствие данных. В режиме Н/2 (полустрочной частоты), в соответствии с которым данные горизонтальных пикселей субдискретизируются с коэффициентом 2, фильтр 36 усредняет два соседних пикселя, так что
а1*=(А1+А2)/2,
с1*=(С1+С2)/2,
а2*=(А3+А4)/2 и т.д.
Этот процесс показан на фиг.18 и обсуждается ниже. Также можно использовать прореживание с другими коэффициентами субдискретизации. На фигурах 13 и 14 показана подобная последовательность данных пикселей, поступающих от канала данных 2 на прореживающий фильтр 38 на фиг.1.
На фиг.15 показана последовательность данных пикселей после прореживания и переупорядочивания модулем 43 на фиг.1. В частности, данные пикселей были повторно выровнены модулем 43 для размещения их в правильной последовательности для уплотнения и запоминания в памяти 60. На фиг.15 данные пикселей с а1 по с4 представляют один кадр изображения (матрица 2•4) после прореживания, данные пикселей с b1 по d4 представляют второй кадр изображения (матрица 2•4) после прореживания и так далее.
На фиг. 1 все переупорядоченные данные пикселей из модуля 43 подаются в устройство уплотнения 40 через переключатель режимов 45, поскольку для уплотнения сокращенного объема данных, являющегося результатом прореживания, требуется только одно устройство уплотнения. В процессе прореживания усреднение данных создает из двух пикселей один пиксель, в результате чего становится меньше данных и соответственно снижаются требования к пропускной способности для обработки данных. Следовательно, достаточно использовать только одно устройство уплотнения, а устройство уплотнения 42 не активизируется. Устройства уплотнения включаются в работу и блокируются в зависимости от отсутствия или наличия прореживания в ответ на сигнал управления режимом, как обсуждается далее.
Переупорядочивание, которое возникает в цепи переупорядочивания 43, не является прямой процедурой, к примеру, оно может возникнуть с помощью буфера ПП-ПО. Для минимизации сложности обработки в контуре компенсации движения, включая горизонтальное прореживание, переупорядочивание и повторное уплотнение, данные предоставляются в устройство уплотнения 40 по существу в том же самом формате, что и данные, которые не были прорежены по горизонтали модулями 36 и 38. Отделение цепи переупорядочивания 43 от устройства повторного уплотнения 40 упрощает схему, поскольку устройство повторного уплотнения 40 не должно различать данные, которые требуются переупорядочить из модулей 36 и 38, и данные, не требующие переупорядочивания, из сумматоров 30 и 32.
Фиг.15А является компиляцией фигур с 11 по 15 и показывает поток данных, претерпевающих горизонтальное прореживание и переупорядочивание, в соответствии с синхронизацией пикселей. Потоки данных 15-1 и 15-2 на фиг.15А представляют соответственно данные из сумматоров 30, 32 и данные, поступающие в цепи прореживания 36, 38. Потоки данных 15-3 и 15-4 представляют соответственно данные из цепей прореживания 36, 38, которые подаются на вход цепи переупорядочивания 43. Как обсуждалось ранее, пиксели, как это видно из диаграммы, перемежаются в потоках данных с 15-1 по 15-4. Потоки данных 15-1 и 15-3 представляют данные из конвейера Р1, а потоки данных 15-2 и 15-4 представляют данные из конвейера Р2. Поток данных 15-5 представляет данные из цепи переупорядочивания 43, которые поступают на вход устройства повторного уплотнения 40 через переключатель 45. В нижней части фиг.15А предусмотрены тактовые импульсы (ТИ) пикселей, которые приведены для демонстрации синхронизации пикселей данных, когда они проходят через систему. В показанном примере отобранные пиксели данных будут проходить через процессы переупорядочивания. Этот процесс одинаков для данных из любого конвейера. Пиксели потоков данных 15-1 и 15-2 представляют макроблок пикселей цветности. Процесс для макроблоков пикселей яркости такой же, но является более сложным, поскольку визуализация распространяется на четырех блоках пикселей 8•8 вместо четырех блоков пикселей 4•4. Больший по величине макроблок вызывает переупорядочивание, которое возникает на большем количестве тактовых импульсов с вчетверо большим количеством данных. Однако принципы переупорядочивания остаются одинаковыми как для данных яркости, так и для данных цветности.
Пиксель В1 из потока данных 15-2 прореживается на пятьдесят процентов и объединяется с пикселем В2 для создания пикселя выходных данных того же размера, что один пиксель входных данных. То же самое происходит с пикселями D1 и D2. Цепь прореживания 38 буферизирует прореженные данные из пикселей В1 и D1, пока не будут обработаны пиксели В2 и D2. В этом причина того, что во время первых двух периодов тактовых импульсов выходные данные из цепи прореживания 38 являются недействительными. Действительные данные появляются во время третьего такта в виде пикселя b1*. Данные из пикселя В1 выводятся во время первой половины третьего такта, а данные из пикселя В2 выводятся во время второй половины третьего такта. Четвертый такт создает пиксель dl* подобным же образом.
Данные, выходящие из каналов Р1 и Р2, проходят в цепь переупорядочивания 43, которая буферизирует данные и обращается к конкретным пикселям в необходимом порядке для формирования непрерывного потока данных, направляемого в устройство уплотнения 40. Как видно по потокам 15-4 и 15-5 на фиг.15А, пиксели b1*, b2*, b3* и b4* должны чередоваться с пикселями d1*, d2*, d3* и d4*, но после соответствующих пикселей а и с. Следовательно, пиксели, ожидая вывода, остаются в цепи переупорядочивания 43 в течение неравных интервалов времени. Например, пиксель b1* принимается цепью переупорядочивания во время такта 3 и выводится во время такта 12, в то время как пиксель b2* принимается цепью переупорядочивания во время такта 7 и выводится во время такта 14. Пиксели направляются в цепь переупорядочивания 43 конечным автоматом, управляемым микропроцессором 120.
Для поддержания постоянного потока данных устройство уплотнения 40 ожидает данные входных пикселей в перемежающемся формате, как показано в потоках данных 15-1 и 15-2. После цепей прореживания 36 и 38 порядок пикселей изменяется, поскольку два конвейера Р1 и Р2 субдискретизируются на порядок 2 каждый для подачи в потоке данных 15-5 половины данных. Однако субдискретизированные данные из Р1 и Р2 получаются из соседних по вертикали блоков изображения. Устройство уплотнения 40 ожидает данные пикселей, перемежающиеся от соседних по горизонтали блоков. Следовательно, цепь переупорядочивания 43 объединяет субдискретизированные данные в порядке, показанном в потоках данных 15-3 и 15-4, в порядок, показанный в потоке данных 15-5. Этот порядок фактически такой же, как и для перемежающихся данных, не подвергавшихся субдискретизации в цепях прореживания. Блоки пикселей из субдискретизированных данных и из не субдискретизированных данных имеют один и тот же размер, то есть они имеют одно и то же количество пикселей как по горизонтали, так и по вертикали. Единственное отличие состоит в том, что блоки субдискретизированных данных пикселей содержат информацию о пикселях из двух соседних по горизонтали блоков пикселей, как упоминалось ранее. Это отличие прозрачно для устройства уплотнения 40, что позволяет иметь непрерывный поток данных. Несмотря на то, что эта система выполняет переупорядочивание для объединения соседних по горизонтали блоков пикселей в субдискретизированный блок пикселей, общая направленность изобретения распространяется также на систему, которая может объединять блоки пикселей с другим пространственным соотношением.
Как видно из фиг.15А, оказывается, что цепи переупорядочивания 43 необходимы пиксели с а2* по а4* и с а6* по а8* из цепи прореживания 36 (поток данных 15-3) для вывода (потока данных 15-5), прежде чем они станут доступными. Реально это не может случиться и не случается, а показано для иллюстрации другой синхронизации и задержек, к которым цепь переупорядочивания 43 должна приспособиться. Чтобы избежать необходимости вывода данных перед их приемом цепью переупорядочивания 43, модуль 43 захватывает и задерживает достаточное количество данных, пока все данные не смогут быть обработаны, тем самым обеспечивая непрерывный вывод данных, как показано в потоке данных 15-5. Задержка появляется с первыми данными, проходящими через конвейеры Р1 и Р2 и достигающими цепи переупорядочивания 43, к примеру появляется при первоначальном включении питания телевизионного приемника, при переключении канала или в любой момент установки синхронизации данных. После начальной задержки данные идут непрерывно без потери тактов.
На фиг. 16 показана последовательность уплотненных данных пикселей с выхода устройства уплотнения 40. На фиг.16 уплотненные данные "m" обозначают уплотненные данные пикселей, образованные из данных, извлеченных из пикселей а и b после прореживания (то есть, блок пикселей 4•8, созданный после прореживания блока пикселей 8•8). Подобным же образом, уплотненные данные "n" обозначают уплотненные данные, образованные данными, извлеченными из пикселей c и d после прореживания. Данные пикселей а и b находят в одном и том же поле изображения, и данные пикселей c и d находятся в одном и том же поле изображения. Процесс уплотнения блока пикселей, выполняемый устройством уплотнения 40, предусмотрен для работы с блоками пикселей 8•8. После прореживания результирующий блок пикселей 4•8 "а" и блок пикселей 4•8 "b" объединяются для получения блока пикселей 8•8, который уплотняется, образуя блок "m". Аналогичные выкладки применимы к формированию уплотненных блоков "n" из прореженных блоков 48 "с" и "d". Таким образом, блоки в одном и том же кадре изображения выравниваются должным образом для эффективного декодирования MPEG. На фиг.17 показана компоновка правильно упорядоченных в кадре уплотненных блоков в том виде, как они передаются и запоминаются в памяти 60.
Сжатие горизонтальных деталей, выполняемое цепью прореживания, дополнительно, снижает требование к памяти декодера за счет уменьшения количества значений пикселей, хранящихся в памяти 60. В цепи прореживания 36, 38 используется горизонтальный пространственный низкочастотный фильтр, после которого перед подачей данных в память 60 выполняется горизонтальное прореживание 2: 1 (субдискретизация). После распаковки модулями 80, 82 и 84 модуль 88 восстанавливает разрешающую способность информации об изображении из памяти 60, используя процесс повторной сверхдискретизации пикселей. Между устройством распаковки отображения 62 и процессором отображения 70 реализация процесса сверхдискретизации не требуется, поскольку процессор 70 обеспечивает необходимое преобразование частоты горизонтальной выборки. Предполагается, что устройство распаковки отображения 62 и процессор 70 не будут выполнять сверхдискретизацию в приемнике с невысокой стоимостью из-за пониженной разрешающей способности отображения, обеспечиваемой таким приемником. В таком случае кадры, декодированные с сокращенной памятью, имеют более высокую разрешающую способность, чем отображение со стандартной четкостью. Например, для декодирования и отображения видеопоследовательности 1920•1088 пикселей на устройстве отображения 720•480 пикселей необходимо, чтобы изображения, хранящиеся в памяти кадров, имели разрешающую способность 960•1088 (при горизонтальном прореживании с коэффициентом два). Таким образом, устройству распаковки отображения 62 нет необходимости выполнять сверхдискретизацию изображения, но процессор отображения 70 должен будет субдискретизировать изображения с разрешающей способностью 960•1088 в 720•480 для того, чтобы сделать их пригодными для отображения.
На фигурах 18 и 19 соответственно показано общее расположение элементов, связанных с процессом субдискретизации пикселей, выполняемым модулями 36, 38 на фиг.1, и сверхдискретизацией пикселей, выполняемой модулем 88. В модулях 36 и 38 исходные пиксели сначала подвергаются низкочастотной фильтрации низкочастотным фильтром четного порядка 102 перед прореживанием с коэффициентом два, в результате чего любое другое значение пикселя удаляется модулем 104. Эти пиксели запоминаются в памяти 60. Впоследствии данные пикселей из памяти 60 повторяются с помощью элемента 106 модуля сверхдискретизации 88 с использованием хорошо известных методов.
В данном примере фильтр 102 представляет собой фильтр с 8 отводами и КИХ (конечная импульсная характеристика). Этот фильтр работает в горизонтальной пространственной области и осуществляет фильтрацию от одной до другой границы блока. Фильтр с 8 отводами осуществляет сдвиг относительного положения выходных пикселей на полпериода выборки относительно входа, как показано на фиг. 18. Также, как показано на фиг.18, повторная сверхдискретизация поддерживает одно и то же пространственное положение субдискретизированных/сверхдискретизированных пикселей по отношению к исходным пикселям. Модуль фильтра прореживания 104 может представлять собой фильтр с двумя отводами, так что для входных пикселей х и у выход фильтра будет представлять собой (х+у)/2, а прореживание выполняется путем отбрасывания всех других пикселей. Этот фильтр не выходит за пределы границы блока, его легко реализовать, и он хорошо подходит для горизонтального прореживания.
Система телевизионного приемника, показанная на фиг.1, была упрощена, с тем чтобы не усложнять чертеж излишними подробностями. Например, не показаны входные и выходные буферы ПП-ПО, связанные с различными элементами системы, органы управления считыванием/записью, схемы генератора тактовых импульсов и сигналы управления для взаимосвязи с внешними устройствами памяти, которые могут быть типа расширенных выходных данных или синхронного типа (синхронное динамическое ОЗУ). Система на фиг.1, кроме того, содержит микропроцессор 120, например, для посылки и приема данных, разрешения считывания/записи и адресной информации, шинный интерфейс 122 и контроллер 126, подсоединенных к внутренней шине управления 114. В этом примере микропроцессор 120 расположен вне интегральной схемы, содержащей декодер MPEG.
Процессор отображения 70 содержит фильтры горизонтальной и вертикальной повторной дискретизации, необходимые для преобразования декодированного формата изображения в заранее определенный формат для отображения модулем 72. Например, система может принимать и декодировать последовательности изображений, соответствующие таким форматам, как 525-строчная чересстрочная, 125-строчная чересстрочная или 720-строчная построчная развертка. Процессор 70 создает также тактовые импульсы и синхросигнал Н, V, связанный с отображением изображения, и осуществляет связь с памятью кадров 60 через внутреннюю шину памяти 65.
Цепь интерфейса внешней шины 122 передает информацию управления и конфигурации между декодером MPEG и внешним процессором 120 вдобавок к входным уплотненным видеоданным для обработки декодером MPEG. Система декодера MPEG имеет сходство с сопроцессором для микропроцессора 120, например, микропроцессор 120 выдает команду декодирования на декодер MPEG для каждого декодируемого кадра. Декодер определяет местоположение соответствующей информации заголовка, которая, в свою очередь, считывается микропроцессором 120. С помощью этой информации микропроцессор 120 выдает данные для конфигурации декодера, например данные, относящиеся к типу кадра, матрицам квантования и т. д., после чего декодер выдает соответствующие команды декодирования. Декодер с переменной длиной слова 14 осуществляет обмен через шину памяти 55, а схемы интерфейса 128 облегчают связь между шиной памяти 55 и шиной управления 114.
Данные управления режимом, запрограммированные изготовителем приемника, передаются микропроцессором 120, связанным с контроллером памяти 134 и контроллером 126, для установки коэффициентов уплотнения/распаковки для модулей 40, 42 и 80-84 и для управления состоянием цепей уплотнения и распаковки и цепей сверхдискретизации и субдискретизации, как это диктуется конструктивными параметрами системы. Микропроцессор 120 также разделяет память 60 на секции для хранения кадров, буферы для хранения кадров и разрядов и секции поэлементного отображения на экране для MPEG декодирования и обработки отображения. Модуль управления локальной памятью 134 получает горизонтальный и вертикальный синхроимпульс (например, из модуля 70) и входные сигналы запроса данных и обеспечивает выходные сигналы подтверждения, а также выходные сигналы адреса памяти, разрешения считывания (РСЧ) и разрешения записи (РЗП) для различных системных схем, включая схемы управления буферами. Модуль 134 генерирует сигналы адресов и управления в реальном времени для управления памятью 60. Выходные тактовые сигналы ТИвых создаются в ответ на входные тактовые импульсы в сигнале ТИвх, который может создаваться локальным генератором тактовых импульсов, к примеру модулем 50. Система по фиг.1 может быть использована со всеми профилями и уровнями спецификации MPEG в контексте различных схем обработки цифровых данных, к примеру может быть связана с наземными телевещательными, кабельными и спутниковыми системами передачи.
В данном варианте осуществления изобретения память видеокадров 60 размещается вне интегральной схемы, которая содержит декодер MPEG и связанные с ним элементы на фиг. 1. Процессор отображения 70 может включать некоторые элементы, которых нет в интегральной схеме декодера MPEG. Использование такого внешнего запоминающего устройства позволяет изготовителю приемника выбрать экономичное по размеру устройство памяти, удовлетворяющее назначению приемника, например, для отображения с максимально высокой четкостью или пониженной
четкостью, когда приемник принимает поток данных высокой четкости. Большой объем памяти, обычно используемой для декодирования согласно MPEG, требует в настоящее время на практике, чтобы память была вне интегральной схемы декодера. Будущий прогресс в технологии возможно позволит размещать память в той же самой интегральной схеме, что и элементы декодера MPEG. Однако использование устройства внешней памяти дает изготовителю возможность свободного выбора размера памяти, согласованного с разрешающей способностью отображения и другими характеристиками приемника.
На практике изготовитель приемника решает, конструировать ли приемник как дорогостоящую модель высшего качества с расширенными возможностями либо как более экономную модель с меньшими возможностями. Одной из характеристик, представляющих интерес, является разрешающая способность отображаемого изображения. В дешевом приемнике факторы, которые способствуют уменьшению цены, включают менее дорогое устройство отображения изображений с пониженной разрешающей способностью и объемом памяти, связанной с декодером MPEG.
В данном примере требование к памяти снижается до 64 Мбит, когда цепь уплотнения выполняет 25% уплотнение данных, и дает еще более экономичный вариант 48 Мбит при 50% уплотнении данных. Коэффициент уплотнения 25% будет соответствовать полному отображению изображения высокой четкости (ВЧ) и практически не будет отличаться от полного MPEG декодирования без уплотнения. При 50% уплотнении опытный зритель возможно сможет обнаружить едва заметные артефакты. В любом случае последовательность декодированных изображений будет проявлять полную разрешающую способность ВЧ 1920•1088 для отображения с помощью устройства отображения изображений с полной разрешающей способностью ВЧ.
В некоторых случаях, к примеру когда в модели приемника используется недорогое устройство отображения с неполной разрешающей способностью ВЧ, полная разрешающая способность изображения ВЧ не требуется. В таком случае желательно принимать и декодировать информацию ВЧ без отображения изображений с полной разрешающей способностью ВЧ. В таком приемнике цепь прореживания 36, 38 и цепь устройства уплотнения 40 могут быть использованы вместе для существенного снижения требований к памяти декодера. Например, цепь прореживания может выполнять горизонтальное прореживание данных с коэффициентом 2, а цепь уплотнения может уплотнять прореженные данные на 50%. Это приводит к существенному снижению требований к объему памяти декодера до 32 Мбит. В этом случае изображение для отображения проявляет разрешающую способность 960•1088, которая достаточна для любых прикладных систем для приема 1Н или 2Н. Таким образом, может быть сконструирован дешевый приемник, способный декодировать полные потоки данных изображения с ВЧ с использованием всего 32 Мбит памяти декодера MPEG. Описанная выше операция выполняется в ответ на сигнал управления режимом, подаваемый на переключатель 45 микропроцессором 120. В зависимости от того, находится ли декодер MPEG в приемнике высокой четкости или в приемнике с пониженной разрешающей способностью, микропроцессор 120 программируется для определения величины уплотнения и того, надо ли разрешить цепи прореживания субдискретизировать данные либо эта цепь должна быть обойдена.
Система на фиг.1 работает в первом режиме обработки данных, предназначенном для обработки сигнала, содержащего большой объем данных, к примеру телевизионного сигнала высокой четкости для отображения устройством отображения высокой четкости, и работает во втором режиме, предназначенном для обработки уменьшенного объема данных. Второй режим может быть использован, например, в дешевом приемнике, содержащем недорогое устройство отображения с уменьшенной разрешающей способностью (то есть, устройство отображения, не предназначенное для ТВЧ).
Состояние переключателя 45 на фиг. 1 управляется сигналом управления режимом, который может программироваться изготовителем приемника для указания типа отображаемых приемником данных, например, с высокой четкостью (первый режим) или с четкостью ниже высокой (второй режим). Переключатель 45 установится для работы в первом режиме, если принятый сигнал высокой четкости должен отображаться устройством отображения высокой четкости, и во втором режиме в случае входного сигнала высокой четкости, субдискретизируемого модулями 36 и 38, для получения информации для изображения с четкостью ниже высокой, для воспроизведения более дешевым устройством отображения, имеющим разрешающую способность с четкостью ниже высокой.
В первом режиме модули прореживания 36 и 38 обходятся, и уплотняемые блоки данных посылаются непосредственно в устройство уплотнения 42 и устройство уплотнения 40 через переключатель 45. В этом режиме сигнал управления режимом подается на вход управления устройства уплотнения 42 для разрешения работы устройства уплотнения 42. Во втором режиме состояние сигнала управления режимом в данном варианте блокирует устройство уплотнения 42 путем снятия питания с устройства уплотнения 42, при этом разрешается передача данных от сумматора 30 в активизированное устройство уплотнения 40 через переключатель 45. Блокировка устройства уплотнения 42 путем снятия питания особенно выгодна в устройстве на интегральной микросхеме, предназначенном для обработки информации ТВЧ, из-за ограничений по мощности (теплоотдачи) таких интегральных схем из-за высокой частоты тактовых импульсов, большой площади поверхности и большого количества интегрированных в них активных элементов. В системе с прерываемыми тактовыми импульсами снятие питания может быть эффективно выполнено путем приостановки работы генератора тактовых импульсов устройства уплотнения. Дополнительным преимуществом такой операции является то, что устройство уплотнения должно работать в сходных режимах обработки блоков, к примеру, 8•8 и 4•8. То есть, к примеру, устройство уплотнения 40 нет необходимости перепрограммировать для обработки блоков пикселей 4•8, получаемых в процессе прореживания. Модуль переупорядочивания блоков 43 восстанавливает блоки после прореживания, чтобы получить из блоков пикселей 4•8 блок пикселей 8•8, совместимый с алгоритмом обработки блоков устройства уплотнения.
Сигнал управления режимом подается также на управляющий вход цепи горизонтальной сверхдискретизации 88, чтобы обойти выполнение функции сверхдискретизации в рабочих режимах, когда модули 36 и 38 не используют прореживание. С этой целью в указанном режиме обхода модуль 88 может использовать относительно простую схему переключения для переключения выходного сигнала с модуля 86 непосредственно на модуль 90.
При уплотнении, выполняемом до запоминания данных в памяти 60, требуется, чтобы данные были распакованы до модуля 90 в контуре обработки компенсации движения. Это выполняется устройствами распаковки, работающими на блочной основе, 80, 82 и 84, которые выполняют операцию, обратную операции, выполняемой устройствами уплотнения 40 и 42. В устройстве распаковки отображения на блочной основе 62 используется способ распаковки, подобный тому, что используется устройствами уплотнения 80-84, и это устройство распаковки распаковывает хранящиеся в памяти данные пикселей перед передачей их в процессор отображения 70. Когда цепь субдискретизации 36, 38 перед памятью 60 разблокирована, выходные данные из памяти 60 подвергаются сверхдискретиэации модулем 88, находящимся перед модулем 90 в контуре обработки компенсации движения, что является обратной операцией по отношению к цепи 36, 38.
В системе по фиг.1 выгодно использовать множество параллельных устройств распаковки блоков, представленных модулями 80, 82 и 84 в контуре компенсации движения. В данном примере используются девять устройств распаковки: по три в каждом модуле 80, 82 и 84, что позволяет выполнять индивидуальную распаковку всех пикселей. Каждое из этих устройств распаковки имеет соответствующий входной буфер ПП-ПО. Для распаковки данных пикселей яркости в режиме прямого предсказания MPEG используются три устройства распаковки (например, в модуле 80), и для распаковки данных пикселей яркости в режиме обратного предсказания MPEG используются три устройства распаковки (например, в блоке 82). Поскольку информация о цветности составляет половину от информации о яркости, то для распаковки данных пикселей цветности используются только три устройства распаковки (например, в модуле 84). Использование всех девяти устройств распаковки требуется в наихудшем случае декодирования В-изображения MPEG, когда требуется двунаправленная обработка с предсказанием с компенсацией движения. Таким образом, для предсказания В-изображения требуются два кадра изображения (прямой и обратный), в то время как для предсказания Р-изображения MPEG требуется только один кадр изображения.
Блок предсказателя с компенсацией движения может не появится (что часто бывает) на границе блока. Вместо этого из памяти кадров 60 возможно придется вызывать несколько блоков. В наихудшем случае в системе MPEG-2 с половинной разрешающей способностью пикселей блок предсказателя с компенсацией движения может перекрывать шесть блоков. Таким образом, необходимо иметь доступ к шести блокам в памяти. В системе типа раскрытой здесь системы при повторном уплотнении в контуре компенсации движения (через модули 40, 42) непосредственное обращение к пикселям невозможно. Все пиксели блока должны быть сначала распакованы, что в наихудшем случае для шести блоков требует больших дополнительных издержек и создает гораздо больше данных, чем необходимо. Ненужная информация о пикселях отбрасывается модулем форматирования 86, упомянутым ранее, но только после того, когда все пиксели распакованы.
В случаях обработки большого объема данных, таких как вышеупомянутый случай с шестью блоками, распаковка перед запоминанием повышает требования к объему памяти буфера, связанные с обработкой распакованной информации о пикселях. Установлено, что вместо этого в раскрытой системе предпочтительно распаковывать данные параллельно и после этого отбрасывать (через модуль 86) ненужные распакованные данные пикселей, не имеющие отношения к блоку предсказателя. Преимуществом является то, что эта процедура требует значительно меньшей емкости памяти буфера. Таким образом, хотя требование к пропускной способности памяти буфера (разрядности данных) снижается, понадобится увеличение площади интегральной поверхности. Однако использование параллельно нескольких устройств распаковки дает дополнительное преимущество, заключающееся в более быстром функционировании и соответственно более быстром доступе к данным пикселей, необходимым для обработки предсказателя с компенсацией движения.
Множество устройств распаковки не выполняют конвейерную обработку. Каждое устройство распаковки и связанный с ним буфер выдают данные независимо, так что выдача данных пикселей производится быстро. Задержки при работе одной цепи устройства распаковки/буфера не влияют на работу других цепей распаковки. Также как и в случае с цепью уплотнения, устройства распаковки 80, 82 и 84 используют общую просмотровую таблицу (ПТ) в модуле 44.
В цепи 40, 42 в зависимости от требований конкретной системы могут быть использованы различные типы уплотнения, включая квантование и преобразование. В раскрытой системе используются уплотнение с фиксированной длиной, хотя также можно использовать уплотнение с переменной длиной или адаптивное уплотнение с фиксированной/переменной длиной.
Предпочтительно, чтобы используемый тип уплотнения обладал конкретными характеристиками. Каждый блок должен уплотняться на заранее определенную величину, так чтобы можно было легко определить местоположение каждого уплотненного блока. Каждый блок должен уплотняться/распаковываться независимо от других блоков. Таким образом, можно обратиться к любому блоку без необходимости считывания какого-либо другого блока. Процесс уплотнения/распаковки не должен порождать раздражающие артефакты в воспроизводимом изображении. Коэффициент уплотнения 25% фактически не вносит искажений по сравнению с известным процессом декодирования без такого уплотнения. При уплотнении 50% появляются искажения, но наблюдаемые результаты приемлемы и, как считается, незначительно отличаются от результатов известного процесса декодирования без уплотнения и сокращения памяти.
На фиг.20 показана цепь фиксированного уплотнения, используемая в каждом из устройств повторного уплотнения 40 и 42 по фиг.1. В цепи уплотнения используется контур дифференциальной импульсно-кодовой модуляции (ДИКМ) с адаптивным предсказанием. Идея указанной обработки ДИКМ с предсказанием заключается в удалении взаимной избыточности между последовательными пикселями и формировании лишь информации о различиях. Этот известный процесс описан в целом A. K. Jain в Fundamentals of Digital Image Processing (Prentice-Hall International), c. 483 и далее.
Прежде чем обсуждать схему на фиг.20, обратимся к фиг.22. На фиг.22 показана примерная компоновка группы из четырех пикселей а, b, с и х (предсказываемый пиксель), связанных с операцией обработки с предсказанием цепи ДИКМ. Эта группа пикселей определена в блоке пикселей 8•8, показанном на фиг. 22. Каждый блок пикселей подвергается растровому сканированию, как показано на фиг. 22, слева направо по направлению вниз. В этом примере для информации о яркости пиксель b задерживается на однопиксельный интервал по отношению к пикселю с, пиксель а задерживается на семипиксельный интервал относительно пикселя b и пиксель х задерживается на однопиксельный интервал относительно пикселя а. Для информации о цветности пиксель "а" задерживается на трехпиксельный интервал.
При обработке с предсказанием с ДИКМ текущий кодируемый пиксель предсказывается путем использования ранее закодированных пикселей, которые известны устройствам распаковки 62, 80, 82 и 84 (фиг.1). На фиг.22, где пиксель х представляет собой значение пикселя, подлежащее кодированию с предсказанием, пиксели a, b и с были закодированы с предсказанием ранее и известны цепям распаковки. При предсказании х, Хпред, используются значения а, b и с в соответствии со следующим псевдокодом, который описывает используемый алгоритм:
если
(|a-c|<e1&&|b-c|>e2), Хпред=b,
в противном случае, если
(|b-c|<e1&&|a-c|>e2), Хпред=а,
в противном случае Хпред=(a+b)/2.
Значения е1 и е2 являются константами, представляющими заранее заданные пороговые значения. Этот алгоритм используется только для пикселей, которые расположены не в первой строке или первом столбце обрабатываемого блока. Некоторые исключительные ситуации обрабатываются следующим образом: первый пиксель в блоке кодируется очень точно без ссылок на какой-либо другой пиксель, пиксели в первой строке используют в качестве прогнозируемого значения значение пикселя а, а пиксели в первом столбце используют в качестве прогнозируемого значения значение пикселя b. По существу этот алгоритм пытается обнаружить границу. В первом случае предполагается вертикальная граница между пикселями с и b и между пикселями а и х. Таким образом, b является наилучшим предсказанием. Во втором случае предполагается горизонтальная граница между а и с и между b и х. Таким образом, наилучшим предсказателем является а. В третьем случае очевидная граница не обнаруживается. В этом случае и а и b являются равным образом подходящими предсказателями, так что используется их среднее значение.
Цепь уплотнения по фиг.20 квантует значения пикселей различия (остатка), создаваемых в результате обработки ДИКМ. На фиг.20 используется контур ДИКМ с перемежением с двумя заранее заданными задержками и параллельной, а не последовательной обработкой. Схема, показанная на фиг.20, соответствует схеме, используемой устройством повторного уплотнения 40 на фиг.1 для обработки перемежающихся данных пикселей А и С в последовательности, показанной на фиг. 5. Подобная схема используется устройством уплотнения 42 для уплотнения перемежающихся данных пикселей В и D. Поскольку цепь на фиг.20 уплотняет остаточное значение, контур предсказателя должен закончить обработку пикселя данного блока, прежде чем появится соответственно расположенный пиксель соответствующего следующего блока. Перемежающиеся данные блока пикселей проходят через схему независимо, что важно для системы, закодированной с переменной длиной слова, когда входные и выходные данные имеют различные скорости передачи.
На фиг.20 последовательность перемежающихся данных пикселей а, с, а, с,. .. из соответствующих перемежающихся блоков пикселей А, С,... (фиг.5) подвергается модулем 230 задержке на один пиксель. Заданное значение уплотняемого пикселя подается на неивертирующий (+) вход объединителя для вычитания 210. Инвертирующий (-) вход объединителя 210 получает предсказанные значения пикселей от предсказателя 215. Остаточное значение пикселя (различие), выводимое из объединителя 210, подвергается квантованию и обратному квантованию элементами 220 и 222 соответственно. В этом примере квантование, обеспечиваемое элементом 220, является фиксированным и гарантирует требуемую фиксированную величину уплотнения данных. Элементы 230, 232, 234, 236, 238, 240 и 242 являются регистрами (например, триггерными схемами), тактируемыми сигналом ТИ 54 МГц. Элементы 230, 232, 240 и 242 (Z-1) осуществляют задержку на один такт. Продвижение одного пикселя занимает два тактовых импульса из-за перемежения данных. Элементы 238, 234 и 236 осуществляют задержки соответственно на два, шесть и восемь тактов как следствие работы цепи, обрабатывающей поток данных из двух перемежающихся блоков пикселей. Выход обратного квантователя 222 примерно соответствует входу в квантователь 220, но отличается от него небольшим сдвигом (на постоянную составляющую), вызванным ошибкой квантования. Выход сумматора 228, Вход', отличается от входного сигнала в объединитель 220 на ту же самую величину. Связь во времени последовательности перемежающихся входных пикселей а, с,... на нескольких тактах с выбранными схемными элементами по фиг.20 показана на фиг.27 и будет подробно обсуждена ниже.
Цепь на фиг.20 содержит также сумматор 228 и мультиплексоры 225 и 235, расположенные как показано на фигуре. Эти мультиплексоры содержат цепь предсказания пикселей, связанную с логическим блоком предсказания 215 и элементами задержки пикселей 234, 236 и 238. Состояние переключения мультиплексора 235 определяется подаваемыми на него сигналами управления яркостью (Y) и цветностью (С). Сигналы управления (Y, С) создаются в зависимости от перемежения блоков яркости и цветности, как показано на фиг.3. Появление сигналов управления Y, С происходит в результате процесса подсчета/синхронизации пикселей, так что пиксели цветности обрабатываются последовательно после пикселей яркости макроблока. Сигналы управления Y и С используются для управления величиной задержки в схеме предсказателя, в соответствии с обработкой блока яркости 8•8 или обработкой блока цветности 4•8. Обработка пикселей цветности разрешается, когда на Мульт 235 подается сигнал управления с уровнем логической "1", что заставляет Мульт 235 передавать данные, появляющиеся на его входе "1". Обработка данных пикселей яркости разрешается, когда на Мульт 235 подается сигнал управления с уровнем логического "0", что заставляет Мульт 235 передавать данные, подаваемые на его вход "0" с выхода модуля задержки 236. В случае использования блока яркости 8•8 пиксель предсказателя "х" находится на 8 пикселей дальше. Мульт 235 переключает входные тракты задержки для получения этой большей задержки.
Уплотненные (квантованные) остаточные выходные данные пикселей создаются на выходе квантователя 220. Эти уплотненные данные (фиг.6) задерживаются на один такт модулем 242, прежде чем подвергнуться дальнейшей обработке, включая кодирование Хаффмена.
В частности, показаны два триггерных элемента задержки 232 и 240. Использование элементов 232 и 240 создает двойные тракты задержки Δ1 и Δ2 и позволяет предсказывать соседние пиксели, а не какой-либо другой пиксель. Тракт задержки Δ1 содержит схемные компоненты между выходом задержки 232 и входом задержки 240. Тракт задержки Δ2 содержит схемные компоненты между выходом задержки 240 и входом задержки 232. Каждый из модулей задержки 232 и 240 дает задержку на один такт, примерно 18 наносекунд, или на один такт с частотой 54 МГц. При такой компоновке уплотненный выходной пиксель синхронно выводится из схемы в момент, когда пиксель, подлежащий уплотнению, вводится в схему. Таким образом, в реальном времени создается уплотненный выходной пиксель для каждого входного пикселя, подлежащего уплотнению.
В других системах обсужденные выше принципы могли бы быть использованы при четырехкратном перемежении, то есть при четырех конвейерах данных и четырех (вместо двух) трактах задержки в системе на фиг.20. Тогда принципиально важные контуры обработки можно разделить на четыре части для облегчения синхронизации, что дает возможность использовать тактовые импульсы с большей частотой. В этом случае совместно используемая просмотровая таблица также сэкономит площадь интегральной схемы. Хотя в этом примере входные блоки пикселей перемежаются, выполнять перемежение входных данных во всех системах нет необходимости.
Использование двойных трактов задержки Δ1 и Δ2 облегчает настройку задержки всей цепи, в данном случае потребуется, например, приблизительно 18 нс. В этой связи заметим, что интенсивная обработка сигнала, связанная с каждым трактом задержки, обеспечивает различные способы настройки задержек. Задержки, выполняемые двумя трактами задержки, не являются критическими. Схемы предпочтительно оптимизируются, ориентируясь на тактовые импульсы, так что каждая задержка составляет примерно один такт периодических тактовых импульсов 54 МГц. Однако в других системах возможно окажется приемлемым подстраивать такты в соответствии с данной схемой, например, для получения нерегулярных или непериодических тактов. Два тракта задержки не обязательно должны выполнять одинаковую задержку при обработке сигнала, но в раскрытой системе предпочтительно иметь примерно одинаковые задержки.
Два тракта обработки сигнала, к примеру, Δ1 и Δ2 могут быть оптимизированы для задержки обработки сигнала легче, чем один суммарный тракт, как это было бы в случае отсутствия элементов 232 и 240. В случае двух трактов, определяемых элементами 232 и 240, каждый тракт может начать работать, не ожидая результатов работы от другого тракта. В случае системы с одним трактом каждое значение пикселя (например, значение пикселя в узле на входе элементов 234, 215 и 225) должно обрабатываться для выполнения нескольких функций, включая логику предсказателя, суммирование, квантование и обратное квантование, и появляться в конце тракта перед началом следующего такта. Вдобавок, такое значение пикселя должно быть стабильным в указанный момент. Это серьезное ограничение, которое отсутствует в раскрытой системе с множеством трактов, которая является более гибкой.
Компоновка на фиг.20 при ее аппаратурном воплощении, к примеру, на интегральной схеме дает возможность получения уплотненного выходного пикселя для каждого входного пикселя в реальном времени при тактовой частоте 54 МГц. Компоновка на фиг. 20 дает большую гибкость для настройки задержек обработки сигналов и занимает значительно меньшую площадь в интегральном устройстве, давая тот же самый результат. Более того, уменьшение площади поверхности приводит к уменьшению емкости и в результате возможности работы с более высокой скоростью и меньшим энергопотреблением. Также возможно использование тактовых импульсов более высокой частоты. В таком случае перемежение даст дополнительную выгоду с точки зрения уменьшения площади интегральной схемы (например, меньшее количество модулей уплотнения и соответствующих обеспечивающих модулей) и получение более оптимальной системы с использованием средств автоматизированного проектирования.
С помощью одного тактового импульса все логические вентили должны синтезироваться одновременно. Использование двух трактов задержки, обсужденных выше, сильно упрощает синтез логических вентилей как для цепи уплотнения, так и для цепи распаковки, когда проектирование на основе интегральных схем включает использование (как известно) системы кодов на языке высокого уровня VHDL, исходя из которой синтезируются эти вентили. При двух трактах задержки автоматизированное логическое проектирование завершается быстро, так что логические вентили синтезируются быстрее, более точно и более продуктивно.
Делая проектирование более продуктивным, описанные двойные тракты обработки на фиг.20, кроме того, способствуют использованию перемежения для получения преимущества с точки зрения пропускной способности и использованию общих логических элементов (например, просмотровых таблиц). Такие двойные тракты обработки также облегчают расчленение системы на функциональные элементы или модули, исходя из требований конкретной системы, такие как вычислительные функции предсказания и уплотнения в данном варианте осуществления изобретения. Такие модули могут быть адаптированы, если это необходимо, таким образом, чтобы они удовлетворяли требованиям проекта конкретной системы.
Что касается работы устройства уплотнения с перемежением, то следует отметить, что, как было обнаружено, предпочтительнее использовать одно устройство уплотнения с перемежающимися данными, использующими два такта заданного быстрого тактового импульса, чем использовать две схемы уплотнения, каждая из которых тактируется половиной заданного тактового импульса. Использование двух тактов одного тактового импульса облегчает временную оптимизацию посредством перемежения, как обсуждалось выше, а перемежение позволяет удвоить количество обрабатываемых данных. В раскрытой системе предсказание значения данного пикселя выполняется во время одного такта, в то время как вычисления (такие как квантование и обратное квантование) для этого пикселя выполняются в течение следующего такта. Например, для перемежающихся блоков пикселей А и С данные пикселей из блока А предсказываются во время одного такта 54 МГц, в то время как выполняются вычисления для квантования с данными пикселей из блока С. Во время следующего такта над данными пикселей блока А выполняются вычисления для квантования, в то время как осуществляется предсказание данных пикселей блока С. Таким образом система поочередно осуществляет предсказание и вычисления для разных перемежающихся блоков. Использование двух тактов тактовых импульсов 54 МГц дает возможность оптимизировать схемные задержки, используя подходящие средства, доступные при изготовлении аппаратной части схем. Процесс поочередного предсказания значений пикселей и вычисления значений уплотнения показан на фиг.27.
На фиг.27 изображен процесс, посредством которого перемежающиеся пиксели "а" и "с" соответствующих перемежающихся блоков пикселей А и С, обрабатываются на нескольких тактах тактовых импульсов уплотнения 54 МГц. Предположим, что обработка начинается с первого пикселя а1 первого блока пикселей А1. Рассматривая фиг.27 вместе с фиг.20, можно видеть, что первый такт вызывает переход пикселя а1 с входа регистра (триггера) 230 на его выход, в результате чего пиксель а1 квантуется (уплотняется) модулем 220 и подвергается обратному квантований модулем 222, прежде чем появиться на входе регистра 232, и все это происходит в течение первого такта. В этом месте пиксель а1 обозначается как a1', поскольку пиксель а1 в этом месте похож на входной пиксель а1, но имеет небольшое смещение (постоянная составляющая) из-за ошибки квантования, связанной с обработкой, выполняемой модулями 220 и 222.
Второй такт вызывает появление следующего пикселя, а именно первого перемежающегося пикселя с1 перемежающегося блока пикселей С1, подлежащего обработке таким же образом, как было описано выше для пикселя a1. Вдобавок, второй такт заставляет пиксель a1' перейти на выход регистра 232 и тем самым попасть в цепь предсказания, включающую в себя модули 215 и 225. В результате получается предсказанное значение пикселя a1', которое появляется на входе регистра 240. Таким образом, в течение второго такта пиксель с1 уплотняется (квантуется), в то время как ранее уплотненный пиксель a1' подвергается обработке с предсказанием.
В течение третьего такта прошедший обработку с предсказанием пиксель a1' передается на выход регистра 240, подвергается операции объединения с вычитанием в модуле 210, уплотняется модулем 220 и появляется в виде уплотненного выходного значения a1" на входе выходного регистра 242. Пиксель a1" выходит из этого регистра в последующие схемы кодирования Хаффмена на следующем такте. Также в течение третьего такта, когда создается уплотненное значение пикселя a1", перемежающийся пиксель с1' подвергается обработке с предсказанием модулем 215. Этот процесс продолжается для остальных пикселей an, cn перемежающихся блоков А и С, в результате чего в течение каждого такта перемежающиеся пиксели подвергаются обработке соответственно с предсказанием и уплотнением.
Если нет перемежения данных, то обработка должна была бы идти, например, от значения пикселя а1 до уплотненного выходного значения а1" в одном такте. Это требование накладывает серьезное ограничение на скорость и синхронизацию, но этого можно избежать с помощью вышеописанной обработки с перемежением. Обработка с перемежением позволяет также совместно использовать логический блок квантования и обратного квантования, результатом чего является уменьшение площади интегральной схемы и энергопотребления.
Описанная операция уплотнения с перемежением может быть использована независимо от уплотнения MPEG и представляет собой экономичную систему обработки для использования в бытовых видеоустановках (например, домашних видеосистемах, таких как кассетные видеомагнитофоны (КВМ) и камкордеры) для обеспечения уплотнения с предсказанием 25%-50%, где не требуется более сложное и дорогостоящее уплотнение MPEG.
Также можно использовать не два перемежающихся блока пикселей, а четыре, при тактовых импульсах более высокой частоты. В таком случае можно сразу обрабатывать весь блок из четырех блоков пикселей яркости 8•8.
В раскрытой системе каждая цепь распаковки устроена так, как показано на фиг. 21. Схема распаковки подобна схеме уплотнения по фиг.20, за исключением того, что элемент 210 является 9-разрядным сумматором, а элементы 220, 222, 228 и 242 исключены. Тракт Δ2 предполагает меньший объем обработки, чем тракт Δ1. Однако даже включение в тракт Δ2 9-разрядного сумматора 231 добавляет ограничение на время порядка 9 мс, что усложняет конструкцию устройства распаковки. В этой связи заметим, что сумматор 231 не может начинать вычисление, пока Мульт 225 не получил действительные данные. Таким образом, выгодно снизить ограничения на синхронизацию контура. Использование двойных трактов задержки это обеспечивает, а также значительно упрощает разработку в целом.
Признано, что для распаковки тракт Δ1 является более важным трактом. Признано, что тракт Δ2 является более важным в случае уплотнения, когда интенсивные операции с данными диктуют использование более медленных тактовых импульсов с частотой 54 МГц.
Как отмечалось ранее, каждое устройство распаковки в цепи 80-84 работает независимо, так что данные пикселей доставляются быстро. Пересылка данных часто выполняется с помощью тактируемых устройств, таких как триггеры или регистры. Когда данные, подлежащие конвейерной обработке, берутся из двух или более источников, например, в случае перемежающихся данных, в любой момент времени данные в некоторых регистрах являются данными из одного источника, в то время как данные в других регистрах являются данными из другого источника. Данные идут вместе в соответствии с общим тактовым импульсом данных, но данные в последовательных регистрах взаимно независимы. Проблем, связанных с работой системы, можно избежать, если оба источника данных запускать и останавливать синхронно при условии, что поток данных (конвейер) запускается и останавливается в то же самое время.
Проблема возникает тогда, когда один источник прекращает посылку данных, в то время как другой источник продолжает их посылать. В таких интенсивных конвейерных устройствах обработки данных, как процессоры сигналов ТВЧ, важно иметь большое количество вычислений в секунду для получения точного, высококачественного изображения для отображения. Такие системы имеют возможность прерывать поток данных всякий раз, когда один или два (или больше) источников данных прекращают посылать данные. В таких случаях важно управлять конвейерным потоком данных, с тем чтобы поддерживать правильное фазовое соотношение выходных данных, подаваемых из неприостановленного источника, когда другой источник данных перекрыт.
Важно, чтобы тактовые импульсы данных не прекращались в такой системе интенсивной обработки изображений, как система ТВЧ. В таких системах некоторые компоненты, такие как подсистемы уплотнения и распаковки, имеют разные требования к обработке входных и выходных данных и разные скорости передачи данных. Например, распакованные выходные данные пикселей для отображения должны выводиться непрерывно, что требует непрерывных тактовых импульсов, а уплотненные входные данные, подлежащие распаковке, могут поступать спорадически с нулевыми интервалами, когда тактовые импульсы отсутствуют. Если бы тактовые импульсы распаковки прекращались при отсутствии входных данных, то также было бы прекращено тактирование распакованных данных пикселей. Это оказало бы разрушительное воздействие на системы интенсивной обработки и отображения изображений высокой четкости. Таким образом, повторение данных при некоторых условиях, обсуждаемых ниже, дает преимущества, в частности, когда в процессе распаковки используется декодирование Хаффмена.
В раскрытой системе выходной сигнал в цепи уплотнения (фиг.20) подвергается кодированию Хаффмена. Декодирование Хаффмена связано с распаковкой, осуществляемой в декодере. Поскольку кодирование/декодирование Хаффмена является статистическим процессом с разными входной и выходной скоростями передачи данных из-за разной длины закодированных слов, для адаптации к переменному содержимому данных используются буферы.
Как видно из фигур 23 и 24, когда данные от отдельных источников обрабатываются конвейерной последовательностью регистров, используется обратная связь от любого другого регистра для того, чтобы поддерживать одну составляющую данных (от первого источника), проходящую через конвейер, в то время как другая составляющая данных (от второго источника) поддерживается путем самоповторения. При таком способе, при перемежающихся данных от источников, данные могут обрабатываться через конвейер с требуемой предсказанной скоростью, когда один из источников данных прекратил подачу данных.
Повторение данных эквивалентно прекращению тактовых импульсов данных, но при этом нет проблем, связанных со старт-стопной синхронизацией. Использование повторяющихся данных предпочтительно не использованию данных (например, использованию нулевых слов), поскольку такты данных терялись бы при восстановлении задержек.
Повторяющиеся данные важны для поддержания целостности потока данных, и они оказывают не столь деструктивное воздействие, как в случае, когда данные не посылаются.
Процесс повторения данных может повторять данные в течение интервала блока пикселей 8•8 (64 такта) без усложнения системы. Также возможны более длинные задержки для повторения в зависимости от особенностей системы и соответствующих процессов обработки. Например, в ходе обработки пикселей с предсказанием в памяти будет запоминаться до 6 блоков. В таком случае один блок может эффективно задерживаться на месте (повторяться) при прерывании источника, в то время как другие блоки будут поступать из памяти. Ожидается, что можно допустить задержки повторения на 1 или 2 интервалах макроблоков.
Повторяющиеся данные предпочтительно добавлять к нулевым данным, когда возникает прерывание источника, поскольку обработка нулевых данных менее эффективна. Как и другие данные, нулевые данные хранятся в памяти, и такты тратятся на восстановление из состояния нулевых данных, например, на перезагрузку действительных данных после удаления нулей. Это важное обстоятельство для интенсивных систем обработки данных, таких как система телевидения высокой четкости, где пропускная способность памяти является очень важным параметром и количество тактов, необходимых для обработки данных, должно быть уменьшено, насколько это возможно.
На фиг.23 входные каналы соответственно передают данные Х и Y от отдельных источников данных, например от отдельных областей в памяти, к примеру, памяти кадров 60 на фиг.1. Данные Х и Y взаимно независимы и не находятся в определенном порядке, то есть они могут быть, а могут и не быть перемежающимися и представляют любые данные пикселей, запрашиваемые из памяти. В данном примере данные Х и Y представляют соответственно информацию о движении вперед и назад для использования цепью компенсации движения (фиг.1). Данные Х должны обрабатываться, даже если данные Y отсутствуют, и наоборот.
Схема по фиг.23 передает данные из памяти 60 в цепь распаковки 80-84 на фиг. 1 и хорошо подходит для обработки MPEG. Может быть создано кодированное согласно MPEG Р- или В-изображение, но может так случиться, что данный макроблок не имеет одни либо другие данные (прямого или обратного движения) для обработки. Схема на фиг.23 учитывает эту возможность.
Входные буферы ПП-ПО 332 и 334 связаны с каждым входом для блока данных. В этом примере буферы 332 и 334 представляют собой входные буферы для каждого устройства распаковки 80, 82 и 84 на фиг.1. Каждый буфер посылает сигнал Зап, запрашивающий данные из памяти через контроллер памяти 134 в соответствующие моменты времени (например, в ответ на обработку, подразумевающую предсказания в одном в отличии от двух направлений), и получает обратный сигнал Подт о том, что данные для посылки имеются. Поток данных между источниками в памяти и буферами управляется известными сигналами управления Считывание/Запись данных.
Входные данные Х и Y мультиплексируются в общую линию данных с помощью Мульт 336 в соответствии с тактовыми импульсами данных ТИ/2, создавая конвейер чередующихся данных Х и Y на выходе мультиплексора 336. Данные из Мульт 336 обрабатываются последовательностью секций регистров с обратными связями 360 и 364. Количество используемых секций зависит от количества перемежающихся элементов данных, в данном случае двух. Секция 360 включает входной мультиплексор 338 и каскадные регистры (триггеры) 340 и 342, расположенные как показано на фигуре. Каждый регистр тактируется с частотой 81 МГц с помощью сигнала ТИ. Секция 364 устроена подобным же образом. Выход последнего регистра 350 подается в цепь распаковки данных по фиг.1, которая распаковывает данные, включая информацию с предсказанием прямого и обратного движения. Данные должны распаковываться, как только они принимаются устройством распаковки. Устройство распаковки не может ждать, пока заполнятся буферы Х и Y 332, 334. В каждой секции регистров предусмотрена обратная связь с выхода последнего регистра в этой секции на вход управления переключением соответствующего мультиплексора, например с выхода регистра 342 на вход "1" Мульт 338. Цепь, образованная секциями регистров с обратными связями 360 и 364, работает как устройство избирательной цифровой выборки и поддерживает цепь с двумя рабочими режимами. В одном режиме данные дискретизируются и задерживаются для выполнения операции повторения данных. В другом режиме данные передаются обычным путем без повторения.
Модуль 356, например цифровой компаратор, определяет состояние линий сигналов Зап и Подт. Если буфер ПП-ПО генерирует сигнал Зап и не получает обратный сигнал Подт от источника в памяти, то этот модуль генерирует сигнал Останов с уровнем, или состоянием "1". Данные обычно идут через конвейер, когда сигнал Останов находится в состоянии "0", но когда сигнал Останов находится в состоянии "1", данные повторяются, как объясняется ниже. Если от данного входа сигнал Подт не получен, то сигнал Останов вызывает повторение или рециркуляцию последней составляющей действительных данных в каждой секции регистров. Это показано с помощью диаграмм сигналов на фиг.24 и обсуждается ниже. Если сигнал Подт не принят ни от одного из источников входных данных Х и Y, то тактовые импульсы прекращаются и данные не рециркулируют.
Таким образом, если сигнал Останов имеет уровень 0, так что данные идут обычным путем через конвейер, входные данные Х и Y поддерживаются с необходимым после перемежения фазовым (тактовым) соотношением, так что тактирование вызывает чередование выходных данных Х источника и данные Y источника. Это фазовое соотношение важно для предотвращения смешивания данных. В этом случае выходные данные каждой секции регистров (например, на выходе 342 и 350) соответствуют входным данным в момент на два тактовых импульса раньше (например, Выход= Вход (Z-2)). Когда сигнал Останов имеет уровень 1, то соответствующий Мульт (338 или 344) отключает входной сигнал от выхода, так что каждая секция регистров просто осуществляет рециркуляцию данных. Эти рабочие состояния показаны соответственно на фигурах 25 и 26.
На фиг.24 показано состояние, когда, например, сигнал Останов находится на уровне 1 только тогда, когда прервано поступление некоторых данных из источника данных Y. Когда анализирован сигнал Останов, данные Y рециркулируют (повторяются), пока сигнал Останов не вернется к обычному уровню 0 и данные Y пойдут снова. В течение этого временного интервала данные из источника Х идут без прерывания. На фиг.24 входной сигнал содержит перемежающуюся последовательность составляющих из данных Х и Y. В этом примере сигнал Подт не был принят для составляющей Y2, следующей за составляющей Х2. Таким образом, обычное состояние "0" сигнала Останов из модуля 356 изменяется на состояние "1", заставляя каждую секцию регистров 360 и 364 повторять последнюю действительную составляющую Y, в данном случае Y1, пока сигнал Останов остается в состоянии "1". Сигнал Останов подается на управляющий вход мультиплексоров 238 и 244, так что состояние "1" сигнала Останов заставляет каждый мультиплексор передавать сигнал, подведенный к его переключающему входу "1", в данном случае составляющие данных Y.
Заштрихованные составляющие входного сигнала представляют пропадающую составляющую Y2, то есть составляющая Y не выдается вторым источником после составляющей Y1. Составляющая Y1 повторяется в течение трех циклов Зап/Подт, в результате чего генерируются три сигнала Останова и составляющая Y1 повторяется три раза, как показано в выходном сигнале на фиг.24. После этого второй источник генерирует сигнал Подт для составляющей Y2, которая появляется в выходной последовательности вслед за составляющей данных Х5.
Сигнал Останов подается также на управляющий вход соответствующей цепи распаковки, чтоб дать команду устройству распаковки игнорировать повторяющиеся данные в потоке данных. Как упоминалось ранее, перемежающиеся составляющие данных X, Y являются независимыми и не должны следовать друг за другом в какой-то определенной (числовой) последовательности. Необходимо лишь, чтобы данные, связанные с данным входом, шли в предписанной последовательности, например Х5 за Х4, Х4 за Х3, Х3 за Х2 и т.п. Из этого не следует, что, к примеру, Y2 идет за Х5.
На фиг. 28 изображена цепь из фиг.23, скомпонованная для параллельной работы. Перемежающиеся входные данные из Мульт 336 (фиг.23) подаются через мультиплексоры 285 и 286 на параллельные регистры 280 и 282. Выходы этих регистров мультиплексируются в выходной тракт данных посредством Мульт 284. Работа мультиплексоров 284, 285 и 286 управляется сигналами управления Останов 1 и Останов 2, которые связаны с соответствующими источниками и действуют как описано в связи с фиг.23.
Изобретение относится к области вычислительной техники и может быть использовано в системах связи. Техническим результатом является повышение разрешающей способности. Система содержит входную цепь, перемежитель и процессор сигналов изображения. Варианты способа заключаются в создании множества потоков данных, каждый из которых содержит последовательности взаимно перемеженных составляющих блока пикселей. Затем обрабатывают блоки данных и запоминают их. 3 с. и 12 з.п.ф-лы, 28 ил.
RU 94044524 A1, 20.10.1996 | |||
Уплотнительная смазка для резьбовых соединений | 1977 |
|
SU687111A1 |
СИСТЕМА ПЕРЕДАЧИ И ПРИЕМА ТЕЛЕВИЗИОННЫХ СИГНАЛОВ | 1991 |
|
RU2014745C1 |
Эпоксидная композиция | 1975 |
|
SU688135A3 |
Регулирующий орган | 1976 |
|
SU710026A1 |
Авторы
Даты
2003-10-27—Публикация
1997-12-15—Подача