Данное изобретение относится к способу и устройству для предварительной обработки коэффициентов преобразования, способу и устройству для выполнения обратного ортогонального преобразования, способу и устройству для расширения уплотненного информационного сигнала и носителю записи. В частности, изобретение относится к способу и устройству для предварительной обработки коэффициентов преобразования, способу и устройству для выполнения обратного ортогонального преобразования, способу и устройству для уплотнения информационного сигнала, способу и устройству для расширения уплотненного информационного сигнала и носителю записи для сигнала движущегося изображения.
Ортогональные преобразования используются в разнообразных системах обработки цифровых сигналов для различных применений. Ортогональные преобразования позволяют выполнять обработку сигнала в частотной области. Широко известными видами ортогонального преобразования являются быстрое преобразование Фурье (FFT) и дискретное (косинусное преобразование DCT) и т.п. Ортогональное преобразование анализирует, например, фрагмент сигнала во временной области по частотным составляющим (в зависимости от используемой функции ортогонального преобразования), показывая спектр (то есть, распределение энергии по частоте) первоначального фрагмента сигнала во временной области. Путем обработки различными способами частотных составляющих (обычно называемых коэффициентами преобразования), являющихся результатом ортогонального преобразования фрагмента сигнала, может быть уменьшена избыточность в первоначальном фрагменте сигнала. Другими словами, посредством ортогонального преобразования первоначального фрагмента сигнала и обработки результирующих коэффициентов преобразования, первоначальный фрагмент сигнала может быть представлен с использованием меньшего числа бит, чем их было использовано при представлении первоначального фрагмента сигнала. Кроме того, посредством обратного ортогонального преобразования коэффициентов преобразования может быть восстановлен первоначальный фрагмент сигнала во временной области.
Устройства для улучшения сигнала движущегося изображения и для расширения уплотненного сигнала движущегося изображения являются известными примерами систем обработки цифровых сигналов, использующих ортогональное преобразование.
Известно, что мощность сигналов, имеющих высокую корреляцию, концентрируется в низкочастотном диапазоне частотной области. Если концентрация мощности сигнала по конкретной координатной оси (например, частотной оси) возрастает, избыточность сигнала может быть существенно уменьшена, и сигнал может быть уплотнен более эффективно.
Поскольку сигнал движущегося изображения обычно сильно коррелирован как в пространстве, так и во времени, для концентрации мощности сигнала по конкретной координатной оси может быть применено ортогональное преобразование, и сигнал движущегося изображения может быть уплотнен с высокой эффективностью.
До настоящего времени большое количество информации требовалось для представления движущегося изображения, использующего, например, видеосигнал стандарта NTSC (Национальный Комитет по Телевизионным системам США). Благодаря этому, для записи сигнала движущегося изображения требовался носитель записи с очень большой информационной емкостью, если носитель должен был обеспечивать время записи приемлемой длительности. Кроме того, частота информации, при которой с такого носителя записывается и воспроизводится сигнал движущегося изображения, была очень велика. Следовательно большие магнитные ленты и оптические диски требовались для хранения сигналов движущегося изображения.
Если желательно записать сигнал движущегося изображения на более компактный носитель записи с временем воспроизведения приемлемой длительности, к сигналу движущегося изображения должна быть применена операция уплотнения сигнала, чтобы уменьшить количество информации, подлежащей хранению. Кроме того, устройство должно быть способно распаковать уплотненный сигнал движущегося изображения, воспроизводимый с компактного носителя записи.
Для удовлетворения только что описанных требований были предложены различные системы уплотнения сигнала движущегося изображения, которые используют корреляцию между и внутри фрагментов сигнала движущегося изображения, представляющего кадры, составляющие сигнал движущегося изображения. Например, широко известна система уплотнения сигнала движущегося изображения, предложенная Экспертным Советом по Движущимся Изображениям (MPEG). Поскольку система MPEG подробно описана в различных печатных публикациях, детальное описание системы MPEG здесь не приводится.
В последующем описании будет часто употребляться термин "изображение". Поскольку описанный здесь способ сигнальной обработки относится к обработке сигнала движущегося изображения, представляющего движущееся изображение, должно быть понятно, что слово "изображение", обычно используемое здесь, относится к части сигнала движущегося изображения. Кроме того, сигнал движущегося изображения может представлять кадр движущегося изображения в виде фрейма (кадра) или поля. Если не установлено что-либо другое, "изображение" означает поле или кадр.
Сначала система MPEG определяет отличия между кадрами, образующими сигнал движущегося изображения, чтобы уменьшить избыточность сигнала движущегося изображения во временной области. Затем система MPEG уменьшает избыточность сигнала движущегося изображения в пространственной области путем применения ортогонального преобразования к блокам межкадровых отличий в пространственной области. Система MPEG использует дискретное косинусное преобразование (DCT) как ортогональное преобразование. Посредством уменьшения избыточности как во временной, так и в пространственной областях, движущееся изображение уплотняется весьма эффективно. Уплотненный сигнал движущегося изображения, являющийся результатом только что описанного процесса уплотнения, может быть затем записан на носитель записи или передан через подходящий канал передачи.
Когда уплотненный сигнал движущегося изображения воспроизводится с носителя записи или принимается из канала передачи, из уплотненного сигнала движущегося изображения выделяются блоки коэффициентов преобразования, являющиеся результатом DCT-преобразования. Коэффициенты преобразования обрабатываются путем использования обратного ортогонального преобразования (обратное дискретное косинусное преобразование (IDCT) в системе MPEG) для восстановления блоков межкадровых отличий в процессе реконструкции кадров первоначального сигнала движущегося изображения.
Пример структуры устройства уплотнения сигнала движущегося изображения, основанного на системе MPEG, показан на фиг. 1. В устройстве уплотнения, показанном на фиг. 1, цифровой сигнал движущегося изображения подается в схему форматирования блока 101, где он преобразуется из стандартного видеоформата, например, из стандартного формата видеосигнала NTSC, в блочный формат для получения разделенного на блоки сигнала движущегося изображения. Таким образом, каждый кадр сигнала движущегося изображения разделяется в пространственной области, то есть, по горизонтали и вертикали, на макроблоки, например, 16 х 16 элементов. Макроблоки разбиваются также на блоки 8 х 8 элементов.
Устройство, показанное на фиг. 1, сжимает каждый кадр сигнала движущегося изображения блок за блоком, пока не будут обработаны все блоки, образующие кадр. Затем устройство обрабатывает другой кадр сигнала движущегося изображения, который может быть, а может и не быть следующим кадром в последовательности кадров, образующих движущееся изображение. В последующем описании устройства, показанного на фиг. 1, будет раскрыт процесс сжатия одного блока элементов в одном кадре. Блок элементов, подлежащих уплотнению, - это текучий кадровый блок, являющийся блоком текущего кадра. Разбитый на блоки сигнал движущегося изображения подается на предсказатель движения 102. Предсказатель движения подает текущий кадр, включая блок текущего кадра S1, блок за блоком к схеме расчета блока отличий 103.
Когда схема расчета блока отличий 103 получает текущий кадровый блок от предсказателя движения 102, она также получает блок сопоставления S2, относящийся к текущему кадровому блоку из предсказателя движения 102. Блок сопоставления образуется предсказателем 113 из восстановленных кадров, хранящихся в блоке памяти кадров 112. Схема расчета блока отличий 103 определяет элемент за элементом отличие между текущим кадровым блоком S1 и соответствующим ему блоком сопоставления S2. Результирующий блок отличий, блок отличий S3, подается в схему ортогонального преобразования 104.
Схема ортогонального преобразования 104, которая обычно является схемой дискретного косинусного преобразования (DCT), осуществляет ортогональное преобразование блока отличий S3 и подает результирующий блок коэффициентов преобразования в квантователь 105. Квантователь 105 дискретизирует блок коэффициентов преобразования для получения блока дискретизированных коэффициентов преобразования. Кодер с переменной длиной слова 106 обрабатывает блок дискретизированных коэффициентов преобразования от квантователя 105, используя кодирование с переменной длиной слова, такое как кодирование Хаффмана или неравномерное кодирование и т. п. Результирующий блок закодированных коэффициентов преобразования подается затем, например, в канал цифровой передачи через выходной буфер 107. Сигнал управления, указывающий количество бит, хранящихся в выходном буфере 107, подается обратно к квантователю 105. Квантователь регулирует шаг дискретизации с учетом сигнала управления, предотвращая переполнение или потерю значимости в выходном буфере. Увеличение или уменьшение шага дискретизации соответственно уменьшает или увеличивает количество бит, подаваемых в выходной буфер.
Блок дискретизированных коэффициентов преобразования подается также от квантователя 105 к инверсному квантователю 108, который является частью локального декодера, используемого в устройстве уплотнения для формирования из дискретизированных коэффициентов преобразования реконструированных кадров, используемых в процессе кодирования с предсказанием. Инверсный квантователь 108 осуществляет инверсную дискретизацию блока дискретизированных коэффициентов преобразования путем выполнения обработки, являющейся дополнением к процессу дискретизации, выполненному квантователем 105. Результирующий блок коэффициентов преобразования подается в схему обратного ортогонального преобразователя 109, где он подвергается обратному ортогональному преобразованию, как дополнению к ортогональному преобразованию, выполненному схемой ортогонального преобразователя 104. Результирующий восстановленный блок отличий S4 подается на сумматор 110.
Сумматор 110 получает также блок сопоставления S2 для текущего кадрового блока S1 от одного из устройств памяти кадров в памяти изображения 112, выбираемых предсказателем 113. Сумматор 110 выполняет элемент за элементом суммирование восстановленного блока отличий S4 из схемы обратного ортогонального преобразования 109 и блока сопоставления S2 из памяти изображения 112 для получения реконструированного блока изображения S5. Реконструированный блок изображения доставляется к одному из устройств памяти изображения с 112A по 112D, выбираемых селектором III оттуда, где он хранится.
Реконструируемый блок изображения записывается в выбранное устройство памяти изображения, где он образует один блок (соответствующий текущему блоку) кадра, восстанавливаемого блок за блоком из блоков реконструируемого изображения в выбранном устройстве памяти изображения. По завершении процесса реконструированное изображение будет использоваться с целью получения блоков сопоставления для выполнения кодирования с предсказанием для уплотнения других кадров сигнала движущегося изображения.
Предсказатель движения 102 определяет для каждого макроблока текущего кадра вектор движения между макроблоком текущих кадров и хранящимися в нем макроблоками отличий других кадров сигнала движущегося изображения. Предсказатель движения формирует также сумму абсолютных значений отличий ("сумма абсолютных значений отличий") между элементами в каждом макроблоке текущего кадра и другими макроблоками других кадров. Каждая сумма абсолютных значений отличий показывает степень совпадения между каждым макроблоком текущего кадра и макроблоками других кадров. Предсказатель движения подает каждый вектор движения и соответствующую сумму абсолютных значений отличий и схему определения режима предсказания 115.
Схема определения режима предсказания 115 использует данные, полученные от предсказателя движения 102, для определения режима предсказания, который будет использован для кодирования с предсказанием текущего кадра, связанного с одним или несколькими другими восстанавливаемыми кадрами. Текущий кадр может быть закодирован с предсказателем посредством использования любого из следующих режимов предсказания:
(1) Внутрикадровый режим, при котором кадр сжимается сам, без обращения к любым другим кадрам. Кадр, закодированный таким образом, называется I-кадром.
(2) Режим прямого предсказания, при котором предсказание выполняется с обращением к реконструированному кадру, появившемуся ранее в движущемся изображении. Кадр, закодированный таким образом, называется P-кадр.
(3) Режим двунаправленного предсказания, при котором выполняется предсказание блок за блоком с обращением к опорному блоку, полученному из реконструированного кадра, появившегося ранее в движущемся изображении, реконструированного кадра, появившемся позднее в движущемся изображении или путем выполнения линейной операции элемент за элементом (например, расчет среднего значения) между ранее реконструированным кадром и кадром, реконструированным позднее. Кадр, закодированный таким образом, называется B-кадром.
Другими словами, I-кадр является кадром, в котором выполняется внутрикадровое кодирование. P-кадр предсказывается из реконструированного I-кадра или P-кадр, появившегося ранее в движущемся изображении. B-кадр предсказывается блок за блоком путем использования ранее или позднее реконструированного I-кадра или P-кадра или путем использования блока, полученного посредством выполнения линейной операции с использованием реконструированного I-адра или P-кадра, появившегося ранее в движущемся изображении, и реконструированного I-кадра или P-кадра, появившегося позднее в движущемся изображении.
Схема определения режима предсказания 115 доставляет информацию о режиме предсказания и соответствующий вектор движения к предсказателю 113 и генератору адреса считывания 114. Генератор адреса считывания 114 выдает адреса считывания в память изображения 112 согласно вектору движения, который заставляет каждое устройство памяти изображения со 112A по 112D считывать блок реконструированных кадров, хранящихся в ней. Место считываемого блока в реконструированном изображении определяется вектором движения. Предсказатель 113 выбирает один из считываемых блоков из устройств памяти изображения 112A - 112D в ответ на сигнал режима предсказания PM, полученный от схемы определения режима предсказания 115. Выбранный считываемый блок обеспечивает блок сопоставления S2 для текущего блока S1. Если текущий блок является частью B-кадра, предсказатель выполняет также линейные операции над блоками, считываемыми из устройств памяти изображения 112A - 112D, для получения требуемого блока сопоставления. Предсказатель подает блок сопоставления S2 в схему блока отличий 103 и сумматор 110.
Пример структуры устройства расширения уплотненного сигнала движущегося изображения на базе системы MPEG показан на фигуре 2. В нем уплотненный сигнал движущегося изображения, полученный непосредственно от устройства уплотнения либо путем его воспроизведения с носителя записи, подается в виде потока бит во входной буфер 121, где он временно хранится. Уплотненный цифровой сигнал включает блоки закодированных коэффициентов преобразования (в том числе, блок закодированных коэффициентов преобразования, представляющих текущий блок) и информацию о режиме предсказания, шаге дискретизации и вектор движения для каждого блока.
Уплотненный сигнал движущегося изображения покадрово считывается из входного буфера 121 и направляется в инверсный кодер с переменной длиной слова (IVLC). Инверсный кодер с переменной длиной слова 122 осуществляет обратное кодирование с переменной длиной слова уплотненного сигнала движущегося изображения и разделяет уплотненный сигнал движущегося изображения на составляющие, включающие блоки дискретизированных коэффициентов преобразования, и информацию о режиме предсказания, размере шага и вектор движения для каждого блока.
Каждый блок закодированных коэффициентов преобразования подается в инверсный квантователь 123, который использует информацию о размере шага для блока, чтобы осуществить обратную дискретизацию блока дискретизированных коэффициентов преобразования для получения блока коэффициентов преобразования. Схема обратного ортогонального преобразования 124 осуществляет инверсное ортогональное преобразование, обычно IDCT-обработку блока коэффициентов преобразования для получения восстановленного блока отличий. Инверсный квантователь 123 и схема обратного ортогонального преобразования 124 соответственно осуществляют обработку, являющуюся дополнением к операциям, выполненными квантователем 105 и схемой ортогонального преобразования 104 в устройстве уплотнения, показанном на фигуре 1.
Генератор считываемого адреса 130 подает считываемый адрес в устройства памяти изображения 128A - 128D согласно вектору движения для текущего блока, полученного от инверсного кодера с переменной длиной слова 122. В ответ на считываемый адрес каждое из устройств памяти изображения 128A - 128D считывает хранящийся в нем блок реконструируемого кадра. Предсказатель 129 выбирает один из считываемых блоков из устройства памяти изображения 128A - 128D в ответ на сигнал режима предсказания PM, также получаемый от инверсного кодера с переменной длиной слова 122. Выбранный считываемый блок обеспечивает блок сопоставления для реконструкции текущего блока. Если текущий блок является частью кадра, закодированного как B-кадр, предсказатель выполняет такие линейные операции над считываемыми блоками из устройства памяти изображения 128A - 128D для обеспечения блока сопоставления. Предсказатель 129 доставляет блок сопоставления в сумматор 125.
Сумматор 125 выполняет элемент за элементом сложение восстанавливаемого блока отличий из схемы обратного преобразования 124 и блока сопоставления от предсказателя 129, чтобы реконструировать текущий кадровый блок текущего кадра. Селектор 126 подает реконструированный текущий блок кадра для хранения в одно из устройств памяти изображения 128A - 128D, в котором текущий кадр реконструируется. Реконструированный текущий кадровый блок записывается в выбранном устройстве памяти изображения на месте текущего кадрового блока в реконструируемом текущем кадре. Когда все реконструируемые текущие кадровые блоки будут записаны в выбранное устройство памяти изображения 128A - 128D, реконструируемый текущий кадр будет готов для считывания, а также для использования в качестве опорного кадра для реконструкции других кадров, появляющихся раньше или позже в движущемся изображении.
Реконструируемые кадры, хранящиеся в устройствах памяти изображения 128A - 128D, считываются в виде выходного сигнала движущегося изображения посредством селектора 126 в ответ на адреса считывания, формируемые генератором адреса дисплея 127. Сканирующий преобразователь (не показан) преобразует выходной сигнал движущегося изображения, считываемый из устройств памяти изображения 128A - 128D в растровый формат желаемого формата видеосигнала, например, NTSC. Результирующий выходной сигнал движущегося изображения может быть затем отображен на подходящем дисплее, например, электронно-лучевой трубке (CRT) и т.п. В этом примере генератор синхросигнала 131 синхронизируется от внешнего источника синхросигнала и периодически генерирует кадровый синхросигнал для доставки его к генератору адреса дисплея 127. Генератор адреса дисплея 127 генерирует считываемые адреса синхронно с кадровым синхросигналом.
Схемы ортогонального преобразования, например, схемы DCT и IDCT, используемые в вышеописанных устройствах управления и расширения, выполняют соответствующие арифметические операции над значениями элементов и коэффициентами преобразования, представляемыми целыми числами с конечным числом бит. Таким образом, операции ортогонального преобразования, выполняемые схемами ортогонального преобразования, выдают результат с округленным числом бит. По этой причине различие в точности операции ортогонального преобразования, использующего действительные числа или различие в устройстве схемы, используемой для выполнения операции ортогонального преобразования, может изменить результат операции ортогонального преобразования. Это может привести к несоответствию в работе устройства уплотнения и расширения и несоответствиям между устройствами расширения, осуществляющими расширение общего уплотненного сигнала.
Например, в устройстве уплотнения блок отличий, получающийся из сигнала движущегося изображения, подвергается ортогональному преобразованию, и используется заданная обработка для дискретизации результирующих коэффициентов преобразования в ходе генерирования уплотненного сигнала движущегося изображения. Тогда в устройстве расширения, если операционная точность представления действительных чисел или устройство схемы обратного ортогонального преобразования не соответствует аналогичным характеристикам устройства уплотнения, появляется вероятность того, что выходной сигнал устройства расширения будет отличаться от входного сигнала в устройство уплотнения. Поэтому выходной сигнал устройства расширения может зависеть от точности и конструкции устройства, используемого для расширения.
Операционная точность или структура обратного ортогонального преобразования может варьироваться в зависимости от устройства, используемого для выполнения обратного ортогонального преобразования. Например, обратное преобразование блока коэффициентов преобразования, использующее две различные конструкции одного и того же типа схемы обратного ортогонального преобразования, может дать различные результаты, Такое различие в результатах называется ошибкой несоответствия обратного ортогонального преобразования ("ошибка несоответствия").
Система MPEG определяет операционную точность, при которой должны выполняться DCT и IDCT, но не определяет способ выполнения операций и конфигурацию. Это имеет место из-за того, что схемы и способы для выполнения DCT и IDCT были разработаны до установления стандартов MPEG.
Как было описано выше, в системе MPEG устройство управления реализует, например, межкадровое кодирование с предсказанием и компенсацией движения сигнала движущегося изображения. В этой системе сигнал движущегося изображения разделяется на блоки, блок отличий строится из текущего кадрового блока и блока сопоставления, получаемого посредством применения компенсации движения к реконструируемому кадру; блок отличий подвергается ортогональному преобразованию с использованием DCT-обработки; результирующие коэффициенты преобразования дискретизируется; дискретизированные коэффициенты преобразования подвергаются кодированию с переменной длиной слова и закодированные коэффициенты преобразования собираются вместе с информацией о режиме предсказания, размером шага дискретизации и векторами движения для получения уплотнительного сигнала движущегося изображения.
Устройство расширения применяет инверсное кодирование с переменной длиной слова к закодированным коэффициентам преобразования, инверсную дискретизацию к дискретизированным коэффициентам преобразования, которые являются результатом инверсного кодирования с переменной длиной слова, и IDCT-обработку к коэффициентам преобразования, являющимся результатом инверсной дискретизации. Результирующий восстановленный блок отличий добавляется к блоку сопоставления, полученному посредством применения компенсации движения к реконструируемому кадру согласно вектору движения, Результирующий реконструированный кадровый блок записывается в виде блока реконструированного кадра, который обеспечивает кадр выходного сигнала движущегося изображения и также пригоден для использования в качестве опорного кадра.
Устройство уплотнения включает локальный декодер, который воспроизводит из дискретизированных коэффициентов преобразования реконструируемые кадры для использования их при выполнении кодирования с предсказанием. Локальный декодер включает инверсный квантователь и схему обратного ортогонального преобразования.
Если конфигурация схемы IDCT в локальном декодере устройства уплотнения отличается от схемы IDCT в устройстве расширения, будут иметь место случаи, когда реконструированные кадры, формируемые локальным декодером в устройстве уплотнения, будут отличаться от реконструированных кадров, формируемых устройством расширения. Зависимость IDCT-обработки от ее конкретного исполнения может вызвать проблемы, если уплотненный сигнал движущегося изображения, генерируемый устройством уплотнения в соответствии со стандартом MPEG, записывается на носитель записи, такой как оптический диск и т.п., для массового распространения. Если уплотненный сигнал движущегося изображения, воспроизводимый с оптического диска, расширяется устройствами расширения, изготовляемыми и продаваемыми различными производителями, воспроизводимое изображение может отличаться от оригинала. Кроме того, различия могут зависеть от используемого устройства расширения. Подобная несовместимость между различными устройствами расширения может также возникнуть, когда уплотненный сигнал движущегося изображения распространяется такими распределительными системами, как наземное или спутниковое вещество, телефонные системы, цифровые системы связи с комплексными услугами (ISDM), кабельные или оптические распределительные системы и т.п.
Ошибки несоответствия представляют конкретную проблему, если выполняется межкадровое кодирование с предсказанием. Межкадровое кодирование с предсказанием может быть межполевым кодированием или межкадровым кодированием. Межкадровое кодирование с предсказанием может вызвать накопление ошибок несоответствия в непрерывной области памяти, которые приведут к неисправимым дефектам в реконструируемых кадрах.
При уплотнении сигнала движущегося изображения по системе MPEG каждая видеопоследовательность разделяется на группы изображения (GOP), например, из восьми или двенадцати кадров. Каждый кадр классифицируется как I-кадр, P-кадр и B-кадр, как было описано выше. При выполнении предсказания движения B-кадр не используется в качестве опорного кадра. Поэтому, ошибка несоответствия, появляющаяся в B-кадре, не приводит к ошибкам в других кадрах.
Если ошибка несоответствия появляется в P-кадре, кадр с ошибкой несоответствия записывается в память изображения для использования при выполнении кодирования с предсказанием. Соответственно, если выполняется межкадровое кодирование с предсказанием, ошибка в P-кадре, хранящемся в памяти изображения, частично распространяется в P-кадры и B-кадры, получаемые из него путем кодирования с предсказанием. Ошибка накапливается пока кадр не будет заменен I-кадром или P-кадром, не имеющим такой ошибки.
Подобным же образом, когда ошибка несоответствия появляется в I-кадре, реконструируемый кадр с ошибкой несоответствия записывается в память изображения для использования при выполнении кодирования с предсказанием. Соответственно, если выполняется межкадровое кодирование с предсказанием, ошибка в I-кадре, записанном в память изображения, распространяется в P-кадры и B-кадры, образованные из него путем кодирования с предсказанием. Ошибка накапливается, пока кадр не будет заменен новым I-кадром, не имеющим такой ошибки.
Накопление ошибки показано на фиг. 3. На фиг. 3, если ошибка несоответствия при декодировании I-кадра равна E1, а ошибка несоответствия при декодировании P-кадра P1 равна ЕР1, значение в реконструированном Р-кадре Р1 будет равно E1 + EP1. Кроме того, если ошибка несоответствия при декодировании P-кадра P2 равна EP2, значение ошибки в реконструированном P-кадре P2 будет E1 + EP1 + EP2. Даже если отдельные ошибки несоответствия малы, постепенное накопление этих ошибок может привести к большой ошибке.
Ошибки несоответствия, полученные при IDCT-обработке, используемой в декодерах MPEG как в устройстве уплотнения, так и в устройстве расширения, можно классифицировать по двум отдельным типам:
Тип (1): Ошибки, являющиеся результатом недостаточной операционной точности.
Тип (2): Ошибки, являющиеся результатом систематических различий при округлении.
Стандарт MPEG устанавливает требование к операционной точности, Однако, это требование не строгое, что не дает гарантии отсутствия ошибки несоответствия, Следовательно, ошибка несоответствия Типа (1) может появиться между устройствами IDCT, чья операционная точность удовлетворяет требованию MPEG.
Выходы IDCT-обработки являются целыми числами. Следовательно, после того, как было выполнена IDCT-обработка с использованием действительных чисел, результаты обработки должны быть округлены. В общем случае результаты обработки округляются до ближайшего целого. Однако, появляется проблема, если результат обработки представляет собой *. 5, где * - любое целое число. Стандарт MPEG не определяет, каким образом следует округлять результат *.5. Некоторые устройства IDCT округляют *.5. сверху, а другие устройства IDCT округляют *.5. снизу. Кроме того, появляются случаи, когда округление сверху или округление снизу зависят от знака результата обработки. Ошибки несоответствия, возникающие из-за только что описанных систематических ошибок округления, являются ошибками несоответствия Типа (2).
Ошибки несоответствия Типа (1) отличаются от ошибок несоответствия Типа (2), тем что ошибки Типа (1) появляются случайно в то время, как ошибки Типа (2) систематически. Поскольку ошибки Типа (1) являются случайными, положительные ошибки и отрицательные ошибки появляются с примерно равной вероятностью. Поэтому, при длительном выполнении кодирования с предсказанием можно ожидать, что ошибки несоответствия Типа (1) будут сведены на нет.
С другой стороны, поскольку ошибки несоответствия Типа (2) являются систематическими и присущи самой IDCT-обработке, такие ошибки постоянно имеют один и тот же знак. Соответственно, при длительном выполнении кодирования с предсказанием ошибка несоответствия будет накапливаться в одном направлении. Хотя каждая ошибка несоответствия Типа (2) составляет только +1 или -1, если накапливается много ошибок в одном направлении, накопления ошибка несоответствия будет большой.
Так как ошибки несоответствия Типа (1), хотя они и образуются, через некоторое время исчезают, ошибка Типа (1) не представляют большой проблемы. С другой стороны, поскольку ошибки несоответствия Типа (2) накапливаются в одном направлении, эти ошибки представляют проблему. В этой связи желательно предотвращать появление накапливающихся ошибок несоответствия Типа (2).
В системе MPEG1 было предложено выполнять обработку перед IDCT-обработкой, чтобы предотвратить появление ошибок несоответствия Типа (2). Обработка присваивает коэффициентам преобразования всех составляющих нечетные значения, кроме коэффициента преобразования составляющей (0.0) макроблока, с внутрикадровым кодированием кадра ("интра-макроблок"). В интра-макроблоке составляющая (0.0) является DC-составляющей. Как показано на фигуре 4, например, коэффициенты преобразования составляющих (0.1), (7.1), (2.3), (5.3), (1.5), (6.5), (3.7) и (4.7) изначально все равны 568. Поскольку это четное число, предварительная обработка устанавливает для этих коэффициентов нечетное значение, например, 567. Если IDCT-обработка применяется к предварительно обработанным коэффициентам преобразования, дробные результаты никогда не появятся.
Поскольку DC-составляющая интра-макроблока очень важна для появления кадра, получаемого из уплотненного сигнала движущегося изображения, точность ее представления ограничивается только 8 бит. Она не подвергается преобразованию к нечетному значению, поскольку это ухудшает точность этой важной составляющей. С другой стороны все коэффициенты преобразования, являющиеся результатом преобразования макроблока кадра, закодированного с использованием межкадрового кодирования ("неинтра-макроблок"), подвергаются обработке, подобной обработке коэффициентов преобразования составляющих, отличных от DC-составляющей интра-макроблока, чтобы ограничить значения коэффициентов преобразования только нечетными числами.
Обработка, при которой значения коэффициентов преобразования, подвергающиеся IDCT-преобразованию, приводятся все к нечетным значениям, называется обработкой на нечетность.
Посредством выполнения обработки на нечетность IDCT-обработка, как в устройстве уплотнения, так и в устройстве расширения, будет выполняться с округлением в соответствии с общим правилом. Это даст возможность поддерживать качество совмещаемых кадров между различными устройствами расширения.
Однако, несмотря на вышеописанную обработку на нечетность, вышеуказанные накапливающиеся ошибки несоответствия Типа (2) будут появляться в процессорах MPEG из-за того, что IDCT-обраотка может выдавать результаты типа *.5, где * - означает целое число. Условия, которые приводят к результату *.5, будут описаны далее на примере двумерного 8 x 8 IDCT, используемого в системе MPEG.
Двумерное 8 x 8 IDCT описывается следующим уравнением:
В вышеприведенном уравнении F(U, V) указывает DCT-коэффициенты, соответствующие двумерному IDCT. В уравнении (1) каждое значение выхода IDCT является действительным числом, то есть, рациональным числом или иррациональным числом. Поскольку *.5 рациональное число, сделав выходное значение IDCT иррациональным числом, можно предотвратить появление накапливающейся ошибки несоответствии. С другой стороны, если выходное значение является рациональным числом, существует вероятность того, что выходное значение будет *.5.
DCT-коэффициенты F(0,0), F(0,4), F(4,0), F(4,4) являются особыми DCT-коэффициентами. Если любой из этих DCT-коэффициентов имеет ненулевое значение, выходное значение IDCT является рациональным числом. Выходное значение IDCT в этом случае определяется следующим уравнением (2):
(X,Y) = 1/4F(0,0)
где
Таким образом, если только один из особых DCT-коэффициентов F(0,0), F (0,4), F(4,0), F(4,4) имеет ненулевое значение, кратное 4, но не кратное 8, выходное значение будет равно *.5.
Если четыре особых DCT-коэффициента являются единственными коэффициентами с ненулевым значением, выходное значение IDCT определяется уравнением (3):
Изменяя комбинации из X и Y, f(X,Y) в уравнении (3), можно иметь следующие значения:
1/8 [F(0,0) + F(0,4) + F (4,0) + F (4,4)]
1/8 [F(0,0) - F(0,4) + F (4,0) - F (4,4)]
1/8 [F(0,0) - F(0,4) + F(4,0) - F(4,4)]
1/8 [F(0,0) - F(0,4) - F(4,0) + F(4,4)] (4)
Таким образом, когда значения четырех особых коэффициентов таковы, что любое из выражений, представленных в уравнении (4), кратно 4, но не кратно 8, будет появляться результат *.5.
Таким образом, если четыре особых коэффициента имеют ненулевые значения, велика вероятность того, что выходное значение IDCT, будет равно *.5.
Также различные симметричные пары DCT-коэффициентов с ненулевыми значениями, отличные от только что рассмотренных четырех особых коэффициентов, могут дать выходное значение *.5.
(1) если пара коэффициентов X(2n+1, 2m+1), X(2m+1, 2n+1) имеет одно и то же ненулевое значение и это значение кратно 4, но не кратно 8; или
(2) если пара коэффициентов X(2n+1, 2n+1), X(8-2n-1, 8-2n-1) имеет одно и то же ненулевое значение и это значение кратно 4, но не кратно 8.
В вышеприведенных уравнениях X(i,j) является коэффициентов преобразования одной составляющей из двумерного 8 х 8 DCT.
Если текущий сигнал движущегося изображения уплотняется устройством уплотнения согласно системе MPEG, то часто образуются ненулевые DCT-коэффициенты в только что упомянутых комбинациях, которые могут дать выходное значение IDCT, равное *.5. Кроме того, значения четырех особых коэффициентов являются ненулевыми большую часть времени.
Поскольку самой общей причиной появления результата *.5 является комбинация DCT-коэффициентов, в которой значения четырех особых коэффициентов являются ненулевыми, предотвращение появления ошибки несоответствия из-за четырех особых коэффициентов существенно уменьшит вероятность появления ошибки несоответствия.
Способ обработки, с помощью которого интра-макроблок и неинтра-макроблок подвергаются инверсной дискретизации в MPEG1, показан на фиг. 5. На фиг. 5 QAC(i, j) является (i,j)-м DCT-коэффициентом, Wi(i,j) является (i,j)-м элементом матрицы весов, mquant является коэффициентом дискретизации и rec (i, j) является (i, j)-м инверсно дискретизированным DCT-коэффициентом. Способ обработки записан в синтаксисе C-языка программирования. Синтаксис этого языка изложен в Herbert Schildt, Using Turbo C. Osborne McGraw Hill (1988), в частности, на страницах 83 - 87.
Дискретизированные DCT-коэффициенты подвергаются обратной дискретизации и результирующие DCT-коэффициенты, затем подвергаются IDCT-обработке. Однако, в MPEG1 к DCT-коэффициентам, имеющим четное значение, добавляется +1 или -1, чтобы быть уверенным, что все DCT-коэффициенты, подвергшиеся IDCT-обработке, будут иметь нечетные значения. В результате этой операции, когда, например, только один из четырех особых коэффициентов F(0,0) имеет ненулевое значение, поскольку появляется ошибка несоответствия, когда F(0,0) кратно 4, но не кратно 8, если DCT-коэффициенты обрабатываются так, что все они имеют нечетное значение, результат, если DCT-коэффициент подвергся IDCT-обработке, не может быть равен *.5. Подобным же образом, если только один из других четырех особых коэффициентов F(0,4), F(4,0), F(4,4) имеет ненулевое значение, ошибка несоответствия не появится. Однако, если несколько из четырех особых коэффициентов имеют ненулевое значение, как можно видеть из фигуры 4, или если появились пары симметрично построенных коэффициентов, как в случаях (1) и (2), упомянутых выше, присвоение всем DCT-коэфифицентам нечетных значений не предотвратит появления ошибки несоответствия.
Следовательно, обработка на нечетность MPEG1 не предотвратит появления накапливающейся ошибки несоответствия, когда два или более DCT-коэффициентов имеют ненулевое значение. Кроме того, обработка не нечетность MPEG1 вдвое уменьшает разрешающую способность дискретизированных коэффициентов преобразования, поскольку коэффициенты преобразования с четными значениями не разрешены. Это ухудшает качество изображения. Если требуется высокое качество изображения, это представляет проблему. Очевидно желательно иметь лучший способ предотвращения накапливающихся ошибок несоответствия, чем тот, который предложен в MPEG1.
С учетом рассмотренных выше проблем, возникающих в предшествующих разработках, целью этого изобретения является получение способа и устройства, которые эффективно предотвращают появление накапливающихся ошибок несоответствия, когда коэффициенты преобразования подвергаются обратному ортогональному преобразованию и в котором разрешающая способность коэффициентов преобразования не ухудшается.
В частности, целью настоящего изобретения является создание способа и устройства для обратного ортогонального преобразования коэффициентов преобразования, которые эффективно решают проблему ошибок несоответствия.
В частности, целью настоящего изобретения является создание способа и устройства для обработки блока коэффициентов преобразования до выполнения обратного ортогонального преобразования блока коэффициентов преобразования, так чтобы предотвратить ошибки округления, когда блок коэффициентов преобразования подвергается обратному преобразованию.
Кроме того, целью этого изобретения является создание устройства уплотнения сигнала движущегося изображения, устройства расширения уплотненного сигнала движущегося изображения и носителя записи для уплотненного сигнала движущегося изображения, в которых исключаются ошибки несоответствия, и обеспечение мер, предотвращающих влияние ошибок несоответствия, чтобы они как можно меньше ухудшали бы качество изображения.
Цель этого изобретения предполагает эффективное и несложное предотвращение ошибок несоответствия, которые не могут быть предотвращены известными способами.
Соответственно изобретение обеспечивает способ обработки набора коэффициентов преобразования для получения невосприимчивого к ошибкам набора коэффициентов преобразования для обработки посредством обратного ортогонального преобразования. Невосприимчивый к ошибкам набор коэффициентов преобразования свободен от ошибок округления, если он подвергается обратному ортогональному преобразованию. При этом способе коэффициенты преобразования суммируются. Четность суммы (то есть, является ли сумма нечетной или четной) оценивается. Если устанавливается, что сумма четная, инвертируется четность одного из коэффициентов преобразования с инвертированной четностью. Коэффициент преобразования с инвертированной четностью делает контрольную сумму нечетной. В конце концов, набор коэффициентов преобразования, включающий коэффициент преобразования с инвертированной четностью, обеспечивает невосприимчивый к ошибкам набор.
Изобретение также обеспечивает устройство для предварительной обработки набора коэффициентов преобразования для получения невосприимчивого к ошибкам набора коэффициентов преобразования для обработки посредством обратного ортогонального преобразования. Невосприимчивый к ошибкам набор коэффициентов преобразования свободен от ошибок округления, если он подвергается обратному ортогональному преобразованию. Устройство содержит накопитель. Накопитель получает каждый из коэффициентов преобразования в наборе и суммирует их. Схема оценки четности получает эту сумму от накопителя и оценивает четность суммы. Схема инвертирования четности работает тогда, когда схема оценки четности устанавливает, что контрольная сумма четная, и инвертирует четность одного из коэффициентов преобразования для получения коэффициента преобразования с инвертированной четностью. Коэффициент преобразования с инвертированной четностью делает контрольную сумму нечетной. В конце концов схема создает набор коэффициентов преобразования, включающий коэффициент преобразования с инвертированной четностью, в виде невосприимчивого к ошибкам набора.
Кроме того, изобретение обеспечивает способ обратного ортогонального преобразования набора коэффициентов преобразования без появления ошибок округления. Каждый из коэффициентов преобразования представляется двоичным числом. В этом способе оценивается младший бит каждого из коэффициентов преобразования в наборе. В наборе подсчитываются коэффициенты преобразования, имеющие единичный младший бит. Результат счета оценивается, чтобы определить, является ли он четным числом. Если результат счета оценивается как четное число, один из коэффициентов преобразования изменяется, чтобы получить видоизмененный коэффициент преобразования. Видоизмененный коэффициент преобразования делает результат счета нечетным числом. В конце концов, набор коэффициентов преобразования, включающий видоизмененный коэффициент преобразования, подвергается ортогональному преобразованию.
Изобретение также обеспечивает устройство для обратного ортогонального преобразования набора коэффициентов преобразования без появления ошибок округления. Устройство включает схему суммирования коэффициентов преобразования для получения суммы и схему оценки четности, которая оценивает четность суммы. Схема приведения значения суммы к нечетному работает тогда, когда схема оценки четности устанавливает, что контрольная сумма четная, и преобразует четность одного из коэффициентов преобразования для получения коэффициента преобразования с инвертированной четностью. Коэффициент преобразования с инвертированной четностью делает сумму нечетной. В конце концов, схема обратного ортогонального преобразования получает набор коэффициентов преобразования, включающий коэффициент преобразования с инвертированной четностью, от устройства приведения значения суммы к нечетному.
Изобретение также обеспечивает устройство для обратного ортогонального преобразования набора коэффициентов преобразования без появления ошибок округления. Устройство содержит схему оценки младшего бита для оценки значения младшего бита каждого коэффициента преобразования. Счетная схема выполняет подсчет тех коэффициентов преобразования, для которых схема оценки младшего бита установила, что они имеют значение младшего бита, равное единице. Схема оценки результата счета оценивает, является ли результат счета из счетной схемы четным числом. Таким образом, устройство приведения результата счета к нечетному значению работает тогда, когда схема оценки результата счета устанавливает, что результат счета является четным числом, чтобы изменить один из коэффициентов преобразования для получения видоизмененного коэффициента преобразования. Видоизмененный коэффициент преобразования делает результат счета нечетным числом. В конце концов, схема обратного ортогонального преобразования получает набор коэффициентов преобразования, включая видоизмененный коэффициент преобразования, из схемы приведения результата счета к нечетному значению.
Изобретение также обеспечивает устройство для уплотнения сигнала движущегося изображения. Сигнал движущегося изображения включает кадры, а каждый кадр делится на блоки. Устройство содержит предиктивный кодер, который кодирует с предсказанием блоки сигнала движущегося изображения путем использования блоков сопоставления опорного кадра для формирования блоков отличий. Кодер блока отличия уплотняет блоки отличий, поступающие от предиктивного кодера, чтобы сформировать уплотненный сигнал движущегося изображения. Кодер блока отличий включает схему ортогонального преобразования, которая осуществляет ортогональное преобразование блока отличий, поступающего от предиктивного кодера, для получения блоков коэффициентов преобразования, и квантователь, который дискретизирует блоки коэффициентов преобразования, поступающие от схемы ортогонального преобразования, для получения уплотненных сигнальных блоков. Уплотненный сигнал движущегося изображения формируется из уплотненных сигнальных блоков.
Устройство также включает локальный декодер, который расширяет уплотненные сигнальные блоки, поступающие от кодера блока отличий, для получения восстановленных блоков отличий без появления ошибок округления, когда уплотненные сигнальные блоки подвергаются обратному ортогональному преобразованию. Локальный декодер включает инверсный квантователь, который осуществляет обратную дискретизацию уплотненных сигнальных блоков, поступающих от кодера блоков отличий, для получения блоков восстановленных коэффициентов преобразования. Накопитель суммирует восстановленные коэффициенты преобразования в каждом блоке коэффициентов преобразования, поступающие от инверсного квантователя, для получения суммы, четность которой оценивается схемой оценки четности. Устройство приведения суммы к нечетному значению работает, когда схема оценки четности устанавливает, что контрольная сумма четная, чтобы инвертировать четность одного из восстанавливаемых коэффициентов преобразования в блоке для получения коэффициента преобразования с инвертированной четностью, что делает сумму нечетной. В конце концов, схема обратного ортогонального преобразования получает блок восстановленных коэффициентов преобразования, включая коэффициент преобразования с инвертированной четностью, от устройства приведения значения суммы к нечетному. Схема обратного ортогонального преобразования обеспечивает восстановленные блоки отличий.
Устройство также включает предиктивный декодер, который декодирует с предсказанием восстанавливаемые блоки отличий, поступающие от локального декодера, чтобы реконструировать кадровые блоки, соответствующие блокам сигнала движущегося изображения. И наконец, устройство включает память изображения, которая хранит реконструированные блоки кадров, поступающие от предиктивного декодера, в виде блоков реконструированного кадра для использования как опорного кадра для предиктивного кодирования других кадров сигнала движущегося изображения.
В только что описанном устройстве накопитель, схема оценки четности и устройство приведения суммы к нечетному значению в локальном декодере могут быть заменены: схемой оценки младшего бита, которая оценивает младший бит каждого из восстанавливаемых коэффициентов преобразования; счетчиком, который обеспечивает подсчет восстанавливаемых коэффициентов преобразования в каждом блоке, которые имеют единичные значения младших бит; схемой оценки результата счета, которая оценивает, является ли результат работы счетчика четным числом; и схемой приведения результата счета к нечетному значению, которая работает тогда, когда схема оценки результата счета устанавливает, что результат счета четное число, чтобы изменить один из восстанавливаемых коэффициентов преобразования в блоке для получения видоизмененного коэффициента преобразования, который делает результат счета нечетным числом.
Изобретение также обеспечивает устройство для расширения уплотненного сигнала движущегося изображения, чтобы получить выходной сигнал движущегося изображения. Уплотнительный сигнал движущегося изображения включает фрагменты сигнала, каждый из которых представляет кадр выходного сигнала движущегося изображения. Фрагменты сигнала включают закодированные (с переменной длиной слова) уплотненные сигнальные блоки. Устройство содержит инверсный кодер с переменной длиной слова, который применяет обратное кодирование с переменной длиной слова к закодированным (с переменной длиной слова) уплотненным сигнальным блокам для обеспечения уплотненных сигнальных блоков.
Декодер расширяет уплотненные сигнальные блоки от инверсного с переменной длиной слова для получения восстановленных блоков отличий без появления ошибок округления, когда уплотненные сигнальные блоки подвергаются ортогональному преобразованию. Декодер включает инверсный квантователь, который осуществляет инверсную дискретизацию каждого уплотненного сигнального блока из кодера блока отличий, чтобы получить блок восстановленных коэффициентов преобразования. Накопитель суммирует восстановленные коэффициенты преобразования в блоке коэффициентов преобразования, поступающие от инверсного квантователя, для получения суммы, четность которой оценивается схемой оценки четности. Устройство приведения суммы к нечетному значению работает, когда схема оценки четности устанавливает, что контрольная сумма четная, чтобы проинвертировать четность одного из восстанавливаемых коэффициентов преобразования в блоке, чтобы получить коэффициент преобразования с инвертированной четностью, который сделает контрольную сумму нечетной. Схема обратного ортогонального преобразования получает блок восстанавливаемых коэффициентов преобразования, включая коэффициент преобразования с инвертированной четностью, от устройства приведения суммы к нечетному значению и обеспечивает восстановленные блоки отличий.
Устройство также включает предиктивный декодер, который декодирует с предсказанием восстанавливаемые блоки отличий, поступающие от декодера, для реконструкции блоков изображения, а память изображения, которая хранит реконструируемые кадровые блоки, поступающие от предиктивного декодера, в виде блоков реконструированного кадра. Реконструированный кадр используется как опорный кадр для предиктивного декодирования других кадров сигнала движущегося изображения. И наконец, устройство включает схему, которая считывает выходной сигнал движущегося изображения из памяти изображения.
В только что описанном устройстве расширения накопитель, схема оценки четности и устройство приведения суммы к нечетному значению в декодере могут быть заменены схемой оценки младшего бита, которая оценивает значение младшего бита каждого из восстановленных коэффициентов преобразования; счетчиком, который обеспечивает подсчет устанавливаемых коэффициентов преобразования в каждом блоке, имеющих единичные значения младших бит; схемой оценки результата счета, которая устанавливает, является ли результат счета четным числом; и схемой приведения результата счета к нечетному значению, которая работает, когда схема оценки результата счета устанавливает, что результат счета - четное число, чтобы изменить один из устанавливаемых коэффициентов преобразования в блоке для получения видоизмененного коэффициента преобразования, который делает результат счета нечетным числом
Изобретение, кроме того, обеспечивает способ уплотнения сигнала движущегося изображения для получения уплотненного сигнала движущегося изображения. В этом способе к блокам сигнала движущегося изображения применяется предиктивное кодирование и ортогональное преобразование, чтобы получить блоки коэффициентов преобразования, из которых формируется уплотненный сигнал движущегося изображения. Суммы блоков коэффициентов преобразования приводятся к нечетному значению, до применения обратного ортогонального преобразования и предиктивного декодирования, чтобы получить блоки реконструированного кадра для использования в качестве опорного кадра при предиктивном кодировании других кадров сигнала движущегося изображения.
Изображение также обеспечивает способ уплотнения сигнала движущегося изображения, обеспечивающий уплотненный сигнал движущегося изображения. В этом способе выявляется движение между блоками кадра сигнала движущегося изображения и блоками реконструированного сигнала изображения, служащего опорным сигналом, и к опорному кадру применяется компенсация движения в ответ на обнаружение движения, чтобы образовать блоки сопоставления опорного кадра. Блоки сопоставления опорного кадра используются при предиктивном кодировании блоков сигналов движущегося изображения, чтобы получить блок отличий. Блоки отличий подвергаются ортогональному преобразованию для получения коэффициентов преобразования. Уплотненный сигнал формируется из блоков коэффициентов преобразования посредством применения дискретизации и кодирования с переменной длиной слова. Прежде чем применить обратное ортогональное преобразование к блокам коэффициентов преобразования для получения блоков восстановленных отличий, сумма каждого блока коэффициентов преобразования приводится к нечетному значению, чтобы предотвратить появление ошибок округления в процессе обратного ортогонального преобразования. И наконец, к блокам восстановленных отличий применяется предиктивное декодирование, чтобы получить блоки реконструированного кадра для использования в качестве опорного кадра при применении предиктивного кодирования к другим кадрам сигнала движущегося изображения.
И наконец, изобретение обеспечивает носитель записи, на который записывается уплотненный сигнал движущегося изображения, представляющий движущееся изображение. Уплотненный сигнал движущегося изображения формируется из сигнала движущегося изображения посредством применения предиктивного кодирования и ортогонального преобразования к блокам сигнал движущегося изображения для получения блоков коэффициентов преобразования, из которых формируется уплотненный сигнал движущегося изображения. Суммы блоков коэффициентов преобразования приводятся к нечетному значению до применения обратного ортогонального преобразования и предиктивного декодирования к блокам коэффициентов преобразования, чтобы получить блоки реконструированного кадра для использования в качестве опорного кадра при предиктивном кодировании других кадров сигнала движущегося изображения.
Теперь согласно изобретению будет описан путь, предотвращающий появление накапливающихся ошибок несоответствия.
Анализ уравнения (4) показывает, что несоответствие появляется, когда выражения в уравнении порождают результат (2n+1)/2, где n - любое целое число.
Уравнение (4) может быть записано как
f(X,Y)= 1/8 ACC,
где
ACC есть сумма всех коэффициентов.
Наиболее часто встречающийся вид несоответствий:
f(X,Y) = 1/8 ACC = (2n+1)/2 = 1/8 (4*(2n+1))
Из этого видно, что, если ACC сделать нечетным числом, ошибка несоответствия никогда не появится.
Исходя из этого, в данном изобретении используется схема, предусматривающая обратную дискретизацию DCT коэффициентов и затем, до IDCT обработки, расчет суммы DCT коэффициентов. Если сумма DCT коэффициентов является четным числом (то есть, контрольная сумма - четная), изменяется четность одного из коэффициентов, чтобы сделать нечетной сумму DCT коэффициентов (то есть, сделать контрольную сумму нечетной). Достаточно изменить четность только одного из DCT коэффициентов, чтобы сделать нечетной сумму DCT коэффициентов. Кроме того, может быть изменена четность коэффициента, который оказывает наименьшее влияние на выходное значение IDCT. Другими словами, это изобретение, путем проверки четности суммы DCT коэффициентов до IDCT обработки и, если контрольная сумма четная, путем изменения четности одного из DCT коэффициентов для приведения суммы DCT коэффициентов к нечетному значению, эффективно предотвращает появление ошибок несоответствия.
Следует подчеркнуть, что согласно изобретению достаточно изменить четность только одного DCT коэффициента, чтобы сделать нечетной суммы DCT коэффициентов. MPEG1 делает нечетными все DCT коэффициенты, что вдвое уменьшает разрешающую способность DCT коэффициентов, подвергающихся IDCT обработке. С другой стороны, процедура предотвращения ошибок несоответствия согласно настоящему изобретению делает сумму DCT нечетной таким образом, чтобы существенно не уменьшить точность предоставления входных и выходных значений IDCT. При применении способа согласно настоящему изобретению в устройстве уплотнения сигнала движущегося изображения, в устройстве расширения уплотненного сигнала движущегося изображения или в устройстве для передачи уплотненного сигнала движущегося изображения, ухудшение качества изображения будет минимальным.
Кроме того, если способ согласно настоящему изобретению применяется в системе MPEG, минимальный шаг дискретизации может быть равен 1, в отличие от известного способа, в котором минимальный шаг дискретизации был равен 2.
Краткое описание сопроводительных чертежей
На фиг.1 представлена блок-схема, показывающая структуру известного устройства уплотнения сигнала движущегося изображения согласно системе MPEG.
На фиг.1 представлена блок-схема, показывающая структуру известного устройства расширения сигнала движущегося изображения согласно системе MPEG.
На фиг.3 показана последовательность уплотнения сигнала движущегося изображения в системе MPEG.
На фиг.4 показаны рабочие примеры значений коэффициентов DCT.
На фиг.5 показывает шаги обработки, используемой для обратной дискретизации интра-макроблоков и неинтра-макроблоков в известной системе MPEG1.
На фиг.6 представлена блок-схема, раскрывающая структуру первого варианта устройства уплотнения сигнала движущегося изображения согласно изобретению.
Фиг. 7 показывает, как считывается блок коэффициентов DCT с использованием сканирования зигзагом.
Фиг. 8 представляет блок-схему первого практического варианта схемы приведения к нечетной сумме 14, показанной на фиг.6.
Фиг. 9 представляет блок-схему функционирования схемы приведения к нечетной сумме, показанной на фиг.8.
На фиг. 10A представлена блок-схема второго варианта схемы приведения к нечетной сумме, показанной на фиг.6.
Фиг. 10B показывает изменение во втором варианте схемы приведения к нечетной сумме, показанной на фиг.6.
На фиг. 11 показана блок-схема первого варианта инвертора контроля четности, показанного на фиг.8.
На фиг. 12 представлена блок-схема, поясняющая работу второго варианта вышеупомянутого инвертора контроля четности.
На фиг.13 показана блок-схема второго варианта вышеупомянутого инвертора контроля четности.
На фиг.14 представлена блок-схема, объясняющая работу третьего варианта вышеупомянутого инвертора контроля четности.
На фиг. 15 представляет блок-схему третьего варианта вышеупомянутого инвертора контроля четности.
На фиг. 16 показана блок-схема, объясняющая работу четвертого варианта вышеупомянутого инвертора контроля четности.
На фиг. 17 показана блок-схема четвертого варианта вышеупомянутого инвертора контроля четности.
На фиг. 18 представлена блок-схема третьего варианта схемы приведения к нечетной сумме, показанной на фиг.6.
На фиг.19 показана блок-схема структуры первого варианта устройства расширения уплотненного сигнала движущегося изображения согласно изобретению.
Фиг.20 представляет блок-схему инверсного квантователя и устройства приведения к нечетной сумме в устройстве расширения уплотненного сигнала движущегося изображения, показанного на фиг.19.
На фиг. 21 представлена временная диаграмма, поясняющая работу вышеупомянутых инверсного квантователя и устройства приведения к нечетной сумме.
На фиг.22 представляет блок-схему структуры второго варианта устройства уплотнения сигнала движущегося изображения согласно изобретению.
На фиг.23 показана блок-схема первого варианта схемы приведения к нечетной сумме во втором варианте устройства уплотнения сигнала движущегося изображения, показанного на фиг.22.
На фиг.24 показана блок-схема второго варианта схемы приведения к нечетной сумме во втором варианте устройства уплотнения сигнала движущегося изображения, показанном на фиг.22.
На фиг. 25 показана блок-схема третьего варианта схемы приведения к нечетной сумме во втором варианте устройства уплотнения сигнала движущегося изображения, показанном на фиг.22.
Фиг. 26 представляет блок-схему варианта инвертора контроля четности в схемах приведения к нечетной сумме, показанных на фиг.23-25.
На фиг. 27 показано первое изменение в инверторе контроля четности, показанном на фиг.26.
На фиг. 28 показано второе изменение в инверторе контроля четности, показанном на фиг.26.
На фиг. 29 показано третье изменение в инверторе контроля четности, показанном на фиг.26.
На фиг.30 показана блок-схема структуры второго варианта устройства расширения уплотненного сигнала движущегося изображения согласно изобретению.
Наилучший вариант воплощения изобретения
Теперь со ссылками на рисунке будут описаны предпочтительные варианты реализации способа обратного дискретного косинусного преобразования, устройство обратного косинусного преобразования, устройство уплотнения сигнала движущегося изображения, устройство расширения уплотненного сигнала движущегося изображения, носитель записи и устройство передачи.
Изобретение используется применительно к системе гибридного кодирования, в которой скомбинированы предиктивное кодирование с компенсацией движения и дискретное косинусное преобразование (DCT). Такая гибридная система кодирования описана в H.261 of ISO-IEC/JTC1/SC2/WG11 (обычно называемом MPEG) CCITT (Международного Консультативного Комитета по Телеграфии и Телефонии), который является Международным Комитетом для издания, в том числе, и стандартов для уплотнения сигналов движущегося изображения и уплотнения движущегося изображений для хранения на носителе записи. Базовая конфигурация гибридной системы кодирования MPEG хорошо известна. Раздел WG11 включает полезный глоссарий используемых в нем терминов.
Предиктивное кодирование с компенсацией движения является способом уменьшения избыточности сигнала движущегося изображения путем использования корреляции сигнала движущегося изображения во временной области. Предсказание компенсации движения текущего кадра (то есть, кадра, который сейчас кодируется ) выполняется с использованием другого, уже декодированного кадра движущегося изображения в качестве опорного кадра. Ошибки, являющиеся результатом предсказания с компенсацией движения, включаются в уплотненный сигнал вместе с вектором движения, режимом предсказания и т.д. Это значительно уменьшает количество информации в уплотненном сигнале движущегося изображения, необходимое для представления текущего кадра.
Сигнал ошибки предсказания с компенсацией движения уплотняется путем использования устройства уплотнения сигнала, который использует пространственную корреляцию каждого кадра, образующего движущееся изображение. Устройство уплотнения сигнала отличий обычно включает схему ортогонального преобразования, такую как DCT-схему и квантователь. DCT является видом ортогонального преобразования, которое концентрирует мощность сигнала в отдельных частотных составляющих как результат внутрикадровой (кадровой или полевой) двумерной корреляции изображения. Таким образом, только сконцентрированные и распределенные коэффициенты включаются в уплотненный сигнал либо непосредственно, либо после дополнительного уплотнения. Это еще уменьшает количество информации в уплотненном сигнале движущегося изображения, необходимое для представления текущего кадра.
Межкадровое предиктивное кодирование с компенсацией движения можно выполнять между кадрами сигнала движущегося изображения. Как вариант, если сигнал движущегося изображения является уплотненным (черезстрочным) сигналом, предиктивное кодирование с компенсацией движения можно выполнять между полями. Вдобавок межкадровое предиктивное кодирование с компенсацией движения может быть адаптивно включено между межкадровым кодированием и межполевым кодированием в зависимости от характеристик сигнала движущегося изображения.
I. Первый вариант воплощения изобретения
Рабочий вариант конфигурации устройства уплотнения сигнала движущегося изображения, в котором применяется изобретение, показан на фигуре 6. В устройстве, показанном на фиг.6, сигнал движущегося изображения делится на кадры и уплотняется кадр за кадром. Каждый кадр делится на кадровые блоки, и кадр уплотняется блок за блоком. Уплотняемый кадровый блок будем называть текущим кадровым блоком. Текущий кадровый блок управляется блоком кадра, который называется текущим кадром.
Сигнал движущегося изображения, обычно видеосигнал, доставляется в первое устройство памяти кадров 2, где временно хранятся многочисленные кадры сигнала движущегося изображения. Контроллер памяти 3 управляет считыванием кадров из первого устройства памяти кадров 2 и второго устройства памяти кадров 4. Контроллер памяти 3 также доставляет сигнал начала слоя SS и сигнал начала макроблока BS к счетчику слоя/макроблока 5. Контроллер памяти доставляет эти сигналы синхронно-соответственно с каждым слоем и каждым макроблоком каждого кадра (например, текущего кадра), считанного из первого устройства памяти кадра 2 для уплотнения. Слой является горизонтальной строкой блоков, показывающей всю ширину кадра.
Устройство предсказания движения 6 выполняет предсказание движения путем поблочного сопоставления блока текущего кадра с множеством блоков предыдущих и последующих кадров, хранящихся в первом устройстве памяти кадров 2. Сопоставление блоков выполняется с использованием блоков, например, 16 х 16 элементов. Сигнал индикации опорного кадра предсказания движения, формируемый контроллером памяти 3, выбирает блоки предыдущих или последующих кадров, хранящихся в первом устройстве памяти кадров 2, для поблочного сопоставления с текущим блоком. Устройство предсказания движения 6 доставляет затем к компенсатору движения 7, в виде вектора движения MV, место блока в одном из предыдущих или последующих кадрах, хранящихся в первом устройстве памяти кадров, для которого отличия между блоком и текущим кадровым блоком, то есть, ошибка предсказания движения, будут минимальными.
В ответ на вектор движения MV компенсатор движения 7 заставляет блок каждого из реконструируемых кадров, хранящихся во втором устройстве памяти кадров 4, считываться как потенциальный блок сопоставления. Место в реконструируемых кадрах, из которого считываются потенциальные блоки сопоставления, определяется вектором движения MV. Сигнал индикации опорного кадра компенсации движения от контроллера памяти 3 выбирает затем один из потенциальных блоков сопоставления, считываемых из второго устройства памяти кадра 4 как блок сопоставления для текущего блока. Реконструируемые кадры, хранящиеся во втором устройстве памяти кадров 4, являются кадрами, которые были реконструированы посредством локального декодирования дискретизированных DCT - коэффициентов, формируемых кодером блока отличий 9, который будет описан ниже.
Реконструированный кадр, из которого выбирается блок сопоставления с помощью сигнала индикации опорного кадра компенсации движения, зависит от режима предсказания текущего кадра. При прямом режиме предсказания блок сопоставления выбирается из предшествующего реконструированного кадра. В двунаправленном режиме предсказания блок сопоставления выбирается из предшествующего реконструированного кадра, последующего реконструированного кадра или может быть сформирован путем выполнения линейной операции (например, расчет среднего значения) над блоками предшествующего реконструированного кадра или последующего реконструированного кадра. Окончательно, если текущий кадр кодируется в внутрикадровом режиме кодирования, то есть, кадр кодируется без предсказания, как блок сопоставления используется нулевой блок, в котором значения всех элементов установлены на ноль. Блоки сопоставления, считываемые из второго устройства памяти кадров 4, адаптивно видоизменяются таким образом, чтобы для каждого блока сигнала движущегося изображения выбирался оптимальный блок сопоставления.
Компенсатор движения 7 выбирает режим предсказания для каждого кадра посредством первого расчета суммы абсолютных значений отличий элемент за элементом между блоком текущего кадра и потенциальными блоками сопоставления, формируемыми в различных режимах предсказания. Затем компенсатор движения выбирает режим предсказания, для которого эта сумма является минимальной. Компенсатор движения подает сигнал режима предсказания MM, который указывает на выбранный режим предсказания, к кодеру с переменной длиной слова 17, который будет описан ниже. Компенсатор движения 7 заставляет также второе устройство памяти кадров 4 выдать блок сопоставления S2 для выбранного режима предсказания в схему формирования отличий 8.
Схема формирования отличий 8 получает также блок текущего кадра S1 сигнала движущего изображения, считываемый из первого устройства памяти кадров 2, и рассчитывает элемент за элементом отличие между блоком текущего кадра S1 и блоком сопоставления S2. Схема формирования отличий выдает результирующий блок отличий S2 в кодер блока отличий 9. Кодер блока отличий 9 уплотняет блок отличий S3, чтобы сформировать блок дискретизированных коэффициентов преобразования SC. Блок дискретизированных коэффициентов преобразования SC подается в локальный декодер 10, где он расширяется для получения восстановленного блока отличий S4. Локальный декодер 10 в устройстве уплотнения сигнала движущегося изображения имеет структуру, подобную устройству расширения уплотненного сигнала движущегося изображения, которая будет описана ниже, но которая отличается в некоторых деталях.
Теперь будут описаны кодер отличий 9 и локальный декодер 10.
Кодер блока отличий 9 включает схему DCT 11 и квантователь 12, как показано на фигуре 6. Схема DCT 11 применяет DCT-обработку, чтобы осуществить ортогональное преобразование блока отличий S3 их схемы формирования блока отличий 8. Схема DCT 11 подается результирующий блок DCT-коэффициентов в квантователь 12. Квантователь 12 дискретизирует блок DCT-коэфифициентов для получения блока дискретизированных DCT-коэффициентов SC.
Локальный декодер 10 состоит из инверсного квантователя 13, схемы приведения к нечетной сумме 14 и схемы IDCT 15, как показано на фигуре 6. Инверсный квантователь 13 использует таблицу квантования для инверсной дискретизации блока дискретизированных DCT-коэфифициентов SC из квантователя 12. Схема приведения к нечетной сумме выполняет операцию инвертирования четности над результирующим блоком DCT-коэффициентов, если сумма DCT-коэффициентов не является нечетным числом. Это предотвращает появление ошибки несоответствия, когда блок DCT-коэффициентов с приведенной нечетной суммой подвергается обратному ортогональному преобразованию. Схема IDCT 15 выполняет обратное дискретное косинусное преобразование (IDCT) над блоком DCT-коэффициентов с приведенной нечетной суммой, поступающим от схемы приведения к нечетной сумме 14, для получения восстановленного блока отличий.
Теперь будет описан процесс дискретизации, выполняемый квантователем 12. Каждый блок 8 х 8 DCT-коэффициентов дискретизируется. Каждый блок кадра, уплотненного в режиме внутрикадрового кодирования (I-кадр), называется в режиме внутрикадрового кодирования (I-кадр), называется интра-макроблоком. Каждый блок, уплотненный в режиме межкадрового кодирования, называется неинтра-макроблоком. Когда интра-макроблок подвергается ортогональному преобразованию, DCT-коэффициент составляющей (0,0) является DC-коэффициентом. DC-коэффициент дискретизируется путем деления с округлением DC-коэффициента на 8, если дискретизация осуществляется с 8-битовой точностью; делится на 4, если дискретизация осуществляется с 9-битовой точностью; делится на 2, если дискретизация осуществляется с 10-битовой точностью; и делится на 1, если дискретизация осуществляется с 11-битовой точностью. DC-составляющая интра-макроблока дискретизируется согласно следующим уравнениям, которые записаны в синтаксисе C языка программирования:
QDC = dc//8 (8 бит)
QDC = dc//4 (9 бит)
QDC = dc//2 (10 бит)
QDC = dc//1 (11 бит), (5)
где dc - есть DC-коэффициент, а QDC-дискретизированный DC-коэффициент.
DCT-коэффициенты, отличающиеся от DC-коэффициента, являющегося результатом ортогонального преобразования интра-макроблока ("AC-составляющие") дискретизируются путем определения коэффициентов дискретизации ac-(i,j) посредством взвешивания DCT-коэффициентов ac(i,j) с помощью матрицы взвешивания Wi согласно следующему уравнению:
ac-(i,j) = (16•ac(i,j))//Wi(i,j) (6)
Коэффициенты матрицы взвешивания Wi выглядят следующим образом:
Wi =
8 16 19 22 26 27 29 34
16 16 22 24 27 29 34 37
19 22 26 27 29 34 34 38
22 22 26 27 29 34 37 40
22 26 27 29 32 35 40 48
26 27 29 32 35 40 48 58
26 27 29 34 38 46 56 69 (7)
Затем путем использования следующего уравнения коэффициенты дискретизации ac-(i, j) дискретизируются, чтобы определить уровни дискретизации QAC(i,j) соответствующих AC-коэффициентов.
В вышеприведенном уравнении p и q являются произвольными целыми константами, например p = 3 и q = 4, а mquant-дискретизированный коэффициент.
DCT коэффициенты, являющиеся результатом ортогонального преобразования макроблока межкадрового кодирования (неинтра-макроблок), дискретизируются посредством определения коэффициентов дискретизации ac-(i,j) путем взвешивания всех DCT коэффициентов, полученных посредством преобразования "неинтра-макроблока" с помощью матрицы взвешивания Wn согласно следующему уравнению:
ac-(i,j) = (16•ac(i,j)//Wn(i,j) (9)
Коэффициенты матрицы взвешивания Wn выглядят следующим образом:
Wn =
16 17 18 19 20 21 22 23
17 18 19 20 21 22 23 24
18 19 20 21 22 23 24 25
19 20 21 22 23 24 26 27
20 21 22 23 25 26 27 28
21 22 23 24 26 27 28 30
22 23 24 26 27 28 30 31
23 24 25 27 28 30 31 33 (10)
Затем, используя следующие уравнение, дискретизируются коэффициенты дискретизации ac-(i, j), чтобы определить уровни дискретизации QAC(i,j) коэффициентов AC.
QCT(i,j)
= ac-(i,j)/(2•mquant), если (mquant=нечетное);
= ac-(i,j)+1/(2•mquant), если (mquant=четное и ac-< 0);
= ac-(i,j)-1/(2•mquant), если (mquant=четное и ac->0) (11)
Результирующие уровни дискретизации QCT(i,j) подаются к кодеру с переменной длиной слова 17 и локальному декодеру 10 в виде вышеописанного блока дискретизированных DCT коэффициентов SC.
Кодер с переменной длиной слова 17 применяет кодирование с переменной длиной слова к блоку дискретизированных DCT коэффициентов, полученных посредством дискретизации блока DCT коэффициентов. Кодер с переменной длиной слова 17 определяет отличия между дискретизированными коэффициентами преобразования в четырех блоках яркости, образующих каждый макроблок, и DC коэффициентом соответствующего интра-макроблока. Затем кодер с переменной длиной слова использует таблицу кодирования с переменной длиной слова для применения кодирования с переменной длиной слова к результирующим значениям отличий. Этот способ использует высокую корреляцию между четырьмя соседними блоками яркости, что означает, что DC коэффициенты имеют, по существу, одно и то же значение. Кодер с переменной длиной слова 17 также определяет отличия между дискретизированными коэффициентами двух блоков отличий цвета и использует таблицу кодирования с переменной длиной слова для выполнения кодирования с переменной длиной слова результирующих значений отличий. Таблица кодирования с переменной длиной слова для коэффициентов яркости и таблица для отличий по цвету отличаются друг от друга.
Кодер с переменной длиной слова 17 применяет кодирование с переменной длиной слова к блоку дискретизированных DCT коэффициентов посредством считывания блока дискретизированных DCT коэффициентов в зигзагообразном порядке сканирования, начиная с DCT-коэффициента составляющей (0,0), как показано на фигуре 7. Блок дискретизированных DCT-коэффициентов считывается в зигзагообразном порядке сканирования, потому что ненулевые DCT-коэффициенты, являющиеся результатом DCT-обработки, обычно концентрируются с окрестности составляющей (0,0). Таким образом, считывание DCT-коэффициентов в зигзагообразном порядке повышает эффективность кодирования с переменной длиной слова посредством увеличения ряда следующих друг за другом нулевых DCT-коэффициентов, считываемых между каждыми ненулевыми DCT-коэффициентами.
Кодер с переменной длиной слова 17 считывает DCT-коэффициенты в зигзагообразном порядке сканирования и определяет значение (другими словами, уровень) каждого ненулевого DCT-коэффициента и количество (другими словами, ряд) предшествующих нулевых DCT-коэффициентов. Это выполняется посредством двумерного кодирования с переменной длиной слова блока DCT-коэффициентов. После кодирования коэффициенты в блоке выражаются через значение ряда и пар уровней. Кодер с переменной длиной слова добавляют также 2-битовый код, ЕОВ, который указывает ненулевой DCT-коэффициент, который является последним ненулевым DCT-коэффициентом. Кодер с переменной длиной слова 17 доставляет адрес последнего ненулевого коэффициента в зигзагообразном порядке сканирования к преобразователю адреса (не показан). Преобразователь адреса преобразует адрес в зигзагообразном порядке сканирования в адрес, EOB- adrs в растровом порядке сканирования. Кодер с переменной длиной слова подает адрес EOB-adrs в схему приведения к нечетной сумме 14.
Схема приведения к нечетной сумме 14 хранит адрес EOB-adrs в раствором порядке сканирования в регистре 25, показанном, для примера на фиг. 8, который будет описан ниже.
Теперь будет описан инверсный квантователь 13. Инверсный квантователь 13 получает блок дискретизированных DCT-коэффициентов SC от кодера блока отличий 10 и осуществляет обратную дискретизацию блока дискретизированных DCT-коэффициентов, чтобы получить блок DCT-коэффициентов. Практически, инверсный кватователь 113 осуществляет обратную дискретизацию дискретизированных DCT-коэффициентов, являющихся результатом ортогонального преобразования интра-макроблока с использованием обработки, определяемой в уравнении (12), чтобы получить соответствующие DCT-коэффициенты. Инверсный квантователь 13 осуществляет также обратную дискретизацию AC-коэффициентов, являющихся результатом ортогонального преобразования интра-блока, путем использования обработки, определяемой в уравнении (13). В итоге, инверсный квантователь 13 осуществляет обратную дискретизацию всех дискретизированных коэффициентов, являющихся результатом ортогонального преобразования неинтра-макроблока, путем использования обработки определенной в уравнении (14).
res (0,0) = 8•QDC
res (0,0) = 4•QDC (9 бит)
res (0,0) = 2•QDC (10 бит)
res (0,0) = 1•QDC (11 бит)
res (i,j) = (mquant•2•QAC(i,j)•Wi(i,j))/16,
если (QAC(i,j)=0)
res (i,j) = 0,Э,
если (QAC(i,j)>0)
res(i,j)=((2•QAC(i,j)+1) mquant•Wi(i,j))/16,
если (QAC(i,j)<0)
res(i,j) = ((2•QAC(i,j)-1)•mquant•Wn (i,j))/16,
если (QAC(i,j)=0)
res (i,j)=0 (14)
Результирующий блок DCT-коэффициентов подается от инверсного кватователя 12 в схему приведения к нечетной сумме 14, практический пример которой показан на фиг. 8.
Схема приведения к нечетной сумме 14 состоит из накопителя 23А, схемы оценки четности 21 и инвертора четности 28. Накопитель 23А оценивает сумму DCT-коэффициентов в блоке DCT-коэффициентов, полученном от инверсного квантователя 13. Схема оценки четности 21 выясняет, является ли сумма DCT-коэффициентов, определенная накопителем 23А, нечетным либо четным числом, то есть, четная или нечетная контрольная сумма DCT-коэффициентов. Только в том случае, когда схема оценки четности устанавливает, что контрольная сумма DCT-коэффиицентов четная, инвертор четности 28 изменяет четность, по крайней мере, одного из DCT-коэффициентов в блоке, чтобы сделать контрольную сумму DCT-коэффиицентов нечетной, то есть, преобразует сумму DCT-коэффиицентов к нечетному значению. Это предотвращает появление ошибки несоответствия, когда блок DCT-коэффиицентов с преобразованной нечетной суммой из схемы приведения к нечетной сумме 14 подвергается обратному ортогональному преобразованию посредством схемы IDCT 15.
Счетчик 20 подсчитывает количество DCT-коэффицентов, полученных от инверсного квантователя 13, и подает результат счета coeff-adrs в схему оценки четности 21 и селектор памяти 22.
Накопитель 23А состоит из сумматора 23 и регистра 24. Сумматор 23 прибавляет каждый DCT-коэффициент в блоке DCT-коэффиицентов, полученном от инверсного квантователя 13, к сумме уже полученных DCT-коэффициентов в блоке, хранящемся в регистре 24. Регистр 24 сбрасывается, после того как была определена сумма для каждого блока DCT-коэффициентов. Результирующая сумма DCT-коэффициентов подается от сумматора 23 в регистр 24 и в схему оценки четности 21. Для накопителя 23 нужна только сумма младших бит DCT-коэффициентов в блоке, чтобы получить результат, пригодный для схемы оценки четности, для установления того, является ли контрольная сумма DCT-коэффициентов нечетной или четной.
Схема оценки четности 21 устанавливает, является ли контрольная сумма DCT-коэффициентов в блоке DCT-коэффициентов нечетной или четной, в ответ на значение результата счета coeff-adrs, полученное от счетчика 20. Если все коэффициенты в блоке доставлены в накопитель 23А то значение coeff-adrs указывает, что накопитель 32А определил сумму всех DCT-коэффициентов в блоке. В ответ на значение результата счета coeff-adrs схема оценки четности 21 устанавливает, является ли контрольная сумма DCT-коэффициентов от накопителя 23А нечетный или четный. Например, в случае двумерного 8 х 8 DCT-преобразования, схема оценки частности 21 устанавливает, является ли контрольная сумма DCT-коэффициентов из накопителя 23А нечетной или четной, когда значение coeff-adrs указывает, что все 64 DCT-коэффициента доставлены в накопитель 23А.
На практике, например, когда каждый DCT-коэффициент представляется двоичным числом, схема оценки четности, оценивает младший бит (LSB) суммы DCT-коэффициентов, полученной от накопителя 23А. LSB с нулевым значением указывает, что контрольная сумма четная. В этом случае схема оценки четности 21 подает сигнал сброса обработки REQ1 к инвертору четности 28, чтобы заставить инвертор четности выполнить операцию инвертирования четности. В ответ на сигнал сброса обработки REQ1 инвертор четности 28 изменяет четность, по крайней мере одного (то есть, нечетное число) DCT-коэффициентов, чтобы присвоить нечетное значение сумме DCT-коэффициентов. С другой стороны LSB с единичным значением указывает, что контрольная сумма нечетная. В этом случае схема оценки четности 21 не выдает сигнал сброса обработки REQ1, и инвертор четности 28 оставляет четность всех DCT-коэффициентов в блоке неизменной.
В показанной практической схеме DCT-коэффициенты от инверсного квантователя 13 записываются в первую память 26 или вторую память 27 через селектор памяти 22. Селектор памяти 22 работает в зависимости от значения результата счета coeff-adrs, полученного от счетчика 20. Таким образом, например, если селектор памяти 24 определяет, что все DCT-коэффициенты в блоке помещены в первую память 26, селектор памяти выделяет вторую память, так что DCT-коэффициенты следующего блока заносятся во вторую память 27. Таким образом, следующие друг за другом DCT-коэффициентов помещаются попеременно в первую память 26 и вторую память 27. Когда все DCT-коэффициенты в блоке занесены либо в первую память, либо во вторую память 27, то память, в которой хранятся все DCT-коэффициенты в блоке, подает сигнал заполнения памяти FULL1 или FULL2 в инвертор четности 28.
Когда инвертор четности 28 получает сигнал заполнения памяти FULL1 или сигнал заполнения памяти FULL2, он подает сигнал включения считывания RD-EN1 или RD-EN2 в память, обеспеченную сигналом заполнения памяти. Это вызывает подачу блока DCT-коэффициентов от памяти с генерированным сигналом заполнения памяти к инвертору четности. Инвертор четности обрабатывает блок DCT-коэффициентов, считываемых из памяти одним из двух способов в зависимости от того, сформировала ли схема оценки четности 21 сигнал сброса обработки REQ1. Когда инвертор четности 28 получает сигнал сброса обработки REQ1, он инвертирует LSB одного из DCT коэффициентов в блоке, например, последнего ненулевого коэффициента в зигзагообразном порядке сканирования. Инвертор четности идентифицирует тот DCT коэффициент, чья четность может быть проинвертирована с использованием адреса DCT коэффициентов, чья четность может быть проинвертирована, который хранится в регистре 25. Например, на фиг. 8 показан адрес последнего ненулевого коэффициента, EOB- adrs, который подается в компаратор 62. Следовательно, в этом примере DCT коэффициент, чья четность может быть проинвертирована, является последним ненулевым коэффициентом. Если инвертор четности 28 проинвертирует четность DCT коэффициента, чья четность может быть проинвертирована, контрольная сумма ненулевых коэффициентов в блоке с первого по последний станет нечетной. Инвертор четности 28 подает все DCT коэффициенты, отличные от DCT коэффициента с инвертированным LSB, в схему IDCT 15 с неизменным состоянием их LSB. Инвертор четности 28 подает также DCT коэффициент, чья четность может быть проинвертирована, в схему IDCT с состоянием его LSB, зависящим от того, получил ли инвертор четности сигнал сброса обработки REQ1.
Инвертор четности 28 может быть снабжен компьютером или цифровым процессором, работающим, например, согласно блок-схеме, показанной на фигуре 9. В этом примере DCT коэффициент, чью четность разрешено инвертировать, является последним ненулевым коэффициентом. На шаге S1 инвертор четности 28 оценивает по адресу EOB-adrs, является ли обрабатываемый DCT коэффициент DCT коэффициентом, чью четность разрешается инвертировать посредством инвертирования его LSB. Если результатом шага S1 является "ДА", выполнение переходит к шагу S2. В противном случае, выполнение переходит к шагу S5, который будет описан ниже.
На шаге S2 инвертор четности 28 определяет, получен ли сигнал сброса обработки. Если результатом шага S2 является ДА, что указывает на получение сигнала сброса обработки, выполнение переходит к шагу S3. В противном случае, если не получен сигнал сброса обработки, выполнение переходит к шагу S5.
На шаге S3 инвертор четности 28 инвертирует LSB DCT коэффициента, чью четность разрешено инвертировать, для инвертирования его четности и, следовательно, для изменения четности суммы DCT коэффициентов. Выполнение переходит к шагу S4, где DCT коэффициент с проинвертированной четностью подается в схему IDCT (фигура 10А). Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
Выполнение переходит к шагу S5, если обрабатываемый DCT коэффициент не является DCT коэффициентом, чью четность разрешено инвертировать, или если DCT коэффициент, чья четность должна быть проинвертирована, не должен иметь проинвертированную четность, то есть, если не был получен сигнал сброса обработки REQ1. На шаге S5 DCT коэффициент подается в схему IDCT 15 без изменения. Затем выполнение переходит к шагу 1, где обрабатывается следующий DCT коэффициент.
Если DCT коэффициенты представлены в дополнительном двоичном коде, вышеупомянутый LSB представляется в дополнительном двоичном коде. С другой стороны, если DCT коэффициенты представлены знаком и абсолютным значением, вышеупомянутый LSB представляется абсолютным значением.
Конфигурация схемы приведения к нечетной сумме 14 не ограничивается тем, что представлено на фигуре 8. Например, в схеме приведения к нечетной сумме, показанной на фигуре 10А, добавлен детектор 29, а логический элемент "Исключающее ИЛИ" 30 заменяет сумматор 23 в схеме приведения к нечетной сумме на фигуре 8. Элементы схемы, показанной на фигуре 10А, соответствующие элементам схемы, показанной на фигуре 8, обозначены одними и теми же цифровыми ссылками и повторно описываться здесь не будут.
На фиг. 10А детектор LSB 29 выделяет LSB каждого DCT коэффициента в блоке DCT коэффициентов. Элемент "Исключающее ИЛИ" 30 выполняет операцию "Исключающее ИЛИ" с каждым DCT коэффициентом в блоке и хранящейся в регистре 24 значением исключающей логической суммы LSB DCT коэффициентов в блоке, которые уже были обработаны. Таким образом, элемент "Исключающее ИЛИ" 30 и регистр 24 вычисляют исключающую логическую сумму LSB DCT коэффициентов в каждом блоке. Объединение логического элемента "Исключающее ИЛИ" 30 и регистра 24 можно рассматривать как счетное устройство DCT коэффициентов, имеющих единичный LSB. Тогда, если получены все DCT коэффициенты в блоке, состояние выхода элемента "Исключающее ИЛИ" 30 будет указывать, является ли результат подсчета DCT коэффициентов, имеющих единичный LSB, четным или нечетным. Затем схема оценки четности 21 выдает сигнал REQ1, если результат подсчета DCT коэффициентов, имеющих единичный LSB, является четным.
На фиг. 10В показана альтернативная структура, которой можно заменить элемент "Исключающее ИЛИ" 30 и регистр 24. В ней LSB каждого DCT коэффициента, полученного от инверсного квантователя 13, подаются от детектора LSB 29 на логический элемент "И" 88. Элемент "И" пропускает к счетчику 89 только LSB с единичным значением. В начале каждого блока DCT коэффициентов счетчик сбрасывается и подсчитывает каждый LSB с единичным значением, который он получил. LSB результата счета COUNT от счетчика 89 подается в схему оценки четности 21. К концу каждого блока схема оценки четности определяет четность LSB результата COUNT работы счетчика 89. Если имеет место нечетное значение COUNT (то есть, LSB COUNT - единица), то это означает, что в блоке нечетное число DCT коэффициентов с единичными LSB и что контрольная сумма DCT коэффициентов нечетная. С другой стороны, если результат COUNT четный (то есть, LSB COUNT имеет нулевое значение), то это означает, что контрольная сумма DCT коэффициентов в блоке четная.
Теперь со ссылками на фиг. 11 будет описана практическая структура первого варианта реализации инвертора четности 28 в схеме приведения к нечетной сумме, показанной на фигуре 8 и 10А. Инвертор четности 28 состоит из счетчика считывания 61, компаратора адресов 62, инвертора LSB 63, логических элементов "И" 64, 65, 67 и 68, логических элементов "ИЛИ" 66 и 69, инверторов 71 и 72.
Инвертор четности 28 работает следующим образом. Когда счетчик считывания 61 получает сигнал заполнения памяти FULL от первой памяти 26 и второй памяти 27, он доставляет сигнал разрушения считывания RD-EN в первую память 26 или вторую память 27. Сигнал разрешения считывания заставляет соответствующую память последовательно выдавать хранящиеся в ней DCT коэффициенты в блоке DCT коэффициентов на первый элемент "И" 67 по каналу, обозначенному RDATA.
Сигнал заполнения памяти FULL заставляет также счетчик 61 начать подсчет получаемых DCT коэффициентов и подавать на компаратор 62 результат счета, показывающий количество полученных DCT коэффициентов. Компаратор 62 сравнивает результат счета с адресом, полученным от регистра 25, чтобы определить, является ли DCT коэффициент, полученный первым логическим элементом "И" 67, DCT коэффициентом, чью четность разрешается инвертировать, то есть, DCT коэффициент, чей LSB разрешается инвертировать. В примере, показанном на фигуре 11, DCT коэффициент, чью четность разрешено инвертировать, является последним ненулевым DCT коэффициентом, идентифицированным посредством адреса EOB-adrs, который хранится в регистре 62. Если результат счета равен адресу DCT коэффициента, чью четность разрешено инвертировать, в этом примере, EOB-adrs, компаратор 62 определит, что DCT коэффициент является DCT коэффициентом, чью четность разрешено инвертировать, и изменяет состояние своего выхода с 0 на 1.
Выход компаратора 62 подается непосредственно на второй логический элемент "И" 68 и через инвертор 72 - к первому логическому элементу "И" 67. Таким образом, если результат счета не равен адресу EOB-adrs, первый логический элемент "И" 67 открывается, а второй элемент "И" 68 закрывается. Следовательно, DCT коэффициенты проходят без изменения через логический элемент "И" 67 и логический элемент "ИЛИ" 69 к схеме IDCT 15.
С другой стороны, если DCT коэффициент, доставленный к инвертору четности 28, является DCT коэффициентом, чью четность разрешено инвертировать, и значение счетчика равно адресу коэффициента, чью четность разрешено инвертировать, в этом примере, EOB-adrs, выход компаратора 62 изменяет свое состояние, как было описано выше. Это приводит к закрытию первого логического элемента "И" 76 и открытию второго логического элемента "И" 68. В результате DCT коэффициент с проинвертированным LSB, полученный через логический элемент "ИЛИ" 66, подается через второй логический элемент "И" 68 и логический элемент "ИЛИ" 69 в схему IDCT 15.
DCT коэффициент с инвертированным LSB избирательно доставляется в схему IDCT 15 в ответ на сигнал сброса обработки REQ1 путем подачи DCT коэффициентов, полученных по каналу RDATA, в третий логический элемент "И" 64 и инвертор LSB 63. Сигнал сброса обработки REQ1 подается из схемы оценки четности 21 непосредственно на четвертый логический элемент "И" 65 и через инвертор 71 - к третьему логическому элементу "И" 64. Инвертор LSB 63 инвертирует LSB каждого DCT коэффициента, полученного по каналу RDATA, и подает результирующий DCT коэффициент с инвертированным LSB к четвертому логическому элементу "И" 65.
Отсутствие сигнала сброса обработки REQ1, т.е. сигнал сброса обработки в нулевом состоянии, указывает на то, что DCT коэффициент, чью четность разрешено инвертировать, должен быть доставлен в схему IDCT без инвертирования его LSB. Сигнал сброса обработки с нулевым состоянием открывает третий логический элемент "И" 64 и закрывает четвертый логический элемент "И" 65. В результате DCT коэффициент, чью четность разрешено инвертировать, с неизменным LSB подается от канала RDATA в схему IDCT 15 через третий логический элемент "И" 64, логический элемент "ИЛИ" 66, второй логический элемент "И" 68 и логический элемент "ИЛИ" 69.
С другой стороны наличие сигнала сброса обработки REQ1, т.е. сигнал сброса обработки в единичном состоянии, указывает на то, что DCT коэффициент, чью четность разрешено инвертировать, должен быть доставлен в схему IDCT с инвертированным LSB, чтобы изменить четность суммы DCT коэффициентов. Сигнал сброса обработки с единичным состоянием закрывает третий логический элемент "И" 64 и открывает четвертый логический элемент "И" 65. В результате DCT коэффициент, чью четность разрешено инвертировать, с инвертированным LSB подается от инвертора LSB 63 в схему IDCT 15 через четвертый логический элемент "И" 65, логический элемент "ИЛИ" 66, второй логический элемент "И" 68 и логический элемент "ИЛИ" 69.
Теперь будет описан со ссылками на фиг. 12 второй вариант реализации инвертора четности 28. Когда второй вариант инвертора четности 28 получает сигнал сброса обработки REQ1, он изменяет сумму DCT коэффициентов на нечетное значение путем добавления 1 к DCT коэффициенту, чью четность разрешено инвертировать.
Второй вариант инвертора четности 28 может быть снабжен компьютером или цифровым процессором, функционирующим согласно блок-схеме, показанной на фиг. 12. Блок-схема, показанная на фиг. 12, подобна блоке-схеме, показанной на фиг. 9, за исключением операции, выполняемой на шаге S3. На шаге S3 второй вариант инвертора четности 28 изменяет значение суммы DCT коэффициентов на нечетное путем добавления 1 к DCT коэффициенту, чью четность разрешено инвертировать, вместо инвертирования LSB DCT коэффициента, чью четность разрешено инвертировать. DCT коэффициент, чью четность разрешено инвертировать, может быть, например, последним ненулевым коэффициентом в блоке, или DCT коэффициентом высокочастотной составляющей в блоке.
Теперь будет описана со ссылками на фиг. 13 практическая структура второго варианта инвертора четности, в которой единица добавляется к DCT коэффициенту, чью четность разрешено инвертировать, чтобы сделать нечетной сумму DCT коэффициентов в блоке DCT коэффициентов. Второй вариант инвертора четности, показанной на фиг. 13, подобен первому варианту инвертора четности 28, показанному на фиг. 11. Элементы в схеме, показанной на фиг. 13, соответствующие элементам в схеме, показанной на фиг. 11, обозначены одними и теми же цифровыми ссылками и повторно здесь не описываются.
Инвертор четности, показанный на фиг. 13, включает +1 сумматор 73 вместо инвертора LSB 63, показанного на фигуре 11. +1 сумматор 73 добавляет единицу к каждому DCT коэффициенту, считанному из первой памяти 26 или второй памяти 27 и полученному через канал RDATA. Один из DCT коэффициентов с добавленной к нему единицей выбирается в ответ на сигнал сброса обработки REQ1, чтобы сделать сумму DCT коэффициентов нечетной.
Функционирование инвертора четности, показанного на фиг. 13, аналогично работе схемы, показанной на фиг. 11, за исключением того, что +1 сумматор 73 добавляет единицу к каждому DCT коэффициенту, полученному по каналу RDATA. Также, если присутствует сигнал сброса обработки REQ1 и обнаружен DCT коэффициент, чью четность разрешено инвертировать, DCT коэффициент с добавленной к нему единицей подается от +1 сумматора к схеме IDCT 15 через четвертый логический элемент "И" 64, логический элемент "ИЛИ" 66, второй логический элемент "И" 68 и логический элемент "ИЛИ" 69.
Теперь со ссылками на фиг. 14 и 15 будет описан третий вариант реализации инвертора четности 28.
Когда третий вариант инвертора четности получает сигнал сброса обработки REQ1, он делает нечетной сумму DCT коэффициентов в блоке путем замены DCT коэффициента, чья четность должна быть проинвертирована, DCT коэффициентом, чья четность должна быть проинвертирована и от которого вычтена единица, если знак DCT коэффициента положительный, и к которому добавлена единица, если знак DCT коэффициента отрицательный. Такая обработка не только инвертирует четность DCT коэффициента, чья четность должна быть проинвертирована, но также уменьшает значение этого DCT коэффициента, то есть, делает DCT коэффициент, чья четность должна быть проинвертирована, ближе к нулю.
Обработка, используемая для DCT коэффициента, чья четность должна быть проинвертирована, определяется следующим уравнением:
if (res > 0)
res = res - 1
if (res < 0)
res = res + 1, (15)
где res - DCT коэффициент, чья четность должна быть проинвертирована.
Третий вариант инвертора четности 28 может быть использован с компьютером или цифровым процессором, функционирующим согласно блок-схеме, показанной на фигуре 14. На шаге S1 инвертор четности 28 по адресу EOB-adrs устанавливает, является или нет DCT коэффициент DCT коэффициентом, чью четность разрешено инвертировать. Например, инвертор четности устанавливает, является или нет DCT коэффициент последним ненулевым DCT коэффициентом. Если результатом шага S1 является "ДА" и DCT коэффициент является DCT коэффициентом, чью четность разрешено инвертировать, выполнение переходит к шагу S2. В противном случае, если DCT коэффициент не является DCT коэффициентом, чью четность разрешено инвертировать, выполнение переходит к шагу S8.
На шаге S2 инвертор четности 28 определяет, получен или нет сигнал сброса обработки REQ1. Если результатом шага S2 является "ДА", указывающее на то, что сигнал сброса обработки REQ1 получен, выполнение переходит к шагу S3. В противном случае, сигнал сброса обработки не получен, и управление переходит к S8. Поскольку результат "ДА" на шаге S2 может появиться, только если результат "ДА" получен на шаге S1, результат "ДА" на шаге S2 показывает, что DCT коэффициент является DCT коэффициентом, чья четность должна быть проинвертирована.
На шаге S3 инвертор четности 28 определяет знак DCT коэффициента, чья четность должна быть проинвертирована. Если результатом на шаге S3 является "ДА", указывающим на то, что знак DCT коэффициента положительный, выполнение переходит к шагу S4. В противном случае, DCT коэффициент равен нулю или отрицательный, и выполнение переходит к шагу S6.
На шаге S4 инвертор четности 28 вычитает единицу из DCT коэффициента, чья четность должна быть проинвертирована (то есть, прибавляет к нему -1), после чего выполнение переходит к шагу S5, где DCT коэффициент с инвертированной четностью подается к схему IDCT 15 (фиг. 10А). Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
В противном случае на шаге S6 инвертор четности 28 добавляет единицу к DCT коэффициенту, чья четность должна быть проинвертирована, после чего выполнение переходит к шагу S7, где DCT коэффициент с инвертированной четностью подается в схему IDCT 15. Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
Выполнение переходит к шагу S8, если DCT коэффициент не является DCT коэффициентом, чью четность разрешено инвертировать, или если DCT коэффициент, чью четность разрешено инвертировать, не должен иметь инвертированную четность, то есть, когда сигнал сброса обработки REQ1 не был получен. На шаге S8 DCT коэффициент подается в схему IDCT 15 без изменения. Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
На фиг. 15 показан практический пример структуры третьего варианта инвертора четности 28, в котором инвертирование четности выполняется для уменьшения величины DCT коэффициента, чья четность инвертируется, то есть, для того, чтобы сделать DCT коэффициент, чья четность инвертируется, более близким к нулю.
Инвертор четности, показанный на фиг. 15, подобен инвертору четности 28, показанному на фиг. 11. Элементы в схеме, показанной на фиг. 15, соответствующие элементам в схеме, показанной на фиг. 11, обозначены одними и теми же цифровыми ссылками и повторно здесь не описываются. Инвертор четности, показанный на фиг. 15, отличается от инвертора четности, показанного на фиг. 11, тем, что он включает схему уменьшения величины (DCT коэффициента) 80 вместо инвертора LSC 63.
Схема уменьшения величины 80 определяет знак каждого DCT коэффициента, полученного от первой памяти 26 или второй памяти 27 через канал RDATA. Если знак DCT коэффициента положительный, схема уменьшения величины вычитает единицу из DCT коэффициента, в то же время, если полярность DCT коэффициента отрицательная или он равен нулю, добавляет единицу к DCT коэффициенту. Схема инвертирования четности, показанная на фиг. 15, делает нечетной сумму DCT коэффициентов в блоке путем выбора DCT коэффициента, чья четность инвертируется, из схемы уменьшения величины 80 и замещения DCT коэффициентом с уменьшенной величиной и проинвертированной четностью DCT коэффициента, чья четность должна быть инвертирована.
Схема уменьшения величины 80 состоит из схемы оценки знака 81, которая управляет пятым логическим элементом "И" 84 непосредственно, и шестым логическим элементом "И" 85 через инвертор 87. Схема уменьшения величины 80 включает также -1 вычитатель 82 и +1 сумматор 83, которые соответственно вычитают единицу или добавляют единицу к каждому DCT коэффициенту, полученному по каналу RDATA. В ответ на выходной сигнал схемы оценки знака 81, пятым логическим элементом "И" 84 или шестым логическим элементом "И" 85 выбираются либо выход -1 вычитателя 82, либо выход +1 сумматора 83. Выходы логических элементов "И" 84 и 85 подаются на логический элемент "ИЛИ" 86, который выдает выбранный DCT коэффициент с уменьшенной величиной к четвертому логическому элементу "И" 65. Если четность суммы DCT коэффициентов в блоке необходимо инвертировать, четвертый логический элемент "И" выбирает выход с уменьшенной величиной и инвертированной четностью схемы уменьшения величины 80 для подачи в схему IDCT 15 вместо DCT коэффициента, чью четность разрешено инвертировать.
Схема оценки знака 81 оценивает знак каждого DCT коэффициента в блоке DCT коэффициентов, полученного по каналу RDATA, и устанавливает состояние ее выхода в единицу или ноль в зависимости от того, является ли знак DCT коэффициента положительным или отрицательным. Если схема оценки знака устанавливает, что знак DCT коэффициента положительный, выход схемы оценки знака открывает пятый логический элемент "И" 84 и закрывает шестой логический элемент "И" 85. В результате выход -1 вычитателя 82, то есть, DCT коэффициент, из которого вычтена единица, подается на четвертый логический элемент "И" 65 через пятый логический элемент "И" 84 и логический элемент "ИЛИ" 86.
С другой стороны, если схема оценки знака 81 устанавливает, что знак DCT коэффициента отрицательный или коэффициент равен нулю, выходной сигнал схемы оценки знака закрывает пятый логический элемент "И" 84 и открывает шестой логический элемент "И" 85. В результате выход +1 сумматора 83, то есть, DCT коэффициент, к которому была прибавлена единица, подается на четвертый логический элемент "И" 65 через шестой логический элемент "И" 85 и логический элемент "ИЛИ" 86.
Четвертый логический элемент "И" 65 подает DCT коэффициент с инвертированной четностью и уменьшенной величиной от схемы уменьшения величины 80 ко второму логическому элементу "И" 68 в ответ на сигнал сброса обработки REQ1. Если компаратор 62 определяет, что DCT коэффициент, полученный по каналу RDATA, является DCT коэффициент, чью четность разрешено инвертировать, DCT коэффициент с уменьшенной величиной и инвертированным знаком подается от схемы уменьшения величины 80 в схему IDCT 15 (фиг. 10А), способом, описанным выше со ссылкой на фиг. 11. С другой стороны, если третий вариант реализации инвертора четности, показанный на фиг. 15, не получил сигнал сброса обработки REQ1, DCT коэффициент, чью четность разрешено инвертировать, подается в схему IDCT 15 без изменения.
Если сумма DCT коэффициентов должна быть сделана нечетной, третий вариант инвертора четности 28, показанный на фиг. 15, подает в схему IDCT 15 DCT коэффициент, чья четность была проинвертирована, путем вычитания из него единицы, если его знак положительный, и подает в схему IDCT 15 DCT коэффициент, чья четность была проинвертирована, путем прибавления к нему единицы, если его знак отрицательный или он равен нулю. Такая обработка инвертирует четность и уменьшает величину DCT коэффициента, чья четность должна быть проинвертирована, и делает сумму DCT коэффициентов нечетной.
Теперь будет описан со ссылкой на фиг. 16 и 17 четвертый вариант реализации инвертора четности 28.
Если четвертый вариант инвертора четности получает сигнал сброса обработки REQ1, он делает сумму DCT коэффициентов в блоке нечетной путем замены DCT коэффициента, чья четность должна быть проинвертирована, DCT коэффициентом, чья четность должна быть проинвертирована и к которому была добавлена единица, если его знак положительный, и от которого была вычтена единица, если знак DCT коэффициента отрицательный. Эта обработка не только инвертирует четность DCT коэффициент, чья четность должна быть проинвертирована, но также увеличивает величину этого DCT коэффициента, то есть, делает DCT коэффициент, чья четность должна быть проинвертирована, дальше от нуля. Обработка, используемая для DCT коэффициента, чья четность должна быть проинвертирована, определяется следующим уравнением:
if (res > 0)
res = res + 1
if (res < 0)
res = res - 1, (16)
где res - DCT коэффициент, чья четность должна быть проинвертирована.
Четвертый вариант инвертора четности 28 может быть снабжен компьютером или цифровым процессором, функционирующим согласно блок-схеме, показанной на фигуре 16. На шаге S1 инвертор четности 28 устанавливает по адресу EOB-adrs, является или нет DCT коэффициент DCT коэффициентом, чью четность разрешено инвертировать. Например, инвертор четности устанавливает, является или нет DCT коэффициент последним ненулевым DCT коэффициентом. Если результатом шага S1 является "ДА" и DCT коэффициент является DCT коэффициентом, чью четность разрешено инвертировать, выполнение переходит к шагу S2. В противном случае, DCT коэффициент не является DCT коэффициентом, чью четность разрешено инвертировать, и выполнение переходит к шагу S8.
На шаге S2 инвертор четности 28 определяет, получен или нет сигнал сброса обработки REQ1. Если результатом шага S2 является "ДА", указывающее, что сигнал сброса обработки REQ1 получен, выполнение переходит к шагу S3. В противном случае, то есть, если не получен сигнал сброса обработки, выполнение переходит к шагу S8. Поскольку результат "ДА" на шаге S2 может быть получен, только если результат "ДА" получен на шаге S1, результат ДА на шаге D2 указывает, что DCT коэффициент является DCT коэффициентом, чья четность должна быть проинвертирована.
На шаге S3 инвертор четности 28 определяет знак DCT коэффициента. Если результатом шага S3 является "ДА", указывающее, что знак DCT коэффициента положительный, выполнение переходит к шагу S4. В противном случае, знак DCT коэффициента отрицательный или он равен нулю, и выполнение переходит к шагу S6.
На шаге S4 инвертор четности 28 добавляет единицу к DCT коэффициенту, после чего выполнение переходит к шагу S5, где DCT коэффициент с проинвертированной четностью подается в схему IDCT 15 (фиг. 10А). Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
В противном случае, на шаге S6 инвертор четности 28 вычитает единицу из DCT коэффициента (то есть, прибавляет к нему -1), после чего выполнение переходит к шагу S7, где DCT коэффициент с проинвертированной четностью подается в схему IDCT 15. Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
Выполнение переходит к шагу S8, если DCT коэффициент не является DCT коэффициентом, чью четность разрешено инвертировать, или если DCT коэффициент, чью четность разрешено инвертировать, не должен подвергаться инвертированию четности, то есть, если не был получен сигнал сброса обработки REQ1. На шаге S8 DCT коэффициент подается в схему IDCT 15 без изменения. Затем выполнение возвращается к шагу S1, где обрабатывается следующий DCT коэффициент.
На фиг. 17 показан практический пример схемы четвертого варианта инвертора четности 28, в котором инверсия четности выполняется для уменьшения значения DCT коэффициента, чья четность инвертируется, то есть, для того, чтобы DCT коэффициент, чья четность должна быть проинвертирована, стал дальше от нуля.
Инвертор четности, показанный на фиг. 17, подобен инвертору четности 28, показанному на фиг. 11. Элементы в схеме, показанной на фиг. 17, соответствующие элементам в схеме, показанной на фиг. 11, обозначены одними и теми же цифровыми ссылками и повторно здесь описываются не будут. Инвертор четности, показанный на фиг. 17, отличается от инвертора четности, показанного на фиг. 11, тем, что он включает схему увеличения величины 90 вместо инвертора LSC 63.
Схема увеличения величины 90 определяет знак каждого DCT коэффициента, полученного из первой памяти 26 или второй памяти 27 через канал RDATA. Если знак DCT коэффициента положительный, схема увеличения величины добавляет единицу к DCT коэффициенту, в то же время, если знак DCT коэффициента отрицательный или он равен нулю, схема вычитает единицу из DCT коэффициента. Схема инвертирования четности, показанная на фиг. 17, делает нечетной сумму DCT коэффициентов в блоке посредством выбора DCT коэффициентов, чья четность должна быть проинвертирована, из схемы увеличения величины и замены DCT коэффициентом с увеличенным значением DCT коэффициента, чья четность должна быть проинвертирована.
Схема увеличения величины 90 включает схему оценки значения 91, которая управляет пятым логическим элементом "И" 94 непосредственно и шестым логическим элементом "И" 95 через инвертор 97. Схема увеличения величины 90 включает также +1 сумматор 92 и -1 вычитатель 93, которые соответственно прибавляют единицу и вычитают единицу из каждого DCT коэффициента. Либо выход +1 сумматора 92, либо выход -1 вычитателя 93 выбирается пятым логическим элементом "И" 94 или шестым логическим элементом "И" 95 в ответ на выходной сигнал схемы оценки знака 91. Выходы логических элементов "И" 94 и 95 подаются на логический элемент "ИЛИ" 96, который подает выбранный DCT коэффициент с увеличенным значением к четвертому логическому элементу "И" 65. Если необходимо проинвертировать четность суммы DCT коэффициентов в блоке, четвертый логический элемент "И" выбирает выходной сигнал с инвертированной четностью и увеличенным значением из схемы увеличения величины 90 для подачи в схему IDCT 15 вместо DCT коэффициента, чью четность разрешено инвертировать.
Схема оценки знака 91 определяет знак каждого DCT коэффициента в блоке DCT коэффициентов, полученном по каналу RDATA, и устанавливает состояние своего выхода на единицу или ноль в зависимости от того, является ли знак DCT коэффициента положительным или отрицательным. Если схема оценки знака устанавливает, что знак DCT коэффициента положительный, выход схемы оценки знака открывает пятый логический элемент "И" 94 и закрывает шестой логический элемент "И" 95. В результате выход +1 вычитателя 92, то есть, DCT коэффициент, к которому была прибавлена единица, подается к четвертому логическому элементу "И" 65 через пятый логический элемент "И" 94 и логический элемент "ИЛИ" 96.
С другой стороны, если схема оценки знака 91 устанавливает, что знак DCT коэффициента отрицательный или он равен нулю, выход схемы оценки знака закрывает пятый логический элемент "И" 94 и открывает шестой логический элемент "И" 95. В результате выход -1 вычитателя 93, т.е. DCT коэффициент, из которого была вычтена единица, подается к четвертому логическому элементу "И" 65 через шестой логический элемент "И" 95 и логический элемент "ИЛИ" 96.
Четвертый логический элемент "И" 65 подает DCT коэффициент с инвертированной четностью и увеличенным значением от схемы увеличения величины 90 ко второму логическому элементу 68 в ответ на сигнал сброса обработки REQ1. Если компаратор 62 определяет, что DCT коэффициент, полученный по каналу RDATA, является DCT коэффициентом, чью четность разрешено инвертировать, DCT коэффициент подается из схемы увеличения величины к схеме IDCT 15 (фиг. 10А) способом, который был описан выше со ссылками на фиг. 11.
С другой стороны, если четвертый вариант инвертора четности, показанный на фиг. 17, не получает сигнал сброса обработки REQ1, DCT коэффициент, чью четность разрешено инвертировать, подается на схему IDCT 15, без изменений.
Если сумма DCT коэффициентов должна быть сделана нечетной, четвертый вариант инвертора четности 28, показанный на фиг. 17, подает на схему IDCT 15 DCT коэффициент, чья четность была проинвертирована посредством добавления к нему единицы, если его знак положительный, и подает на схему IDCT 15 DCT коэффициент, чья четность была проинвертирована путем вычитания из него единицы, если его знак отрицательный или равен нулю. Такая обработка инвертирует четность и увеличивает значение DCT коэффициента, чья четность инвертируется, и делает сумму DCT коэффициентов нечетной.
Инверторы четности 28, показанные на фиг. 11, 13, 15 и 17, и их функционирование согласно блок-схемам, показанным на фиг. 9, 12, 14 и 16, могут быть изменены, для того, чтобы сделать нечетной сумму DCT коэффициентов путем изменения четности DCT коэффициента, отличного от последнего ненулевого DCT коэффициента, считываемого посредством зигзагообразного сканирования. Например, в двумерном 8 х 8 DCT-преобразовании четность одного из DCT коэффициентов DC-составляющий, DCT коэффициента (7,7) составляющей, то есть высокочастотной составляющей, DCT коэффициента (7,0) составляющей в правом верхнем углу или DCT коэффициента (0,7) составляющей в левом нижнем углу могут быть изменены. Поскольку, в частности, DCT коэффициент (7,7) составляющей, которая является высокочастотной составляющей, мало влияет на качество изображения, эта составляющая особенно подходит для роли коэффициента, чью четность можно изменить.
В инверторах четности, показанных на фиг.11, 13, 15 и 17 в качестве DCT коэффициента, чью четность разрешено инвертировать, могут быть выбраны другие DCT коэффициенты путем замены адресом DCT коэффициента адреса EOB-adrs, подаваемого в компаратор 62. В другом случае, если четность DCT коэффициента высокочастотной составляющей должна быть изменена, счетчик считывания 61 и компаратор 62 могут быть опущены, и для идентификации DCT коэффициента высокочастотной составляющей как DCT коэффициента, чья четность может быть изменена, может быть использован сигнал заполнения памяти FULL.
В другом варианте схемы приведения к нечетной сумме 14, показанные на фиг. 6, 8 и 10, могут определять сумму заданных DCT коэффициентов, например, DCT коэффициентов (0,0) составляющей, (4,0) составляющей, (0,4) составляющей и (4,4) составляющей. Затем схема приведения к нечетной сумме может выполнить операцию инвертирования четности, чтобы сделать сумму заданных DCT коэффициентов нечетной. На фиг.18 показан вариант схемы приведения к нечетной сумме 14, показанной на фиг.8. В нем определяется сумма заданных DCT коэффициентов, чтобы оценить необходимость инвертирования четности. Элементы в схеме, показанной на фиг.18, соответствующие элементам в схеме, показанной на фиг.8, обозначены одними и теми же цифровыми ссылками и повторно здесь не описываются.
В схеме приведения к нечетной сумме, показанной на фиг.18, селектор 51 прерывает связь между инверсным квантователем 13 и накопителем 23А. Селектор 51 получает также от счетчика 29 результат счета coeff-adrs, который показывает количество DCT коэффициентов в блоке, полученных от инверсного квантователя 13.
В ответ на результат счета coeff-adrs, полученный от счетчика 20, селектор 51 определяет, является или нет каждый DCT коэффициент, полученный от инверсного квантователя 13, одним из заданных DCT коэффициентов, который, следовательно, должен быть включен в сумму, определяемую накопителем 23А. Так, например, селектор определяет, является ли результат счета coeff-adrs, значением, соответствующим (0,0) составляющей, (4,0) составляющей, (0,4) составляющей или (4,4) составляющей. Если селектор 51 определяет, что DCT коэффициент является одним из заданных DCT коэффициентов, он доставляет DCT коэффициент в накопитель 23А. Соответственно, схема приведения к нечетной сумме, показанная на фиг. 18, определяет сумму заданных DCT коэффициентов в блоке и, если сумма четная, изменяет четность, по крайней мере, одного из DCT коэффициентов, чтобы сделать сумму нечетной. Схема приведения к нечетной сумме, показанная на фиг.18, подает затем блок DCT коэффициентов с отрегулированной четностью в схему IDCT 15.
Вариант, показанный на фиг. 18, может быть видоизменен способом, подобным показанному на фиг. 10А, чтобы дать возможность схеме определить исключающую логическую сумму LSB заданных DCT коэффициентов. Схема на фиг.18 модифицирована посредством замены сумматора 23 детектором LSB 29 и логическим элементом "ИЛИ", показанными на фиг.10А.
Вернемся теперь к фиг.6, где DCT коэффициенты в блоке DCT коэффициентов подаются от схемы приведения к нечетной сумме 14 в схему IDCT 15, описанную выше. Сумма DCT коэффициентов, поступающая от схемы приведения к нечетной сумме, является нечетным числом. Если сумма DCT коэффициентов от инверсного квантователя была четной, схемы приведения к нечетной сумме 14, изменила четность, по крайней мере, одного из DCT коэффициентов, чтобы сделать нечетной сумму DCT коэффициентов, подаваемых в схему IDCT 15. Схема IDCT 15 применяет IDCT-обработку к DCT коэффициентам в блоке для получения блока восстановленных отличий S4. Блок восстановленных отличий подается на сумматор 16.
Сумматор 16 элемент за элементом выполняет сложение блока восстановленных отличий S4 и блока сопоставлений S2, полученного от второго устройства памяти изображения 4. Результирующий блок восстановленного кадра S5 подается в устройство памяти изображения 4, где он образует блок восстановленного кадра, который хранится в одном из устройств памяти, определяемом контроллером памяти 3.
Кодер с переменной длиной слова 17 применяет кодирование с переменной длиной слова, такое как кодирование Хаффмана и т.п., к каждому блоку дискретизированных DCT коэффициентов SC из кодера блока отличий 9 и его вектору движения MV, режиму компенсации движения MM, данным таблицы дискретизации и т.д. Кодер с переменной длиной слова собирает также закодированные с переменной длиной слова данные вместе с начальными кодами и информацией заголовка соответствующих уровней стандарта MPEG для формирования уплотненного сигнала движущегося изображения.
Счетчик слоя/макроблока 5 подсчитывает сигналы начала слоя S5 и сигналы начала макроблока BS, генерируемые контроллером памяти 3 синхронно с началом каждого слоя и каждого макроблока кадров, считываемых из первого устройства памяти изображения 2 для обработки. Когда результат счета достигает заданного значения, счетчик слоя/макроблока 5 генерирует стартовый сигнал S0, который подается на кодер с переменной длиной слова 17.
В ответ на стартовый сигнал кодер с переменной длиной слова 17 подает уплотненный сигнал движущегося изображения к выходному буферу 19, где он временно хранится. Затем уплотненный сигнал движущегося изображения считывается из выходного буфера в виде потока бит с заданной битовой частотой. Поток бит уплотненного сигнала движущегося изображения подается на устройство расширения с дополнением через канал передачи или посредством записи потока бит уплотненного сигнала движущегося изображения на подходящий носитель записи, такой как оптический диск.
Носитель записи является носителем записанного уплотненного сигнала движущегося изображения, полученного из сигнала движущегося изображения посредством кодирования с предсказанием и дискретного косинусного преобразования. Каждый блок каждого восстановленного кадра, используемого как опорный кадр при кодировании с предсказанием, восстанавливается посредством обратной дискретизации блока дискретизированных DCT коэффициентов, содержащихся в уплотненном сигнале движущегося изображения, приведения к нечетной сумме DCT коэффициентов в результирующем блоке DCT коэффициентов и обратного ортогонального преобразования блока DCT коэффициентов со сформированной нечетной суммой.
Устройство передачи согласно изобретению может включать устройство уплотнения согласно изобретению, как было описано выше.
Можно подумать, что было бы лучше выполнять операцию формирования нечетной суммы в кодере блока отличий 9 устройства уплотнения. Операция формирования нечетной суммы привела бы к тому, что сумма DCT коэффициентов в каждом блоке дискретизированных DCT коэффициентов, включенных в уплотненный сигнал движущегося изображения, стала бы нечетной. Можно было бы подумать, что обработка уплотненного сигнала движущегося изображения таким способом избавит от необходимости сделать сумму DCT коэффициентов нечетной в устройстве расширения. Однако при таком варианте, после того, как DCT коэффициенты дискретизированы в устройстве уплотнения и дискретизированы инверсно в устройстве расширения, сумма DCT коэффициентов, поступающая в схему IDCT в устройстве расширения, может оказаться не нечетным числом. Поэтому, формирование нечетной суммы должно выполняться до IDCT-обработки в устройстве расширения, чтобы гарантировать отсутствие ошибки несоответствия.
Теперь со ссылками на фиг.19 будет описано устройство расширения уплотненного сигнала движущегося изображения, где применено данное изобретение. На фиг.19 уплотненный сигнал движущегося изображения принимается в виде потока бит, проходящего через канал передачи от устройства уплотнения, или получается путем воспроизведения уплотненного сигнала движущегося изображения с соответствующего носителя записи, такого как оптический диск. Поток бит подается во входной буфер 31, где он временно хранится, и откуда он считывается кадр за кадром в инверсный кодер с переменной длиной слова ("IVLC") 32. Инверсный кодер с переменной длиной слова 32 извлекает из уплотненного сигнала движущегося изображения информацию заголовка соответствующих уровней MPEG кода, и извлекает из информации заголовка управляющую информацию для декодирования кадра PH, которая подается в контроллер памяти 33.
IVLC 32 применяет инверсное кодирование с переменной длиной слова к блокам DCT коэффициентов, закодированных с переменной длиной слова, для получения блока дискретизированных DCT коэффициентов, включая текущий блок, дискретизированных DCT коэффициентов Cb. Блок дискретизированных DCT коэффициентов Cb доставляется в декодер блока отличий 34. Декодер блока отличий 34 декодирует блок дискретизированных DCT коэффициентов Cb для получения восстановленного блока отличий BS и подает восстановленный блок отличий в сумматор 39.
IVLC 32 извлекает из уплотненного сигнала движущегося изображения вектор движения MV и режим компенсации движения MM для блока дискретизированных DCT коэффициентов Cb и подает их в компенсатор движения 37. Компенсатор движения 37 заставляет блок сопоставления для восстанавливаемого блока отличий BS считываться из устройства памяти изображения 38.
Блок памяти изображения включает несколько устройств памяти изображения, каждое из которых хранит один уже реконструированный кадр. Блок сопоставления BS является блоком реконструированного кадра, хранящегося в одном из устройств памяти изображения по адресу, определяемому вектором движения MV. Память изображения в блоке памяти 38, хранящая реконструированный кадр, из которой считывается блок сопоставления, определяется контроллером памяти 33.
Как было сказано выше, кадр может быть закодирован посредством предсказания на основе предыдущего реконструированного кадра, посредством предсказания на основе последующего восстановленного кадра и посредством предсказания на основе блока, полученного путем выполнения элемент за элементом линейной операции над предшествующим восстановленным кадром и последующим восстановленным кадром. В конце концов кадр может быть закодирован совсем без предсказания. В этом случае блок сопоставления, который обеспечивается блоком памяти изображения 38, является нулевым блоком, то есть, блоком, в котором значения всех элементов установлены на ноль. Блоки сопоставления с компенсацией движения, обеспечиваемые блоком памяти изображения 38, адаптивно изменяются, и для каждого блока выбирается оптимальный блок сопоставления. Этот процесс выполняется с использованием блока, имеющего размер 16 х 16 элементов.
Каждый блок сопоставления, обеспечиваемый блоком памяти изображения 38, подается на сумматор 39. Сумматор 39 выполняет элемент за элементом сложение восстановленного блока отличий BS, полученного от декодера блока отличий 34, и блока сопоставления, обеспечиваемого блоком памяти изображения 38. Результатом этого сложения является блок восстановленного кадра, который хранится в одном из устройств памяти в блоке памяти изображений 38, определяемом контроллером памяти 33. Восстановленные блоки кадра, образованные сумматором 39, хранятся один за другим в выбранном устройстве памяти, записываясь поверх реконструированного кадра, ранее хранившегося в устройстве изображения, для образования нового реконструированного кадра.
Реконструированные кадры, хранящиеся в блоке памяти изображения 38, считываются в порядке, задаваемом сигналом индикации выходного кадра, который обеспечивается контроллером памяти 33. Считанные кадры подаются в виде восстановленного сигнала движущегося изображения на подходящее устройство отображения, например, видеомонитор. Устройство отображения отображает движущееся изображение в соответствии с сигналом восстановленного движущегося изображения.
Теперь со ссылками на фиг.19 будет описан декодер блока отличий 34. Декодер блока отличий 34 состоит из инверсного квантователя 40, схемы приведения к нечетной сумме 35 и схемы обратного дискретного косинусного преобразования 36. Инверсный квантователь 40 использует таблицу дискретизации для инверсной дискретизации блока дискретизированных DCT коэффициентов Cb, получаемого от инверсного кодера с переменной длиной слова 32. Схема приведения к нечетной сумме 35 получает результирующий блок DCT коэффициентов от инверсного квантователя 40 и предотвращает появление ошибок несоответствия в процессе IDCT-обработки посредством схемы IDCT 36. Схема IDCT 36 применяет IDCT-обработку к блоку DCT коэффициентов с приведенной к нечетному значению суммой, поступающему из схемы приведения к нечетной сумме 35.
На фиг. 20 показан пример устройства инверсного квантователя 40. Основными частями инверсного квантователя 40 являются декодер ряда/уровня 41, счетчик адреса 47, преобразователь адреса 48, селектор 49, первая память блока 42, вторая память блока 43 и схема инверсной дискретизации ("IQ-схема") 46.
Декодер ряда/уровня 41 получает блок дискретизированных DCT коэффициентов Cb от инверсного кодера с переменной длиной слова 32. Декодер ряда/уровня декодирует код ряда/уровня, который был использован для кодирования дискретизированных DCT коэффициентов в кодере с переменной длиной слова в устройстве уплотнения. Результирующий блок дискретизированных DCT коэффициентов подается в первую память блока 42 или вторую память блока 43 в зигзагообразном порядке сканирования. Первая память блока 42 и вторая память блока 43 хранят каждая один блок дискретизированных DCT коэффициентов.
Счетчик адреса 47 и преобразователь адреса 48 соответственно генерируют адреса записи и адреса считывания для первой памяти блока 42 и второй памяти блока 43. Блоки дискретизированных DCT коэффициентов поочередно записываются и считываются первой памятью блока и второй памятью блока. Каждый блок дискретизированных DCT коэффициентов записывается в одну из памятей блока в зигзагообразном порядке сканирования в ответ на адреса, обеспечиваемые счетчиком адреса 47, и считывается памятью блока в растровом порядке сканирования в ответ на адреса, обеспечиваемые преобразователем адреса 48. Различный порядок адресов при записи и считывании изменяет порядок дискретизированных DCT коэффициентов в блоке с зигзагообразного порядка сканирования на растровый порядок сканирования.
Счетчик адреса 47 генерирует адреса записи в зигзагообразном порядке сканирования. Преобразователь адреса 48 получает адреса в зигзагообразном порядке сканирования от счетчика адреса и использует таблицу преобразования адреса для приведения адресов в зигзагообразный порядок сканирования. Адреса, сгенерированные счетчиком адреса 47 и преобразователем адреса 48, отбираются селектором 49 для подачи в первую память блока 42 и вторую память блока 43 в виде адресов adrs1 и adrs2. Если блок дискретизированных DCT коэффициентов от декодера ряда/уровня 41 записывается в первую память блока 42 или вторую память блока 43, соответствующие адреса adrs1 и adrs2 подаются счетчиком адреса 47 через селектор 49 в зигзагообразном порядке сканирования. Если блок дискретизированных DCT коэффициентов считывается из первой памяти блока 42 или второй памяти блока 43 в инверсный квантователь 46, соответствующие адреса adrs1 и adrs2 подаются преобразователем адреса 48 через селектор 49 в растровом порядке сканирования.
Если все дискретизированные DCT коэффициенты в блоке записаны в первую память блока 42 или вторую память блока 43, блок DCT коэффициентов считывается в растровом порядке сканирования в инверсный квантователь ("IQ") 46. IQ 46 осуществляет обратную дискретизацию дискретизированных DCT коэффициентов в блоке и подает результирующий блок DCT коэффициентов в схему приведения к нечетной сумме 35. Инверсная дискретизация, выполняемая IQ 46, является такой же, как инверсная дискретизация, выполняемая инверсным квантователем 13 в локальном декодере устройства уплотнения сигнала движущегося изображения, показанного на фиг.6.
Если схема приведения к нечетной сумме 35 определяет, что сумма DCT коэффициентов в блоке DCT коэффициентов, поступившем от инверсного квантователя 40, четная, это заставляет, по крайней мере, один DCT коэффициент в блоке, сделать сумму DCT коэффициентов в блоке нечетной. Схема приведения к нечетной сумме 35 подает блок DCT коэффициентов с суммой, приведенной к нечетному значению, в схему IDCT 36. Операция приведения к нечетной сумме, выполняемая схемой приведения к нечетной сумме 35, является такой же, как операция приведения к нечетной сумме, выполняемая схемой приведения к нечетной сумме 14 в локальном декодере в устройстве уплотнения сигнала движущегося изображения, показанном на фиг.6.
Схема IDCT 35 выполняет IDCT-обработку блока DCT коэффициентов с суммой, приведенной к нечетному значению, для получения восстановленного блока отличий BS, который подается на сумматор 39.
Работа инверсного дискретизатора 40, показанного на фигуре 20, иллюстрируется временными диаграммами, показанными на фигурах с 21A по 21I. Инверсный кодер с переменной длиной слова 32 извлекает блок дискретизированных DCT коэффициентов Cb из уплотненного сигнала движущегося изображения. Инверсный кодер с переменной длиной слова генерирует сигнал разрешения EV-EN, показанный на фиг. 21A, который дает команду декодеру ряд/уровень 41 считывать блок дискретизированных DCT коэффициентов. Дискретизированные DCT коэффициенты в блоке дискретизированных DCT коэффициентов Cb кодируются по системе ряд/уровень.
IVLC 32 обеспечивает также подачу сигнала количества событий IVENT-NO на декодер ряд/уровень 41, как показано на фигуре 21B. Сигнал количества событий указывает количество пар ряд/уровень в блоке дискретизированных DCT коэффициентов Cb, то есть, количество пар "ряд данных - уровень".
Если декодер ряд/уровень 41 получает сигнал количества событий EVENT-NO, это вызывает подачу сигнала сброса считывания RE-REQ для каждой пары ряд/уровень обратно к инверсному кодеру с переменной длиной слова 32, как показано на фиг. 21C. Каждый раз, когда он получает сигнал сброса считывания RE-REQ, инверсный кодер с переменной длиной слова 32 подает одну пару ряд/уровень в декодер ряд/уровень 41, как показано на фигурах 21D и 21E. Таким образом, IVLC 32 подает на декодер ряд/уровень 41 количество пар ряд/уровень, соответствующее количеству сигналов сброса считывания, которое он получил.
Декодер ряд/уровень 41 декодирует код ряд/уровень закодированных дискретизированных DCT коэффициентов, чтобы доставить блок дискретизированных DCT коэффициентов в зигзагообразном порядке сканирования в виде WDATA к первой памяти блока 42, как показано на фиг. 21G. В то же самое время, как показано на фиг. 21F, счетчик адреса 47 подсчитывает дискретизированные DCT коэффициенты от декодера ряд/уровень и подает сигнал адреса ards1 в зигзагообразном порядке сканирования, указывающий адреса записи каждого дискретизированного DCT коэффициента, через селектор 49 в первой памяти блока 42.
Если декодер ряд/уровень 41 получает EOB код от IVLC 32, указывающий на то, что получен последний ненулевой DCT коэффициент, декодер ряд/уровень устанавливает дискретизированный DCT коэффициент, соответствующий коду EOB, и все последующие дискретизированные DCT коэффициенты в ноль и подает эти нулевые DCT коэффициенты в первую память блока 42.
Также если декодер ряд/уровень получает EOB код, он подает сигнал EOB-EN в регистры положения (POS REG) 44 и 45, как показано на фиг.21 H. Сигнал EOB-EN указывает регистрам положения, что получен EOB код. Регистры положения от счетчика адреса 47 через преобразователь адреса 48 получают также адрес каждого дискретизированного DCT коэффициента, подаваемого в первую и вторую память блока 42 и 43. Если кодер ряд/уровень получает EOB код, адрес, генерируемый счетчиком адреса 47, является адресом последнего ненулевого коэффициента. Сигнал EOB-EN вызывает запись адреса EOB-POS последнего ненулевого коэффициента, преобразованного к адресу с растровым сканированием посредством преобразователя 48, в регистр положения памяти блока, в который должен быть записан блок дискретизированных DCT коэффициентов. Таким образом, один из POS регистров 44 и 45 хранит адрес последнего ненулевого коэффициента блока дискретизированных DCT коэффициентов.
Если на декодер ряд/уровень 41 был подан весь блок дискретизированных DCT коэффициентов в первой памяти блока 42 или второй памяти блока 43, счетчик адреса 47 подает сигнал коммутации банков BANK к первой памяти блока 42 и второй памяти блока 43. Сигнал BANK переключает режим памятей блока, так что первая память блока, которая до этого была в режиме записи, переключается на режим считывания, а вторая память блока переключается на режим записи. Таким образом, когда декодер ряд/уровень 41 декодирует следующий блок дискретизированных DCT коэффициентов, результирующие DCT коэффициенты будут записываться во вторую память блока 43. Сигнал BANK также переключает селектор 49, так что адреса, подаваемые в память блока в режиме записи, являются адресами в зигзагообразном порядке сканирования от счетчика адреса 47, а адреса, подаваемые в память блока в режиме считывания, являются адресами в растровом порядке сканирования от преобразователя адреса 48.
Также, если декодер ряд/уровень 41 подал весь блок дискретизированных DCT коэффициентов в первую память блока 42, первая память блока 42 подает сигнал заполнения памяти FULL1 к инверсному квантователю 46. Сигнал заполнения памяти указывает, что записаны все дискретизированные коэффициенты в блоке. Если IQ получает сигнал заполнения памяти FULL1, он посылает сигнал сброса считывания RD-EN в первую память блока 42. Сигнал сброса считывания заставляет первую память блока считывать хранящиеся в ней дискретизированные DCT коэффициенты в ответ на адреса adrs1, подаваемые в растровом порядке сканирования преобразователем адреса 48 через селектор 49. Соответственно дискретизированные DCT коэффициенты в блоке считываются из первой памяти блока 42. DCT коэффициенты считываются в соответствии с каждым адресом, подаваемым в инверсный квантователь 46.
В то же самое время, когда дискретизированные DCT коэффициенты в блоке считываются из первой памяти блока 42, дискретизированные DCT коэффициенты в следующем блоке записываются в зигзагообразном порядке сканирования во вторую память блока 43 согласно адресам от счетчика адреса 47.
Инверсный квантователь 46 осуществляет обратную дискретизацию дискретизированных DCT коэффициентов в блоке дискретизированных DCT коэффициентов способом, подобным используемому инверсным квантователем 13 в устройстве уплотнения сигнала движущегося изображения, описанным выше со ссылками на фигуру 6. Результирующий блок DCT коэффициентов подается в схему приведения в нечетной сумме 35.
Если сумма DCT коэффициентов в блоке четная, схема приведения к нечетной сумме 35 преобразует, по крайней мере, один из DCT коэффициентов в блоке, чтобы сделать нечетной сумму DCT коэффициентов в блоке тем же способом, который используется в схеме приведения к нечетной сумме 14 в устройстве уплотнения сигнала движущегося изображения, описанном выше. Результирующий блок DCT коэффициентов с суммой, преобразованной к нечетному значению, подается в схему IDCT 36.
Например, схема приведения к нечетной сумме 35 может обратиться к POS регистрам 44 и 45, чтобы определить, является ли или нет текущий DCT коэффициент последним ненулевым коэффициентом в зигзагообразном порядке сканирования, так чтобы схема приведения к нечетной сумме могла изменить четность последнего ненулевого DCT коэффициента, чтобы сделать нечетной сумму DCT коэффициентов в блоке. Как вариант, схемы приведения к нечетной сумме 35 могут обрабатывать DCT коэффициент высокочастотной составляющей, чтобы сделать нечетной сумму DCT коэффициентов. Инвертирование четности DCT коэффициента высокочастотной составляющей может быть предпочтительным, поскольку высокочастотная составляющая оказывает малое влияние на качество изображения, и нет необходимости определять, какой из DCT коэффициентов является последним ненулевым коэффициентом. Это также верно в случае, когда порядок сканирования отличается от зигзагообразного порядка сканирования.
Должно быть ясно, что во избежание ошибок несоответствия операции приведения к нечетной сумме, выполняемые в устройстве уплотнения сигнала движущегося изображения, должны быть идентичны.
2. Второй вариант воплощения изобретения
Структура второго варианта реализации устройства уплотнения сигнала движущегося изображения показана на фиг. 22. Второй вариант является предпочтительным вариантом реализации изобретения. Структура схемы приведения к нечетной сумме 50 устройства уплотнения сигнала движущегося изображения, показанного на фиг. 22, представлена на фиг. 23. Элементы второго варианта устройства уплотнения сигнала движущегося изображения, соответствующие элементам в первом варианте устройства уплотнения сигнала движущегося изображения, показанного на фиг. 6, обозначены одними и теми же цифровыми ссылками и повторно здесь не описываются. Второй вариант отличается от первого варианта устройством схемы приведения к нечетной сумме 50. В схеме приведения к нечетной сумме 50, показанной в деталях на фиг. 23, счетчик 20 подсчитывает количество DCT коэффициентов, полученных от инверсного квантователя 13, и подает значение результата счета coeff-adrs в схему оценки четности 21.
Накопитель 23A состоит из сумматора 23 и регистра 24. Сумматор 23 прибавляет каждый DCT коэффициент в блоке DCT коэффициентов, получаемом от инверсного квантователя 13, к сумме уже полученных DCT коэффициентов в блоке, хранящейся в регистре 24. Регистр 24 сбрасывается после того, как была определена сумма для каждого блока DCT коэффициентов. Результирующая сумма DCT коэффициентов подается от сумматора 23 на регистр 24 и схему оценки четности 21. Накопитель 23A нуждается только в сумме младших бит DCT коэффициентов в блоке для получения результата, подходящего для схемы оценки четкости, чтобы установить, является ли контрольная сумма DCT коэффициентов нечетной или четной.
Схема оценки четности 21 функционирует согласно значению результата счета coeff-adrs, полученному от счетчика 20 следующим образом. Если результат счета указывает на то, что накопителем 23A просуммированы все DCT коэффициенты в блоке, схема оценки четности 21 определяет, является ли контрольная сумма DCT коэффициентов, полученных от накопителя 23A, нечетной или четной. Например, в случае двумерного 8 х 8 DCT-преобразования, если значение результата счета указывает на то, что определена сумма 64 DCT коэффициентов в блоке, схема оценки четности 21 определяет, является ли сумма DCT коэффициентов от накопителя 23A нечетной или четной.
Практически, если DCT коэффициенты представлены двоичными числами, схема оценки четности 21 оценивает младший бит (LSB) суммы DCT коэффициентов, полученных от накопителя 23A. Нулевой LSB указывает на то, что контрольная сумма четная. В этом случае схема оценки четности 21 подает сигнал сброса обработки REQ1 в инвертор четности 53, чтобы заставить инвертор четности выполнить операцию инвертирования четности. В ответ на сигнал сброса обработки REQ1, инвертор четности 53 изменяет четность, по крайней мере одного (то есть, нечетное число) из DCT коэффициента в блоке, чтобы сделать нечетной сумму DCT коэффициентов. С другой стороны, единичный LSB указывает на то, что контрольная сумма нечетная. В этом случае схема оценки четности 53 не выдает сигнал сброса обработки REQ1 и инвертор четности 53 оставляет четность всех DCT коэффициентов в блоке без изменения, поскольку контрольная сумма DCT коэффициентов уже и так нечетная.
Блок DCT коэффициентов подается от инверсного квантователя 13 не только к накопителю 23A, но также и к инвертору четности 53 через схему задержки 52. Схема задержки 52 задерживает DCT коэффициенты в блоке на время, соответствующее временам обработки накопителя 23A и схемы оценки четности 21, так что последний DCT коэффициент, то есть, высокочастотный коэффициент (например, DCT коэффициент (7,7) составляющей в 8 х 8 DCT-преобразовании) поступил в инвертор четности 53 в тот же момент времени, что и сигнал сброса обработки REQ1.
Таким образом, инвертор четности 53 подает все DCT коэффициенты, кроме высокочастотного коэффициента, в схему IDCT 15 без изменения. Если схема оценки четности не сформировала сигнал сброса обработки REQ1, инвертор четности 53 подает также и высокочастотный DCT коэффициент в схему IDCT без изменения. Только если схема оценки четности 21 сформировала сигнал сброса обработки REQ1, инвертор четности 53 преобразует LSB высокочастотного DCT коэффициента и подает высокочастотный DCT коэффициент с инвертированной четностью в схему IDCT 15.
Таким образом, если схема оценки четности 21 указывает, что контрольная сумма DCT коэффициентов в блоке четная, инвертор четности 53 обрабатывает высокочастотный DCT коэффициент (например, DCT коэффициент (7,7) составляющей в 8 х 8) DCT-преобразовании) в блоке. Инвертор четности преобразует четность высокочастотной DCT составляющей и, таким образом, делает нечетной сумму DCT коэффициентов в блоке DCT коэффициентов, подаваемых в схему IDCT 15. Следовательно, контрольная сумма DCT коэффициентов в блоке DCT коэффициентов будет всегда нечетной. DCT коэффициент (7,7) составляющей является коэффициентом, который меньше всего влияет на выходные значения IDCT.
Теперь будут описаны другие практические примеры реализации схемы приведения к нечетной сумме 50 предварительного варианта воплощения изобретения.
На фиг. 24 показан пример, в котором LSB детектор 29 и логический элемент "Исключающее ИЛИ" (EXOR) 30 заменяют сумматор 23 на фиг. 23. Элементы в схеме, показанной на фиг. 24, соответствующие элементы в схеме, показанной на фиг. 23, обозначены одними и теми же цифровыми ссылками и повторно здесь не описываются. LSB детектор 29 определяет LSB каждого DCT коэффициента в блоке, а логический элемент "EXOR" 30 и регистр 24 вместе определяют исключающую логическую схему LSB DCT коэффициентов в блоке. Четность исключающей логической схемы определяется схемой оценки четности 21, как было описано выше со ссылками на фиг. 23.
Как вариант, логический элемент "И" 88 и счетчик 89, показанный на фиг. 10B, могут быть поставлены вместо логического элемента "Исключающее ИЛИ" и регистра 24, показанных на фиг. 24.
Другой пример показан на фиг. 25. В нем селектор 51 помещен между инверсным квантователем 13 и накопителем 23A в схеме приведения к нечетной сумме, показанной на фиг. 23. Элементы в схеме, показанной на фиг. 25, соответствующие элементам в схеме, показанной на фиг. 23, обозначены одними и теми же цифровыми ссылками и повторно здесь не описываются. Схема, показанная на фиг. 25, определяет сумму DCT коэффициентов только заданных коэффициентов, например, (0,0) составляющей, (4,0) составляющей, (0,4) составляющей и (4,4) составляющей, чтобы оценить, потребуется ли приведение суммы к нечетному значению. Селектор 51 получает результат счета coeff-adrs от счетчика 20, чтобы определить, является или нет каждый DCT коэффициент, полученный от инверсного квантователя 13, одного из заданных коэффициентов и следовательно, должен быть просуммирован. Если селектор определяет, что DCT коэффициент является одним из заданных коэффициентов и должен быть просуммирован, то есть, результат счета coeff-adrs имеет значение, соответствующее, например, (0,0) составляющей), (4,0) составляющей, (0,4) составляющей или (4,4) составляющей, селектор 51 доставляет DCT коэффициент в накопитель 23A. Селектор 51 заставляет схему приведения к нечетной сумме, показанную на фигуре 25, определить сумму заданных коэффициентов. Затем инвертор четности 53 преобразует, по крайней мере, один из заданных CT коэффициентов, если это необходимо, чтобы сделать нечетной сумму заданных DCT коэффициентов. Блок DCT коэффициентов с суммой, преобразованной к нечетному значению, подается затем в схему IDCT 15.
В другом варианте селектор 51, показанный на фиг. 25, может быть помещен в канал между инверсным квантователем 13 и LSB детектором 29, в схеме, показанной на фигуре 24. Схема, показанная на фиг. 24, измененная таким же образом, может определять включающую логическую сумму LSB заданных DCT коэффициентов, отобранных селектором. В другом альтернативном варианте схемы приведения к нечетной сумме 50, если последний CT коэффициент, полученный от инверсного квантователя 13, является коэффициентом DC-составляющей, то есть, порядок растрового сканирования противоположен порядку в вариантах, описанных выше, DCT коэффициент, к которому применена операция инвертирования четности, не является высокочастотной DCT-составляющей, а является DCT коэффициентом DC-составляющей.
Теперь со ссылкой на фиг. 26 будет описан пример схемного устройства инвертора четности 53. Инвертор четности 53 представляет собой упрощенный вариант вышеописанного инвертора 28, показанного на фиг. 11. Инвертор четности 53 включает: LSB-инвертор 63, третий и четвертый логические элементы "И" 64 и 65, логический элемент "ИЛИ" 66 и инвертор 71.
В инверторе четности 53 LSB инвертор 63 инвертирует LSB каждого DCT коэффициента в блоке DCT коэффициентов, полученном от инверсного квантователя 13. Таким образом, инвертируется четность каждого DCT коэффициента. Обычно, сигнал сброса обработки REQ1 отсутствует, так что инвертор четности подает каждый полученный DCT коэффициент в схему IDCT 15 (фигура 23) через третий логический элемент "И" 64 и логический элемент "ИЛИ" 69.
Если схемой приведения к нечетной сумме 50 (фиг. 23) получен высокочастотный DCT коэффициент в блоке, значение счета coeff-adrs от счетчика 20 указывает схеме оценки четности 21, что величина, полученная схемой оценки четности, является суммой всех DCT коэффициентов в блоке. В ответ на это схема оценки четности определяет, является ли контрольная сумма DCT коэффициентов нечетной или четной.
Если схема оценки четности 21 устанавливает, что контрольная сумма DCT коэффициентов в блоке является четной, она подает сигнал сброса обработки REQ1 в инвертор четности 53. Сигнал сброса обработки поступает в инвертор четности 53 через элемент задержки 52 в тот же момент, когда и высокочастотный DCT коэффициент. Сигнал сброса обработки REQ1 изменяет состояние третьего и четвертого логических элементов "И" 64 и 65. В результате высокочастотный DCT коэффициент с инвертированным LSB подается от инвертора LSB 63 в схему IDCT 15 через четвертый логический элемент "И" 65 и логический элемент "ИЛИ" 69. Высокочастотный DCT коэффициент с инвертированным LSB подается в схему IDCT вместо нормального высокочастотного DCT коэффициента, чтобы сделать нечетной сумму DCT коэффициентов, подаваемых в схему IDCT.
С другой стороны, если схема оценки четности 21 определяет, что контрольная сумма DCT коэффициентов в блоке нечетная, сигнал сброса обработки не формируется. Инвертор четности 53 подает нормальный высокочастотный DCT коэффициент в схему IDCT 15 через логический элемент "И" 64 и логический элемент "ИЛИ" 69, поскольку не требуется приведение суммы блока DCT коэффициентов к нечетному значению.
Варианты практического примера инвертора четности 53, показанного на фигуре 26, представлены на фиг. 27 - 29.
На фиг. 27 показан +1 сумматор 73, подобный +1 сумматору, показанному на фиг. 13, который заменяет инвертор LSB 63 в инверторе четности, показанном на фиг. 26. В остальном схема остается без изменений. Модифицированный инвертор четности, показанный на фиг. 27, инвертирует четность каждого DCT коэффициента в блоке путем добавления к нему единица. Таким образом, если схема оценки четности 21 подает сигнал сброса обработки REQ1 к инвертору четности, инвертор четности подает в схему IDCT 15 высокочастотный DCT коэффициент с добавленной к нему единицей вместо нормального высокочастотного DCT коэффициента. Такая замена делает нечетной сумму DCT коэффициентов в блоке.
Показанная на фиг. 28 схема уменьшения величины 80, используемая на фиг. 15, может быть заменена инвертором LSB 63 в схеме, показанной на фигуре 26. Схема, показанная на фиг. 26, в остальном остается без изменений. Инвертор четности, показанный на фиг. 26 и видоизмененный, как показано на фиг. 28, делает нечетной сумму DCT коэффициентов согласно уравнению (15), описанному выше. Если схема оценки четности 21 генерирует сигнал сброса обработки REQ1, сумма DCT коэффициентов в блоке делается нечетной путем подачи высокочастотного DCT коэффициента с инвертированной четностью в схему IDCT 15. Четность высокочастотного DCT коэффициента инвертируется одним из двух способов: из высокочастотного DCT коэффициента с помощью -1 вычитателя 62 вычитается единица, если высокочастотный DCT коэффициент положительный, либо к высокочастотному DCT коэффициенту с помощью +1 сумматора 83 добавляется единица, если высокочастотный DCT коэффициент равен нулю или отрицательный.
Показанная на фиг. 29 схема увеличения величины 90 на фигуре 17 может быть заменена инвертором LSB 63 в схеме, показанной на фигуре 26. Схема, показанная на фигуре 26, в остальном остается без изменений. Инвертор четности, показанный на фигуре 26 и модифицированный, как показано на фигуре 29, делает нечетной сумму DCT коэффициентов согласно уравнению (16), описанному выше. Если схема оценки четности 21 генерирует сигнал сброса обработки REQ1, сумма DCT коэффициентов в блоке делается нечетной путем подачи высокочастотного DCT коэффициента с проинвертированной четностью в схему IDCT 15. Четность высокочастотного DCT коэффициента инвертируется одним из двух способов: из высокочастотного DCT коэффициента с помощью -1 вычитателя 93 вычитается единица, если высокочастотный DCT коэффициент равен 0 или отрицательный, либо к высокочастотному DCT коэффициенту с помощью +1 сумматора 92 добавляется единица, если высокочастотный DCT коэффициент положительный.
Теперь будет описан второй вариант реализации устройства расширения уплотненного сигнала движущегося изображения.
Во втором варианте устройства расширения уплотненного сигнала движущегося изображения схема приведения к нечетной сумме 50 заменяет схему приведения к нечетной сумме 35 в первом варианте декодера уплотненного сигнала движущегося изображения, описанного выше со ссылками на фиг. 19. В остальном схема, показанная на фиг. 19 остается без изменений. Во втором варианте устройства расширения уплотненного сигнала движущегося изображения обработка с целью приведения суммы DCT коэффициентов к нечетному значению выполняется таким же образом, как и обработка, которая выполняется схемой приведения к нечетной сумме во втором варианте устройства уплотнения сигнала движущегося изображения, показанного и описанного выше со ссылками на фиг. 22. Таким образом, во втором варианте устройства расширения уплотненного сигнала движущегося изображения нет необходимости подавать адрес EOB-adrs от инверсного кодера с переменной длиной слова 32 к схеме приведения к нечетной сумме 50.
Описанное выше изобретение дает возможность реализовать метод обратного дискретного косинусного преобразования и устройство обратного косинусного преобразования, устройство уплотнения сигнала движущегося изображения, устройство расширения уплотненного сигнала движущегося изображения и устройство передачи уплотненного сигнала движущегося изображения, в котором вероятность появления ошибки преобразования настолько мала, что ошибки несоответствия практически не появляются. Кроме того, изобретение дает возможность получить носитель записи, в котором не появляются ошибки несоответствия, когда уплотненный сигнал движущегося изображения воспроизводится с носителя и расширяется посредством обработки, включающей обратное ортогональное преобразование.
Если при уплотнении сигнала движущегося изображения используется дискретное косинусное преобразование и при расширении уплотненного сигнала движущегося изображения используется обратное дискретное косинусное преобразование, изобретение дает возможность предотвратить появление ошибок несоответствия обратного дискретного косинусного преобразования. Это предотвращает ухудшение качества изображения. Соответственно, в устройстве уплотнения сигнала движущегося изображения и в устройстве расширения уплотненного сигнала движущегося изображения, в которых применяется это изобретение, отсутствует возможность того, что локально декодированные кадры в устройстве уплотнения и кадры, восстановленные устройством расширения, будут отличаться друг от друга. Таким образом, можно обеспечить высокое качество изображения.
Хотя приведенные в качестве иллюстрации варианты изобретения были описаны здесь в деталях, должно быть ясно, что изобретение не ограничивается описанными здесь определенными вариантами и что могут быть сделаны различные модификации в рамках предмета изобретения, определенного прилагаемой формулой изобретения.
Далее приведена расшифровка надписей на сопроводительных чертежах.
Надписи на сопроводительных чертежах:
Фиг. 1:
101 - форматирование блока, 102 - предсказатель движения, 103 - расчет блока отличий, 104 - ортогональное преобразование, 105 - дискретизация, 106 - кодирование с переменной длиной слова, 107 - выходной буфер, 108 - инверсный квантователь, 109 - обратное ортогональное преобразование, 110 - сумматор, 111 - селектор, 112A - память изображения A, 112B - память изображения B, 112C - память изображения C, 112D - память изображения D, 113 - предсказатель, 114 - генерирование адреса считывания, 115 - определение режима предсказания.
Фиг. 2:
121 - входной буфер, 122 - инверсный кодер с переменной длиной слова, 123 - инверсная дискретизация, 124 - обратное ортогональное преобразование, 125 - сумматор, 126 - селектор, 127 - генерирование адреса дисплея, 128 - память изображения, 129 - предсказатель, 130 - генерирование считываемого адреса, 131 - генерирование синхросигнала.
Фиг. 3:
2 - первое устройство памяти кадров, 3 - контроллер памяти, 4 - второе устройство памяти кадров, 5 - счетчик, 6 - предсказание движения, 7 - компенсация движения, 8 - схема формирования отличий, 9 - кодер блока отличий, 10 - локальный декодер, 11 - дискретное косинусное преобразование, 12 - дискретизация, 13 - инверсная дискретизация, 14 - схема приведения к нечетной сумме, 15 - обратное дискретное косинусное преобразование, 16 - сумматор, 17 - кодер с переменной длиной слова, 18 - счетчик бит, 19 - выходной буфер. На входе элемента 2 - "входной сигнал движущегося изображения"; на выходе элемента 19 - "поток бит (уплотненный сигнал движущегося изображения)"; MM - режим компенсации движения; MV - вектор движения.
Фиг. 8:
13 - инверсная дискретизация, 15 - инверсное дискретное косинусное преобразование, 20 - счетчик, 21 - оценка четности, 22 - селектор памяти, 23 - сумматор, 24 - регистр, 25 - регистр, 26 - память #1, 27 - память #2, 28 - инвертор четности.
Фиг. 9:
S1 - коэффициент должен быть приведен к нечетному значению?, S3 - инвертирование LSB, S4 - вывод, S5 - вывод DCT коэффициента.
Фиг. 10A, 10B:
13 - инверсная дискретизация,20 - счетчик, 21 - оценка четности, 22 - селектор памяти, 24 - регистр, 25 - регистр, 26 - память #1, 27 - память #2, 28 - инвертор четности, 29 - выделение LSB, 89 - счетчик LSB. На выходе 89 - "сброс", на выходе - "результат счета".
Фиг. 11:
61 - счетчик считывания, 62 - сравнение, 63 - инвертирование LSC.
Фиг. 12:
S1 - коэффициент должен быть приведен к нечетному значению?, S3 - добавление +1 к DCT коэффициенту, S4 - вывод, S5 - вывод DCT коэффициента.
Фиг. 13:
61 - счетчик считывания, 62 - сравнение, 63 - сумматор +1.
Фиг. 14:
S1 - коэффициент должен быть приведен к нечетному значению?, S3 - коэффициент, который должен быть приведен к нечетному значению, положительный?, S4 - добавление -1 к DCT коэффициенту, S5 - вывод, S6 - добавление +1 к DCT коэффициенту, S7 - вывод, S8 - вывод DCT коэффициента.
Фиг. 15:
61 - счетчик считывания, 62 - сравнение, 81 - оценка четности, 82 - -1 вычитатель, 83 - +1 сумматор.
Фиг. 16:
S1 - коэффициент должен быть приведен к нечетному значению?, S3 - коэффициент, который должен быть приведен к нечетному значению, положительный?, S4 - добавление -1 к DCT коэффициенту, S5 - вывод, S6 - добавление -1 к DCT коэффициенту, S7 - вывод, S8 - вывод DCT коэффициента.
Фиг. 17:
61 - счетчик считывания, 62 - сравнение, 91 - оценка четности, 93 - -1 вычитатель, 92 - +1 сумматор.
Фиг. 18:
13 - инверсная дискретизация, 20 - счетчик, 21 - оценка четности, 22 - селектор памяти, 24 - регистр, 25 - регистр, 26 - память #1, 27 - память #2, 28 - инвертор четности, 51 - селектор.
Фиг. 19:
31 - входной буфер (на входе: "поток бит (уплотненный сигнал движущегося изображения)"), 32 - инверсное кодирование с переменной длиной слова, 33 - управление памятью (на входе: "заголовок кадра"), 35 - схема приведения к нечетной сумме, 36 - обратное дискретное косинусное преобразование, 37 - компенсатор движения (на входе: MM - режим компенсации движения, MV - вектор движения), 38 - устройство памяти изображения (на выходе: "отображение кадра").
Фиг. 20:
32 - инверсное кодирование с переменной длиной слова, 35 - приведение к нечетной сумме, 36 - обратное дискретное косинусное преобразование, 41 - декодер ряд/уровень, 42 - память #1, 43 - память #2, 44 и 45 - регистры положения # # 1, 2, 47 - счетчик адреса, 48 - преобразователь адреса, 49 - селектор.
Фиг. 22:
2 - первое устройство памяти кадров, 3 - контроллер памяти, 4 - второе устройство памяти кадров, 5 - счетчик, 6 - предсказание движения, 7 - компенсация движения, 8 - схема формирования отличий, 9 - кодер блока отличий, 10 - локальный декодер, 11 - дискретное косинусное преобразование, 12 - дискретизация, 13 - инверсная дискретизация, 14 - схема приведения к нечетной сумме, 15 - обратное дискретное косинусное преобразование, 16 - сумматор, 17 - кодер с переменной длиной слова, 18 - счетчик бит, 19 - выходной буфер. На выходе элемента 2 - "входной сигнал движущегося изображения"; на выходе элемента 19 - "поток бит (уплотненный сигнал движущегося изображения)"; MM - режим компенсации движения; MV - вектор движения, 50 - схема приведения к нечетной сумме.
Фиг.23:
13 - инверсная дискретизация, 20 - счетчик, 21 - оценка четности, 24 - регистр, 53 - инвертор четности.
Фиг.24:
13 - инверсная дискретизация, 20 - счетчик, 21 - оценка четности, 24 - регистр, 29 - выделение LSB, 53 - инвертор четности.
Фиг. 25:
13 - инверсная дискретизация, 20 - счетчик, 21 - оценка четности, 24 - регистр, 51 - селектор, 53 - инвертор четности.
Фиг. 26 и 27:
63 - инвертирование LSB. На входе: "задержанный DCT коэффициент". На выходе 69: "к IDCT". 73 - +1 cумматор
Фиг. 28 и 29:
61 - оценка знака, 82 - -1 вычитатель, 83 - +1 сумматор, 91 - оценка четности, 92 - +1 сумматор, 93 - -1 вычитатель.
Фиг. 30:
31 - входной буфер (на входе: "уплотненный сигнал движущегося изображения"), 32 - инверсное кодирование с переменной длиной слова, 33 - управление памятью (на входе: "заголовок кадра"), 34 - декодер блока отличий, 36 - обратное дискретное косинусное преобразование, 37 - компенсатор движения (на входе: MM - режим компенсации движения, MV - вектор движения), 38 - устройство памяти изображения (на выходе: "вывод сигнала движущегося изображения"), 40 - инверсная дискретизация, 50 - схема приведения к нечетной сумме.
Заявленные способы и устройства используются в системах обработки цифровых сигналов. В локальном декодере устройства уплотнения MPEG - стандарта, а также в устройстве расширения MPEG - стандарта появляются ошибки округления. Это происходит из-за отсутствия стандарта для округления результатов типа *. 5 (где *. - целое число), которые получаются, когда набор коэффициентов преобразования, являющихся результатом уплотнения, подвергается обратному ортогональному преобразованию. Изобретение предотвращает появление ошибок несоответствия посредством предварительной обработки набора коэффициентов преобразования до их обратного ортогонального преобразования, что и является достигаемым техническим результатом. Коэффициенты преобразования в наборе суммируются и оценивается четность суммы (четная или нечетная). Если установлено, что контрольная сумма четная, то инвертируется четность одного из коэффициентов преобразования в наборе, чтобы получить коэффициент преобразования с проинвертированной четностью. Это делает контрольную сумму нечетной. Тогда, если набор коэффициентов преобразования, включающий коэффициент преобразования с проинвертированной четностью, будет подвергнут обратному ортогональному преобразованию, ни один из результатов ортогонального преобразования не будет иметь значение *.5. 12 с. и 38 з.п.ф-лы, 30 ил.
IEEE STD, 1180-1190, 1991, p.11. |
Авторы
Даты
1998-09-27—Публикация
1994-03-01—Подача