УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И НОСИТЕЛЬ ХРАНЕНИЯ ДАННЫХ
IMAGE ENCODING DEVICE, IMAGE ENCODING METHOD, IMAGE DECODING DEVICE, IMAGE DECODING METHOD AND STORAGE MEDIA

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к устройству кодирования изображений, способу кодирования изображений, устройству декодирования изображений, способу декодирования изображений и носителю хранения данных. Более конкретно, настоящее изобретение относится к способу кодирования/декодирования матрицы квантования в изображении.
Уровень техники
[0002] В качестве стандарта записи со сжатием движущегося изображения известен H.264/MPEG-4 AVC (в дальнейшем называемый H.264). (ITU-T H.264 (03/2010) Усовершенствованное кодирование видео для общих аудиовизуальных услуг). Касательно H.264, каждый элемент матрицы квантования может быть изменен на произвольное значение посредством кодирования информации списков масштабирования. Согласно главе 7.3.2.1.1.1 H.264, посредством суммирования дельта-шкалы, представляющей собой значение разности между элементом и его предыдущим элементом, каждый элемент матрицы квантования может принимать произвольное значение.
[0003] Касательно H.264, элементы матрицы квантования сканируются в направлении от элемента в верхнем левом углу двумерной матрицы квантования, который соответствует низкочастотному компоненту, к элементу в нижнем правом углу, который соответствует высокочастотному компоненту. Например, при кодировании двумерной матрицы квантования, проиллюстрированной на фиг. 6A, используется способ сканирования, называемый зигзагообразным сканированием, проиллюстрированный на фиг. 13A. Согласно этой обработке, матрица квантования компонуется в одномерную матрицу, проиллюстрированную на фиг. 6B. Затем вычисляется разность между элементом, который должен быть кодирован в матрице, и ее предыдущем элементом, и получается матрица значений разностей, проиллюстрированная на фиг. 6D. Дополнительно, значения разностей кодируются в качестве дельта-шкалы посредством способа, называемого кодированием экспоненциальным кодом Голомба со знаком, проиллюстрированного на фиг. 5A. Например, если разность между элементом в матрице и ее предыдущим элементом равна 0, кодируется двоичный код 1. Если разность равна -2, кодируется двоичный код 00101.
[0004] Тем не менее касательно зигзагообразного сканирования, используемого в H.264, поскольку элементы матрицы квантования сканируются в диагональном направлении, объем кода матрицы квантования увеличивается в зависимости от характеристик матрицы квантования.
Сущность изобретения
[0005] Настоящее изобретение направлено на реализацию высокоэффективного кодирования/декодирования матриц квантования посредством введения однонаправленного способа сканирования, такого как горизонтальное/вертикальное сканирование при кодировании матриц квантования.
[0006] Согласно аспекту настоящего изобретения, устройство кодирования изображений включает в себя средство разделения на блоки, сконфигурированное с возможностью разделять входное изображение на множество блоков, средство прогнозирования, сконфигурированное с возможностью осуществлять прогнозирование на основе кодированных пикселов, чтобы формировать ошибки прогнозирования, средство преобразования, сконфигурированное с возможностью осуществлять ортогональное преобразование для ошибок прогнозирования, чтобы формировать коэффициенты преобразования, средство формирования матриц квантования, сконфигурированное с возможностью формировать матрицы квантования, которые используются для того, чтобы квантовать коэффициенты преобразования, средство кодирования матриц квантования, сконфигурированное с возможностью вычислять значения разностей посредством сканирования матриц квантования и кодировать значения разностей, средство квантования, сконфигурированное с возможностью формировать коэффициенты квантования посредством квантования сформированных коэффициентов преобразования с использованием матриц квантования, и средство кодирования коэффициентов, сконфигурированное с возможностью кодировать коэффициенты квантования, при этом средство кодирования матриц квантования сконфигурировано с возможностью сканировать коэффициенты матриц квантования однонаправленным способом, чтобы вычислять значение разности.
[0007] Согласно примерному варианту осуществления настоящего изобретения, объем кода, необходимого при кодировании матриц квантования, может быть уменьшен, и становится возможным высокоэффективное кодирование/декодирование.
[0008] Дополнительные признаки и аспекты настоящего изобретения должны становиться очевидными из последующего подробного описания примерных вариантов осуществления со ссылкой на прилагаемые чертежи.
Краткое описание чертежей
[0009] Прилагаемые чертежи, которые содержатся и составляют часть описания изобретения, иллюстрируют примерные варианты осуществления, признаки и аспекты изобретения и вместе с описанием предназначены для пояснения принципов изобретения.
[0010] Фиг. 1 является блок-схемой, иллюстрирующей конфигурацию устройства кодирования изображений согласно первому, пятому и седьмому примерным вариантам осуществления настоящего изобретения.
Фиг. 2 является блок-схемой, иллюстрирующей конфигурацию устройства декодирования изображений согласно второму, шестому и восьмому примерным вариантам осуществления настоящего изобретения.
Фиг. 3 является блок-схемой, иллюстрирующей конфигурацию устройства декодирования изображений согласно третьему примерному варианту осуществления настоящего изобретения.
Фиг. 4 является блок-схемой, иллюстрирующей конфигурацию устройства декодирования изображений согласно четвертому примерному варианту осуществления настоящего изобретения.
Фиг. 5A иллюстрирует пример таблицы кодирования с симметрией "плюс-минус".
Фиг. 5B иллюстрирует пример таблицы кодирования с асимметрией "плюс-минус".
Фиг. 6A иллюстрирует пример матрицы квантования.
Фиг. 6B иллюстрирует пример матрицы квантования.
Фиг. 6C иллюстрирует пример матрицы квантования.
Фиг. 6D иллюстрирует пример матрицы разностей.
Фиг. 6E иллюстрирует пример матрицы разностей.
Фиг. 7 иллюстрирует пример кодирования матрицы квантования.
Фиг. 8A иллюстрирует пример структуры потока битов.
Фиг. 8B иллюстрирует пример структуры потока битов.
Фиг. 9 является блок-схемой последовательности операций способа, иллюстрирующей обработку кодирования изображений в устройстве кодирования изображений согласно первому, пятому и седьмому примерным вариантам осуществления.
Фиг. 10 является блок-схемой последовательности операций способа, иллюстрирующей обработку декодирования изображений в устройстве декодирования изображений согласно второму, шестому и восьмому примерным вариантам осуществления.
Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей обработку кодирования изображений в устройстве кодирования изображений согласно третьему примерному варианту осуществления.
Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей обработку декодирования изображений в устройстве декодирования изображений согласно четвертому примерному варианту осуществления.
Фиг. 13A иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования.
Фиг. 13B иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования.
Фиг. 13C иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования.
Фиг. 13D иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования.
Фиг. 13E иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования.
Фиг. 14 является блок-схемой, иллюстрирующей пример конфигурации аппаратных средств компьютера, применимого к устройству кодирования изображений и к устройству декодирования согласно примерным вариантам осуществления настоящего изобретения.
Фиг. 15 иллюстрирует пример кодирования матрицы квантования согласно пятому и шестому примерным вариантам осуществления.
Фиг. 16A иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования согласно пятому и шестому примерным вариантам осуществления.
Фиг. 16B иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования согласно пятому и шестому примерным вариантам осуществления.
Фиг. 16C иллюстрирует пример способа сканирования и способа вычисления разностей коэффициентов матрицы квантования согласно пятому и шестому примерным вариантам осуществления.
Фиг. 17A иллюстрирует пример матрицы квантования согласно пятому и шестому примерным вариантам осуществления.
Фиг. 17B иллюстрирует пример матрицы разностей согласно пятому и шестому примерным вариантам осуществления.
Фиг. 17C иллюстрирует пример матрицы разностей согласно пятому и шестому примерным вариантам осуществления.
Фиг. 18A иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 18B иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 18C иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 19A иллюстрирует пример матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 19B иллюстрирует пример матрицы разностей согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 20A иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 20B иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 20C иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Фиг. 20D иллюстрирует пример способа сканирования коэффициентов матрицы квантования согласно седьмому и восьмому примерным вариантам осуществления.
Подробное описание вариантов осуществления
[0011] Различные примерные варианты осуществления, признаки и аспекты изобретения подробно описываются ниже со ссылкой на чертежи.
[0012] В контексте настоящего описания изобретения, способ сканирования для двумерной матрицы, проиллюстрированный на фиг. 13B, называется горизонтальным сканированием, а способ сканирования для двумерной матрицы, проиллюстрированный на фиг. 13D, называется вертикальным сканированием.
[0013] Фиг. 1 является блок-схемой, иллюстрирующей устройство кодирования изображений согласно первому примерному варианту осуществления настоящего изобретения.
[0014] На фиг. 1, модуль 101 разделения на блоки разделяет входное изображение на множество блоков.
[0015] Модуль 102 прогнозирования выполняет прогнозирование каждого блока, разделенного посредством модуля 101 разделения на блоки в единицах блоков, определяет способ прогнозирования, вычисляет значения разностей согласно определенному способу прогнозирования и дополнительно вычисляет ошибки прогнозирования. Если внутренний кадр движущегося изображения или неподвижного изображения должен быть обработан, выполняется внутреннее прогнозирование. Если внешний кадр движущегося изображения должен быть обработан, выполняется прогнозирование с компенсацией движения, а также внутреннее прогнозирование. Внутреннее прогнозирование, в общем, реализуется посредством выбора оптимального способа прогнозирования из множества способов при вычислении прогнозированных значений из данных соседних пикселов.
[0016] Модуль 103 преобразования выполняет ортогональное преобразование для ошибок прогнозирования каждого блока. Модуль 103 преобразования выполняет ортогональное преобразование в единицах блоков, чтобы вычислять коэффициенты преобразования. Размер блока является размером входного блока или размером, полученным посредством дополнительной сегментации входного блока. В нижеприведенном описании, блок, который должен быть преобразован посредством ортогонального преобразования, называется блоком преобразования. Хотя способ ортогонального преобразования не ограничивается, может использоваться дискретное косинусное преобразование или преобразование Адамара. Дополнительно, согласно настоящему варианту осуществления, ошибка прогнозирования в единицах блоков 8×8 пикселов разделяется на две части в длину и в ширину, и результирующий блок преобразования в 4×4 пиксела используется в ортогональном преобразовании, чтобы упрощать описание. Тем не менее, размер и форма блока преобразования не ограничены таким примером. Например, ортогональное преобразование может выполняться посредством использования блока преобразования с идентичным размером блока или блока преобразования, полученного посредством разделения блока на меньшие части, чем получается, когда блок разделяется на две части в длину и в ширину.
[0017] Модуль 106 хранения матриц квантования формирует и сохраняет матрицы квантования. Способ формирования матриц квантования, которые сохраняются в модуле 106 хранения матриц квантования, не ограничивается. Таким образом, это могут быть матрицы квантования, вводимые пользователем, матрицы квантования, вычисленные из характеристик входного изображения, или матрицы квантования, указанные заранее в качестве начальных значений. Согласно настоящему варианту осуществления, формируется и сохраняется двумерная матрица квантования, соответствующая блоку преобразования 4×4 пикселов, проиллюстрированная на фиг. 6A.
[0018] Модуль 104 квантования квантует коэффициенты преобразования с использованием матриц квантования, сохраненных в модуле 106 хранения матриц квантования. Коэффициенты квантования получаются посредством этого процесса квантования.
[0019] Модуль 105 кодирования коэффициентов кодирует коэффициенты квантования, полученные таким образом, и формирует кодированные данные коэффициентов квантования. Хотя способ кодирования не ограничивается, может использоваться такое кодирование, как кодирование методом Хаффмана и арифметическое кодирование.
[0020] Модуль 109 сканирования матриц квантования сканирует двумерные матрицы квантования, сохраненные в модуле 106 хранения матриц квантования, вычисляет разность каждого элемента и компонует ее в одномерных матрицах. Согласно настоящему примерному варианту осуществления, разность, скомпонованная в этой одномерной матрице, называется матрицей разностей.
[0021] Модуль 107 кодирования матриц квантования кодирует матрицы разностей (одномерные матрицы), скомпонованные посредством модуля 109 сканирования матриц квантования, и формирует кодированные данные матриц квантования. Модуль 108 интегрирующего кодирования формирует информацию заголовка, а также коды, которые ассоциированы с прогнозированием или преобразованием, и также интегрирует кодированные данные коэффициентов квантования, сформированные посредством модуля 105 кодирования коэффициентов, и кодированные данные матриц квантования, сформированные посредством модуля 107 кодирования матриц квантования. Код, ассоциированный с прогнозированием или преобразованием, представляет собой, например, код, ассоциированный с выбором способа прогнозирования или разделением блока преобразования.
[0022] Далее описывается операция кодирования изображения, выполняемая посредством вышеописанного устройства кодирования изображений. Согласно настоящему варианту осуществления, хотя данные движущихся изображений вводятся в единицах кадров, также могут вводиться данные неподвижных изображений одного кадра. Дополнительно, согласно настоящему варианту осуществления, чтобы упрощать описание, описывается только обработка кодирования с внутренним прогнозированием. Тем не менее настоящее изобретение также может применяться к обработке кодирования с внешним прогнозированием. Согласно настоящему варианту осуществления, хотя модуль 101 разделения на блоки разделяет входное изображение на блоки 8×8 пикселов, размер блоков не ограничивается таким примером.
[0023] Затем кодирование элементов матриц квантования выполняется перед кодированием изображения. Во-первых, модуль 106 хранения матриц квантования формирует матрицы квантования. Матрицы квантования определяются согласно размеру блока, который кодируется. Способ определения элемента матриц квантования не ограничивается. Например, может использоваться предварительно определенное начальное значение, либо может использоваться значение, которое задается отдельно. Дополнительно, значение может быть сформировано и задано согласно характеристикам изображения.
[0024] Матрица квантования, сформированная таким образом, сохраняется в модуле 106 хранения матриц квантования. Фиг. 6A иллюстрирует пример матрицы квантования, которая соответствует блоку преобразования 4×4 пикселов. Обведенный полужирным кадр 600 представляет матрицу квантования. Чтобы упрощать описание, матрица квантования имеет размер 16 пикселов, что соответствует блоку преобразования 4×4 пикселов, и каждая ячейка матрицы представляет элемент. Согласно настоящему варианту осуществления, хотя матрица квантования, проиллюстрированная на фиг. 6A, сохраняется в двумерной матрице, элементы в матрице квантования не ограничены таким примером. Например, если блок преобразования 8×8 пикселов должен быть использован в дополнение к размеру блока по настоящему варианту осуществления, должна быть сохранена другая матрица квантования, которая соответствует блоку преобразования 8×8 пикселов.
[0025] Модуль 109 сканирования матриц квантования считывает двумерные матрицы квантования, сохраненные в модуле 106 хранения матриц квантования по порядку, сканирует каждый элемент, вычисляет разность и компонует элементы в одномерных матрицах. Согласно настоящему варианту осуществления, используется вертикальное сканирование, проиллюстрированное на фиг. 13D, и разность между элементом и его предыдущим элементом вычисляется для каждого элемента в порядке сканирования. Тем не менее, способ сканирования и способ вычисления разности не ограничены таким примером. Горизонтальное сканирование, проиллюстрированное на фиг. 13B, может использоваться в качестве способа сканирования, и разность между элементом и его предыдущим элементом может быть вычислена для каждого элемента в порядке сканирования. Дополнительно, при использовании способа сканирования, проиллюстрированного на фиг. 13B, разность, связанная с элементами в левом конце, может быть вычислена посредством получения разности между верхними элементами, как проиллюстрировано на фиг. 13C. Таким образом, разность между элементом и его предыдущим элементом вычисляется так, как выполняется на фиг. 13B, за исключением элементов в левом конце. Дополнительно, при использовании способа сканирования, проиллюстрированного на фиг. 13D, разность, связанная с элементами в начале, может быть вычислена посредством получения разности между левыми элементами, как проиллюстрировано на фиг. 13E. Таким образом, разность между элементом и его предыдущим элементом вычисляется так, как выполняется на фиг. 13D, за исключением элементов в начале. Согласно настоящему варианту осуществления, двумерная матрица квантования, проиллюстрированная на фиг. 6A, сканируется с использованием вертикального сканирования, проиллюстрированного на фиг. 13D, и вычисляется разность между каждым элементом и его предыдущим элементом, и формируется матрица разностей, проиллюстрированная на фиг. 6E. Дополнительно, значение разности, которое соответствует первому элементу матрицы, получается посредством вычисления разности между значением первого элемента и предварительно определенным начальным значением. Согласно настоящему варианту осуществления, хотя начальное значение задается равным 8, произвольное значение может использоваться в качестве начального значения, или значение самого первого элемента может быть кодировано.
[0026] Модуль 107 кодирования матриц квантования считывает матрицы разностей из модуля 109 сканирования матриц квантования по порядку, кодирует матрицы разностей и формирует кодированные данные матриц квантования. Согласно настоящему варианту осуществления, матрицы разностей кодируются посредством использования таблицы кодирования, проиллюстрированной на фиг. 5A. Тем не менее, таблица кодирования не ограничивается таким примером, и, например, может использоваться таблица кодирования, проиллюстрированная на фиг. 5B.
[0027] Фиг. 7 иллюстрирует пример результата, полученного посредством вычисления матрицы разностей матрицы квантования, проиллюстрированной на фиг. 6A, с использованием способов сканирования на фиг. 13A и 13D, и кодирования матрицы разностей с использованием таблицы кодирования, проиллюстрированной на фиг. 5A. Столбцы элемента на фиг. 7 представляют результаты, полученные из сканирования каждого элемента в матрице квантования, проиллюстрированной на фиг. 6A, и столбцы значения разности представляют значение разности между элементом и предварительно определенным начальным значением 8 или предыдущим элементом. Столбцы кода зигзагообразного сканирования представляют коды в случае, если используется зигзагообразное сканирование традиционного способа, проиллюстрированного на фиг. 13A, и требуется всего 68 битов. С другой стороны, столбцы кода вертикального сканирования представляют коды в случае, если используется вертикальное сканирование, проиллюстрированное на фиг. 13D, и требуется всего 60 битов. Таким образом, посредством использования вертикального сканирования, идентичная матрица квантования может быть кодирована с меньшим объемом кода. Кодированные данные матриц квантования, сформированных таким образом, вводятся в модуль 108 интегрирующего кодирования. Модуль 108 интегрирующего кодирования кодирует информацию заголовка, необходимую при кодировании данных изображений, и интегрирует кодированные данные матриц квантования.
[0028] После этого выполняется кодирование данных изображений. Когда данные изображений одного кадра вводятся в модуль 101 разделения на блоки, он разделяется на единицы блоков 8×8 пикселов. Разделенные данные изображений вводятся в модуль 102 прогнозирования.
[0029] Модуль 102 прогнозирования выполняет прогнозирование в единицах блоков, чтобы формировать ошибки прогнозирования. Модуль 103 преобразования разделяет ошибки прогнозирования, сформированные посредством модуля 102 прогнозирования, на блоки с размером блока преобразования, и выполняет ортогональное преобразование, чтобы получать коэффициенты преобразования. Затем полученные коэффициенты преобразования вводятся в модуль 104 квантования. Согласно настоящему варианту осуществления, ошибки прогнозирования в единицах блоков 8×8 пикселов разделяются на единицы блоков преобразования 4×4 пикселов, чтобы выполнять ортогональное преобразование.
[0030] Снова ссылаясь на фиг. 1, модуль 104 квантования квантует вывод коэффициентов преобразования из модуля 103 преобразования посредством использования матриц квантования, сохраненных в модуле 106 хранения матриц квантования, и формирует коэффициенты квантования. Сформированные коэффициенты квантования вводятся в модуль 105 кодирования коэффициентов.
[0031] Модуль 105 кодирования коэффициентов кодирует коэффициенты квантования, сформированные посредством модуля 104 квантования, формирует кодированные данные коэффициентов квантования и выводит сформированные кодированные данные коэффициентов квантования в модуль 108 интегрирующего кодирования. Модуль 108 интегрирующего кодирования формирует коды, ассоциированные с прогнозированием и преобразованием в единицах блоков, интегрирует коды в единицах блоков и кодированные данные коэффициентов квантования, сформированные посредством модуля 105 кодирования коэффициентов, вместе с кодированными данными заголовка, и формирует поток битов. Затем модуль 108 интегрирующего кодирования выводит сформированный поток битов.
[0032] Фиг. 8A иллюстрирует пример потока битов, который выводится согласно первому примерному варианту осуществления. Заголовок последовательности включает в себя кодированные данные матриц квантования и в силу этого включает в себя результаты кодирования каждого элемента. Тем не менее, позиция кодированных данных не ограничивается таким примером. Например, кодированные данные могут быть включены в часть заголовка изображения или другие части заголовка. Дополнительно, если изменение в матрице квантования должно выполняться в одной последовательности, матрица квантования может быть обновлена посредством нового кодирования матрицы квантования. В таком случае, может перезаписываться вся матрица квантования. Дополнительно, если указаны способ сканирования и размер блока преобразования матрицы квантования, которая должна быть перезаписана, часть матрицы квантования может быть изменена согласно указанию.
[0033] Фиг. 9 является блок-схемой последовательности операций способа, иллюстрирующей обработку кодирования изображений, выполняемую посредством устройства кодирования изображений согласно первому примерному варианту осуществления. На этапе S901, модуль 106 хранения матриц квантования формирует матрицы квантования.
[0034] На этапе S902, модуль 109 сканирования матриц квантования сканирует матрицы квантования, сформированные на этапе S901, вычисляет разность между элементами и формирует матрицы разностей. Согласно настоящему варианту осуществления, матрица квантования, проиллюстрированная на фиг. 6A, сканируется с использованием способа сканирования, проиллюстрированного на фиг. 13D, и формируется матрица разностей, проиллюстрированная на фиг. 6E. Тем не менее матрицы квантования и способ сканирования не ограничены такими примерами.
[0035] На этапе S903, модуль 107 кодирования матриц квантования кодирует матрицы разностей, сформированные на этапе S902. Согласно настоящему варианту осуществления, модуль 107 кодирования матриц квантования кодирует матрицы разностей, проиллюстрированные на фиг. 6E, с использованием таблицы кодирования, проиллюстрированной на фиг. 5A. Тем не менее таблица кодирования не ограничивается такой таблицей.
[0036] На этапе S904, модуль 108 интегрирующего кодирования кодирует и выводит часть заголовка потока битов. На этапе S905, модуль 101 разделения на блоки разделяет входное изображение в единице кадра на единицу блока. На этапе S906, модуль 102 прогнозирования выполняет прогнозирование в единицах блоков и формирует ошибки прогнозирования.
[0037] На этапе S907, модуль 103 преобразования разделяет ошибки прогнозирования, сформированные на этапе S906, на блоки с размером блока преобразования, выполняет ортогональное преобразование и формирует коэффициенты преобразования. На этапе S908, модуль 104 квантования формирует коэффициенты квантования посредством квантования коэффициентов преобразования, сформированных на этапе S907, с использованием матриц квантования, сформированных на этапе S901 и сохраненных в модуле 106 хранения матриц квантования.
[0038] На этапе S909, модуль 105 кодирования коэффициентов кодирует коэффициенты квантования, сформированные на этапе S908, и формирует кодированные данные коэффициентов квантования. На этапе S910, устройство кодирования изображений определяет то, завершено или нет кодирование всех блоков преобразования в блоке, Если кодирование всех блоков преобразования завершено ("Да" на этапе S910), обработка переходит к этапу S911. Если кодирование всех блоков преобразования еще не завершено ("Нет" на этапе S910), обработка возвращается к этапу S907, и обрабатывается следующий блок преобразования.
[0039] На этапе S911, устройство кодирования изображений определяет то, завершено или нет кодирование всех блоков. Если кодирование всех блоков завершено ("Да" на этапе S911), устройство кодирования изображений прекращает все операции, и затем обработка завершается. Если кодирование всех блоков еще не завершено ("Нет" на этапе S911), обработка возвращается к этапу S905, и обрабатывается следующий блок.
[0040] Согласно вышеописанной конфигурации и работе, в частности, посредством обработки вычислений матрицы разностей посредством однонаправленного сканирования матрицы квантования на этапе S902, может быть сформирован поток битов, включающий в себя меньший объем кода матриц квантования.
[0041] Согласно настоящему варианту осуществления, хотя описывается кадр, который использует только внутреннее прогнозирование, очевидно, что настоящее изобретение может применяться к кадру, который может использовать внешнее прогнозирование.
[0042] Дополнительно, согласно настоящему варианту осуществления, хотя используются блок 8×8 пикселов и блок преобразования 4×4 пикселов, настоящее изобретение не ограничено такими примерами. Например, размер блока может составлять 16×16 пикселов или 32×32 пиксела. Дополнительно, форма блока не ограничивается квадратом, и, например, может использоваться прямоугольник в 16×8 пикселов.
[0043] Дополнительно, хотя размер блока преобразования составляет половину размера блока в длину и в ширину в настоящем варианте осуществления, размер блока преобразования может быть идентичным размеру блока или еще меньшим, чем половина размера блока в длину и в ширину.
[0044] Дополнительно, согласно настоящему варианту осуществления, матрицы разностей формируются, а затем кодируются. Тем не менее модуль 107 кодирования матриц квантования может непосредственно вычислять значения разностей из матриц квантования с использованием предварительно определенного способа сканирования и кодировать значения разностей. В таком случае, модуль 109 сканирования матриц квантования не требуется.
[0045] Дополнительно, если различные матрицы квантования должны быть использованы в зависимости от способа сканирования коэффициентов преобразования, способ сканирования элементов матрицы квантования может быть определен согласно способу сканирования коэффициентов преобразования.
[0046] Дополнительно, согласно настоящему варианту осуществления, хотя описывается случай только с одной матрицей квантования, матрица квантования не обязательно одна. Например, если различные матрицы квантования предоставляются для яркости/цветности, может использоваться общий способ сканирования матриц квантования, или может предоставляться другой способ сканирования.
[0047] Фиг. 2 является блок-схемой, иллюстрирующей конфигурацию устройства декодирования изображений согласно второму примерному варианту осуществления настоящего изобретения. Согласно настоящему варианту осуществления, описывается декодирование потока битов, сформированного в первом примерном варианте осуществления.
[0048] На фиг. 2 модуль 201 декодирования/разделения декодирует информацию заголовка входного потока битов, разделяет необходимые коды из потока битов и выводит разделенные коды на последующие стадии. Модуль 201 декодирования/разделения выполняет обратную операцию относительно операции, выполняемой посредством модуля 108 интегрирующего кодирования, проиллюстрированного на фиг. 1. Модуль 206 декодирования матриц квантования декодирует кодированные данные матриц квантования из информации заголовка потока битов и формирует матрицы разностей.
[0049] Модуль 208 обратного сканирования матриц квантования воспроизводит матрицы квантования посредством выполнения обратного сканирования матриц разностей, сформированных посредством модуля 206 декодирования матриц квантования. Модуль 208 обратного сканирования матриц квантования выполняет обратную операцию относительно операции, выполняемой посредством модуля 109 сканирования матриц квантования, проиллюстрированного на фиг. 1. Модуль 207 хранения матриц квантования сохраняет матрицы квантования, воспроизведенные посредством модуля 208 обратного сканирования матриц квантования.
[0050] С другой стороны, модуль 202 декодирования коэффициентов декодирует коэффициенты квантования из кода, разделенного посредством модуля 201 декодирования/разделения, и воспроизводит коэффициенты квантования. Модуль 203 обратного квантования выполняет обратное квантование коэффициентов квантования посредством использования матриц квантования, сохраненных в модуле 207 хранения матриц квантования, и воспроизводит коэффициенты преобразования. Модуль 204 обратного преобразования выполняет обратное ортогональное преобразование, которое является обратной операцией относительно операции, выполняемой посредством модуля 103 преобразования, проиллюстрированного на фиг. 1, и воспроизводит ошибки прогнозирования. Модуль 205 переконфигурирования прогнозирования воспроизводит блочные данные изображений из воспроизведенных ошибок прогнозирования и уже декодированных данных соседних изображений.
[0051] Далее описывается операция декодирования изображения согласно вышеописанному устройству декодирования изображений. Согласно настоящему варианту осуществления, хотя поток битов движущегося изображения, сформированный в первом примерном варианте осуществления, вводится в единице кадра, также может вводиться поток битов неподвижного изображения одного кадра. Дополнительно, согласно настоящему варианту осуществления, чтобы упрощать описание, описывается только процесс декодирования с внутренним прогнозированием. Тем не менее настоящее изобретение также может применяться к процессу декодирования с внешним прогнозированием.
[0052] Касательно иллюстрации на фиг. 2, поток битов одного кадра вводится в модуль 201 декодирования/разделения, и декодируется информация заголовка, необходимая при воспроизведении изображения. Дополнительно, коды, используемые на последующих стадиях, отделяются от информации заголовка и выводятся. Кодированные данные матриц квантования, включенные в информацию заголовка, вводятся в модуль 206 декодирования матриц квантования, и воспроизводятся одномерные матрицы разностей. Согласно настоящему варианту осуществления, посредством использования таблицы декодирования, проиллюстрированной на фиг. 5A, декодируется значение разности каждого элемента матриц квантования, и воспроизводятся матрицы разностей. Тем не менее, таблица декодирования не ограничивается таблицей, проиллюстрированной на фиг. 5A. Воспроизведенные матрицы разностей вводятся в модуль 208 обратного сканирования матриц квантования.
[0053] Модуль 208 обратного сканирования матриц квантования вычисляет каждый элемент матриц квантования из каждого значения разности во входных матрицах разностей, выполняет обратное сканирование и воспроизводит двумерные матрицы квантования. Воспроизведенные матрицы квантования вводятся в и сохраняются в модуле 207 хранения матриц квантования. Дополнительно, из кодов, разделенных посредством модуля 201 декодирования/разделения, кодированные данные коэффициентов квантования вводятся в модуль 202 декодирования коэффициентов. Дополнительно, модуль 202 декодирования коэффициентов декодирует кодированные данные коэффициентов квантования для каждого блока преобразования, воспроизводит коэффициенты квантования и выводит воспроизведенные коэффициенты квантования в модуль 203 обратного квантования.
[0054] Модуль 203 обратного квантования вводит коэффициенты квантования, воспроизведенные посредством модуля 202 декодирования коэффициентов, и матрицы квантования, сохраненные в модуле 207 хранения матриц квантования. Затем модуль 203 обратного квантования выполняет обратное квантование посредством использования матриц квантования, воспроизводит коэффициенты преобразования и выводит воспроизведенные коэффициенты преобразования в модуль 204 обратного преобразования. Модуль 204 обратного преобразования выполняет обратное ортогональное преобразование, которое является обратной операцией относительно операции, выполняемой посредством модуля 103 преобразования, проиллюстрированного на фиг. 1, посредством использования входных коэффициентов преобразования, воспроизводит ошибки прогнозирования и выводит ошибки прогнозирования в модуль 205 переконфигурирования прогнозирования. Модуль 205 переконфигурирования прогнозирования выполняет прогнозирование на основе входных ошибок прогнозирования и с использованием данных соседних пикселов после окончания декодирования, воспроизводит данные изображений в единицах блоков и выводит данные изображений.
[0055] Фиг. 10 является блок-схемой последовательности операций способа, иллюстрирующей обработку декодирования изображений в устройстве декодирования изображений согласно второму примерному варианту осуществления.
[0056] На этапе S1001, модуль 201 декодирования/разделения декодирует информацию заголовка и разделяет коды, которые должны выводиться на последующие стадии. На этапе S1002, модуль 206 декодирования матриц квантования декодирует кодированные данные матриц квантования, включенные в информацию заголовка, с использованием таблицы декодирования, проиллюстрированной на фиг. 5A, и формирует матрицы разностей, необходимые на воспроизведении матрицы квантования. На этапе S1003, модуль 208 обратного сканирования матриц квантования вычисляет каждый элемент матриц квантования из матриц разностей, сформированных на этапе S1002, выполняет обратное сканирование и воспроизводит двумерные матрицы квантования.
[0057] На этапе S1004, модуль 202 декодирования коэффициентов декодирует кодированные данные коэффициентов квантования в единицах блоков преобразования и воспроизводит коэффициенты квантования. На этапе S1005, модуль 203 обратного квантования выполняет обратное квантование для коэффициентов квантования, воспроизведенных на этапе S1004, посредством использования матриц квантования, воспроизведенных на этапе S1003, и воспроизводит коэффициенты преобразования. На этапе S1006, модуль 204 обратного преобразования выполняет обратное ортогональное преобразование для коэффициентов преобразования, воспроизведенных на этапе S1005, и воспроизводит ошибки прогнозирования. На этапе S1007, устройство декодирования изображений определяет то, завершено или нет декодирование всех блоков преобразования в блоке. Если декодирование всех блоков преобразования завершено ("Да" на этапе S1007), обработка переходит к этапу S1008. Если кодирование всех блоков преобразования еще не завершено ("Нет" на этапе S1007), обработка возвращается к этапу S1004, и обрабатывается следующий блок преобразования.
[0058] На этапе S1008, модуль 205 переконфигурирования прогнозирования выполняет прогнозирование с использованием уже декодированных соседних пикселов, суммирует результат с ошибками прогнозирования, воспроизведенными на этапе S1006, и воспроизводит декодированное изображение блока. На этапе S1009, устройство декодирования изображений определяет то, завершено или нет декодирование всех блоков. Если декодирование всех блоков завершено ("Да" на этапе S1009), все операции прекращаются, и обработка завершается. Если декодирование всех блоков еще не завершено ("Нет" на этапе S1009), обработка возвращается к этапу S1003, и обрабатывается следующий блок.
[0059] Согласно вышеописанной обработке, выполняется декодирование потока битов, имеющего меньший объем кода матрицы квантования, сформированной согласно первому примерному варианту осуществления, и может получаться воспроизведенное изображение. Дополнительно, как описано в первом примерном варианте осуществления, размер блока, размер блока преобразования и форма блока не ограничены вышеописанными примерами.
[0060] Дополнительно, согласно настоящему варианту осуществления, значение разности каждого элемента матрицы квантования декодируется с использованием таблицы декодирования, проиллюстрированной на фиг. 5A. Тем не менее таблица декодирования не ограничивается таким примером.
[0061] Дополнительно, если одна последовательность потока битов содержит несколько кодированных данных матриц квантования, матрицы квантования могут обновляться. В таком случае, модуль 201 декодирования/разделения обнаруживает кодированные данные матриц квантования, декодирует кодированные данные матриц квантования посредством модуля 206 декодирования матриц квантования и формирует матрицы разностей. Сформированные матрицы разностей обратно сканируются посредством модуля 208 обратного сканирования матриц квантования, и воспроизводятся матрицы квантования. Затем соответствующие данные матриц квантования, сохраненных в модуле 207 хранения матриц квантования, перезаписываются посредством воспроизведенных данных матриц квантования. В таком случае, может перезаписываться вся матрица квантования. Альтернативно, часть матрицы квантования может перезаписываться посредством определения части, которая должна быть перезаписана.
[0062] Согласно настоящему варианту осуществления, хотя обработка выполняется после того, как накапливаются кодированные данные одного кадра, настоящее изобретение не ограничено таким примером. Например, данные могут вводиться в единице блока или в единице серии последовательных макроблоков. Серия последовательных макроблоков включает в себя множество блоков. Дополнительно, вместо блоков могут вводиться данные, разделенные на пакеты фиксированной длины.
[0063] Дополнительно, согласно настоящему варианту осуществления, хотя матрица квантования воспроизводится после того, как матрица разностей формируется, модуль 206 декодирования матриц квантования может непосредственно воспроизводить матрицу квантования посредством использования предварительно определенного способа сканирования после декодирования значения разности. В таком случае, модуль 208 обратного сканирования матриц квантования не требуется.
[0064] Дополнительно, если различные матрицы квантования должны быть использованы в зависимости от способа сканирования коэффициентов преобразования, способ сканирования элементов матриц квантования может быть определен согласно способу сканирования коэффициентов преобразования.
[0065] Фиг. 3 является блок-схемой, иллюстрирующей устройство кодирования изображений согласно третьему примерному варианту осуществления настоящего изобретения. На фиг. 3 компоненты, аналогичные компонентам на фиг. 1 первого примерного варианта осуществления, обозначаются посредством идентичных ссылок с номерами, и их описания не повторяются.
[0066] Модуль 321 формирования информации управления сканированием формирует информацию способа сканирования матриц квантования, которая представляет собой информацию способа сканирования каждой матрицы квантования. Модуль 309 сканирования матриц квантования определяет способ сканирования на основе информации способа сканирования матриц квантования, сформированной посредством модуля 321 формирования информации управления сканированием, сканирует матрицы квантования, сохраненные в модуле 106 хранения матриц квантования, вычисляет значения разностей и формирует матрицы разностей.
[0067] Модуль 308 интегрирующего кодирования формирует информацию заголовка и коды, ассоциированные с прогнозированием и преобразованием, выполняемым посредством модуля 108 интегрирующего кодирования на фиг. 1. Модуль 308 интегрирующего кодирования отличается от модуля 108 интегрирующего кодирования тем, что он вводит информацию способа сканирования матриц квантования, сформированную посредством модуля 321 формирования информации управления сканированием, и кодирует ее.
[0068] Далее описывается операция кодирования изображений, выполняемая посредством вышеописанного устройства кодирования изображений.
[0069] Модуль 321 формирования информации управления сканированием формирует информацию способа сканирования матриц квантования, которая указывает способ сканирования каждой матрицы квантования и способ вычисления значения разности. Согласно настоящему варианту осуществления, если информация способа сканирования матриц квантования равна 1, матрица квантования сканируется с использованием способа сканирования, проиллюстрированного на фиг. 13A. Затем значение разности между элементом и его предыдущим элементом в порядке сканирования вычисляется для всех элементов, и формируется матрица разностей. Дополнительно, если информация способа сканирования матриц квантования равна 1, матрица квантования сканируется с использованием способа сканирования, проиллюстрированного на фиг. 13B. Затем значение разности между элементом и его предыдущим элементом в порядке сканирования вычисляется для всех элементов, и формируется матрица разностей. Кроме того, если информация способа сканирования матриц квантования равна 2, матрица квантования сканируется с использованием способа сканирования, проиллюстрированного на фиг. 13D. Затем значение разности между элементом и его предыдущим элементом в порядке сканирования вычисляется для всех элементов, и формируется матрица разностей. Способ сканирования каждого элемента матрицы квантования и способ вычисления разностей не ограничиваются вышеописанными примерами, и могут использоваться способы, отличные от способов, описанных со ссылкой на фиг. 13A, 13B и 13D. Например, могут использоваться способы вычисления разностей, проиллюстрированные на фиг. 13C и 13E. Дополнительно, комбинация информации способа сканирования матриц квантования и способа сканирования матрицы квантования не ограничены вышеописанным примером. Способ формирования информации способа сканирования матриц квантования не ограничивается. Таким образом, информация может представлять собой значение, введенное пользователем, значение, указанное в качестве фиксированного значения, или значение, вычисленное из характеристик матриц квантования, сохраненных в модуле 106 хранения матриц квантования. Сформированная информация способа сканирования матриц квантования вводится в модуль 309 сканирования матриц квантования и модуль 308 интегрирующего кодирования.
[0070] На основе информации способа сканирования матриц квантования, которая введена, модуль 309 сканирования матриц квантования сканирует каждую матрицу квантования, сохраненную в модуле 106 хранения матриц квантования, вычисляет значение разности, формирует матрицу разностей и выводит матрицу разностей в модуль 107 кодирования матриц квантования.
[0071] Модуль 308 интегрирующего кодирования кодирует информацию способа сканирования матриц квантования, сформированную посредством модуля 321 формирования информации управления сканированием, формирует код информации способа сканирования матриц квантования и выводит сформированный код информации способа сканирования матриц квантования посредством реализации его в информации заголовка. Хотя способ кодирования не ограничивается, может использоваться кодирование методом Хаффмана и арифметическое кодирование. Фиг. 8B иллюстрирует пример потока битов, включающего в себя код информации способа сканирования матриц квантования. Код информации способа сканирования матриц квантования может быть включен в заголовок последовательности либо в заголовок изображения. Тем не менее он должен существовать перед каждым фрагментом кодированных данных матриц квантования.
[0072] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей обработку кодирования изображений в устройстве кодирования изображений согласно третьему примерному варианту осуществления. На фиг. 11, компоненты, аналогичные компонентам на фиг. 9 первого примерного варианта осуществления, обозначаются посредством идентичных ссылок с номерами, и их описания не повторяются.
[0073] На этапе S1151, модуль 321 формирования информации управления сканированием определяет способ сканирования матриц квантования, который должен выполняться на этапе S1152, и формирует информацию способа сканирования матриц квантования. На этапе S1152, модуль 309 сканирования матриц квантования вычисляет значения разностей посредством сканирования матриц квантования, сформированных на этапе S901, посредством использования способа сканирования матриц квантования, определенного на этапе S1151, и формирует матрицы разностей. На этапе S1153, модуль 107 кодирования матриц квантования кодирует матрицы разностей, сформированные на этапе S1152. На этапе S1154, модуль 107 кодирования матриц квантования кодирует информацию способа сканирования матриц квантования, формирует код информации способа сканирования матриц квантования, реализует его в части заголовка так, как реализуются другие коды, и выводит код.
[0074] Согласно вышеописанной конфигурации и работе, каждая матрица квантования сканируется посредством оптимального способа сканирования, и может формироваться поток битов с меньшим объемом кода матрицы квантования. Дополнительно, если различные матрицы квантования должны быть использованы в зависимости от способа сканирования коэффициентов преобразования, способ сканирования элементов матриц квантования может быть определен согласно способу сканирования коэффициентов преобразования. Если должен использоваться другой способ сканирования, может кодироваться флаг, указывающий такой способ, и информация способа сканирования матриц квантования, которая должна быть использована.
[0075] Дополнительно, согласно настоящему варианту осуществления, хотя описывается случай, в котором используется одна матрица квантования, матрица квантования не обязательно одна. Например, если различные матрицы квантования предоставляются для яркости/цветности, может использоваться общая кодированная информация способа сканирования матриц квантования, либо может предоставляться, кодироваться и использоваться другой способ сканирования.
[0076] Дополнительно, модуль 321 формирования информации управления сканированием может формировать способ сканирования посредством ссылки на матрицы квантования, сформированные посредством модуля 106 хранения матриц квантования. Дополнительно, как описано выше, если множество способов сканирования подготавливается заранее, требуемый способ сканирования может быть выбран из способов сканирования и использован в качестве информации сканирования матриц квантования. Кроме того, может кодироваться порядок элементов, которые сканируются. Касательно матрицы квантования на фиг. 13A, может кодироваться и передаваться такой порядок, как 1, 2, 6, 7, 3, 5, 8, 13, 4, 9, 12, 14, 10, 11, 15, 16.
[0077] Фиг. 4 является блок-схемой, иллюстрирующей устройство декодирования изображений согласно четвертому примерному варианту осуществления настоящего изобретения. На фиг. 4, компоненты, аналогичные компонентам на фиг. 2 второго примерного варианта осуществления, обозначаются посредством идентичных ссылок с номерами, и их описания не повторяются. Согласно настоящему варианту осуществления, описывается декодирование потока битов, сформированного в третьем примерном варианте осуществления.
[0078] Модуль 401 декодирования/разделения декодирует информацию заголовка потока битов, который введен, разделяет необходимые коды из потока битов и выводит коды на последующие стадии. Модуль 401 декодирования/разделения отличается от модуля 201 декодирования/разделения, проиллюстрированного на фиг. 2 тем, что код информации способа сканирования матриц квантования отделяется от информации заголовка потока битов, и тем, что он выводится на последующую стадию.
[0079] Модуль 421 декодирования информации управления сканированием декодирует код информации способа сканирования матриц квантования, разделенный посредством модуля 401 декодирования/разделения, и воспроизводит информацию способа сканирования матриц квантования. Модуль 408 обратного сканирования матриц квантования воспроизводит матрицы квантования посредством выполнения обратного сканирования матриц разностей, сформированных посредством модуля 206 декодирования матриц квантования, на основе информации способа сканирования матриц квантования.
[0080] Далее описывается операция декодирования изображений вышеописанного устройства декодирования изображений.
[0081] На фиг. 4 входной поток битов одного кадра вводится в модуль 401 декодирования/разделения, и декодируется информация заголовка, необходимая при воспроизведении изображения. Дополнительно, коды, используемые на последующих стадиях, разделяются и выводятся. Код информации способа сканирования матриц квантования, включенный в информацию заголовка, вводится в модуль 421 декодирования информации управления сканированием, и воспроизводится информация способа сканирования матриц квантования. Затем воспроизведенная информация способа сканирования матриц квантования вводится в модуль 408 обратного сканирования матриц квантования. С другой стороны, кодированные данные матриц квантования, включенные в информацию заголовка, вводятся в модуль 206 декодирования матриц квантования.
[0082] Модуль 206 декодирования матриц квантования декодирует кодированные данные матриц квантования и воспроизводит матрицы разностей. Воспроизведенные матрицы разностей вводятся в модуль 408 обратного сканирования матриц квантования. Модуль 408 обратного сканирования матриц квантования обратно сканирует матрицы разностей, вводимые из модуля 206 декодирования матриц квантования, на основе информации способа сканирования матриц квантования, суммирует разность в единицах элементов и воспроизводит матрицы квантования. Воспроизведенные матрицы квантования сохраняются в модуле 207 хранения матриц квантования.
[0083] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей обработку декодирования изображений в устройстве декодирования изображений согласно четвертому примерному варианту осуществления. На фиг. 12 компоненты, аналогичные компонентам на фиг. 10 второго примерного варианта осуществления, обозначаются посредством идентичных ссылок с номерами, и их описания не повторяются.
[0084] На этапе S1001, модуль 401 декодирования/разделения декодирует информацию заголовка. На этапе S1251, модуль 421 декодирования информации управления сканированием декодирует код информации способа сканирования матриц квантования, включенный в информацию заголовка, и воспроизводит информацию способа сканирования матриц квантования. На этапе S1253, модуль 408 обратного сканирования матриц квантования выполняет обратное сканирование матриц разностей, воспроизведенных на этапе S1252, посредством использования информации способа сканирования матрицы квантования, воспроизведенной на этапе S1251, и воспроизводит матрицы квантования.
[0085] Согласно вышеописанной конфигурации и работе, каждая матрица квантования, сформированная согласно третьему примерному варианту осуществления, сканируется посредством оптимального способа сканирования, и поток битов с меньшим объемом кода матрицы квантования декодируется, и получается воспроизведенное изображение.
[0086] Дополнительно, если различные матрицы квантования должны быть использованы в зависимости от способа сканирования коэффициента ортогонального преобразования, способ сканирования элементов матриц квантования может быть определен согласно способу сканирования коэффициентов преобразования. Если должен использоваться другой способ сканирования, может кодироваться флаг, указывающий такой способ, и информация способа сканирования матриц квантования, которая должна быть использована.
[0087] Согласно пятому примерному варианту осуществления настоящего изобретения, конфигурация устройства кодирования изображений является аналогичной устройству кодирования изображений по первому примерному варианту осуществления, проиллюстрированного на фиг. 1. Тем не менее работа модуля 109 сканирования матриц квантования отличается. Поскольку обработка, за исключением обработки модуля 109 сканирования матриц квантования, является аналогичной обработке первого примерного варианта осуществления, описание такой обработки не повторяется.
[0088] Модуль 109 сканирования матриц квантования считывает матрицы квантования в двумерной форме по порядку из модуля 106 хранения матриц квантования, вычисляет разность между каждым элементом и его прогнозированным значением, сканирует вычисленную разность и компонует полученный результат в одномерных матрицах. Способ вычисления разности отличается от способа, используемого посредством модуля 109 сканирования матриц квантования по первому примерному варианту осуществления.
[0089] Согласно настоящему варианту осуществления, как проиллюстрировано на фиг. 16C, прогнозированное значение вычисляется посредством ссылки на левый и верхний элементы, и вычисленное прогнозированное значение сканируется посредством горизонтального сканирования, проиллюстрированного на фиг. 16A. Затем полученный результат компонуется в одномерной матрице. Касательно способа вычисления прогнозированного значения, хотя элемент с большим значением из левого и верхнего элементов используется в качестве прогнозированного значения согласно настоящему варианту осуществления, настоящее изобретение не ограничено таким примером. Например, меньшее значение может использоваться в качестве прогнозированного значения, или среднее значение двух элементов может использоваться в качестве прогнозированного значения. Касательно кодирования элементов в первой строке матрицы, левый элемент рассматривается как прогнозированное значение. Дополнительно, касательно кодирования элементов в самом левом столбце матрицы, верхний элемент рассматривается как прогнозированное значение. Дополнительно, значение разности, которое соответствует первому элементу матрицы, получается посредством вычисления разности между значением первого элемента и предварительно определенным начальным значением. Согласно настоящему варианту осуществления, хотя начальное значение задается равным 8, может использоваться произвольное значение, либо может использоваться значение самого первого элемента. Дополнительно, способ сканирования не ограничивается горизонтальным сканированием. Другими словами, может использоваться другой способ сканирования, такой как вертикальное сканирование, проиллюстрированное на фиг. 16B, до тех пор, пока он представляет собой однонаправленный способ сканирования.
[0090] Блок-схема последовательности операций способа для процесса кодирования изображений согласно настоящему варианту осуществления является аналогичной блок-схеме последовательности операций способа согласно первому примерному варианту осуществления, проиллюстрированной на фиг. 9, за исключением операции на этапе S902. Поскольку операции, отличные от операций, выполняемых на этапе S902, являются аналогичными операциям, описанным в первом примерном варианте осуществления, их описания не повторяются.
[0091] На этапе S902, модуль 109 сканирования матриц квантования вычисляет разность каждого элемента матриц квантования, сформированных на этапе S901, сканирует разность, которая вычислена, и формирует матрицы разностей. Настоящий вариант осуществления описывает случай, в котором матрица квантования, проиллюстрированная на фиг. 17A, формируется на этапе S901. Двумерная матрица значений разности, проиллюстрированная на фиг. 17B, вычисляется с использованием наибольшего значения из верхнего и левого элементов сформированной матрицы квантования, проиллюстрированной на фиг. 16C, в качестве прогнозированного значения. Затем полученная матрица значений разности сканируется посредством горизонтального сканирования, проиллюстрированного на фиг. 16A, и формируется матрица разностей, проиллюстрированная на фиг. 17C. Если используются верхний и левый элементы, значение, которое используется для способа вычисления значения разности, не ограничивается наибольшим значением, и также может использоваться наименьшее значение или среднее значение. Дополнительно, способ сканирования не ограничивается горизонтальным сканированием, и может использоваться другой способ сканирования до тех пор, пока он представляет собой однонаправленный способ сканирования.
[0092] Фиг. 15 является таблицей, полученной посредством вычисления значений разностей матрицы квантования, проиллюстрированной на фиг. 17A, посредством использования наибольшего значения верхнего и левого элементов в качестве прогнозированного значения, как проиллюстрировано на фиг. 16C, сканирования значения разности посредством использования способа сканирования, проиллюстрированного на фиг. 16A, и его кодирования с использованием таблицы кодирования, проиллюстрированной на фиг. 5A. Столбец значения разности на фиг. 15 показывает результат, полученный посредством горизонтального сканирования значения разности между прогнозированным значением и каждым элементом, при этом прогнозированное значение является предварительно определенным начальным значением (8) или наибольшим значением левого и верхнего элементов. Значения в этой таблице являются идентичными значениям матрицы разностей, проиллюстрированной на фиг. 17C. Столбец кода на фиг. 15 показывает код, полученный посредством кодирования значения разности с использованием таблицы кодирования на фиг. 5A, и требуется всего 50 битов. Это указывает, что матрица квантования может быть кодирована с помощью менее чем 68 битов, требуемых в традиционном способе, проиллюстрированном на фиг. 7. Дополнительно, еще меньше 60 битов требуется в первом примерном варианте осуществления.
[0093] Согласно вышеописанной конфигурации и работе, может быть сформирован поток битов, который требует гораздо меньшего числа битов для матриц квантования.
[0094] Согласно настоящему варианту осуществления, хотя прогнозированное значение вычисляется посредством использования левого и верхнего элементов, прогнозированное значение альтернативно также может быть вычислено, например, посредством использования верхнего левого элемента. Кроме того, также может использоваться элемент, отличный от таких элементов. В таком случае, в дополнение к наибольшему, наименьшему и среднему значениям, альтернативно также может использоваться значение среднего.
[0095] Согласно шестому примерному варианту осуществления настоящего изобретения, устройство декодирования изображений имеет конфигурацию, аналогичную устройству декодирования изображений второго примерного варианта осуществления, проиллюстрированного на фиг. 2. Тем не менее работа модуля 208 обратного сканирования матриц квантования отличается. Поскольку обработка настоящего варианта осуществления является аналогичной обработке второго примерного варианта осуществления за исключением операции, выполняемой посредством модуля 208 обратного сканирования матриц квантования, описание аналогичной обработки не повторяется. Согласно настоящему варианту осуществления, описывается декодирование потока битов, сформированного согласно пятому примерному варианту осуществления.
[0096] Модуль 208 обратного сканирования матриц квантования выполняет обратную операцию относительно модуля 109 сканирования матриц квантования согласно пятому примерному варианту осуществления. Матрицы разностей, вводимые в модуль 208 обратного сканирования матриц квантования, имеют каждое из значений разностей, обратно сканированных, и воспроизводятся двумерные матрицы значений разности. Дополнительно, вычисляется каждый элемент матриц квантования, и воспроизводятся двумерные матрицы квантования. Согласно настоящему варианту осуществления, матрицы разностей обратно сканируются с использованием горизонтального сканирования, проиллюстрированного на фиг. 16A, и воспроизводятся двумерные матрицы значений разности. Дополнительно, каждый элемент матриц квантования вычисляется из левого и верхнего элемента и значения разности, как проиллюстрировано на фиг. 16C, и воспроизводятся двумерные матрицы квантования. Способ для обратного сканирования не ограничивается горизонтальным сканированием, и также может использоваться вертикальное сканирование, проиллюстрированное на фиг. 16B. Другими словами, может использоваться любой способ сканирования до тех пор, пока он представляет собой однонаправленный способ сканирования. Что касается способа вычисления каждого элемента матриц квантования, согласно настоящему варианту осуществления, элемент с большим значением из левого и верхнего элементов определяется в качестве прогнозированного значения, и сумма прогнозированного значения и значения разности рассматривается как значение каждого элемента матриц квантования. Тем не менее прогнозированное значение каждого элемента не ограничивается таким значением. Например, меньшее значение из левого и верхнего элементов или среднее значение двух элементов может использоваться в качестве прогнозированного значения. Затем сумма прогнозированного значения и значения разности определяется в качестве значения каждого элемента матриц квантования. Дополнительно, касательно воспроизведения элементов в верхней строке матрицы, их левый элемент используется в качестве прогнозированного значения. Кроме того, касательно воспроизведения элементов в левом конце матрицы, их верхний элемент используется в качестве прогнозированного значения. Затем сумма прогнозированного значения и значения разности определяется в качестве значения каждого элемента. Дополнительно, касательно воспроизведения первого элемента матрицы, предварительно определенное начальное значение используется в качестве прогнозированного значения. Затем сумма прогнозированного значения и значения разности определяется в качестве значения первого элемента матрицы. Согласно настоящему варианту осуществления, хотя начальное значение задается равным 8, произвольное значение может использоваться в качестве начального значения, или значение самого первого элемента может быть кодировано. Дополнительно, способ сканирования не ограничивается горизонтальным сканированием. Другими словами, может использоваться другой способ сканирования, такой как вертикальное сканирование, проиллюстрированное на фиг. 16B, до тех пор, пока он представляет собой однонаправленный способ сканирования.
[0097] Блок-схема последовательности операций способа для обработки декодирования изображений согласно настоящему варианту осуществления является аналогичной блок-схеме последовательности операций способа второго примерного варианта осуществления, проиллюстрированного на фиг. 10, за исключением операции на этапе S1003. Таким образом, операции, за исключением этапа S1003, являются аналогичными операциям второго примерного варианта осуществления, и их описания не повторяются.
[0098] На этапе S1003, модуль 208 обратного сканирования матриц квантования воспроизводит двумерные матрицы значений разности посредством выполнения обратного сканирования каждого значения разности, полученного из матриц разностей, сформированных на этапе S1002. Дополнительно, двумерные матрицы квантования воспроизводятся посредством вычисления каждого элемента матриц квантования. Согласно настоящему варианту осуществления, матрица разностей, проиллюстрированная на фиг. 17C, используется при описании этой обработки. Матрица разностей обратно сканируется посредством горизонтального сканирования, проиллюстрированного на фиг. 16A, и вычисляется двумерная матрица значений разности, проиллюстрированная на фиг. 17B. Затем большее значение из верхнего и левого элементов определяется в качестве прогнозированного значения. Дополнительно сумма каждого прогнозированного значения и каждого значения разности задается в качестве значения каждого элемента матрицы квантования. Способ обратного сканирования не ограничивается горизонтальным сканированием до тех пор, пока он представляет собой однонаправленный способ обратного сканирования. Дополнительно, элемент с меньшим значением из левого и верхнего элементов или среднее значение элементов может использоваться в качестве прогнозированного значения альтернативно при получении значения каждого элемента, используемого для воспроизведения каждого элемента матрицы квантования.
[0099] Согласно вышеописанной конфигурации и работе, воспроизведенное изображение может быть получено посредством декодирования потока битов с меньшим объемом кода матрицы квантования, сформированной согласно пятому примерному варианту осуществления.
[0100] Согласно настоящему варианту осуществления, хотя прогнозированное значение вычисляется посредством использования левого и верхнего элементов, прогнозированное значение альтернативно также может быть вычислено, например, посредством использования верхнего левого элемента. Кроме того, также может использоваться элемент, отличный от таких элементов. В таком случае, в дополнение к наибольшему, наименьшему и среднему значениям, альтернативно также может использоваться значение среднего.
[0101] Согласно седьмому примерному варианту осуществления настоящего изобретения, конфигурация устройства кодирования изображений является аналогичной устройству кодирования изображений по первому примерному варианту осуществления, проиллюстрированного на фиг. 1. Тем не менее работа модуля 109 сканирования матриц квантования отличается. Поскольку обработка, за исключением обработки модуля 109 сканирования матриц квантования, является аналогичной обработке первого примерного варианта осуществления, описание такой обработки не повторяется.
[0102] Модуль 109 сканирования матриц квантования считывает матрицы квантования в двумерной форме по порядку из модуля 106 хранения матриц квантования, вычисляет разность между каждым элементом и прогнозированным значением, сканирует вычисленные разности и компонует полученный результат в одномерных матрицах. Способ вычисления значений разностей отличается от способа, используемого посредством модуля 109 сканирования матриц квантования по первому примерному варианту осуществления.
[0103] Согласно настоящему варианту осуществления, используется диагональное однонаправленное сканирование, проиллюстрированное на фиг. 18A, и разность между элементом и его предыдущим элементом вычисляется для каждого элемента в порядке сканирования. Тем не менее, способ сканирования не ограничивается таким примером. Например, альтернативно также может использоваться диагональное однонаправленное сканирование, проиллюстрированное на фиг. 18B. Направление сканирования на фиг. 18B и направление сканирования на фиг. 18A являются симметричными относительно диагональной линии. Другими словами, может использоваться любой способ сканирования до тех пор, пока он представляет собой однонаправленный способ сканирования. Дополнительно, если размер блока преобразования 8×8 пикселов дополнительно используется в настоящем варианте осуществления, используется однонаправленное сканирование в диагональном направлении, соответствующем блоку преобразования 8×8 пикселов, проиллюстрированному на фиг. 18C.
[0104] Блок-схема последовательности операций способа для процесса кодирования изображений согласно настоящему варианту осуществления является аналогичной блок-схеме последовательности операций способа согласно первому примерному варианту осуществления, проиллюстрированной на фиг. 9, за исключением операции на этапе S902. Поскольку операции, отличные от операций, выполняемых на этапе S902, являются аналогичными операциям, описанным в первом примерном варианте осуществления, их описания не повторяются.
[0105] На этапе S902, модуль 109 сканирования матриц квантования сканирует матрицы квантования, сформированные на этапе S901. Затем вычисляется разность каждого элемента, и формируются матрицы разностей. Согласно настоящему варианту осуществления, матрица квантования, проиллюстрированная на фиг. 19A, сканируется посредством способа сканирования, проиллюстрированного на фиг. 18A, и формируется матрица разностей, проиллюстрированная на фиг. 19B. Тем не менее матрица квантования и способ сканирования не ограничены такими примерами.
[0106] Согласно вышеописанной конфигурации и работе, для способа кодирования видео, который использует диагональное сканирование, проиллюстрированное на фиг. 18A, вместо зигзагообразного сканирования, проиллюстрированного на фиг. 13A, чтобы кодировать коэффициенты квантования, поток битов с аналогичной или более высокой эффективностью может быть сформирован при экономии объема запоминающего устройства, используемого посредством совместного использования способа сканирования.
[0107] Недавно экспертами из ISO/IEC и ITU-T создана JCT-VC (объединенная группа для совместной работы над видеостандартами) для того, чтобы разрабатывать новый международный стандарт кодирования видео в качестве продолжения H.264. В статье JCTVC-J0150, предоставленной в JCT-VC, сообщается, что эквивалентная или немного более высокая эффективность подтверждается посредством использования способа диагонального сканирования, который является эквивалентным способу настоящего варианта осуществления для кодирования матриц квантования. Дополнительно, поскольку зигзагообразное сканирование не используется в стандарте высокоэффективного кодирования видео (HEVC), который является объектом стандартизации в JCT-VC, эффект экономии объема запоминающего устройства посредством совместного использования способа сканирования также сообщается в статье. <http://phenix.intevry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/>
[0108] Дополнительно, как проиллюстрировано на фиг. 20A-20D, если матрица квантования разделяется на определенное число небольших матриц, небольшие матрицы могут быть сканированы посредством однонаправленного сканирования. Таким образом, способ сканирования матрицы квантования 4×4 может применяться к матрице квантования большего размера, и может сокращаться объем запоминающего устройства, требуемого при сохранении информации порядка сканирования.
[0109] Согласно восьмому примерному варианту осуществления настоящего изобретения, устройство декодирования изображений имеет конфигурацию, аналогичную устройству декодирования изображений второго примерного варианта осуществления, проиллюстрированного на фиг. 2. Тем не менее работа модуля 208 обратного сканирования матриц квантования отличается. Поскольку обработка настоящего варианта осуществления является аналогичной обработке второго примерного варианта осуществления за исключением операции, выполняемой посредством модуля 208 обратного сканирования матриц квантования, описание аналогичной обработки не повторяется. Согласно настоящему варианту осуществления, описывается декодирование потока битов, сформированного согласно седьмому примерному варианту осуществления.
[0110] Модуль 208 обратного сканирования матриц квантования выполняет обратную операцию относительно модуля 109 сканирования матриц квантования согласно седьмому примерному варианту осуществления. Матрицы разностей, вводимые в модуль 208 обратного сканирования матриц квантования, имеют каждый элемент матрицы квантования, вычисленный из каждого значения разности. Затем вычисленные элементы обратно сканируются, и воспроизводятся двумерные матрицы квантования.
[0111] Согласно настоящему варианту осуществления, каждый элемент матриц квантования вычисляется из каждого значения разности матриц разностей, и полученный элемент обратно сканируется с использованием способа сканирования, проиллюстрированного на фиг. 18A, чтобы воспроизводить двумерные матрицы квантования. Способ обратного сканирования не ограничивается способом, проиллюстрированным на фиг. 18A, и альтернативно может представлять собой диагональное однонаправленное сканирование, проиллюстрированное на фиг. 18B. Направление сканирования на фиг. 18B и направление сканирования на фиг. 18A являются симметричными относительно диагональной линии. Другими словами, может использоваться любой способ сканирования до тех пор, пока он представляет собой однонаправленный способ сканирования.
[0112] Блок-схема последовательности операций способа для обработки декодирования изображений согласно настоящему варианту осуществления является аналогичной блок-схеме последовательности операций способа второго примерного варианта осуществления, проиллюстрированного на фиг. 10, за исключением операции на этапе S1003. Таким образом, операции, за исключением этапа S1003, являются аналогичными операциям второго примерного варианта осуществления, и их описания не повторяются.
[0113] На этапе S1003, модуль 208 обратного сканирования матриц квантования воспроизводит двумерные матрицы квантования посредством вычисления каждого элемента матриц квантования из матриц разностей, сформированных на этапе S1002, и выполнения обратного сканирования каждого элемента. Согласно настоящему варианту осуществления, каждый элемент матрицы квантования вычисляется из матрицы разностей, проиллюстрированной на фиг. 19B, и каждый вычисленный элемент обратно сканируется с использованием способа обратного сканирования, проиллюстрированного на фиг. 18A. Следовательно, воспроизводится матрица квантования, проиллюстрированная на фиг. 19A. Матрица разностей и способ обратного сканирования не ограничены такими примерами.
[0114] Согласно вышеописанной конфигурации и работе, воспроизведенное изображение может быть получено посредством декодирования потока битов с аналогичной или немного более высокой эффективностью кодирования, сформированной посредством седьмого примерного варианта осуществления, при экономии объема запоминающего устройства, используемого посредством совместного использования способа сканирования.
[0115] Согласно вышеописанному примерному варианту осуществления, каждый модуль обработки, проиллюстрированный на фиг. 1-4, реализуется посредством аппаратного компонента. Тем не менее обработка, выполняемая посредством каждого модуля обработки, проиллюстрированного на фиг. 1-4, может выполняться посредством машиноисполняемой программы.
[0116] Фиг. 14 является блок-схемой, иллюстрирующей пример аппаратной конфигурации компьютера, который может использоваться для устройства обработки изображений согласно вышеописанным примерным вариантам осуществления.
[0117] Центральный процессор 1401 (CPU) управляет всем компьютером согласно компьютерной программе или данным, сохраненным в оперативном запоминающем устройстве 1402 (RAM) или постоянном запоминающем устройстве 1403 (ROM). Дополнительно, CPU 1401 выполняет вышеописанную обработку, выполняемую посредством устройства обработки изображений согласно вышеописанным примерным вариантам осуществления. Другими словами, CPU 1401 выступает в качестве каждого из модулей обработки, проиллюстрированных на фиг. 1-4.
[0118] RAM 1402 включает в себя область, используемую для временного сохранения компьютерной программы или данных, загружаемых из внешнего устройства 1406 хранения данных, либо данных, полученных внешне через интерфейс 1407. Дополнительно, RAM 1402 включает в себя рабочую область, которая используется, когда CPU 1401 выполняет различные типы обработки. Другими словами, RAM 1402 может назначаться в качестве запоминающего устройства кадров или произвольно предоставлять другие различные области.
[0119] Настроечные данные компьютера и программы, такие как загрузочная программа, сохраняются в ROM 1403. Функциональный модуль 1404 включает в себя клавиатуру или мышь. Посредством управления функциональным модулем 1404 пользователем компьютера, различные инструкции вводятся в CPU 1401. Модуль 1405 вывода выводит результат обработки, выполняемой посредством CPU 1401. Модуль 1405 вывода является, например, устройством отображения, таким как жидкокристаллический дисплей, и допускает отображение результата обработки.
[0120] Внешнее устройство 1406 хранения данных представляет собой модуль хранения информации большой емкости, в качестве примера, жесткий диск. Операционная система (ОС) и компьютерная программа, которая используется, когда CPU 1401 реализует функцию каждого модуля, проиллюстрированного на фиг. 1-4, сохраняются во внешнем устройстве 1406 хранения данных. Дополнительно, каждые данные изображений в качестве объекта для обработки могут быть сохранены во внешнем устройстве 1406 хранения данных.
[0121] Компьютерная программа или данные, сохраненные во внешнем устройстве 1406 хранения данных, загружаются в RAM 1402 надлежащим образом согласно управлению CPU 1401 и обрабатываются посредством CPU 1401. Сеть, к примеру, локальная вычислительная сеть (LAN) или Интернет и другое устройство, к примеру, проекционный аппарат или устройство отображения могут подключаться к интерфейсу 1407, так что компьютер может принимать и передавать различные фрагменты информации через интерфейс 1407. Шина 1408 соединяет каждый из вышеописанных модулей.
[0122] Работа, реализованная посредством вышеописанной конфигурации, выполняется, главным образом, посредством CPU 1401. Обработка, описанная со ссылкой на блок-схему последовательности операций способа, описанную выше, управляется посредством CPU 1401.
[0123] Настоящее изобретение может осуществляться, когда носитель хранения данных, сохраняющий код компьютерной программы, которая реализует вышеописанную функцию, предоставляется в систему, и система считывает и выполняет код компьютерной программы. В этом случае, программный код, считываемый из самого носителя хранения данных, реализует функцию вышеописанного примерного варианта осуществления, и носитель хранения данных, который сохраняет программный код, составляет настоящее изобретение. Дополнительно, случай, в котором ОС и т.п., которая работает на компьютере, выполняет часть или всю фактическую обработку на основе инструкции программного кода так, что реализуется функционал вышеописанной функции, также включается в настоящее изобретение.
[0124] Кроме того, настоящее изобретение может осуществляться посредством следующей конфигурации. В частности, компьютерный программный код, считываемый из носителя хранения данных, записывается в запоминающее устройство, предоставленное в функциональной плате расширения, вставленной в компьютер, или в функциональном модуле расширения, подключенном к компьютеру, и CPU, предоставленное в функциональной плате расширения или в функциональном модуле расширения, выполняет полностью или часть фактической обработки на основе инструкции из компьютерного программного кода, чтобы реализовывать функции вышеописанного примерного варианта осуществления. Вышеописанная конфигурация также включается в настоящее изобретение.
[0125] Когда настоящее изобретение применяется к вышеописанному носителю хранения данных, код компьютерной программы, соответствующей блок-схеме последовательности операций способа, описанной выше, сохраняется в носителе хранения данных.
[0126] Хотя настоящее изобретение описано со ссылкой на примерные варианты осуществления, следует понимать, что изобретение не ограничено раскрытыми примерными вариантами осуществления. Объем нижеприведенной формулы изобретения должен согласовываться с самой широкой интерпретацией так, что он охватывает все модификации, эквивалентные структуры и функции.
[0127] Данная заявка притязает на приоритет заявок на патент (Япония) № 2011-243942 поданной 7 ноября 2011 года, № 2012-008199, поданной 18 января 2012 года, № 2012-057424, поданной 14 марта 2012 года, и № 2012-093113, поданной 16 апреля 2012 года, которые настоящим полностью содержатся в данном документе по ссылке.