СПОСОБ И УСТРОЙСТВО, И ПРОГРАММА КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ВИДЕО
METHOD AND APPARATUS, AND VIDEO CODING/DECODING PROGRAMME

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству кодирования/декодирования видео с использованием матриц квантования.
Уровень техники
Предлагается система для того, чтобы квантовать DCT-коэффициент посредством осуществления выделения бит каждую частотную позицию с использованием частотной характеристики DCT-коэффициентов, предоставляемых посредством подвергания видео ортогональному преобразованию, например, дискретному косинусному преобразованию (DCT) (W.H. Chen и C.H. Smith, "Adaptive Coding of Monochrome and Color Images", IEEE Trans. On Comm., том 25, номер 11, ноябрь 1977 года). Согласно этой традиционной системе множество битов выделяется низкоуровневой частотной области, чтобы получить информацию коэффициентов, тогда как немного битов выделяется верхней частотной области, посредством чего DCT-коэффициент квантуется по частоте. Тем не менее, эта традиционная система должна подготавливать таблицу выделения согласно приблизительности квантования. Следовательно, она не всегда является эффективной системой в отношении надежного квантования.
ITU-TT.81 и ISO/IEC10918-1 (далее упоминаемые как JPEG: Объединенная группа экспертов в области фотографии), созданные в ITU-T и ISO/IEC, квантуют одинаково коэффициенты преобразования по всему частотному диапазону с помощью одинаковой шкалы квантования. Тем не менее, человек является сравнительно нечувствительным в высокочастотной области согласно свойству зрительной системы человека. По этой причине предлагается следующая система. Т.е. в JPEG взвешивание выполняется каждую частотную область, чтобы изменить шкалу квантования, с тем, чтобы много битов выделялось низкочастотной области, визуально чувствительной, и скорость передачи битов понижалась в высокочастотной области, приводя к повышению субъективного качества изображения. Эта система выполняет квантование каждый блок квантования с преобразованием. Таблица, используемая для этого квантования, упоминается как матрица квантования.
Дополнительно в последние годы разработан способ кодирования видео, который существенно повышает эффективность кодирования в сравнении с традиционным способом, как ITU-TRec.H.264 и ISO/IEC14496-10 (упоминается как H.264) совместно ITU-T и ISO/IEC. Традиционные системы кодирования, такие как ISO/IECMPEG-1, 2, 4 и ITU-TH.261, H.263 квантуют DCT-коэффициенты после ортогонального преобразования, чтобы уменьшить число кодированных битов коэффициентов преобразования. В основном профиле H.264, поскольку взаимосвязь между параметром квантования и шкалой квантования разработана таким образом, что они становятся с равными интервалами на логарифмической шкале, матрица квантования не вводится. Тем не менее, на высоком уровне H.264 матрица квантования должна быть заново введена, чтобы повысить субъективное качество изображения для изображения высокой четкости (см. Jiuhuai Lu, "Proposal of quantization weighting for H.264/MPEG-4 AVC Professional Profiles", JVT of ISO/IEC MPEG & ITU-T VCEG, JVT-K029, март 2004 года).
На высоком уровне H.264 всего восемь видов различных матриц квантования может быть установлено в соответствии с двумя преобразованными/квантованными блоками (блок пикселов 4×4 и блок пикселов 8×8) для каждого режима кодирования (внутрикадровое прогнозирование или межкадровое прогнозирование) и для каждого сигнала (сигнала яркости или цветоразностного сигнала).
Поскольку матрица квантования используется для взвешивания пиксела согласно позиции каждого частотного компонента во время квантования, одна матрица квантования требуется также во время деквантования. В кодере верхнего уровня H.264 используемые матрицы квантования кодируются и мультиплексируются и затем передаются в декодер. Конкретно, разностное значение вычисляется в порядке зигзагообразного сканирования или сканирования поля из DC-компонента матрицы квантования, и полученные разностные данные подвергаются кодированию переменной длины и мультиплексируются как данные кода.
С другой стороны, декодер высокого уровня H.264 декодирует данные кода согласно логике, аналогичной логике кодера, чтобы восконструировать их как матрицу квантования, которая должна быть использована во время деквантования. Матрица квантования в завершение подвергается кодированию переменной длины. В этом случае число кодированных битов матрицы квантования требует 8 битов на минимуме и не менее 1500 битов на максимуме для синтаксиса.
Способ передачи матрицы квантования высокого уровня H.264 может повышать объем служебной информации для кодирования матрицы квантования и тем самым существенно понижает эффективность кодирования в варианте применения, используемом на низкой скорости передачи битов, таком как сотовый телефон или мобильное устройство.
Предложен способ корректировки значения матрицы квантования посредством передачи сначала базовой матрицы квантования, чтобы обновлять матрицу квантования с небольшим объемом служебной информации, и последующей передачи коэффициента k, указывающего степень изменения от матрицы квантования к декодеру (см. JP-A 2003-189308(KOKAI)).
JP-A 2003-189308(KOKAI) "Video encoding apparatus, encoding method, decoding apparatus and decoding method, and video code string transmitting method" направлена на то, чтобы обновлять матрицу квантования каждый тип изображения с помощью небольшого числа кодированных битов, и дает возможность обновлять базовую матрицу квантования при помощи примерно самое большее 8 битов. Тем не менее, поскольку эта система для отправки только степени изменения из базовой матрицы квантования, амплитуда матрицы квантования может быть изменена, но невозможно изменять ее характеристику. Дополнительно требуется передавать базовую матрицу квантования, и таким образом, число кодированных битов может значительно возрасти вследствие состояния кодирования.
Сущность изобретения
Когда матрица квантования кодируется посредством способа, заранее заданного посредством высокого уровня H.264, и передается в декодер, число кодированных битов для кодирования матрицы квантования возрастает. Когда матрица квантования передается каждое изображение повторно, число кодированных битов для кодирования матрицы квантования дополнительно возрастает. Дополнительно, передается когда степень изменения матрицы квантования, степень свободы для изменения матрицы квантования в значительной степени ограничена. Проблема в том, что эти результаты делают трудным эффективно использовать матрицу квантования.
Аспект настоящего изобретения предоставляет способ кодирования видео, содержащий: формирование матрицы квантования с использованием функции, касающейся формирования матрицы квантования, и параметра, связанного с функцией; квантование коэффициента преобразования, касающегося сигнала входного изображения, с использованием матрицы квантования, чтобы сформировать квантованный коэффициент преобразования; и кодирование параметра и квантованного коэффициента преобразования, чтобы сформировать кодовый сигнал.
Краткое описание чертежей
Фиг.1 - это блок-схема, иллюстрирующая структуру устройства кодирования видео согласно первому варианту осуществления.
Фиг.2 - это блок-схема, иллюстрирующая структуру формирователя матрицы квантования согласно первому варианту осуществления.
Фиг.3 - это блок-схема последовательности операций способа для устройства кодирования видео согласно первому варианту осуществления.
Фиг.4A - это схематичное представление порядка прогнозирования/формы блока, связанного с первым вариантом осуществления.
Фиг.4B - это схема, иллюстрирующая форму блока в 16×16 пикселов.
Фиг.4C - это схема, иллюстрирующая форму блока в 4×4 пиксела.
Фиг.4D - это схема, иллюстрирующая форму блока в 8×8 пикселов.
Фиг.5A - это схема, иллюстрирующая матрицу квантования, соответствующую блоку пикселов 4×4, связанному с первым вариантом осуществления.
Фиг.5B - это схема, иллюстрирующая матрицу квантования, соответствующую блоку пикселов 8×8.
Фиг.6A - это схема для пояснения способа формирования матрицы квантования, связанного с первым вариантом осуществления.
Фиг.6B - это схема для пояснения еще одного способа формирования матрицы квантования.
Фиг.6C - это схема для пояснения еще одного способа формирования матрицы квантования.
Фиг.7 - это схематичное представление структуры синтаксиса согласно первому варианту осуществления.
Фиг.8 - это схема структуры данных синтаксиса набора параметров последовательности согласно первому варианту осуществления.
Фиг.9 - это схема структуры данных синтаксиса набора параметров изображения согласно первому варианту осуществления.
Фиг.10 - это схема структуры данных синтаксиса набора параметров изображения согласно первому варианту осуществления.
Фиг.11 - это схема структуры данных вспомогательного интеллектуального синтаксиса согласно первому варианту осуществления.
Фиг.12 - это блок-схема последовательности операций способа многопутевого кодирования согласно второму варианту осуществления.
Фиг.13 - это схема, иллюстрирующая структуру синтаксиса для синтаксиса заголовка серии последовательных макроблоков.
Фиг.14 - это схема, иллюстрирующая синтаксис заголовка серии последовательных макроблоков.
Фиг.15 - это схема, иллюстрирующая синтаксис заголовка серии последовательных макроблоков.
Фиг.16 - это схема, иллюстрирующая пример CurrSliceType.
Фиг.17 - это схема, иллюстрирующая синтаксис заголовка серии последовательных макроблоков.
Фиг.18 - это блок-схема, иллюстрирующая структуру устройства декодирования видео согласно третьему варианту осуществления настоящего изобретения.
Фиг.19 - это блок-схема последовательности операций способа для устройства декодирования видео согласно третьему варианту осуществления настоящего изобретения.
Оптимальный режим осуществления изобретения
Далее подробно описываются варианты осуществления настоящего изобретения со ссылкой на чертежи.
(Первый вариант осуществления: кодирование)
Согласно первому варианту осуществления, показанному на фиг. 1, видеосигнал делится на множество блоков пикселов и вводится в устройство 100 кодирования видео в качестве сигнала 116 входного изображения. Устройство 100 кодирования видео имеет в качестве режимов, приводимых в исполнение модулем 101 прогнозирования, множество режимов прогнозирования, отличающихся по размеру блока или способу формирования прогнозирующего сигнала. В настоящем варианте осуществления предполагается, что кодирование выполняется с левой верхней части кадра до правой нижней ее части, как показано на фиг. 4A.
Сигнал 116 входного изображения, вводимый в устройство 100 кодирования видео, делится на множество блоков, каждый из которых содержит 16x16 пикселов, как показано на фиг. 4B. Часть сигнала 116 входного изображения вводится в модуль 101 прогнозирования и кодируется посредством кодера 111 посредством модуля 102 определения режима, преобразователя 103 и квантователя 104. Этот кодированный сигнал изображения сохраняется в выходном буфере 120 и затем выводится в качестве кодированных данных 115 с синхронизацией вывода, контролируемой посредством контроллера 110 кодирования.
Блок пикселов 16×16, показанный на фиг. 4B, упоминается как макроблок и имеет базовый размер блоков обработки для последующего процесса кодирования. Устройство 100 кодирования видео считывает сигнал 116 входного изображения в единицах блока и кодирует его. Макроблок может быть в единицах блока пикселов 32х32 или в единицах блока пикселов 8×8.
Модуль 101 прогнозирования формирует сигнал 118 прогнозирующего изображения с помощью всех режимов, выбираемых в макроблоке посредством использования кодированного опорного изображения, сохраненного в запоминающем устройстве 107 опорных изображений. Модуль 101 прогнозирования формирует все сигналы прогнозирующих изображений для всех режимов кодирования, в которых блок пикселов объекта может быть кодирован. Тем не менее, когда следующее прогнозирование не может быть выполнено без формирования локального декодированного изображения в макроблоке, аналогично внутрикадровому прогнозированию по H.264 (прогнозированию пикселов 4×4 (фиг. 4C) или прогнозированию пикселов 8×8 (фиг. 4D), модуль 101 прогнозирования может выполнять ортогональное преобразование и квантование, а также деквантование и обратное преобразование.
Сигнал 118 прогнозирующего изображения, сформированный в модуле 101 прогнозирования, не вводится в модуль 102 определения режима вместе с сигналом 116 входного изображения. Модуль 102 определения режима вводит сигнал 118 прогнозирующего изображения в обратный преобразователь 106, формирует сигнал 119 ошибки прогнозирования посредством вычитания сигнала 118 прогнозирующего изображения из сигнала 116 входного изображения, и вводит его в преобразователь 103. В то же время, модуль 102 определения режима определяет режим на основе информации режима, спрогнозированной с помощью модуля 101 прогнозирования и сигнала 119 ошибки прогнозирования. Поясняя конкретнее, режим определяется с использованием затрат K, показанных посредством следующего уравнения (1) в данном варианте осуществления:
K = SAD + λ OH, (1)
где OH указывает информацию режима, SAD - это абсолютная сумма сигналов ошибки прогнозирования, а λ - это константа. Константа λ определяется на основе значения ширины квантования или параметра квантования. Таким образом, режим определяется на основе затрат K. Режим, в котором затраты K указывают наименьшее значение, выбирается в качестве оптимального режима.
В данном варианте осуществления используется абсолютная сумма информации режима и сигнала ошибки прогнозирования.
В качестве еще одного варианта осуществления режим может быть определен с использованием информации режима или только абсолютной суммы сигнала ошибки прогнозирования. Альтернативно, преобразование Адамара может быть подвержено этим параметрам, чтобы получить и использовать приблизительное значение. Дополнительно затраты могут быть вычислены с использованием действий сигнала входного изображения, и функция затрат может быть вычислена с использованием ширины квантования и параметра квантования.
Предварительный кодер подготавливается согласно другому варианту осуществления для вычисления затрат. Сигнал ошибки прогнозирования формируется на основе режима кодирования предварительного кодера. Сигнал ошибки прогнозирования фактически кодируется, чтобы сформировать данные кода. Данные 113 локального декодированного изображения создаются посредством локального декодирования данных кода. Режим может быть определен с использованием числа кодированных битов данных кода и квадратичной ошибки сигнала 113 локального декодированного изображения и входного видеосигнала 116. Уравнение определения режима этого случая выражается посредством следующего уравнения (2):
J = D + λ×R (2),
где J указывает затраты, D указывает искажение кодирования, представляющее квадратическую ошибку входного видеосигнала 116 и сигнала 113 локального декодированного изображения, а R представляет число кодированных битов, оцененных посредством временного кодирования. Когда эти затраты J используются, схемная шкала возрастает, поскольку временное кодирование и локальное кодирование (деквантование и обратное преобразование) требуются в каждом режиме кодирования. Тем не менее, точное число кодированных битов и искажение кодирования может быть использовано, и высокая эффективность кодирования может сохраняться. Затраты могут быть вычислены с использованием только числа кодированных битов или только искажения кодирования. Функция затрат может быть вычислена с использованием значения, аппроксимированного к этим параметрам.
Модуль 102 определения режима соединен с преобразователем 103 и обратным преобразователем 106. Информация режима, выбранная с помощью модуля 102 определения режима, и сигнал 118 ошибки прогнозирования вводятся в преобразователь 103. Преобразователь 103 преобразует входной сигнал 118 ошибки прогнозирования в коэффициенты преобразования и формирует данные коэффициентов преобразования. Сигнал 118 ошибки прогнозирования подвергается ортогональному преобразованию с использованием, например, ортогонального косинусного преобразования (DCT). В качестве модификации, коэффициент преобразования может быть сформирован с использованием такой методики, как вейвлет-преобразование или анализ независимых компонентов.
Коэффициент преобразования, предоставляемый из преобразователя 103, отравляется в квантователь 104 и посредством него квантуется. Параметр квантования, требуемый для квантования, задается для контроллера 110 кодирования. Квантователь 104 квантует коэффициент преобразования с использованием матрицы 114 квантования, введенной из формирователя 109 матриц квантования, и формирует квантованный коэффициент 112 преобразования.
Квантованный коэффициент 112 преобразования вводится в процессор 111 кодирования вместе с информацией по методам прогнозирования, такой как информация режима и параметр квантования. Процессор 111 кодирования подвергает квантованный коэффициент 112 преобразования вместе с введенной информацией режима кодированию по энтропии (кодированию Хаффмана или арифметическому кодированию). Данные 115 кода, предоставляемые посредством кодирования по энтропии из процессора 111 кодирования, выводится из видеокодера 100 в выходной буфер 120 и мультиплексируются. Мультиплексированные данные кода передаются из выходного буфера 120.
Когда матрица 114 квантования, которая должна быть использована для квантования, сформирована, информация команд, указывающая использование матрицы квантования, предоставляется в формирователь 108 параметров формирования посредством контроллера 110 кодирования. Формирователь 108 параметров формирования задает параметр 117 формирования матрицы квантования согласно информации команд и выводит его в формирователь 109 матриц квантования и процессор 111 кодирования.
Параметр 117 формирования матрицы квантования может быть задан посредством внешнего модуля задания параметров (не показан), контролируемого посредством контроллера 110 кодирования. Кроме того, он может быть обновлен в единицах блока кодированного изображения, в единицах серии последовательных макроблоков или в единицах изображения. Формирователь 108 параметров формирования содержит функцию для контролирования синхронизации задания параметра 117 формирования матрицы квантования.
Формирователь 109 матриц квантования формирует матрицу 114 квантования посредством способа, установленного для параметра 117 формирования матрицы квантования, и выводит ее в квантователь 104 и деквантователь 105. В то же время, параметр 117 формирования матрицы квантования, введенный в процессор 111 кодирования, подвергается кодированию по энтропии вместе с информацией режима и коэффициента 112 преобразования, которые введены из квантователя 104.
Деквантователь 105 деквантует коэффициент 112 преобразования, квантованный с помощью квантователя 104, согласно параметру квантования, заданному посредством контроллера 110 кодирования, и матрице 114 квантования, введенной из формирователя 109 матриц квантования. Деквантованный коэффициент преобразования отправляется в обратный преобразователь 106. Обратный преобразователь 106 подвергает деквантованный коэффициент преобразования обратному преобразованию (например, обратному дискретному косинусному преобразованию), чтобы декодировать сигнал ошибки прогнозирования.
Сигнал 116 ошибки прогнозирования, декодированный с помощью обратного преобразователя 106, прибавляется к сигналу 118 прогнозирующего изображения для режима определения, который предоставлен из модуля 102 определения режима. Суммированный сигнал из сигнала ошибки прогнозирования и сигнала 118 прогнозирующего изображения становится локальным декодированным сигналом 113 и вводится в опорное запоминающее устройство 107. Запоминающее устройство 107 опорных изображений сохраняет локальный декодированный сигнал 113 как восстанавливающее изображение. Изображение, сохраненное в запоминающем устройстве 107 опорных изображений, тем самым становится опорным изображением, на которое ссылаются, когда модуль 101 прогнозирования формирует сигнал прогнозирующего изображения.
Когда контур кодирования (процесс, который должен быть приведен в исполнение в порядке модуль 101 прогнозирования --> модуль 102 определения режима --> преобразователь 103 --> квантователь 104 --> деквантователь 105 --> обратный преобразователь 106 --> запоминающее устройство 107 опорных изображений на фиг. 1) приводится в исполнение для всех режимов, выбираемых для макроблока объектов, один контур завершается. Когда контур кодирования завершается для макроблока, сигнал 116 входного изображения следующего блока вводится и кодируется. Формирователь 108 матриц квантования должен формировать матрицу квантования каждый макроблок. Сформированная матрица квантования сохраняется до тех пор, пока параметр 117 формирования матрицы квантования, заданный посредством формирователя 108 параметров формирования, не будет обновлен.
Контроллер 110 кодирования выполняет контроль с обратной связью числа кодированных битов, контроль характеристики квантования их, контроль определения режима и т.д. Также, контроллер 110 кодирования выполняет контроль скорости для контролирования числа кодированных битов, контроль модуля 101 прогнозирования и контроль внешнего входного параметра. В то же время, контроллер 110 кодирования контролирует выходной буфер 120, чтобы выводить кодовые данные наружу с соответствующей синхронизацией.
Формирователь 109 матриц квантования, показанный на фиг. 2, формирует матрицу 114 квантования на основе параметра 117 формирования матрицы квантования. Матрица квантования - это матрица, показанная на фиг. 5A, или матрица, показанная на фиг. 5B. Матрица квантования подвергается взвешиванию посредством соответствующего весового коэффициента каждую частотную точку в случае квантования и деквантования. Фиг. 5A показывает матрицу квантования, соответствующую блоку пикселов 4×4, а фиг. 5B показывает матрицу квантования, соответствующую блоку пикселов 8×8. Формирователь 109 матриц квантования содержит модуль 201 расшифровки сформированных параметров, переключатель 202 и один или более формирователей 203 матриц. Блок 201 расшифровки сформированных параметров расшифровывает входной параметр 117 формирования матрицы квантования и выводит информацию переключения из переключателя 202 согласно каждому способу формирования матриц. Эта информация переключения задается посредством контроллера 210 формирования матриц квантования и изменяет выходной терминал переключателя 202.
Переключатель 202 переключается согласно информации переключения, предоставляемой посредством модуля 201 расшифровки сформированных параметров и заданной посредством контроллера 210 формирования матриц квантования. Например, когда тип формирования матрицы в параметре 117 формирования матриц квантования - это первый тип, переключатель 202 подключает выходной терминал блока 201 расшифровки сформированных параметров к формирователю 203 матриц. С другой стороны, когда тип формирования матрицы в параметре 117 формирования матриц квантования - это N-ный тип, переключатель 202 подключает выходной терминал блока 201 расшифровки сформированных параметров к N-му формирователю 203 матриц.
Когда тип формирования матриц в параметре 117 формирования матриц квантования - это M-тый тип (N<M), и M-тый формирователь 203 матриц не включен в формирователь 109 матриц квантования, переключатель 202 подключается к соответствующему формирователю матриц посредством способа, при котором выходной терминал модуля 201 расшифровки сформированных параметров определяется заранее. Например, когда параметр формирования матриц квантования типа, который не существует в формирователе 109 матриц квантования, вводится, переключатель 202 всегда подключает выходной терминал к первому формирователю матриц. Когда аналогичный тип формирования матриц известен, он может быть подключен к формирователю матриц типа ближайшего L-го к входному M-му. В любом случае, формирователь 109 матриц квантования подключает выходной терминал модуля 201 расшифровки сформированных параметров к одному из первого по N-ный формирователей 203 матриц согласно параметру 117 формирования матриц квантования посредством заранее определенного способа подключения.
Каждый формирователь 203 матриц формирует матрицу 114 квантования согласно информации соответствующего параметра формирования матриц квантования. Конкретно, информация 117 параметров формирования матриц квантования состоит из информации параметров типа формирования матриц (T), степени изменения (A) матрицы квантования, степени искажения (B) и элемента корректировки (C). Эти параметры отмечаются посредством разных названий, но могут быть использованы любым видом способов. Эти параметры задаются как набор параметров, выражаемый посредством следующего уравнения (3):
QMP = (T, A, B, C). (3)
QMP представляет информацию параметров формирования матриц квантования. Тип формирования матриц (T) указывает, что формирователь 203 матриц, соответствующий какому типу должен быть использован. С другой стороны, как использовать степень изменения (A), степень искажения (B) и член корректировки (C), может быть свободно задано для каждого типа формирования матриц. Первый тип формирования матриц поясняется со ссылкой на фиг. 6A.
Функция формирования матриц, когда тип формирования матриц равен 1, представляется посредством следующих уравнений (4) (5) и (6):
[Формула 1]
r = |x+y| (4)
4x4
Q(x,y) = a·r+c (5)
8x8
Q(x,y) = a/2·r+c (6)
Дополнительно примеры табличного преобразования степени изменения (A), степени искажения (B) и члена корректировки (C), используемого для первого типа матриц, показаны посредством следующих уравнений (7), (8) и (9):
a = 0,1·A (7)
B = 0 (8)
c = 16+C (9),
где степень изменения (A) представляет степень изменения, кода расстояние от DC-компонента до частотной позиции матрицы квантования предполагается равным r. Например, если степень изменения (A) является положительным значением, значение матрицы возрастает по мере того, как увеличивается расстояние r. В этом случае высокая полоса пропускания может быть задана при большом значении. В отличие от этого, если степень изменения (A) является отрицательным значением, значение матрицы возрастает с увеличением расстояния r. В этом случае шаг квантования может быть задан приблизительно при низкой полосе пропускания. В первом типе формирования матриц значение 0 всегда задается без использования степени искажения (B). С другой стороны, элемент корректировки (C) представляет сегмент прямой линии, выраженной посредством степени изменения (A). Поскольку первая функция формирования матриц может быть обработана только посредством операции умножения, сложения, вычитания и сдвига, это преимущественно в том, что затраты на аппаратные средства могут быть снижены.
Матрица квантования, сформированная на основе уравнений (7), (8) и (9), в случае QMP = (1, 40, 0, 0) выражается посредством следующего уравнения (10):
[Формула 2]
(10)
Поскольку точность переменной каждого из степени изменения (A), степени искажения (B) и элемента корректировки (C) влияет на масштаб аппаратных средств, важно подготовить таблицу, имеющую хорошую эффективность в определенном диапазоне. В уравнении (7), когда степень изменения (A), как предполагается, равна неотрицательному целому числу из 6 битов, можно получить градиент от 0 до 6,4. Тем не менее, отрицательное значение не может быть получено. Соответственно, можно получить диапазон от -6,3 до 6,4 битов посредством использования таблицы перевода с использованием 7 битов, как показано посредством следующего уравнения (11):
a=0,1×(A-63). (11)
Если предоставляется таблица перевода степени изменения (A), степени искажения (B) и элемента корректировки (C), соответствующих типу формирования матриц (T), и точность степени изменения (A), степени искажения (B) и элемента корректировки (C) запрашивается для каждого типа формирования матриц (T), можно задавать надлежащий параметр матриц квантования согласно состоянию кодирования и среде применения. В первом типе формирования матриц, выраженном посредством уравнений (4), (5) и (6), степень искажения (B) всегда становится равной 0. Следовательно, необязательно передавать параметр, соответствующий степени искажения (B). Посредством типа формирования матриц число параметров, которые должны быть использованы, может быть снижено. В этом случае неиспользуемые параметры не кодируются.
Далее показана функция формирования матриц квантования с использованием квадратичной функции в качестве второго типа формирования матриц. Схематичное представление этого типа формирования матриц показано на фиг. 6C.
[Формула 3]
(12)
(13)
Параметры (A), (B) и (C), связанные с функциями a, b и c, соответственно, представляют степень изменения, искажение и значение корректировки квадратичной функции. Эти функции применимы для того, чтобы значительно увеличивать значение по мере того, как расстояние возрастает. Когда матрица квантования в случае QMP = (2, 10, 1, 0) вычисляется с использованием, например, уравнений (4), (8) и (10), матрица квантования по следующему уравнению (14) может быть сформирована:
[Формула 4]
(14)
Дополнительно следующие уравнения (15) и (16) представляют примеры функций формирования матриц третьего типа формирования матриц:
[Формула 5]
(15)
(16)
Элемент искажения, показанный на фиг. 6B, добавляется в первый тип матриц. Амплитуда искажения (B) представляет модуль амплитуды синусоидальной функции. Когда b - это положительное значение, возникает эффект того, что прямая линия искривляется в нижней стороне. С другой стороны, когда b - это отрицательное значение, возникает эффект того, что прямая линия искривляется в верхней стороне. Необходимо изменить соответствующую фазу посредством блока пикселов 4x4 или блока пикселов 8x8. Различные искажения могут быть сформированы посредством изменения фазы. Когда матрица квантования в случае QMP = (3, 32, 7, -6) вычисляется с использованием, например, уравнений (4), (8) и (15), матрица квантования по следующему уравнению (17) может быть сформирована:
[Формула 6]
(17)
Хотя синусоидальная функция используется в этом варианте осуществления, могут быть использованы косинусоидная функция и другие функции, а фаза или период могут быть изменены. Амплитуда искажения (B) может использовать различные функции, такие как сигма-функция, гауссова функция, логарифмическая функция и N-мерная функция. Дополнительно, когда переменные степени изменения (A), включающие в себя амплитуду искажения (B) и элемент корректировки (C), являются целыми значением, таблица перевода может быть подготовлена заранее, чтобы избежать вычислительного процесса с высокой нагрузкой обработки, к примеру, синусоидальных функций.
Функция, используемая для типа формирования матрицы, подвергается вычислению действительных чисел. Соответственно, когда вычисление синусоидальной функции выполняется каждое кодирование, процесс вычислений возрастает. Дополнительно, должны быть подготовлены аппаратные средства для выполнения вычисления синусоидальной функции. Таким образом, может быть предоставлена таблица перевода согласно точности параметра, которая должна быть использована.
Поскольку вычисления с плавающей запятой возрастают по затратам в сравнении с целочисленными вычислениями, параметры формирования матриц квантования задаются посредством целых значений, соответственно, и соответствующее значение извлекается из отдельной таблицы перевода, соответствующей типу формирования матрицы.
Когда вычисление с точностью действительных чисел возможно, расстояние может быть рассчитано посредством следующего уравнения (18):
[Формула 7]
(18)
Дополнительно можно изменять значения в вертикальном и поперечном направлениях матрицы квантования посредством взвешивания их согласно расстоянию. При предоставлении большой важности, к примеру, вертикальному направлению функция расстояния, указанная посредством следующего уравнения (19), используется:
[Формула 8]
r=|2x + y|. (19)
Когда матрица квантования в случае QMP = (2, 1, 2, 8) сформирована посредством вышеуказанного уравнения, предоставляется матрица квантования, выраженная посредством следующего уравнения (20):
[Формула 9]
(20)
Матрицы 204 квантования, сформированные с помощью от первого до N-го формирователей 203 матриц, выводятся из формирователя 109 матриц квантования выборочно. Контроллер 210 формирования матриц квантования контролирует переключатель 202, чтобы переключать выходной терминал переключателя 202 согласно каждому типу формирования матриц, расшифрованному с помощью модуля 201 расшифровки параметров формирования. Дополнительно контроллер 210 формирования матриц квантования проверяет то, сформирована ли корректно матрица квантования, соответствующая параметру формирования матриц квантования.
Конфигурация устройства 100 кодирования видео и формирователя 109 матриц квантования согласно варианту осуществления поясняется выше. Пример того, чтобы осуществлять способ кодирования видео с помощью устройства 100 кодирования видео и формирователя 109 матриц квантования, описывается со ссылкой на блок-схему последовательности операций способа по фиг. 3.
Сначала сигнал изображения одного кадра считывается из внешнего запоминающего устройства (не показано) и вводится в устройство 100 кодирования видео в качестве сигнала 116 входного изображения (этап S001). Сигнал 116 входного изображения делится на макроблоки, каждый из которых состоит из пикселов 16x16. Параметр 117 формирования матриц квантования задается в устройстве 100 кодирования видео (S002). Т.е. контроллер 110 кодирования отправляет информацию, указывающую использовать матрицу квантования для текущего кадра, в формирователь 108 параметров. При приеме этой информации формирователь 108 параметров отправляет параметр формирования матриц квантования в формирователь 109 матриц квантования. Формирователь 109 матриц квантования формирует матрицу квантования согласно типу входного параметра формирования матриц квантования.
Когда сигнал 116 входного изображения вводится в устройство 100 кодирования видео, кодирование начинается в единицах блока (этап S003). Когда один макроблок сигнала 116 входного изображения вводится в модуль 101 прогнозирования, модуль 102 определения режима инициализирует индекс, указывающий режим кодирования и затраты (этап S004). Сигнал 118 прогнозирующего изображения одного режима прогнозирования, выбираемого в единицах блока, формируется посредством модуля 101 прогнозирования с использованием сигнала 116 входного изображения (этап S005). Разность между этим сигналом 118 прогнозирующего изображения и сигналом 116 входного изображения вычисляется, посредством чего формируется сигнал 119 ошибки прогнозирования. Затраты вычисляются из суммы абсолютных значений SAD этого сигнала 119 ошибки прогнозирования и числа кодированных битов OH режима прогнозирования (этап S006). В противном случае выполняется локальное декодирование для того, чтобы сформировать локальный декодированный сигнал 113, и затраты вычисляются из числа кодированных битов D сигнала ошибки, указывающих разностное значение между локальным кодированным сигналом 113 и сигналом 116 входного изображения, и числа кодированных битов R кодированного сигнала, полученного посредством временного кодирования сигнала входного изображения.
Модуль 102 определения режима определяет то, являются ли вычисленные затраты меньше наименьших затрат min_cost (этап S007). Когда они меньше (определение "ДА"), наименьшие затраты обновляются посредством вычисленных затрат, и режим кодирования, соответствующий вычисленным затратам, сохраняется в качестве индекса best_mode (этап S008). В то же время прогнозирующее изображение сохраняется (этап S009). Когда вычисленные затраты выше наименьших затрат min_cost (определение "НЕТ"), индекс, указывающий номер режима, увеличивается, и определяется то, является ли индекс после увеличения последним режимом (этап S010).
Когда индекс больше MAX, указывающего номер последнего режима (определение "ДА"), информация режима кодирования best_mode и сигнал 119 ошибки прогнозирования отправляются в преобразователь 103 и квантователь 104, чтобы быть преобразованными и квантованными (этап S011). Квантованный коэффициент 112 преобразования вводится в процессор 111 кодирования и кодируется по энтропии вместе с прогнозирующей информацией в процессоре 111 кодирования (этап S012). С другой стороны, когда индекс меньше MAX, указывающего номер последнего режима (определение "НЕТ"), сигнал 118 прогнозирующего изображения режима кодирования, указанного посредством следующего индекса, формируется (этап S005).
Когда кодирование выполнено в best_mode, квантованный коэффициент 112 преобразования вводится в деквантователь 105 и обратный преобразователь 106, чтобы быть деквантованным и обратно преобразованным (этап S013), посредством чего сигнал ошибки прогнозирования декодируется. Этот декодированный сигнал ошибки прогнозирования добавляется в сигнал прогнозирующего изображения best_mode, предоставленный из модуля 102 определения режима, чтобы сформировать локальный декодированный сигнал 113. Этот локальный декодированный сигнал 113 сохраняется в запоминающем устройстве 107 опорных изображений как опорное изображение (этап S014).
Завершено ли кодирование одного кадра, определяется (этап S015). Когда процесс закончен (определение "ДА"), сигнал входного изображения следующего кадра считывается, и затем процесс возвращается к этапу S002 для кодирования. С другой стороны, когда процесс кодирования кадра не закончен (определение "НЕТ"), процесс возвращается к этапу 003, и затем следующий блок пикселов вводится, и процесс кодирования продолжается.
Выше приведено краткое описание устройства 100 кодирования видео и способа кодирования видео в варианте осуществления настоящего изобретения.
В вышеприведенном варианте осуществления формирователь 108 матриц квантования формирует и использует одну матрицу квантования, чтобы кодировать один кадр. Тем не менее, множество матриц квантования может быть сформировано из одного кадра посредством задания множества параметров формирования матриц квантования. В этом случае, поскольку множество матриц квантования, сформированных в различных типах формирования матриц с помощью от первого по N-ный формирователя 203 матриц, могут быть переключены в одном кадре, становится возможным гибкое квантование. Конкретно, первый формирователь матриц формирует матрицу квантования, имеющую постоянный весовой коэффициент, а второй формирователь матриц формирует матрицу квантования, имеющую большое значение при высокой полосе пропускания. Контроль квантования обеспечивается в меньшем диапазоне посредством изменения этих двух матриц каждый блок, который должен быть кодирован. Поскольку число кодированных битов, переданных для формирования матрицы квантования, составляет несколько битов, высокая эффективность кодирования может быть сохранена.
В варианте осуществления настоящего изобретения поясняется методика формирования матриц квантования размера блока пикселов 4x4 и размера блока пикселов 8x8 для формирования матрицы квантования, касающейся компонента яркости. Тем не менее, формирование матрицы квантования возможно посредством аналогичной схемы для цветоразностного компонента. Далее, чтобы не допустить увеличения объема служебной информации для мультиплексирования параметра формирования матрицы квантования цветоразностного компонента за счет синтаксиса, может быть использована та же матрица квантования, что и для компонента яркости, и может быть составлена и использована матрица квантования со смещением, соответствующим каждой частотной позиции.
В настоящем варианте осуществления настоящего изобретения поясняется способ формирования матриц квантования с использованием тригонометрической функции (синусоидальной функции) в N-ном формирователе 203 матриц. Тем не менее, функцией, которая должна быть использована, может быть сигма-функция или гауссова функция. Можно создавать более сложную матрицу квантования согласно типу функции. Дополнительно, когда соответствующий тип формирования матриц (T) из параметров формирования матриц квантования QMP, предоставляемых от контроллера 210 формирования матриц квантования, не может использоваться в устройстве кодирования видео, можно создавать матрицу квантования посредством замены на тип формирования матриц, сильно напоминающий тип формирования матрицы (T). Конкретно, второй тип формирования матриц - это функция того, что степень искажения с использованием синусоидальной функции добавлена в первый тип формирования матриц, и аналогична тенденции сформированной матрицы квантования. Следовательно, когда третий формирователь матриц не может быть использован в устройстве кодирования, когда введено T=3, первый формирователь матриц используется.
В варианте осуществления настоящего изобретения используется четыре параметра типа формирования матриц (T), степени изменения (A) матрицы квантования, степени искажения (B) и элемента корректировки (C). Тем не менее, могут быть использованы параметры, отличные от этих параметров, и может быть использовано число параметров, определенное посредством типа формирования матриц (T). Дополнительно заранее может быть предоставлена таблица перевода параметров, определенных посредством типа формирования матриц (T). Число кодированных битов для кодирования параметров формирования матрицы квантования уменьшается по мере того, как число параметров формирования матрицы квантования, которые должны быть переданы, уменьшается, и точность снижается. Тем не менее, поскольку в то же время степень свободы матрицы квантования понижается, должны быть выбраны только число параметров формирования матриц квантования и их точность с учетом баланса между профилем и масштабом аппаратных средств, который должен быть применен.
В варианте осуществления настоящего изобретения кадр, который должен быть обработан, делится на прямоугольные блоки с размером пиксела 16×16, и затем блоки кодируются с верхнего левого угла экрана к его правому нижнему углу последовательно. Тем не менее, последовательность обработки может быть другой последовательностью. Например, блоки могут кодироваться с нижнего правого к верхнему левому углу или в форме спирали от середины экрана. Дополнительно, блоки могут кодироваться с правого верхнего к левому нижнему углу или от периферийной части экрана к его центральной части.
В варианте осуществления настоящего изобретения кадр делится на макроблоки с размером блока пикселов 16×16, и блок пикселов 8×8 или блок пикселов 4×4 используется в качестве единицы обработки для внутрикадрового прогнозирования. Тем не менее, блок, который должен быть обработан, не обязательно должен быть составлен в форме равномерного блока и может быть составлен с таким размером блока пикселов, как размер блока пикселов 16×8, размер блока пикселов 8×16, размер блока пикселов 8×4, размер блока пикселов 4×8. Например, блок пикселов 8×4 и блок пикселов 2×2 доступны в рамках аналогичной структуры. Дополнительно не обязательно брать равномерный размер блока в одном блоке, и различные размеры блока могут быть выбраны. Например, блок пикселов 8x8 и блок пикселов 4×4 могут совместно использоваться в одном макроблоке. В этом случае, хотя число кодированных битов для кодирования разделенных блоков возрастает с увеличением числа разделенных блоков, возможно прогнозирование более высокой точности, что приводит к уменьшению ошибки прогнозирования. Следовательно, a размер блока должен выбираться только с учетом баланса между числом кодированных битов коэффициентов преобразования и локального кодированного изображения.
В варианте осуществления настоящего изобретения предоставляются преобразователь 103, квантователь 104, деквантователь 105 и обратный преобразователь 106. Тем не менее, сигнал ошибки прогнозирования не обязательно должен всегда подвергаться преобразованию, квантованию, обратному преобразованию и деквантованию, и сигнал ошибки прогнозирования может быть кодирован с помощью процессора 109 кодирования как есть, и квантование и обратное квантование может быть опущено. Аналогично, преобразование и обратное преобразование не обязательно должно выполняться.
(Второй вариант осуществления: кодирование)
Многопутевое кодирование согласно второму варианту осуществления поясняется со ссылкой на блок-схему последовательности операций способа по фиг. 12. В этом варианте осуществления подробное описание последовательности операций кодирования, имеющих такую же функцию, как и в первом варианте осуществления по фиг. 3, т.е. этапов S002-S015, опускается. Когда оптимальная матрица квантования задается каждое изображение, матрица квантования должна быть оптимизирована. По этой причине многопутевое кодирование является эффективным. Согласно этому многопутевому кодированию параметр формирования матриц квантования может быть выбран эффективно.
В этом варианте осуществления для многопутевого кодирования этапы S101-S108 добавлены перед этапом S002 первого варианта осуществления, как показано на фиг. 12. Другими словами, сигнал 116 входного изображения одного кадра вводится в устройство 100 кодирования видео (этап S101) и кодируется посредством разделения на макроблоки размером 16×16 пикселов. Далее контроллер 110 кодирования инициализирует индекс параметра формирования матриц квантования, используемый для текущего кадра, равным 0, и также инициализирует min_costQ, представляющие минимальные затраты (этап S102). Затем контроллер 210 формирования матриц квантования выбирает индекс параметра формирования матриц квантования, показанного в PQM_idx, из набора параметров формирования матриц квантования, и отправляет его в формирователь 109 матриц квантования. Формирователь 109 матриц квантования формирует матрицу квантования согласно схеме входного параметра формирования матриц квантования (этап S103). Один кадр кодируется с использованием матрицы квантования, сформированной в это время (этап S104). Затраты накапливаются в каждый макроблок, чтобы вычислить затраты кодирования одного кадра (этап S105).
Определяется то, меньше ли вычисленные затраты наименьших затрат min_costQ (этап S106). Когда вычисленные затраты меньше наименьших затрат (определение "ДА"), наименьшие затраты обновляются на затраты вычисления. В это время параметр формирования матриц квантования сохраняется как индекс Best_PQM_idx (этап S107). Когда вычисленные затраты больше наименьших затрат min_costQ (определение "НЕТ"), PQM_index увеличивается, и определяется то, является ли увеличенное PQM_idx последним (этап S108). Если определение "НЕТ", индекс параметра формирования матрицы квантования обновляется, и дальнейшее кодирование продолжается. С другой стороны, если определение "ДА", Best_PQM_idx вводится в формирователь 109 матриц квантования повторно, и основная последовательность операций кодирования, т.е. этапы S002-S015 по фиг. 3, приводится в исполнение. Когда данные кода, кодированные в Best_PQM_idx во время многопутевого процесса, сохраняются, основная последовательность операций кодирования не обязательно должна приводиться в исполнение, и тем самым можно завершить кодирование кадра посредством обновления данных кода.
Во втором варианте осуществления, когда кодирование выполняется в многопутевом режиме, не обязательно всегда кодировать весь кадр. Доступный параметр формирования матрицы квантования может быть определен посредством распределения коэффициентов преобразования, полученных в единицах блока. Например, когда коэффициенты преобразования, сформированные на низкой скорости, равны практически 0, поскольку свойство данных кода не изменяется в том случае, даже если матрица квантования не используется, процесс может быть существенно сокращен.
Далее поясняется способ кодирования параметра формирования матрицы квантования. Как показано на фиг. 7, синтаксис состоит главным образом из трех частей. Высокоуровневый синтаксис (401) сжимается с информацией синтаксиса более высокого уровня, чем уровень серии последовательных макроблоков. Синтаксис (402) уровня серии последовательных макроблоков описывает требуемую информацию каждую серию последовательных макроблоков. Синтаксис (403) уровня серии последовательных макроблоков описывает значение изменения параметра квантования или информации режима, требуемой для каждого макроблока. Эти синтаксисы конфигурируются посредством дополнительных подробных синтаксисов. Другими словами, высокоуровневый синтаксис (401) состоит из таких последовательностей, как синтаксис (404) наборов параметров последовательности и синтаксис (405) наборов параметров изображения, и синтаксис уровня изображений. Синтаксис (402) уровня серии последовательных макроблоков состоит из синтаксиса (406) заголовка серии последовательных макроблоков, синтаксиса (407) данных серии последовательных макроблоков и т.д. Дополнительно синтаксис (403) уровня макроблока состоит из синтаксиса (408) заголовка макроблока, синтаксиса (409) данных макроблока и т.д.
Вышеуказанные синтаксисы являются компонентами, которые должны быть абсолютно необходимыми для декодирования. Когда информация синтаксиса отсутствует, становится невозможным корректно восстанавливать данные во время декодирования. С другой стороны, предусмотрен вспомогательный синтаксис для мультиплексирования информации, которая не всегда требуется во время декодирования. Этот синтаксис описывает статистические данные изображения, параметры камеры и т.д., и готовится в качестве средства, чтобы фильтровать и корректировать данные во время декодирования.
В этом варианте осуществления обязательной информацией синтаксиса является синтаксис (404) наборов параметров последовательности и синтаксис (405) наборов параметров изображения. Каждый синтаксис описывается далее.
Ex_seq_scaling_matrix_flag, показанный в синтаксисе набора параметров последовательности на фиг. 8, является флагом, указывающим то, используется ли матрица квантования. Когда этот флаг равен TRUE, матрица квантования может быть изменена в единицах последовательности. С другой стороны, когда флаг равен FALSE, матрица квантования не может быть использована в последовательности. Когда ex_seq_scaling_matrix_flag равен TRUE, дополнительно отправляются ex_matrix_type, ex_matrix_A, ex_matrix_B и ex_matrix_C. Они соответствуют типу формирования матриц (T), степени изменения (A) матрицы квантования, степени искажения (B) и элементу корректировки (C), соответственно.
Ex_pic_scaling_matrix_flag, показанный в синтаксисе набора параметров изображения на фиг. 9, является флагом, указывающим то, изменяется ли матрица квантования каждое изображение. Когда этот флаг равен TRUE, матрица квантования может быть изменена в единицах изображения. С другой стороны, когда флаг равен FALSE, матрица квантования не может быть использована каждое изображение. Когда ex_pic_scaling_matrix_flag равен TRUE, дополнительно передаются ex_matrix_type, ex_matrix_A, ex_matrix_B и ex_matrix_C. Они соответствуют типу формирования матриц (T), степени изменения (A) матрицы квантования, степени искажения (B) и элементу корректировки (C), соответственно.
Пример того, что множество параметров формирования матриц квантования отправляется, показан на фиг. 10 в качестве еще одного примера синтаксиса набора параметров изображения. Ex_pic_scaling_matrix_flag, показанный в синтаксисе набора параметров изображения, является флагом, указывающим то, изменяется ли матрица квантования каждое изображение. Когда этот флаг равен TRUE, матрица квантования может быть изменена в единицах изображения. С другой стороны, когда флаг равен FALSE, матрица квантования не может быть использована каждое изображение. Когда ex_pic_scaling_matrix_flag равен TRUE, дополнительно отправляется ex_num_of_matrix_type. Это значение представляет число наборов параметров формирования матриц квантования. Множество матриц квантования может быть отправлено посредством комбинации наборов. Ex_matrix_type, ex_matrix_A, ex_matrix_B и ex_matrix_C, которые отправляются последовательно, отправляются посредством значения ex_num_of_matrix_type. Как результат, множество матриц квантования может быть предоставлено в изображении. Дополнительно, когда матрица квантования должна быть изменена в единицах блока, биты могут передаваться каждый блок посредством числа соответствующих матриц квантования и обмениваться. Например, если ex_num_of_matrix_type равен 2, синтаксис в 1 бит добавляется к синтаксису заголовка макроблока. Матрица квантования изменяется согласно тому, равно это значение TRUE или FALSE.
В настоящем варианте осуществления, когда множество параметров формирования матриц квантования сохраняется в одном кадре, как описано выше, они могут быть мультиплексированы во вспомогательном синтаксисе. Пример того, что множество параметров формирования матриц квантования отправляется с использованием вспомогательного синтаксиса, показан на фиг. 11. Ex_sei_scaling_matrix_flag, показанный во вспомогательном синтаксисе, является флагом, указывающим то, изменяется ли множество матриц квантования. Когда этот флаг равен TRUE, матрицы квантования могут быть изменены. С другой стороны, когда флаг равен FALSE, матрицы квантования не могут быть изменены. Когда ex_sei_scaling_matrix_flag равен TRUE, дополнительно отправляется ex_num_of_matrix_type. Это значение указывает число наборов параметров формирования матриц квантования. Множество матриц квантования может быть отправлено посредством комбинации наборов. Что касается ex_matrix_type, ex_matrix_A, ex_matrix_B, ex_matrix_C, которые отправляются последовательно, только значение ex_num_of_matrix_type отправляется. Как результат, множество матриц квантования может быть предоставлено в изображении.
В этом варианте осуществления матрица квантования может быть повторно передана посредством синтаксиса заголовков серии последовательных макроблоков в синтаксисе уровня серии последовательных макроблоков, показанном на фиг. 7. Пример этого случая поясняется с использованием фиг. 13. Фиг. 13 иллюстрирует структуру синтаксиса заголовков серии последовательных макроблоков. Slice_ex_scaling_matrix_flag, показанный в синтаксисе заголовков серии последовательных макроблоков по фиг. 13, является флагом, указывающим то, может ли матрица квантования быть использована в серии последовательных макроблоков. Когда этот флаг равен TRUE, матрица квантования может быть изменена в серии последовательных макроблоков. Когда этот флаг равен FALSE, матрица квантования не может быть изменена в серии последовательных макроблоков. Slice_ex_matrix_type передается, когда флаг slice_ex_scaling_matrix_flag равен TRUE. Этот синтаксис соответствует типу формирования матриц (T). Последовательно передаются slice_ex_matrix_A, slice_ex_matrix_B и slice_ex_matrix_C. Они соответствуют степени изменения (A) матрицы квантования (C), степени искажения (B) ее и элементу корректировки ее, соответственно. NumOfMatrix на фиг. 13 представляет число доступных матриц квантования в серии последовательных макроблоков. Когда матрица квантования изменяется в меньшей зоне на уровне серии последовательных макроблоков, она может быть изменена в компоненте яркости и компоненте цвета, она изменяется по размеру блока квантования, она изменяется каждый режим кодирования и т.д., число доступных матриц квантования может быть передано в качестве моделирующего параметра матрицы квантования, соответствующего числу. Для целей примера, когда имеется два типа блоков квантования с размером блока пикселов 4x4 и размером блока пикселов 8x8 в серии последовательных макроблоков, и другие матрицы квантования могут быть использованы для блоков квантования, значение NumOfMatrix задается равным 2.
В данном варианте осуществления настоящего изобретения матрица квантования может быть изменена на уровне серии последовательных макроблоков с использованием синтаксиса заголовков серии последовательных макроблоков, показанного на фиг. 14. На фиг. 14 три моделирующих параметра, которые должны быть переданы, подготавливаются в сравнении с фиг. 13. Когда матрица квантования формируется с использованием, например, уравнения (5), параметр не обязательно должен быть передан, поскольку степень искажения (B) всегда задана равной 0. Следовательно, кодер и декодер могут формировать идентичную матрицу квантования посредством сохранения начального значения в 0 в качестве внутреннего параметра.
В этом варианте осуществления параметр может быть передан с использованием синтаксиса заголовков серии последовательных макроблоков, выраженного на фиг. 15. На фиг. 15 PrevSliceExMatrixType, PrevSliceExMatrix_A и PrevSliceExMatrix_B (дополнительно, PrevSliceExMatrix_C) добавляются к фиг. 13. Поясняя более конкретно, slice_ex_scaling_matrix_flag - это флаг, указывающий то, используется или нет матрица квантования в серии последовательных макроблоков, и когда этот флаг равен TRUE, моделирующий параметр передается в декодер, как показано на фиг. 13 и 14. С другой стороны, когда флаг равен FALSE, задаются PrevSliceExMatrixType, PrevSliceExMatrix_A и PrevSliceExMatrix_B (дополнительно, PrevSliceExMatrix_C). Их значения интерпретируются следующим образом.
PrevSliceExMatrixType указывает тип формирования (T), используемый в то время, когда данные кодируются в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в порядке кодирования. Эта переменная обновляется сразу перед тем, как кодирование серии последовательных макроблоков завершено. Начальное значение задано равным 0.
PrevSliceExMatrix_A указывает степень изменения (A), используемую в то время, когда данные кодируются в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в порядке кодирования. Эта переменная обновляется сразу перед тем, как кодирование серии последовательных макроблоков завершено. Начальное значение задано равным 0.
PrevSliceExMatrix_B указывает степень искажения (B), используемую в то время, когда данные кодируются в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в порядке кодирования. Эта переменная обновляется сразу перед тем, как кодирование серии последовательных макроблоков завершено. Начальное значение задано равным 0.
PrevSliceExMatrix_C указывает элемент корректировки (B), используемый в то время, когда данные кодируются в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в порядке кодирования. Эта переменная обновляется сразу перед тем, как кодирование серии последовательных макроблоков завершено. Начальное значение задано равным 16.
CurrSliceType указывает тип серии последовательных макроблоков для текущей кодированной серии последовательных макроблоков, и соответствующий индекс присваивается каждой из, к примеру, I-серии последовательных макроблоков, P-серии последовательных макроблоков и B-серии последовательных макроблоков. Пример CurrSliceType показан на фиг. 16. Значение назначается каждому из соответствующих типов серии последовательных макроблоков. 0 назначается I-серии с использованием, например, только прогнозирования внутри изображения. Дополнительно, 1 назначается P-серии последовательных макроблоков, допускающей использование однонаправленного прогнозирования из кодированного кадра, кодированного ранее в порядке времени и прогнозирования внутри изображения. С другой стороны, 2 назначается B-серии последовательных макроблоков, допускающей использование двунаправленного прогнозирования, однонаправленного прогнозирования и прогнозирования внутри изображения.
Таким образом, к моделирующему параметру матрицы квантования, кодируемой в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков сразу перед текущей серией последовательных макроблоков, осуществляется доступ, и он сбрасывается. Как результат, можно уменьшить число кодированных битов, требуемых для передачи моделирующего параметра.
В этом варианте осуществления настоящего изобретения фиг. 17 может быть использован. Фиг. 17 показывает структуру, в которой NumOfMatrix исключен из фиг. 5. Когда только одна матрица квантования доступна для кодированной серии последовательных макроблоков, этот синтаксис, упрощенный в большей степени, чем фиг. 15, используется. Этот синтаксис демонстрирует примерно такую же работу, как и в случае, когда NumOfMatrix равно 1 на фиг. 15.
Когда множество матриц квантования могут содержаться в одном изображении с помощью декодера, параметр формирования матриц квантования считывается из вспомогательного синтаксиса, чтобы сформировать соответствующую матрицу квантования. С другой стороны, когда множество матриц квантования не может содержаться в одном изображении, матрица квантования, сформированная посредством параметра формирования матриц квантования, описанного в синтаксисе набора параметров изображения, используется без декодирования вспомогательного синтаксиса.
В варианте осуществления, описанном выше, матрица квантования формируется согласно соответствующему типу формирования матриц. Когда параметр формирования матрицы квантования кодируется, число кодированных битов, используемых для отправки матрицы квантования, может быть уменьшено. Дополнительно, становится возможным адаптивно выбирать матрицы квантования в изображении. Кодирование, допускающее использование с различными вариантами применения, к примеру, квантованием, выполняемым с учетом изображения субъективности, и кодированием, выполняемым с учетом эффективности кодирования, становится возможным. Другими словами, может быть выполнено предпочтительное кодирование согласно содержимому блока пикселов.
Как упоминалось выше, когда кодирование выполняется в выбранном режиме, только сигнал декодированного изображения должен быть сформирован для выбранного режима. Оно не обязательно должно всегда быть приведено в исполнении в контуре для определения режима прогнозирования.
Устройство декодирования видео, соответствующее устройству кодирования видео, поясняется далее.
(Третий вариант осуществления: Декодирование)
Согласно устройству 300 декодирования видео по настоящему варианту осуществления, показанному на фиг. 18, входной буфер 309 сохраняет только данные кода, отправляемые из устройства 100 кодирования видео по фиг. 1 посредством носителя передачи или носителя передачи. Сохраненные данные кода считываются из входного буфера 309 и вводятся в процессор 301 декодирования с разделением на основе синтаксиса каждый одной кадр. Процессор 301 декодирует строку кода каждого синтаксиса данных кода для каждого из высокоуровневого синтаксиса, синтаксиса уровня серии последовательных макроблоков и синтаксиса уровня серии последовательных макроблоков согласно структуре синтаксиса, показанной на фиг. 7. Благодаря этому декодированию квантованный коэффициент преобразования, параметр формирования матриц формирования, параметр квантования, информация режима прогнозирования, информация переключения прогнозирования и т.д. восстанавливаются.
Процессор 301 декодирования создает из декодированного синтаксиса флаг, указывающий то, используется ли матрица квантования для соответствующего кадра, и вводит ее в модуль 306 задания параметров формирования. Когда этот флаг равен TRUE, параметр 311 формирования матриц квантования вводится в модуль 306 задания параметров формирования из процессора 301 декодирования. Модуль 306 задания параметров формирования имеет функцию обновления параметра 311 формирования матриц обновления и вводит набор параметров 311 формирования матриц квантования в формирователь 307 матриц квантования на основе синтаксиса, декодированного посредством процессора 301 декодирования. Формирователь 307 матриц квантования формирует матрицу 318 квантования, соответствующую входному параметру 311 формирования матриц квантования, и выводит ее в деквантователь 302.
Квантованный коэффициент преобразования, выводимый из процессора 301 кодирования, вводится в деквантователь 302 и деквантуется посредством него на основе декодированной информации с использованием матрицы 318 квантования, параметра квантования и т.д. Деквантованный коэффициент преобразования вводится в обратный преобразователь 303.
Обратный преобразователь 303 подвергает деквантованный коэффициент преобразования обратному преобразованию (например, обратному дискретному косинусному преобразованию), чтобы сформировать сигнал 313 ошибки. Здесь используется обратное ортогональное преобразование. Тем не менее, когда кодер выполняет вейвлет-преобразование или анализ независимых компонентов, обратный преобразователь 303 может выполнять обратное вейвлет-преобразование или обратный анализ независимых компонентов. Коэффициент, подвергаемый обратному преобразованию с помощью обратного преобразователя 303, отправляется в сумматор 308 как сигнал 313 ошибки. Сумматор 308 суммирует прогнозирующий сигнал 315, выводимый из модуля 305 прогнозирования, и сигнал 313 ошибки и вводит суммированный сигнал в опорное запоминающее устройство 304 как декодированный сигнал 314. Декодированное изображение 314 отправляется из видеодекодера 300 наружу и сохраняется в выходном буфере (не показан). Декодированное изображение, сохраненное в выходном буфере, считывается с синхронизацией, управляемой посредством контроллера 310 декодирования.
С другой стороны, информация 316 прогнозирования и информация режима, которые декодированы с помощью процессора 301 декодирования, вводятся в модуль 305 прогнозирования. Опорный сигнал 317, уже декодированный, предоставляется из опорного запоминающего устройства 304 в модуль 305 прогнозирования. Модуль 305 прогнозирования формирует прогнозирующий сигнал 315 на основе входной информации режима и т.д. и предоставляет его в сумматор 308.
Контроллер 310 декодирования контролирует входной буфер 307, синхронизацию вывода, синхронизацию декодирования и т.д.
Устройство 300 декодирования видео по третьему варианту осуществления сконфигурировано так, как описано выше, и способ декодирования видео, приводимый в исполнение с помощью устройства 300 декодирования видео, поясняется со ссылкой на блок-схему последовательности операций способа по фиг. 19.
Данные кода одного кадра считываются из входного буфера 309 (этап S201) и декодируются согласно структуре синтаксиса (этап S202). Посредством флага определяется то, используется ли матрица квантования для считанного кадра, на основе декодированного синтаксиса (этап S203). Когда это определение "ДА", параметр формирования матриц квантования задается в формирователе 307 матриц квантования (этап 204). Формирователь 307 матриц квантования формирует матрицу квантования, соответствующую параметру формирования (этап 205). Для этого формирования матриц квантования формирователь 307 матриц квантования, имеющий такую же конфигурацию, что и формирователь 109 матриц квантования, показанный на фиг. 2, который используется для устройства кодирования видео, используется, и выполняет тот же процесс, что и устройство кодирования видео, чтобы сформировать матрицу квантования. Формирователь 306 параметров формирования для предоставления параметра формирования в формирователь 109 матриц квантования имеет такую же конфигурацию, что и формирователь 108 параметров формирования устройства кодирования.
Другими словами, в формирователе 306 параметров формирования синтаксис сформирован главным образом из трех частей, т.е. высокоуровневый синтаксис (401), синтаксис (402) уровня серий последовательных макроблоков и синтаксис (403) уровня макроблока, как показано на фиг. 7. Эти синтаксисы состоят из дополнительных подробных синтаксисов аналогично устройству кодирования.
Вышеупомянутые синтаксисы являются компонентами, которые являются абсолютно императивными во время декодирования. Если эта информация синтаксиса отсутствует, данные не могут быть декодированы во время декодирования. С другой стороны, предусмотрен вспомогательный синтаксис для мультиплексирования информации, которая не всегда требуется во время декодирования.
Информация синтаксиса, которая является обязательной в этом варианте осуществления, содержит синтаксис (404) наборов параметров последовательности и синтаксис (405) наборов параметров изображения. Эти синтаксисы состоят из синтаксиса наборов параметров последовательности и синтаксиса наборов параметров изображения, соответственно, как показано на фиг. 8 и 9, аналогично устройству кодирования видео.
В качестве еще одного примера синтаксиса наборов параметров изображения может быть использован синтаксис наборов параметров изображения, используемый для отправки множества параметров формирования матриц квантования, показанных на фиг. 10, как описано в устройстве кодирования видео. Тем не менее, если матрица квантования изменяется в единицах блока, биты должны передаваться только посредством числа соответствующих матриц квантования для каждого блока и обмениваться. Когда, к примеру, ex_num_of_matrix_type равен 2, синтаксис в 1 бит добавляется к синтаксису заголовков макроблоков, и матрица квантования изменяется согласно тому, равно это значение TRUE и FALSE.
Когда в этом варианте осуществления множество параметров матриц квантования содержится в одном кадре, как описано выше, данные, мультиплексированные с помощью вспомогательного синтаксиса, могут быть использованы. Как описано в устройстве кодирования видео, можно использовать множество параметров формирования матриц квантования, использующих вспомогательные синтаксисы, показанные на фиг. 11.
В этом варианте осуществления повторный прием матрицы квантования может осуществляться посредством синтаксиса заголовков серии последовательных макроблоков в синтаксисе уровня серии последовательных макроблоков, показанном на фиг. 7. Пример этого случая поясняется с использованием фиг. 13. Фиг. 13 иллюстрирует структуру синтаксиса заголовков серии последовательных макроблоков. Slice_ex_scaling_matrix_flag, показанный в синтаксисе заголовков серии последовательных макроблоков по фиг. 13, является флагом, указывающим то, используется ли матрица квантования в серии последовательных макроблоков. Когда этот флаг равен TRUE, матрица квантования может быть изменена в серии последовательных макроблоков. С другой стороны, когда флаг равен FALSE, невозможно изменять матрицу квантования в серии последовательных макроблоков. Когда slice_ex_scaling_matrix_flag равен TRUE, slice_ex_matrix_type принимается дополнительно. Этот синтаксис соответствует типу формирования матриц (T).
Последовательно принимаются slice_ex_matrix_A, slice_ex_matrix_B и slice_ex_matrix_C. Они соответствуют степени изменения (A), степени искажения (B) и элементу корректировки матрицы квантования (C) соответственно. NumOfMatrix на фиг. 13 представляет число доступных матриц квантования в серии последовательных макроблоков. Когда матрица квантования изменяется в меньшей зоне на уровне серии последовательных макроблоков, она изменяется в компоненте яркости и компоненте цвета, она изменяется по размеру блока квантования, и она изменяется каждый режим кодирования и т.д., число доступных матриц квантования может быть принято в качестве моделирующего параметра матрицы квантования, соответствующего числу. Для целей примера, когда имеется два типа блоков квантования с размером блока пикселов 4x4 и размером блока пикселов 8x8 в серии последовательных макроблоков, и другие матрицы квантования могут быть использованы для блоков квантования, значение NumOfMatrix задается равным 2.
В данном варианте осуществления настоящего изобретения матрица квантования может быть изменена на уровне серии последовательных макроблоков с использованием синтаксиса заголовков серии последовательных макроблоков, показанного на фиг. 14. На фиг. 14 три моделирующих параметра, которые должны быть переданы, подготавливаются в сравнении с фиг. 13. Когда матрица квантования формируется с использованием, например, уравнения (5), параметр не обязательно должен быть принят, поскольку степень искажения (B) всегда задана равной 0. Следовательно, кодер и декодер могут формировать идентичную матрицу квантования посредством сохранения начального значения 0 в качестве внутреннего параметра.
В этом варианте осуществления параметр может быть принят с использованием синтаксиса заголовков серии последовательных макроблоков, выраженного на фиг. 15. На фиг. 15 PrevSliceExMatrixType, PrevSliceExMatrix_A и PrevSliceExMatrix_B (дополнительно, PrevSliceExMatrix_C) добавляются к фиг. 13. Поясняя более конкретно, slice_ex_scaling_matrix_flag - это флаг, указывающий то, используется или нет матрица квантования в серии последовательных макроблоков. Когда этот флаг равен TRUE, моделирующий параметр принимается, как показано на фиг. 13 и 14. С другой стороны, когда флаг равен FALSE, PrevSliceExMatrixType, PrevSliceExMatrix_A и PrevSliceExMatrix_B (дополнительно, PrevSliceExMatrix_C) задаются. Их значения интерпретируются следующим образом.
PrevSliceExMatrixType указывает тип формирования (T), используемый в то время, когда данные декодируются в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в последовательности декодирования. Эта переменная обновляется сразу перед тем, как декодирование серии последовательных макроблоков завершено. Начальное значение задано равным 0.
PrevSliceExMatrix_A указывает степень изменения (A), используемую в то время, когда серия последовательных макроблоков декодируется в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в последовательности декодирования. Эта переменная обновляется сразу перед тем, как декодирование серии последовательных макроблоков завершено. Начальное значение задано равным 0.
PrevSliceExMatrix_B указывает степень искажения (A), используемую в то время, когда серия последовательных макроблоков декодируется в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в последовательности декодирования. Эта переменная обновляется сразу перед тем, как декодирование серии последовательных макроблоков завершено. Начальное значение задано равным 0.
PrevSliceExMatrix_C указывает элемент корректировки (B), используемый в то время, когда данные декодируются в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков до текущей серии последовательных макроблоков в последовательности декодирования. Эта переменная обновляется сразу перед тем, как декодирование серии последовательных макроблоков завершено. Начальное значение задано равным 16.
CurrSliceType указывает тип серии последовательных макроблоков для текущей серии последовательных макроблоков. Соответствующие индексы присваиваются, к примеру, I-серии последовательных макроблоков, P-серии последовательных макроблоков и B-серии последовательных макроблоков, соответственно. Пример CurrSliceType показан на фиг. 16. Соответствующие значения назначаются соответствующим типам серии последовательных макроблоков. 0 назначается I-серии с использованием, например, только прогнозирования внутри изображения. Дополнительно, 1 назначается P-серии последовательных макроблоков, допускающей использование однонаправленного прогнозирования из кодированного кадра, кодированного ранее в порядке времени и прогнозирования внутри изображения. Между тем, 2 назначается B-серии последовательных макроблоков, допускающей использование двунаправленного прогнозирования, однонаправленного прогнозирования и прогнозирования внутри изображения.
Таким образом, к моделирующему параметру матрицы квантования, кодируемой в том же типе серии последовательных макроблоков, что и тип серии последовательных макроблоков сразу перед текущей серией последовательных макроблоков, осуществляется доступ, и он задается снова. Как результат, можно уменьшить число кодированных битов, требуемых для приема моделирующего параметра.
В этом варианте осуществления настоящего изобретения может быть использован фиг. 17. Фиг. 17 показывает структуру, в которой NumOfMatrix исключен из фиг. 5. Когда только одна матрица квантования доступна для серии последовательных макроблоков, используется этот синтаксис, упрощенный в большей степени, чем фиг. 16. Этот синтаксис демонстрирует примерно такую же работу, как и в случае, когда NumOfMatrix равно 1 на фиг. 15.
Когда матрица квантования сформирована так, как описано выше, декодированный коэффициент 312 преобразования деквантуется посредством матрицы квантования (этап S206) и подвергается обратному преобразованию с помощью обратного преобразователя 303 (этап S207). Как результат, сигнал ошибки воспроизводится. Затем прогнозирующее изображение формируется посредством модуля 305 прогнозирования на основе информации 316 прогнозирования (S209). Это прогнозирующее изображение и сигнал ошибки суммируются, чтобы воспроизвести данные декодированного изображения (этап S209). Этот сигнал декодированного изображения сохраняется в опорном запоминающем устройстве 304 и выводится на внешнее устройство.
В этом варианте осуществления, как описано выше, матрица квантования формируется на основе входных данных кода согласно соответствующему типу формирования матриц и используется в деквантовании, посредством чего число кодированных битов матрицы квантования может быть уменьшено.
Функция каждой части, описанной выше, может быть реализована посредством программы, сохраненной в компьютере.
В вышеприведенных вариантах осуществления поясняется кодирование видео. Тем не менее, настоящее изобретение может быть применено к кодированию фотографических изображений.
Согласно настоящему изобретению, множество матриц квантования формируется с использованием одного или более параметров, таких как индекс функции формирования для формирования матрицы квантования, степень изменения, указывающая степень изменения матрицы квантования, степень искажения и элемент корректировки. Квантование и деквантование выполняются с использованием матрицы квантования. Оптимальный набор параметров формирования матриц квантования кодируется и передается. Как результат, настоящее изобретение позволяет реализовать эффективность кодирования выше, чем традиционный способ передачи матрицы квантования.
Согласно настоящему изобретению, предоставляются способ и устройство кодирования/декодирования видео, дающие возможность повышать эффективность кодирования на низкой скорости передачи битов, может быть сделана возможной реализация.
Промышленная применимость
Изобретение может быть применено к кодированию и декодированию движущихся изображений, неподвижных изображений, аудио и т.д. для каждой области техники, такой как видео-, аудиоустройства, мобильное оборудование, широковещательная передача, информационные терминалы или сеть.