способ и устройство для кодирования и декодирования изображения посредством использования вращательного преобразования
Классы МПК: | H04N7/30 с использованием кодирования с преобразованием G06T3/60 вращение целого изображения или его части |
Автор(ы): | АЛШИНА Елена (KR), АЛШИН Александр (KR), СЕРЕГИН Вадим (KR) |
Патентообладатель(и): | САМСУНГ ЭЛЕКТРОНИКС КО., ЛТД. (KR) |
Приоритеты: |
подача заявки:
2010-10-28 публикация патента:
10.01.2014 |
Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении высокого коэффициента сжатия при кодировании матрицы частотных коэффициентов. Способ кодирования изображений включает в себя формирование первой матрицы частотных коэффициентов посредством преобразования предварительно определенного блока в частотную область; определение, включает ли первая матрица частотных коэффициентов коэффициенты, абсолютные значения которых превышают предварительно определенное значение; формирование второй матрицы частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк и столбцов первой матрицы частотных коэффициентов согласно угловому параметру на основе результата определения; и избирательное кодирование второй матрицы частотных коэффициентов на основе результата определения. 5 н. и 10 з.п. ф-лы, 21 ил.
Формула изобретения
1. Способ кодирования изображения, при этом способ содержит этапы, на которых:
- формируют первую матрицу частотных коэффициентов посредством преобразования предварительно определенного блока в частотную область;
- определяют, включает ли первая матрица частотных коэффициентов коэффициенты, абсолютные значения которых превышают предварительно определенное значение;
- формируют вторую матрицу частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк и столбцов первой матрицы частотных коэффициентов согласно угловому параметру на основе результата определения; и
- избирательно кодируют вторую матрицу частотных коэффициентов на основе результата определения,
- при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк и столбцов.
2. Способ по п.1, в котором определение содержит определение, включает ли первая матрица частотных коэффициентов ненулевые коэффициенты.
3. Способ по п.2, в котором определение дополнительно содержит определение, является ли предварительно определенный блок блоком двунаправленного предсказанного слоя.
4. Способ по п.2, в котором определение дополнительно содержит определение, является ли предварительно определенный блок блоком, предсказанным посредством выполнения внутреннего предсказания.
5. Способ по п.2, в котором избирательное кодирование содержит:
- квантование второй матрицы частотных коэффициентов, если первая матрица частотных коэффициентов включает в себя ненулевые коэффициенты; и
- энтропийное кодирование квантованной второй матрицы частотных коэффициентов и информации об угловом параметре.
6. Способ декодирования изображения, при этом способ содержит этапы, на которых:
- декодируют информацию, указывающую, включает ли первая матрица частотных коэффициентов предварительно определенного блока коэффициенты, абсолютные значения которых превышают предварительно определенное значение;
- избирательно декодируют данные второй матрицы частотных коэффициентов на основе декодированной информации;
- восстанавливают первую матрицу частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк и столбцов второй матрицы частотных коэффициентов согласно угловому параметру на основе декодированной информации; и
- восстанавливают предварительно определенный блок посредством преобразования первой матрицы частотных коэффициентов в пиксельную область,
- при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк и столбцов.
7. Способ по п.6, в котором декодированная информация указывает, включает ли первая матрица частотных коэффициентов ненулевые коэффициенты.
8. Способ по п.7, в котором предварительно определенный блок не является блоком двунаправленного предсказанного слоя (B слоя).
9. Способ по п.7, в котором предварительно определенный блок является блоком, предсказанным посредством выполнения внутреннего предсказания.
10. Способ по п.7, в котором декодирование данных второй матрицы частотных коэффициентов содержит:
- энтропийное декодирование данных второй матрицы частотных коэффициентов и информации об угловом параметре, если декодированная информация указывает, что первая матрица частотных коэффициентов включает в себя ненулевые коэффициенты; и
- обратное квантование декодированной второй матрицы частотных коэффициентов.
11. Устройство для кодирования изображения, при этом устройство содержит:
- первый преобразователь, который формирует первую матрицу частотных коэффициентов посредством преобразования предварительно определенного блока в частотную область;
- второй преобразователь, который определяет, включает ли первая матрица частотных коэффициентов коэффициенты, абсолютные значения которых превышают предварительно определенное значение, и формирует вторую матрицу частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк и столбцов первой матрицы частотных коэффициентов согласно угловому параметру на основе результата определения; и
- кодер, который избирательно кодирует вторую матрицу частотных коэффициентов на основе результата определения второго преобразователя, при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк и столбцов.
12. Устройство по п.11, в котором второй преобразователь определяет, включает ли первая матрица частотных коэффициентов ненулевые коэффициенты.
13. Устройство для декодирования изображения, при этом устройство содержит:
- декодер, который декодирует информацию, указывающую, включает ли первая матрица частотных коэффициентов предварительно определенного блока коэффициенты, абсолютные значения которых превышают предварительно определенное значение, и избирательно декодирует данные второй матрицы частотных коэффициентов на основе декодированной информации;
- первый обратный преобразователь, который восстанавливает первую матрицу частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк и столбцов второй матрицы частотных коэффициентов согласно угловому параметру на основе декодированной информации; и
- второй обратный преобразователь, который восстанавливает предварительно определенный блок посредством преобразования первой матрицы частотных коэффициентов в пиксельную область,
- при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк и столбцов.
14. Устройство по п.13, в котором декодированная информация указывает, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты.
15. Энергонезависимый машиночитаемый носитель записи, имеющий записанную на нем компьютерную программу для исполнения способа по одному из пп.1-10.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Устройства и способы в соответствии с примерными вариантами осуществления изобретения относятся к способу и устройству для кодирования и декодирования изображения, а более конкретно к способу и устройству для кодирования и декодирования коэффициентов, сформированных посредством преобразования изображения из пиксельной области в частотную область.
Уровень техники
В большинстве способов и устройств для кодирования и декодирования изображения, изображение в пиксельной области преобразуется в частотную область и затем кодируется, чтобы сжать изображение. Дискретное косинусное преобразование (DCT) является известной технологией, используемой для того, чтобы сжимать аудио-видео-(AV-)данные. В последние годы предпринимается множество попыток находить более эффективные способы кодирования. При кодировании аудиопараметрическое кодирование выполняется лучше, чем DCT, а в двумерных данных преобразование Карунена-Лоэва (KLT) имеет минимальный размер в битах, но имеет большой размер объема служебной информации.
Сущность изобретения
Решение задачи
Примерные варианты осуществления изобретения разрешают, по меньшей мере, вышеуказанные проблемы и/или недостатки и другие недостатки, не описанные выше. Кроме того, примерный вариант осуществления не обязательно должен преодолевать недостатки, описанные выше, и примерный вариант осуществления может не преодолевать ни одну из проблем, описанных выше.
Примерные варианты осуществления предоставляют способ и устройство для кодирования и декодирования изображения и машиночитаемый носитель записи, имеющий записанную на нем компьютерную программу для исполнения упомянутого способа.
Преимущества изобретения
Согласно настоящему изобретению, матрица частотных коэффициентов предварительно определенного блока может быть кодирована с высоким коэффициентом сжатия.
Краткое описание чертежей
Вышеуказанные и/или другие аспекты примерных вариантов осуществления изобретения должны стать более очевидными из описания конкретных примерных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 является блок-схемой устройства для кодирования изображения, согласно примерному варианту осуществления;
Фиг. 2 является блок-схемой устройства для декодирования изображения, согласно примерному варианту осуществления;
Фиг. 3 иллюстрирует иерархические единицы кодирования согласно примерному варианту осуществления;
Фиг. 4 является блок-схемой кодера изображений на основе единицы кодирования, согласно примерному варианту осуществления;
Фиг. 5 является блок-схемой декодера изображений на основе единицы кодирования, согласно примерному варианту осуществления;
Фиг. 6 иллюстрирует максимальную единицу кодирования, субъединицу кодирования и единицу предсказания, согласно примерному варианту осуществления;
Фиг. 7 иллюстрирует единицу кодирования и единицу преобразования, согласно примерному варианту осуществления;
Фиг. 8a, 8b, 8c и 8d иллюстрируют формы разделения единицы кодирования, единицы предсказания и единицы преобразования, согласно примерному варианту осуществления;
Фиг. 9 является блок-схемой устройства для кодирования изображения, согласно другому примерному варианту осуществления;
Фиг. 10 является блок-схемой второго преобразователя, проиллюстрированного на фиг. 9, согласно примерному варианту осуществления;
Фиг. 11a, 11b и 11c являются схемами для описания вращательного преобразования (ROT) согласно примерному варианту осуществления;
Фиг. 12 иллюстрирует эйлеровы углы согласно примерному варианту осуществления;
Фиг. 13 иллюстрирует псевдослучайные точки согласно примерному варианту осуществления;
Фиг. 14 является блок-схемой устройства для декодирования изображения, согласно другому примерному варианту осуществления;
Фиг. 15 является блок-схемой декодера, проиллюстрированного на фиг. 14, согласно примерному варианту осуществления;
Фиг. 16 является блок-схемой последовательности операций способа кодирования изображения, согласно примерному варианту осуществления; и
Фиг. 17 является блок-схемой последовательности операций способа декодирования изображения, согласно примерному варианту осуществления.
Предпочтительный вариант осуществления изобретения
Согласно аспекту примерного варианта осуществления, предусмотрен способ кодирования изображения, при этом способ включает в себя формирование первой матрицы частотных коэффициентов посредством преобразования предварительно определенного блока в частотную область; определение того, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение; формирование второй матрицы частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк или столбцов первой матрицы частотных коэффициентов согласно предварительно определенному угловому параметру на основе результата определения; и избирательное кодирование второй матрицы частотных коэффициентов на основе результата определения, при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк или столбцов.
Определение может включать в себя определение того, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты.
Определение дополнительно может включать в себя определение того, является ли предварительно определенный блок блоком двунаправленного предсказанного слоя (B слоя).
Определение дополнительно может включать в себя определение того, является ли предварительно определенный блок блоком, предсказанным посредством выполнения внутреннего предсказания.
Избирательное кодирование может включать в себя квантование второй матрицы частотных коэффициентов, если первая матрица частотных коэффициентов включает в себя ненулевые коэффициенты; и энтропийное кодирование квантованной второй матрицы частотных коэффициентов и информации об угловом параметре.
Согласно другому аспекту примерного варианта осуществления, предусмотрен способ декодирования изображения, при этом способ включает в себя декодирование информации, указывающей то, включает ли первая матрица частотных коэффициентов предварительно определенного блока в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение; избирательное декодирование данных второй матрицы частотных коэффициентов на основе декодированной информации; восстановление первой матрицы частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк или столбцов второй матрицы частотных коэффициентов согласно предварительно определенному угловому параметру на основе декодированной информации; и восстановление предварительно определенного блока посредством преобразования первой матрицы частотных коэффициентов в пиксельную область, при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк или столбцов.
Согласно другому аспекту примерного варианта осуществления, предусмотрено устройство для кодирования изображения, причем устройство включает в себя первый преобразователь для формирования первой матрицы частотных коэффициентов посредством преобразования предварительно определенного блока в частотную область; второй преобразователь для определения того, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение, и формирования второй матрицы частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк или столбцов первой матрицы частотных коэффициентов согласно предварительно определенному угловому параметру на основе результата определения; и кодер для избирательного кодирования второй матрицы частотных коэффициентов на основе результата определения, при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк или столбцов.
Согласно другому аспекту примерного варианта осуществления, предусмотрено устройство для декодирования изображения, причем устройство включает в себя декодер для декодирования информации, указывающей то, включает ли первая матрица частотных коэффициентов предварительно определенного блока в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение, и избирательного декодирования данных второй матрицы частотных коэффициентов на основе декодированной информации; первый обратный преобразователь для восстановления первой матрицы частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк или столбцов второй матрицы частотных коэффициентов согласно предварительно определенному угловому параметру на основе декодированной информации; и второй обратный преобразователь для восстановления предварительно определенного блока посредством преобразования первой матрицы частотных коэффициентов в пиксельную область, при этом угловой параметр указывает степень частичного переключения между по меньшей мере одним из строк или столбцов.
Согласно другому аспекту примерного варианта осуществления, предоставляется машиночитаемый носитель записи, имеющий записанную на нем компьютерную программу для исполнения способа кодирования изображений и/или способа декодирования изображений.
Осуществление изобретения
Конкретные примерные варианты осуществления подробнее описываются ниже со ссылкой на прилагаемые чертежи. Такие выражения, как "по меньшей мере один из", предваряющие список элементов, изменяют весь список элементов и не изменяют отдельных элементов списка. В настоящем описании изобретения "изображение" может обозначать неподвижное изображение для видео или движущееся изображение, т.е. само видео.
В последующем описании, аналогичные ссылки с номерами из чертежей используются для аналогичных элементов, даже на различных чертежах. Аспекты, указываемые в описании, такие как детальная конструкция и элементы, предоставляются для того, чтобы обеспечить исчерпывающее понимание примерных вариантов осуществления. Тем не менее, примерные варианты осуществления могут осуществляться на практике без этих конкретно заданных аспектов.
Фиг. 1 является блок-схемой устройства для кодирования изображения, согласно примерному варианту осуществления. Устройство 100 кодирования изображений может быть реализовано как устройство, такое как, например, процессор компьютера или компьютерной системы. Устройство 100 кодирования изображений также может быть реализовано как программный модуль, постоянно размещающийся в компьютерной системе.
Как показано на фиг. 1, устройство 100 кодирования изображений включает в себя модуль 110 деления на максимальные единицы кодирования, модуль 120 определения глубины кодирования, кодер 130 данных изображений и кодер 140 информации кодирования, которые могут быть реализованы, например, в качестве аппаратных или программных модулей, интегрированных в устройство 100 кодирования изображений или выполненных отдельно от устройства 100 кодирования изображений.
Модуль 110 деления на максимальные единицы кодирования может разделять текущий кадр или слой на основе максимальной единицы кодирования, которая является единицей кодирования наибольшего размера. Т.е. модуль 110 деления на максимальные единицы кодирования может разделять текущий кадр или слой, по меньшей мере, на одну максимальную единицу кодирования.
Согласно примерному варианту осуществления единица кодирования может быть представлена с использованием максимальной единицы кодирования и глубины. Как описано выше, максимальная единица кодирования указывает единицу кодирования, имеющую наибольший размер из числа единиц кодирования текущего кадра, а глубина указывает степень иерархического снижения единицы кодирования. По мере того, как глубина увеличивается, единица кодирования может снижаться с максимальной единицы кодирования до минимальной единицы кодирования, при этом глубина максимальной единицы кодирования задается как минимальная глубина, а глубина минимальной единицы кодирования задается как максимальная глубина. Поскольку размер единицы кодирования снижается от максимальной единицы кодирования по мере того, как глубина увеличивается, субъединица кодирования k-той глубины может включать в себя множество субъединиц кодирования (k+n)-ной глубины (k и n являются целыми числами, равными или превышающими 1).
Согласно увеличению размера кадра, который должен быть кодирован, кодирование изображения с большей единицей кодирования может приводить к более высокому коэффициенту сжатия изображений. Тем не менее, если большая единица кодирования является фиксированной, изображение может не быть эффективно кодировано посредством отражения непрерывно меняющихся характеристик изображений.
Например, когда кодируется гладкая область, к примеру, море или небо, чем больше единица кодирования, тем больше может увеличиваться коэффициент сжатия. Тем не менее, когда кодируется сложная область, к примеру, люди или здания, чем меньше единица кодирования, тем больше может увеличиваться коэффициент сжатия.
Соответственно, в примерном варианте осуществления, различная максимальная единица кодирования изображений и различная максимальная глубина задаются для каждого кадра или слоя. Поскольку максимальная глубина обозначает максимальное число раз, на которое может снижаться единица кодирования, размер каждой минимальной единицы кодирования, включенной в максимальную единицу кодирования изображений, может переменно задаваться согласно максимальной глубине. Максимальная глубина может быть определена по-разному для каждого кадра или слоя либо для каждой максимальной единицы кодирования.
Модуль 120 определения глубины кодирования определяет форму разделения максимальной единицы кодирования. Форма разделения может быть определена на основе вычисления затрат на искажение в зависимости от скорости передачи (RD). Определенная форма разделения максимальной единицы кодирования предоставляется в кодер 140 информации кодирования, и данные изображений согласно максимальным единицам кодирования предоставляются в кодер 130 данных изображений.
Максимальная единица кодирования может быть разделена на субъединицы кодирования, имеющие различные размеры согласно различным глубинам, и субъединицы кодирования, имеющие различные размеры, которые включаются в максимальную единицу кодирования, могут быть предсказаны или преобразованы по частоте на основе единиц обработки, имеющих различные размеры. Другими словами, устройство 100 кодирования изображений может выполнять множество операций обработки для кодирования изображений на основе единиц обработки, имеющих различные размеры и различные формы. Чтобы кодировать данные изображений, выполняются такие операции обработки, как предсказание, преобразование и энтропийное кодирование, при этом для каждой операции могут использоваться единицы обработки, имеющие идентичный размер или же различные размеры.
Например, устройство 100 кодирования изображений может выбирать единицу обработки, которая отличается от единицы кодирования, чтобы предсказывать единицу кодирования.
Когда размер единицы кодирования равняется 2N×2N (где N является положительным целым числом), единицы обработки для предсказания могут равняться 2N×2N, 2N×N, N×2N и N×N. Другими словами, предсказание движения может быть выполнено на основе единицы обработки, имеющей форму, посредством которой, по меньшей мере, одно из высоты и ширины единицы кодирования поровну разделяется на две половины. В дальнейшем в этом документе, единица обработки, которая является основанием предсказания, задается как единица предсказания.
Режим предсказания может быть, по меньшей мере, одним из внутреннего режима, взаимного режима и режима пропуска, и конкретный режим предсказания может быть выполнен только для единицы предсказания, имеющей конкретный размер или конкретную форму. Например, внутренний режим может быть выполнен только для единиц предсказания, имеющих размеры 2N×2N и N×N, которые имеют форму квадрата. Дополнительно, режим пропуска может быть выполнен только для единицы предсказания, имеющей размер 2N×2N. Если множество единиц предсказания существует в единице кодирования, режим предсказания с наименьшим количеством ошибок кодирования может быть выбран после выполнения предсказания для каждой единицы предсказания.
Альтернативно, устройство 100 кодирования изображений может выполнять преобразование частоты для данных изображений на основе единицы обработки, имеющей размер, отличающийся от единицы кодирования. Для преобразования частоты в единице кодирования, преобразование частоты может быть выполнено на основе единицы обработки, имеющей размер, равный или меньший размера единицы кодирования. В дальнейшем в этом документе, единица обработки, которая является основанием преобразования частоты, задается как единица преобразования. Преобразование частоты может быть дискретным косинусным преобразованием (DCT) или преобразованием Карунена-Лоэва (KLT).
Модуль 120 определения глубины кодирования может определять субъединицы кодирования, включенные в состав максимальной единицы кодирования, с использованием RD оптимизации на основе множителя Лагранжа. Другими словами, модуль 120 определения глубины кодирования может определять то, какую форму имеет множество субъединиц кодирования, полученных разделением из максимальной единицы кодирования, при этом множество субъединиц кодирования имеет различные размеры согласно глубинам субъединиц кодирования. Кодер 130 данных изображений выводит поток битов посредством кодирования максимальной единицы кодирования на основе форм разделения, определенных модулем 120 определения глубины кодирования.
Кодер 140 информации кодирования кодирует информацию о режиме кодирования максимальной единицы кодирования, определенной модулем 120 определения глубины кодирования. Другими словами, кодер 140 информации кодирования выводит поток битов посредством кодирования информации о форме разделения максимальной единицы кодирования, информации о глубине и информации о режиме кодирования субъединицы кодирования для каждой глубины. Информация о режиме кодирования субъединицы кодирования может включать в себя информацию о единице предсказания субъединицы кодирования, информацию о режиме предсказания для каждой единицы предсказания и информацию о единице преобразования субъединицы кодирования.
Информация о форме разделения максимальной единицы кодирования может быть информацией флага, указывающей то, разделяется ли каждая единица кодирования. Например, когда максимальная единица кодирования разделяется и кодируется, кодируется информация, указывающая то, разделяется ли максимальная единица кодирования. Кроме того, когда субъединица кодирования, полученная разделением из максимальной единицы кодирования, разделяется и кодируется, кодируется информация, указывающая то, разделяется ли субъединица кодирования.
Поскольку субъединицы кодирования, имеющие различные размеры, существуют для каждой максимальной единицы кодирования, и информация о режиме кодирования определяется для каждой субъединицы кодирования, информация о по меньшей мере одном режиме кодирования может быть определена для одной максимальной единицы кодирования.
Устройство 100 кодирования изображений может формировать субъединицы кодирования посредством равного деления высоты и ширины максимальной единицы кодирования пополам согласно увеличению глубины. Т.е. когда размер единицы кодирования k-той глубины равняется 2N×2N, размер единицы кодирования (k+1)-вой глубины равняется N×N.
Соответственно, устройство 100 кодирования изображений может определять оптимальную форму разделения для каждой максимальной единицы кодирования на основе размеров максимальных единиц кодирования и максимальной глубины с учетом характеристик изображений. Посредством переменного регулирования размера максимальной единицы кодирования с учетом характеристик изображений и кодирования изображения через разделение максимальной единицы кодирования на субъединицы кодирования различных глубин, изображения, имеющие различные разрешения, могут быть кодированы более эффективно.
Фиг. 2 является блок-схемой устройства 200 декодирования изображений для декодирования изображения согласно примерному варианту осуществления. Устройство 200 декодирования изображений может быть реализовано как устройство, такое как, например, процессор компьютера или компьютерной системы. Устройство 200 декодирования изображений также может быть реализовано как программный модуль, постоянно размещающийся в компьютерной системе.
Как показано на фиг. 2, устройство 200 декодирования изображений включает в себя модуль 210 обнаружения данных изображений, модуль 220 извлечения информации кодирования и декодер 230 данных изображений, которые могут быть реализованы, например, в качестве аппаратных или программных модулей, интегрированных в устройство 200 декодирования изображений или выполненных отдельно от устройства 200 кодирования изображений.
Модуль 210 обнаружения данных изображений обнаруживает данные изображений согласно максимальным единицам кодирования посредством синтаксического анализа потока битов, принимаемого устройством 200 декодирования изображений, и выводит данные изображений в декодер 230 данных изображений. Модуль 210 обнаружения данных изображений может извлекать информацию о максимальной единице кодирования текущего кадра или слоя из заголовка текущего кадра или слоя. Другими словами, модуль 210 обнаружения данных изображений разделяет поток битов в максимальной единице кодирования так, что декодер 230 данных изображений может декодировать данные изображений согласно максимальным единицам кодирования.
Модуль 220 извлечения информации кодирования извлекает информацию о максимальной единице кодирования, максимальной глубине, форме разделения максимальной единицы кодирования, режиме кодирования субъединиц кодирования из заголовка текущего кадра посредством синтаксического анализа потока битов, принимаемого устройством 200 декодирования изображений. Информация о форме разделения и информация о режиме кодирования предоставляются в декодер 230 данных изображений.
Информация о форме разделения максимальной единицы кодирования может включать в себя информацию о субъединицах кодирования, имеющих различные размеры согласно глубинам и включенных в максимальную единицу кодирования, и может быть информацией флага, указывающей то, разделяется ли каждая единица кодирования.
Информация о режиме кодирования может включать в себя информацию о единице предсказания согласно субъединицам кодирования, информацию о режиме предсказания и информацию о единице преобразования.
Декодер 230 данных изображений восстанавливает текущий кадр посредством декодирования данных изображений каждой максимальной единицы кодирования на основе информации, извлеченной модулем 220 извлечения информации кодирования.
Декодер 230 данных изображений может декодировать субъединицы кодирования, включенные в максимальную единицу кодирования, на основе информации о форме разделения максимальной единицы кодирования. Процесс декодирования может включать в себя процесс предсказания, включающий в себя процесс внутреннего предсказания и компенсации движения и обратного преобразования.
Декодер 230 данных изображений может выполнять внутреннее предсказание или взаимное предсказание на основе информации о единице предсказания и информации о режиме предсказания, чтобы предсказывать единицу предсказания. Декодер 230 данных изображений также может выполнять обратное преобразование для каждой субъединицы кодирования на основе информации о единице преобразования субъединицы кодирования.
Фиг. 3 иллюстрирует иерархические единицы кодирования согласно примерному варианту осуществления.
Как показано на фиг. 3, иерархические единицы кодирования могут включать в себя единицы кодирования, ширины и высоты которых равняются 64×64, 32×32, 16×16, 8×8 и 4×4. Помимо этих единиц кодирования, имеющих формы полного квадрата, также могут существовать единицы кодирования, ширины и высоты которых равняются 64×32, 32×64, 32×16, 16×32, 16×8, 8×16, 8×4 и 4×8.
Как показано на фиг. 3, для набора 310 данных изображений, разрешение которого равняется 1920×1080, размер максимальной единицы кодирования задается равным 64×64, а максимальная глубина задается равной 2.
Для набора 320 данных изображений, разрешение которого равняется 1920×1080, размер максимальной единицы кодирования задается равным 64×64, а максимальная глубина задается равной 3. Для набора 330 данных изображений, разрешение которого равняется 352×288, размер максимальной единицы кодирования задается равным 16×16, а максимальная глубина задается равной 1.
Когда разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может задаваться относительно большим, чтобы увеличивать коэффициент сжатия и более точно отражать характеристики изображений. Соответственно, для наборов 310 и 320 данных изображений, имеющих более высокое разрешение, чем набор 330 данных изображений, 64×64 может быть выбрано в качестве размера максимальной единицы кодирования.
Максимальная глубина указывает общее число уровней в иерархических единицах кодирования. Поскольку максимальная глубина набора 310 данных изображений равняется 2, единица 315 кодирования набора 310 данных изображений может включать в себя максимальную единицу кодирования, больший размер оси которой равняется 64, и субъединицы кодирования, большие размеры оси которых равняются 32 и 16, согласно увеличению глубины.
С другой стороны, поскольку максимальная глубина набора 330 данных изображений равняется 1, единица 335 кодирования набора 330 данных изображений может включать в себя максимальную единицу кодирования, больший размер оси которой равняется 16, и единицы кодирования, большие размеры оси которых равняются 8, согласно увеличению глубины.
Тем не менее, поскольку максимальная глубина данных 320 изображений равняется 3, единица 325 кодирования набора 320 данных изображений может включать в себя максимальную единицу кодирования, больший размер оси которой равняется 64, и субъединицы кодирования, большие размеры оси которых равняются 32, 16, 8 и 4, согласно увеличению глубины. Поскольку изображение кодируется на основе меньшей субъединицы кодирования по мере того, как глубина увеличивается, примерные варианты осуществления являются подходящими для кодирования изображения, включающего в себя больше мгновенных сцен.
Фиг. 4 является блок-схемой кодера 400 изображений на основе единицы кодирования, согласно примерному варианту осуществления. Кодер 400 изображений может быть реализован как аппаратное устройство, такое как, например, процессор компьютера, или как программный модуль, постоянно размещающийся в компьютерной системе.
Модуль 410 внутреннего предсказания выполняет внутреннее предсказание для единиц предсказания внутреннего режима в текущем кадре 405, а модуль 420 оценки движения и модуль 425 компенсации движения выполняют взаимное предсказание и компенсацию движения для единиц предсказания взаимного режима с использованием текущего кадра 405 и опорного кадра 495. Модуль 410 внутреннего предсказания, модуль 420 оценки движения, модуль 425 компенсации движения и опорный кадр 495 могут быть реализованы, например, в качестве аппаратных или программных модулей, интегрированных в кодер 400 изображений или выполненных отдельно от кодера 400 изображений.
Остаточные значения формируются на основе вывода единиц предсказания из модуля 410 внутреннего предсказания, модуля 420 оценки движения и модуля 425 компенсации движения. Сформированные остаточные значения выводятся в качестве квантованных коэффициентов преобразования посредством прохождения через преобразователь 430 и квантователь 440.
Квантованные коэффициенты преобразования восстанавливаются в остаточные значения посредством прохождения через обратный квантователь 460 и обратный преобразователь 470, и восстановленные остаточные значения постобрабатываются посредством прохождения через модуль 480 удаления блочности и модуль 490 контурной фильтрации и выводятся в качестве опорного кадра 495. Квантованные коэффициенты преобразования могут выводиться в качестве потока 455 битов посредством прохождения через энтропийный кодер 450.
Чтобы выполнять кодирование на основе способа кодирования согласно примерному варианту осуществления, модуль 410 внутреннего предсказания, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 контурной фильтрации кодера 400 изображений выполняют процессы кодирования изображений на основе максимальной единицы кодирования, субъединиц кодирования согласно глубинам, единицы предсказания и единицы преобразования.
Фиг. 5 является блок-схемой декодера 500 изображений на основе единицы кодирования, согласно примерному варианту осуществления. Декодер 500 изображений может быть реализован как аппаратное устройство, такое как, например, процессор компьютера, или как программный модуль, постоянно размещающийся в компьютерной системе.
Поток 505 битов проходит через синтаксический анализатор 510, так что кодированные данные изображений, которые должны быть декодированы, и информация кодирования, необходимая для декодирования, синтаксически анализируются. Кодированные данные изображений выводятся в качестве обратно квантованных данных посредством прохождения через энтропийный декодер 520 и обратный квантователь 530 и восстанавливаются в остаточные значения посредством прохождения через обратный преобразователь 540. Остаточные значения восстанавливаются согласно единицам кодирования посредством прибавления к результату внутреннего предсказания модуля 550 внутреннего предсказания или результату компенсации движения модуля 560 компенсации движения. Восстановленные единицы кодирования используются для предсказания следующих единиц кодирования или следующего кадра посредством прохождения через модуль 570 удаления блочности и модуль 580 контурной фильтрации. Синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего предсказания, модуль 560 компенсации, модуль 570 удаления блочности и модуль 580 контурной фильтрации могут быть реализованы, например, в качестве аппаратных или программных модулей, интегрированных в декодер 500 изображений или выполненных отдельно от декодера 500 изображений.
Чтобы выполнять декодирование на основе способа декодирования согласно примерному варианту осуществления, синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего предсказания, модуль 560 компенсации движения, модуль 570 удаления блочности и модуль 580 контурной фильтрации декодера 500 изображений выполняют процессы декодирования изображений на основе максимальной единицы кодирования, субъединицы кодирования согласно глубинам, единицы предсказания и единицы преобразования.
В частности, модуль 550 внутреннего предсказания и модуль 560 компенсации движения определяют единицу предсказания и режим предсказания в субъединице кодирования посредством рассмотрения максимальной единицы кодирования и глубины, и обратный преобразователь 540 выполняет обратное преобразование посредством рассмотрения размера единицы преобразования.
Фиг. 6 иллюстрирует максимальную единицу кодирования, субъединицу кодирования и единицу предсказания, согласно примерному варианту осуществления.
Устройство 100 кодирования изображений, проиллюстрированное на фиг. 1, и устройство 200 декодирования изображений, проиллюстрированное на фиг. 2, используют иерархические единицы кодирования, чтобы выполнять кодирование и декодирование с учетом характеристик изображений. Максимальная единица кодирования и максимальная глубина могут задаваться адаптивно согласно характеристикам изображений или задаваться разными способами согласно требованиям пользователя.
На фиг. 6, иерархическая структура 600 единиц кодирования имеет максимальную единицу 610 кодирования, которая является максимальной единицей кодирования, высота которой и ширина равняются 64, а максимальная глубина равняется 4. Глубина увеличивается вдоль вертикальной оси иерархической структуры 600 единиц кодирования, и, по мере того как глубина увеличивается, высота и ширина субъединиц 620-650 кодирования снижается. Единицы предсказания максимальной единицы 610 кодирования и субъединицы 620-650 кодирования показаны вдоль горизонтальной оси иерархической структуры 600 единиц кодирования.
Максимальная единица 610 кодирования имеет глубину, равную 0, и размер единицы кодирования, или высоту и ширину, 64×64. Глубина увеличивается вдоль вертикальной оси, и имеется первая субъединица 620 кодирования, размер которой равняется 32×32, а глубина равняется 1, вторая субъединица 630 кодирования, размер которой равняется 16×16, а глубина равняется 2, третья субъединица 640 кодирования, размер которой равняется 8x8, а глубина равняется 3, и минимальная единица 650 кодирования, размер которой равняется 4×4, а глубина равняется 4. Минимальная единица 650 кодирования, размер которой равняется 4×4, а глубина равняется 4, является минимальной единицей кодирования, при этом минимальная единица кодирования может быть разделена на единицы предсказания, каждая из которых меньше минимальной единицы кодирования.
На фиг. 6 примеры единиц предсказания показаны вдоль горизонтальной оси согласно каждой глубине. Т.е. единица предсказания максимальной единицы 610 кодирования, глубина которой равняется 0, может быть единицей предсказания, размер которой равен размеру 64×64 максимальной единицы кодирования, или единицей 612 предсказания, размер которой равняется 64×32, единицей 614 предсказания, размер которой равняется 32×64, или единицей 616 предсказания, размер которой равняется 32×32, которая имеет размер меньше размера максимальной единицы кодирования, размер которой равняется 64×64.
Единица предсказания первой субъединицы 620 кодирования, глубина которой равняется 1, и размер равняется 32×32, может быть единицей предсказания, размер которой равен размеру 32×32 первой субъединицы кодирования, или единицей 622 предсказания, размер которой равняется 32×16, единицей 624 предсказания, размер которой равняется 16×32, или единицей 626 предсказания, размер которой равняется 16×16, которая имеет размер меньше размера первой субъединицы 620 кодирования, размер которой равняется 32×32.
Единица предсказания второй субъединицы 630 кодирования, глубина которой равняется 2, и размер равняется 16×16, может быть единицей предсказания, размер которой равен размеру 16×16 второй субъединицы 630 кодирования, или единицей 632 предсказания, размер которой равняется 16×8, единицей 634 предсказания, размер которой равняется 8×16, или единицей 636 предсказания, размер которой равняется 8×8, которая имеет размер меньше размера второй субъединицы 630 кодирования, размер которой равняется 16×16.
Единица предсказания третьей субъединицы 640 кодирования, глубина которой равняется 3, и размер равняется 8×8, может быть единицей предсказания, размер которой равен размеру 8×8 третьей субъединицы 640 кодирования, или единицей 642 предсказания, размер которой равняется 8×4, единицей 644 предсказания, размер которой равняется 4×8, или единицей 646 предсказания, размер которой равняется 4×4, которая имеет размер меньше размера третьей субъединицы 640 кодирования, размер которой равняется 8×8.
Минимальная единица 650 кодирования, глубина которой равняется 4, и размер равняется 4×4, является минимальной единицей кодирования и единицей кодирования максимальной глубины. Единица предсказания минимальной единицы 650 кодирования может быть единицей 650 предсказания, размер которой равняется 4×4, единицей 652 предсказания, имеющей размер 4×2, единицей 654 предсказания, имеющей размер 2×4, или единицей 656 предсказания, имеющей размер 2×2.
Фиг. 7 иллюстрирует единицу кодирования и единицу преобразования, согласно примерному варианту осуществления.
Устройство 100 кодирования изображений, проиллюстрированное на фиг. 1, и устройство 200 декодирования изображений, проиллюстрированное на фиг. 2, выполняют кодирование и декодирование с самой максимальной единицей кодирования или с субъединицами кодирования, которые равны или меньше максимальной единицы кодирования, разделенной из максимальной единицы кодирования. В процессе кодирования и декодирования размер единицы преобразования для преобразования частоты выбирается так, что он не превышает размер соответствующей единицы кодирования. Например, если текущая единица 710 кодирования имеет размер 64×64, преобразование частоты может быть выполнено с использованием единицы 720 преобразования, имеющей размер 32×32.
Фиг. 8а, 8b, 8с и 8d иллюстрируют формы разделения единицы кодирования, единицы предсказания и единицы преобразования, согласно примерному варианту осуществления.
Фиг. 8а и 8b иллюстрируют единицу кодирования и единицу предсказания, согласно примерному варианту осуществления.
Фиг. 8а показывает форму разделения, выбранную устройством 100 кодирования изображений, проиллюстрированным на фиг. 1, чтобы кодировать максимальную единицу 810 кодирования. Устройство 100 кодирования изображений разделяет максимальную единицу 810 кодирования на различные формы, выполняет кодирование и выбирает оптимальную форму разделения посредством сравнения результатов кодирования различных форм разделения друг с другом на основе RD функций. Когда оптимальным является кодирование максимальной единицы 810 кодирования, как она есть, максимальная единица 810 кодирования может быть кодирована без разделения максимальной единицы 810 кодирования, как проиллюстрировано на фиг. 8а-8d.
Как показано на фиг. 8а, максимальная единица 810 кодирования, глубина которой равняется 0, кодируется посредством деления ее на субъединицы кодирования, глубины которых равны или превышают 1. Т.е. максимальная единица 810 кодирования разделяется на 4 субъединицы кодирования, глубины которых равняются 1, и все или некоторые субъединицы кодирования, глубины которых равняются 1, разделяются на субъединицы 814, 816, 818, 828, 850 и 852 кодирования, глубины которых равняются 2.
Субъединица кодирования, расположенная в верхней правой стороне, и субъединица кодирования, расположенная в нижней левой стороне из числа субъединиц кодирования, глубины которых равняются 1, разделяются на субъединицы кодирования, глубины которых равны или превышают 2. Некоторые субъединицы кодирования, глубины которых равны или превышают 2, могут быть разделены на субъединицы 820, 822, 824, 826, 830, 832, 840, 842, 844, 846 и 848 кодирования, глубины которых равняются или превышают 3.
Фиг. 8b показывает форму разделения единицы предсказания для максимальной единицы 810 кодирования.
Как показано на фиг. 8b, единица 860 предсказания для максимальной единицы 810 кодирования может быть получена другим разделением максимальной единицы 810 кодирования. Другими словами, единица предсказания для каждой из субъединиц кодирования может быть меньше соответствующей субъединицы кодирования.
Например, единица предсказания для субъединицы 854 кодирования, расположенной в нижней правой стороне из числа субъединиц 812, 854 кодирования, глубины которых равняются 1, может быть меньше субъединицы 854 кодирования. Помимо этого, единицы предсказания для субъединиц 814, 816, 850 и 852 кодирования субъединиц 814, 816, 818, 828, 850 и 852 кодирования, глубины которых равняются 2, могут быть, соответственно, меньше субъединиц 814, 816, 850 и 852 кодирования.
Помимо этого единицы предсказания для субъединиц 822, 832 и 848 кодирования, глубины которых равняются 3, могут быть, соответственно, меньше субъединиц 822, 832 и 848 кодирования. Единицы предсказания могут иметь форму, посредством которой соответствующие субъединицы кодирования поровну разделяются пополам в направлении высоты или ширины, или иметь форму, посредством которой соответствующие субъединицы кодирования поровну разделяются на четыре части в направлениях высоты и ширины.
Фиг. 8c и 8d иллюстрируют единицу предсказания и единицу преобразования, согласно примерному варианту осуществления.
Фиг. 8c показывает форму разделения единицы предсказания для максимальной единицы 810 кодирования, показанной на фиг. 8b, и фиг. 8d показывает форму разделения единицы преобразования максимальной единицы 810 кодирования.
Как показано на фиг. 8d, форма разделения единицы 870 преобразования может задаваться иным образом, по сравнению с единицей 860 предсказания.
Например, даже если единица предсказания для субъединицы 854 кодирования, глубина которой равняется 1, выбирается с формой, посредством которой высота субъединицы 854 кодирования поровну разделяется пополам, единица преобразования может быть выбрана с первоначальным размером субъединицы 854 кодирования. Аналогично, даже если единицы предсказания для субъединиц 814 и 850 кодирования, глубины которых равняются 2, выбираются с формой, посредством которой высота каждой из субъединиц 814 и 850 кодирования поровну разделяется пополам, единица преобразования может быть выбрана с размером, идентичным первоначальному размеру каждой из субъединиц 814 и 850 кодирования.
Единица преобразования может быть выбрана с меньшим размером, чем единица предсказания. Например, когда единица предсказания для субъединицы 852 кодирования, глубина которой равняется 2, выбирается с формой, посредством которой ширина субъединицы 852 кодирования поровну разделяется пополам, единица преобразования может быть выбрана с формой, посредством которой субъединица 852 кодирования поровну разделяется на четыре в направлениях высоты и ширины, которая имеет меньший размер, чем форма единицы предсказания.
Фиг. 9 является блок-схемой устройства 900 кодирования изображений для кодирования изображения, согласно другому примерному варианту осуществления.
Устройство 900 кодирования изображений, проиллюстрированное на фиг. 9, может быть модулем, который включается в состав устройства 100 кодирования изображений, проиллюстрированного на фиг. 1, или кодера 400 изображений, проиллюстрированного на фиг. 4, для выполнения следующих процессов кодирования изображений. Как показано на фиг. 9, устройство 900 кодирования изображений включает в себя первый преобразователь 910, второй преобразователь 920 и кодер 930.
Первый преобразователь 910 формирует первую матрицу частотных коэффициентов посредством приема и преобразования предварительно определенного блока в частотную область. Преобразованием в частотную область может быть DCT, и принимаемый предварительно определенный блок может быть остаточным блоком. Кроме того, блок, который вводится для кодирования, может быть единицей преобразования, как описано выше со ссылкой на фиг. 7 или фиг. 8d. Как результат преобразования, принимаемый блок пиксельной области преобразуется в коэффициенты частотной области. Матрица DCT коэффициентов формируется посредством выполнения DCT для блока пиксельной области.
Второй преобразователь 920 выполняет постобработку, чтобы частично переключать по меньшей мере одно из строк или столбцов матрицы DCT коэффициентов согласно тому, превышают ли коэффициенты частотной области предварительно определенное абсолютное значение. Работа второго преобразователя 920 подробно описывается ниже со ссылкой на фиг. 10 и 11а-11с.
Фиг. 10 является блок-схемой второго преобразователя 920, проиллюстрированного на фиг. 9, согласно примерному варианту осуществления.
Как показано на фиг. 10, второй преобразователь 920 включает в себя модуль 1010 определения и модуль 1020 выполнения вращательного преобразования (ROT).
Модуль 1010 определения определяет то, включает ли первая матрица частотных коэффициентов, сформированная посредством первого преобразователя 910, в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Модуль 1010 определения может определять то, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают 0. Другими словами, модуль 1010 определения определяет то, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты.
Если первая матрица частотных коэффициентов включает в себя только коэффициенты, равные 0, ROT для частичного переключения по меньшей мере одного из строк или столбцов первой матрицы частотных коэффициентов не выполняется. Соответственно, модуль 1010 определения определяет то, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты. Если предсказание выполняется точно, и тем самым все пиксельные значения остаточного блока равны 0, первая матрица частотных коэффициентов включает в себя только коэффициенты, равные 0.
Модуль 1010 определения дополнительно может определять то, является ли первая матрица частотных коэффициентов матрицей блока двунаправленного предсказанного слоя (B слоя). Экспериментально подтверждено, что первая матрица частотных коэффициентов блока B слоя не улучшается значительно с точки зрения коэффициента сжатия даже после того, как выполняется ROT. Соответственно, модуль 1010 определения может определять то, является ли первая матрица частотных коэффициентов матрицей блока B слоя, чтобы выполнять ROT, только когда предварительно определенный блок, который вводится для кодирования в устройство 900 кодирования изображений, не является блоком B слоя.
Модуль 1010 определения дополнительно может определять то, является ли первая матрица частотных коэффициентов матрицей внутренне предсказанного блока. Экспериментально подтверждено, что первая матрица частотных коэффициентов взаимно предсказанного блока не улучшается значительно с точки зрения коэффициента сжатия даже после того, как выполняется ROT. Соответственно, модуль 1010 определения может определять то, является ли первая матрица частотных коэффициентов матрицей внутренне предсказанного блока, чтобы выполнять ROT, только когда предварительно определенный блок, который вводится для кодирования в устройство 900 кодирования изображений, является внутренне предсказанным блоком.
Порядок выполнения определения того, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение, определения того, является ли предварительно определенный блок, который вводится для кодирования, блоком B слоя, и определения того, является ли предварительно определенный блок, который вводится для кодирования, внутренне предсказанным блоком, является не ограничивающим, а произвольным. Кроме того, модуль 1010 определения может выполнять одно или два из вышеуказанных определений, чтобы определять то, выполнять ROT или нет.
Модуль 1020 выполнения ROT формирует вторую матрицу частотных коэффициентов посредством избирательного выполнения ROT на основе результата определения модуля 1010 определения. ROT может быть преобразованием для частичного переключения по меньшей мере одного из строк или столбцов. ROT подробно описывается ниже со ссылкой на фиг. 11а-11с. ROT может быть выполнено только тогда, когда первая матрица частотных коэффициентов включает в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение или нуль. В противном случае, ROT не выполняется, и первая матрица частотных коэффициентов кодируется такой, как она есть. Альтернативно, как описано выше, ROT может избирательно выполняться для первой матрицы частотных коэффициентов на основе определения того, является ли блок, который вводится для кодирования, блоком B слоя, и/или определения того, является ли упомянутый блок внутренне предсказанным блоком.
Фиг. 11а-11с являются схемами для описания ROT согласно примерному варианту осуществления.
Модуль 1020 выполнения ROT, проиллюстрированный на фиг. 10, выполняет избирательное частичное переключение по меньшей мере одного из строк или столбцов первой матрицы частотных коэффициентов на основе результата определения модуля 1010 определения. Переключение строк и столбцов первой матрицы частотных коэффициентов описывается со ссылкой на фиг. 11A-11C.
В примерном варианте осуществления, частичное переключение строк или столбцов заключает в себе частичное переключение значений двух строк или двух столбцов посредством использования такой функции, как синусоидальная функция, вместо безусловного переключения значений двух строк или двух столбцов во взаимно однозначном соответствии.
Например, переключение двух строк A и B может быть задано согласно значению параметра , как представлено в уравнении 1.
уравнение 1
Как показано в уравнении 1, параметр выступает в качестве угла. Соответственно, в примерном варианте осуществления, параметр, указывающий степень частичного переключения между строками или столбцами DCT матрицы, задается как угловой параметр.
Если значение параметра составляет 0°, энергетическое переключение не выполняется. Если значение параметра составляет 90°, между строками происходит полный обмен энергией.
Кроме того, если значение параметра превышает 90° и меньше 180°, между строками происходит энергетический обмен, и знаки значений элемента изменяются. Если значение параметра равняется 180°, энергетический обмен между строками не происходит, но знаки элементов, включенных в строки, изменяются. В примерном варианте осуществления, частичное переключение между столбцами выполняется таким же образом, как частичное переключение между строками.
Фиг. 11а иллюстрирует случай, в котором ROT выполняется для матрицы частотных коэффициентов 4×4. Как показано на фиг. 11а, три параметра 1, 2, 3 используются при частичном переключении между строками матрицы частотных коэффициентов, и три параметра 4, 5, 6 используются при частичном переключении между столбцами.
Фиг. 11b иллюстрирует случай, в котором ROT выполняется для матрицы частотных коэффициентов 8×8. В случае фиг. 11b 1, 2, 3, 4, 5, 6 используются при частичном переключении между строками, и 7, 8, 9, 10, 11, 12 используются при частичном переключении между столбцами.
Фиг. 11с иллюстрирует случай, в котором ROT выполняется для матрицы частотных коэффициентов, имеющей размер, равный или превышающий 16×16.
Как описано выше относительно фиг. 11а и 11b, по мере того, как размер матрицы частотных коэффициентов увеличивается, число угловых параметров увеличивается. Чтобы выполнять ROT для матрицы частотных коэффициентов 4×4 по фиг. 11a, используются шесть угловых параметров, а чтобы выполнять ROT для матрицы частотных коэффициентов 8×8 по фиг. 11b, используются двенадцать угловых параметров.
Хотя коэффициент сжатия улучшается посредством того, что регулируемая матрица частотных коэффициентов формируется путем выполнения ROT для матрицы частотных коэффициентов, а затем для регулируемой матрицы частотных коэффициентов выполняются квантование и энтропийное кодирование, но если число угловых параметров увеличивается так, что увеличивается объем служебной информации, то общий объем не снижается. Таким образом, когда ROT выполняется для матрицы частотных коэффициентов, имеющей размер, равный или превышающий 16×16, для дискретизации коэффициентов используется матрица предварительно определенного размера.
Другими словами, как проиллюстрировано на фиг. 11c, модуль 1020 выполнения ROT выбирает дискретизированную матрицу 1120 частотных коэффициентов, включающую в себя только некоторые коэффициенты матрицы 1110 частотных коэффициентов, и затем выполняет ROT для выбранной матрицы 1120 частотных коэффициентов. ROT не выполняется для оставшейся невыбранной части 1130 матрицы 1110 частотных коэффициентов.
Чтобы достигать достаточного эффекта от ROT для имеющей большой размер матрицы частотных коэффициентов, коэффициенты, включенные в матрицу 1120 частотных коэффициентов, должны иметь влияние на сжатие данных изображений. Таким образом, модуль 1020 выполнения ROT выбирает только коэффициенты, которые имеют низкочастотный компонент, и которые могут иметь значение, отличное от 0, и выполняет ROT для этих коэффициентов.
В общем, матрица частотных коэффициентов, которая формируется в результате преобразования, включает в себя коэффициенты относительно низкочастотного компонента в верхнем левом углу матрицы частотных коэффициентов. Таким образом, как проиллюстрировано на фиг. 11c, модуль 1020 выполнения ROT выбирает только коэффициенты, размещенные в верхнем левом углу матрицы 1110 частотных коэффициентов, и затем выполняет ROT. В примере по фиг. 11c, модуль 1020 выполнения ROT выполняет ROT для матрицы 1120 частотных коэффициентов, имеющей размер 8×8, таким же образом, как ROT по фиг. 11b.
Ссылаясь на ROT для матрицы частотных коэффициентов 4×4 по фиг. 11a, различные результаты получаются согласно порядку применения трех угловых параметров 1, 2, 3. Т.е. три угловых параметра не являются независимыми друг от друга. Регулируемая матрица частотных коэффициентов, которая формируется как результат выполнения ROT для случая, в котором сначала применяется угловой параметр 1, а затем применяется угловой параметр 2, отличается от регулируемой матрицы частотных коэффициентов, которая формируется как результат выполнения ROT для случая, в котором сначала применяется угловой параметр 2, а затем применяется угловой параметр 1. Это подробно описывается ниже со ссылкой на фиг. 12.
Фиг. 12 является схемой эйлеровых углов согласно другому примерному варианту осуществления.
Как показано на фиг. 12, переключение между строками или между столбцами матрицы является аналогичным вращению осей координат в трехмерном пространстве. Т.е. три строки или столбца соответствуют осям X, Y и Z трехмерных координат, соответственно. Относительно вращения осей координат в трехмерном пространстве, различные результаты получаются в соответствии с тем, какая ось вращается первой.
На фиг. 12, углы , , указывают эйлеровы углы, оси X, Y и Z указывают оси координат перед вращением, а оси X', Y' и Z' указывают оси координат после вращения. Ось N является пересечением между плоскостью X-Y и плоскостью X'-Y'. Здесь ось N упоминается как линия узлов.
Угол указывает угол между осью X и осью N, которые вращаются вокруг оси Z. Угол указывает угол между осью Z и осью Z', которые вращаются вокруг оси N. Угол указывает угол между осью N и осью X', которые вращаются вокруг оси Z'.
Вращение осей координат согласно эйлеровым углам задается посредством уравнения 2.
уравнение 2
Первая матрица указывает вращение вокруг оси Z'. Вторая матрица указывает вращение вокруг оси N. Третья матрица указывает вращение вокруг оси Z.
В одном или более примерных вариантов осуществления, переключение между строками или между столбцами матрицы может указываться в качестве вращения осей координат с использованием эйлеровых углов.
Возвращаясь к фиг. 9 и 10, вторая матрица частотных коэффициентов, сформированная, когда модуль 1020 выполнения ROT второго преобразователя 920 выполняет ROT для первой матрицы частотных коэффициентов, вводится в кодер 930.
Кодер 930 кодирует вторую матрицу частотных коэффициентов, сформированную посредством избирательного выполнения ROT, на основе результата определения модуля 1010 определения.
Если вторая матрица частотных коэффициентов формируется посредством выполнения ROT для первой матрицы частотных коэффициентов на основе результата определения модуля 1010 определения, коэффициенты, включенные во вторую матрицу частотных коэффициентов, квантуются согласно предварительно определенному шагу квантования, и квантованная вторая матрица частотных коэффициентов энтропийно кодируется. Энтропийное кодирование выполняется согласно способу контекстно-адаптивного двоичного арифметического кодирования (CABAC) или способу контекстно-адаптивного кодирования переменной длины (CAVLC). Если первая матрица частотных коэффициентов имеет большой размер, и тем самым ROT выполняется для выбранной матрицы 1120, включающей в себя только некоторые дискретизированные коэффициенты, вся первая матрица 1110 частотных коэффициентов, включающая в себя выбранную матрицу 1120, для которой ROT выполняется, и оставшуюся часть 1130, для которой ROT не выполняется, может быть квантована и энтропийно кодирована.
Кодер 930 может кодировать информацию, указывающую, что первая матрица частотных коэффициентов включает в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Например, кодер 930 может кодировать информацию флага, указывающую, что первая матрица частотных коэффициентов включает в себя ненулевые коэффициенты.
Кроме того, кодер 930 также энтропийно кодирует угловые параметры, используемые, когда второй преобразователь 920 выполняет ROT. Устройство 900 кодирования изображений определяет оптимальные угловые параметры, используемые для того, чтобы выполнять ROT, как описано ниже.
Чтобы эффективно выполнять сжатие, должны быть определены оптимальные угловые параметры. Тем не менее, это многопараметрическая задача, имеющая сильно негладкую зависимость от параметра. Чтобы решить эту задачу, используется метод Монте-Карло. Здесь порядковый номер в случайной последовательности Лемера может быть использован для того, чтобы сформировать случайную точку в методе Монте-Карло. Вместо сохранения или передачи углового параметра, используемого в качестве параметра, может быть сохранено или передано только одно целое число, указывающее порядковый номер. Таким образом, можно снизить объем служебной информации, который необходим, чтобы сообщать декодеру угловой параметр, используемый в ROT.
Т.е. аспекты, которые следует учитывать при определении комбинации оптимальных угловых параметров, следующие:
- обратимое преобразование матрицы преобразования;
- перекомпоновка энергии для более эффективного кодирования; и
- минимизация информации, добавленной посредством использования порядкового номера в случайной последовательности Лемера.
Возвращаясь к фиг. 11a-11c, части матрицы, которые изменяются посредством вращения матрицы частотных коэффициентов, окрашены черным цветом, а части матрицы, которые не изменяются, окрашены белым цветом. В матрице частотных коэффициентов 4×4 по фиг. 11a, шесть угловых параметров вовлечены в изменение пятнадцати коэффициентов согласно переключению между строками и между столбцами. В матрице частотных коэффициентов 8×8 по фиг. 11b, двенадцать угловых параметров вовлечены в изменение шестидесяти коэффициентов.
Как показано на фиг. 11a, для переключения между строками используются три угловых параметра, и для переключения между столбцами используются три угловых параметра дополнительно. Таким образом, относительно блока 4×4, используются шесть угловых параметров.
Как показано на фиг. 11b, для переключения между строками используются шесть угловых параметров, а для переключения между столбцами дополнительно используются шесть угловых параметров. Таким образом, относительно блока 8×8, используются двенадцать угловых параметров.
Устройство 900 кодирования изображений может выполнять ROT согласно следующим этапам:
этап 1 - параметризация семейства ортогональных преобразований.
Этап 2 - метод Монте-Карло.
Этап 3 - псевдослучайные числа Лемера.
Этап 4 - локализация диапазона для оптимальных угловых параметров.
Этап 5 - квазиоптимальный базис.
Хотя коэффициент сжатия изображения улучшается посредством использования ROT, если при этом добавляется слишком большое число параметров, передача видеосигнала может достигать лучшего результата, чем сжатие. Другими словами, существует компромисс между коэффициентом сжатия и объемом служебной информации для дополнительных параметров. Например, хотя сигнал изображения в матрице частотных коэффициентов 4×4 сжимается до размера, близкого к 0, если сжатие требует шестнадцати дополнительных параметров, выполнение ROT может не быть оптимальным подходом. В этом отношении может быть более эффективным передавать шестнадцать пиксельных значений в декодер. Таким образом, должны быть учтены как сжатие сигнала изображения, так и минимизация дополнительного объема служебной информации.
Соответственно, модуль 1020 выполнения ROT выполняет поиск оптимального углового параметра при минимизации объема служебной информации согласно следующим этапам.
Этап 1 - параметризация семейства ортогональных преобразований. Чтобы выбирать оптимальное преобразование для текущих данных, выполняется попытка регулирования базиса. В качестве модификации базиса выбирается вращение базиса, таким образом, набор углов вращения уникально описывает модификацию базиса.
Вводимые углы вращения описывают модификацию базиса аналогично тому, как эйлеровы углы описывают вращение твердого тела в трехмерном пространстве.
Чтобы изменить базис, выбирается вращение базиса. В одном или более примерных вариантов осуществления, вращение базиса выполняется посредством использования углового параметра. Здесь используется вращение базиса, которое выполняется посредством использования углового параметра. Угловой параметр может быть эйлеровым углом. Тем не менее угловой параметр не ограничивается эйлеровым углом и тем самым может включать в себя другие величины, которые могут указывать уровень частичного переключения одного или более значений между строками и между столбцами матрицы. В дальнейшем в этом документе описывается пример, включающий в себя использование эйлерова угла.
Вращение задается уравнением 3 посредством использования левого умножения и правого умножения матрицы D частотных коэффициентов.
уравнение 3
(D' указывает регулируемую матрицу частотных коэффициентов, которая вращательно преобразуется).
Матрица выполняет переключение между строками матрицы D частотных коэффициентов. Rvertical выполняет переключение между столбцами матрицы D частотных коэффициентов.
Пример матрицы в блоке 4×4 задается уравнением 4.
уравнение 4
В уравнении 4 , , указывают эйлеровы углы.
Таким образом, относительно матрицы частотных коэффициентов 4×4, эйлеровы углы описывают регулирование пятнадцати частотных коэффициентов посредством группы шести параметров 1, 2, , 6. Относительно матрицы частотных коэффициентов 8×8, двенадцать эйлеровых углов 1, 2, , 12 описывают изменение шестидесяти частотных коэффициентов.
Этап 2 - метод Монте-Карло
После того, как степень свободы снижается до шести угловых параметров (двенадцати угловых параметров в случае матрицы частотных коэффициентов 8×8), аспект оптимизации проверяется с учетом экономии битов. Т.е. оптимизируется способ выбора группы угловых параметров, как пояснено ниже.
Оптимизация имеет трудность в том, что используется область значений параметра высокой размерности (шесть или двенадцать угловых параметров), при этом сжатие изображения имеет негладкую зависимость от используемых параметров. В общем, эта трудность разрешается посредством использования метода Монте-Карло.
Основа метода Монте-Карло заключается в том, чтобы выполнять множество попыток. Т.е. коэффициент сжатия измеряется из нескольких точек, и затем из них выбирается наилучшая точка. В методе Монте-Карло качество случайной точки в многомерной области является очень важным (в частности, качество становится более важным согласно повышению размерности). Для этого применения известно, что псевдослучайные точки являются предпочтительными по сравнению с точками регулярной координатной сетки. Это описывается на фиг. 13 в отношении двумерного случая.
Фиг. 13 иллюстрирует псевдослучайные точки согласно другому примерному варианту осуществления.
Левая схема по фиг. 13 иллюстрирует первые шестнадцать точек регулярной координатной сетки, а правая схема по фиг. 13 иллюстрирует первые шестнадцать псевдослучайных точек.
В случае, если используются точки регулярной координатной сетки, хотя имеется шестнадцать точек метода Монте-Карло, относительно первого параметра (и второго параметра) проверяются только четыре различных значения. С другой стороны, в случае, если используются псевдослучайные точки, относительно первого параметра (и второго параметра) проверяются шестнадцать различных значений посредством шестнадцати точек. Т.е. когда используются псевдослучайные точки, различные значения первого и второго параметров достаточно проверяются относительно шестнадцати точек. В частности, относительно метода Монте-Карло, использование псевдослучайных точек является более преимущественным, чем использование точек регулярной координатной сетки, согласно увеличению числа параметров.
Этап 3 - псевдослучайные числа Лемера
Псевдослучайная последовательность может быть сформирована с использованием различных способов. Один из наиболее эффективных методов состоит в том, чтобы использовать число Лемера. Это искусственно сформированная последовательность, которая имеет свойства, очень близкие к равномерно распределенным случайным числам. Алгоритм для формирования последовательности Лемера известен, и тем самым его подробное описание опускается здесь. Согласно примерному варианту осуществления обеспечивается, по меньшей мере, 1013 неповторяющихся точек. Последовательность Лемера является искусственно сформированной последовательностью, и алгоритм для формирования последовательности Лемера известен, так что декодер может легко пересчитывать его.
Посредством использования последовательности Лемера комбинация угловых параметров может быть кодирована посредством использования одного целого числа (т.е. числа в случайной последовательности). В шестимерной (в случае матрицы частотных коэффициентов 4×4) или двенадцатимерной (в случае матрицы частотных коэффициентов 8×8) области значений параметра формируются случайные точки, соответствующие комбинации угловых параметров, коэффициент сжатия измеряется после того, как посредством использования случайных точек выполняется сжатие, а затем выбирается оптимальное значение параметра. Вместо сохранения или передачи комбинации угловых параметров, сохраняется или передается индекс числа в последовательности Лемера, соответствующего оптимальному значению параметра.
Если в методе Монте-Карло анализируются 2p точек, только p битов информации включаются в состав объема служебной информации.
Этап 4 - локализация диапазона для оптимальных угловых параметров
Согласно одному или более примерных вариантов осуществления, оптимальный угол вращения имеет значение около 0 градусов или 180 градусов ( радиан). Это означает, что базис для преобразования в частотную область, такой как, например, DCT базис или KLT базис, фактически оптимизирован.
Таким образом, угловые параметры согласно одному или более примерных вариантов осуществления используются только для того, чтобы выполнять частичное переключение (угол около 0 градусов в случае эйлеровых углов) одного или более значений между строками и между столбцами или выполнять частичное переключение и изменение (угол около 180 градусов в случае эйлеровых углов) знака элемента базиса. Т.е. диапазон параметров, используемых в одном или более примерных вариантов осуществления, может быть ограничен конкретной частью области значений, и это ограничение упоминается как локализация.
Посредством выполнения локализации для диапазона параметров число битов относительно объема служебной информации снижается. Если предполагается, что точки, которые должны проверяться, ограничены конкретной частью на фиг. 13, число точек, которые должны проверяться для того, чтобы выполнять поиск оптимальной комбинации угловых параметров, снижается.
Кроме того, если число точек, которые должны проверяться, является фиксированным (т.е. в случае, если является фиксированным число битов, используемое в качестве объема служебной информации), и применяется локализация, то при меньшем угле может проверяться больше точек, таким образом, коэффициент сжатия может быть увеличен.
Этап 5 - квазиоптимальный базис
Посредством выполнения вышеуказанных этапов 1-4, можно выбрать оптимальный базис относительно всех блоков (блоков, имеющих размер, равный или превышающий 4×4 и 8×8). Если скорость передачи битов снижается, предпочтительно выбирать квазиоптимальный базис.
Квазиоптимальный базис означает, что идентичное вращение применяется к группе из всех единиц преобразования или некоторых единиц преобразования, включенных в слой или изображение. Если оптимальное вращение применяется к каждому блоку, коэффициент сжатия относительно изображения увеличивается, но также увеличивается и объем служебной информации.
Чтобы определять то, к какой единице из числа единицы преобразования, группы единиц преобразования, слоя и изображения применяется идентичное вращение, могут быть выполнены различные эксперименты.
После преобразования в частотную область на низкой скорости передачи в битах, значение коэффициента квантования во многих частях матрицы частотных коэффициентов становится равным 0. Таким образом, относительно этих частей матрицы частотных коэффициентов, необязательно выполнять ROT и передавать дополнительную информацию касательно значения угла вращения.
Устройство 900 кодирования изображений выполняет ROT для комбинации множества угловых параметров посредством использования метода Монте-Карло и многократно выполняет квантование и энтропийное кодирование, тем самым определяя оптимальную комбинацию угловых параметров. Кроме того, устройство 900 кодирования изображений кодирует не угловые параметры, а кодирует порядковый номер в псевдослучайной последовательности Лемера в качестве информации касательно определенной оптимальной комбинации угловых параметров. Здесь, посредством использования локализации и квазиоптимального базиса, информация касательно угловых параметров может кодироваться с более высокой эффективностью.
Возвращаясь к фиг. 9 и 10, если второй преобразователь 920 не формирует вторую матрицу частотных коэффициентов посредством выполнения ROT для первой матрицы частотных коэффициентов на основе результата определения модуля 1010 определения, кодер 930 кодирует первую матрицу частотных коэффициентов, для которой ROT не выполнялось, в том виде, как она есть.
Кроме того, если первая матрица частотных коэффициентов включает в себя только коэффициенты, равные 0, первая матрица частотных коэффициентов не должна кодироваться, и кодируется только такая информация, как информация флага, указывающая, что первая матрица частотных коэффициентов входного предварительно определенного блока включает в себя только коэффициенты, равные 0.
Фиг. 14 является блок-схемой устройства 1400 декодирования изображений для декодирования изображения, согласно другому примерному варианту осуществления.
Устройство 1400 декодирования изображений, проиллюстрированное на фиг. 14, может быть модулем, который включается в состав устройства 200 декодирования изображений, проиллюстрированного на фиг. 2, или декодера 500 изображений, проиллюстрированного на фиг. 5, для выполнения процессов декодирования изображений. Как показано на фиг. 14, устройство 1400 декодирования изображений включает в себя декодер 1410, первый обратный преобразователь 1420 и второй обратный преобразователь 1430.
Декодер 1410 принимает поток битов и декодирует информацию, указывающую то, включает ли первая матрица частотных коэффициентов, сформированная посредством преобразования предварительно определенного блока в частотную область, в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Например, декодер 1410 может декодировать информацию флага, указывающую то, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты.
После этого декодер 1410 избирательно декодирует данные второй матрицы частотных коэффициентов на основе декодированной информации. Вторая матрица частотных коэффициентов является матрицей, сформированной посредством выполнения ROT для первой матрицы частотных коэффициентов. Работа декодера 1410 подробно описывается со ссылкой на фиг. 15.
Фиг. 15 является блок-схемой декодера 1410, проиллюстрированного на фиг. 14, согласно примерному варианту осуществления.
Как показано на фиг. 15, декодер 1410 включает в себя модуль 1510 определения и энтропийный декодер 1520.
Модуль 1510 определения определяет то, декодировать ли вторую матрицу частотных коэффициентов, на основе декодированной информации, такой как, например, информация, указывающая то, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Модуль 1510 определения определяет то, декодировать ли вторую матрицу частотных коэффициентов, на основе информации флага, указывающей то, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты.
Как описано выше со ссылкой на фиг. 10, если первая матрица частотных коэффициентов включает в себя только коэффициенты частотной области, равные 0, для первой матрицы частотных коэффициентов в процессе кодирования не выполняется ROT. Соответственно, данные второй матрицы частотных коэффициентов не включаются в поток битов. В этом случае, декодер 1410 не должен декодировать данные второй матрицы частотных коэффициентов.
Тем не менее, если первая матрица частотных коэффициентов включает в себя коэффициенты, превышающие 0, данные второй матрицы частотных коэффициентов, сформированной посредством выполнения ROT для первой матрицы частотных коэффициентов, включаются в поток битов, и тем самым декодер 1410 должен декодировать данные второй матрицы частотных коэффициентов.
Энтропийный декодер 1520 избирательно энтропийно декодирует данные второй матрицы частотных коэффициентов на основе результата определения модуля 1510 определения. Если первая матрица частотных коэффициентов включает в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение, и поэтому ROT выполняется для первой матрицы частотных коэффициентов, данные второй матрицы частотных коэффициентов включаются в поток битов. Энтропийный декодер 1520 энтропийно декодирует данные второй матрицы частотных коэффициентов, которая включается в поток битов. Аналогично энтропийному кодированию, энтропийное декодирование может быть выполнено согласно CABAC-способу или CAVLC-способу. Кроме того, чтобы выполнять обратное ROT, энтропийный декодер 1520 может декодировать информацию об угловых параметрах, используемых для того, чтобы выполнять ROT.
Вторая матрица частотных коэффициентов, энтропийно декодированная посредством энтропийного декодера 1520, обратно квантуется согласно предварительно определенному шагу квантования, выполняемому в процессе кодирования.
Снова ссылаясь на фиг. 14, первый обратный преобразователь 1420 формирует первую матрицу частотных коэффициентов посредством выполнения обратного ROT для второй матрицы частотных коэффициентов, обратно квантованной декодером 1410.
Первый обратный преобразователь 1420 формирует первую матрицу частотных коэффициентов посредством выполнения обратного ROT для второй матрицы частотных коэффициентов, если первая матрица частотных коэффициентов включает в себя ненулевые коэффициенты, и поэтому декодер 1410 декодирует данные второй матрицы частотных коэффициентов.
Кроме того, как описано выше со ссылкой на фиг. 10, только когда первая матрица частотных коэффициентов не является матрицей блока B слоя или является матрицей внутренне предсказанного блока, первый обратный преобразователь 1420 формирует первую матрицу частотных коэффициентов посредством выполнения обратного ROT для второй матрицы частотных коэффициентов.
Первый обратный преобразователь 1420 выполняет обратное ROT для обратно квантованной второй матрицы частотных коэффициентов посредством обратного выполнения ROT, описанного выше со ссылкой на фиг. 11а-11с, 12 и 13. В этом случае, обратное ROT может быть выполнено в отношении информации об угловых параметрах, которая энтропийно декодируется декодером 1410. Первая матрица частотных коэффициентов формируется посредством частичного переключения по меньшей мере одного из строк или столбцов второй матрицы частотных коэффициентов согласно информации об угловых параметрах.
Если ROT выполняется для матрицы, включающей в себя только некоторые дискретизированные коэффициенты первой матрицы частотных коэффициентов, в процессе кодирования, первая матрица частотных коэффициентов формируется посредством выполнения обратного ROT для матрицы, включающей в себя только некоторые дискретизированные коэффициенты.
Второй обратный преобразователь 1430 принимает первую матрицу частотных коэффициентов из первого обратного преобразователя 1420 и выполняет обратное преобразование частоты для принимаемой первой матрицы частотных коэффициентов. Обратное преобразование частоты может быть выполнено для первой матрицы частотных коэффициентов посредством обратного выполнения DCT. Как результат обратного преобразования частоты, восстанавливается предварительно определенный блок пиксельной области.
Фиг. 16 является блок-схемой последовательности операций способа кодирования изображения, согласно примерному варианту осуществления.
Как показано на фиг. 16, на этапе 1610, устройство кодирования изображений формирует первую матрицу частотных коэффициентов посредством преобразования предварительно определенного блока в частотную область. Устройство кодирования изображений принимает предварительно определенный блок, выполняет DCT и тем самым формирует первую матрицу частотных коэффициентов, включающую в себя DCT коэффициенты.
На этапе 1620, устройство кодирования изображений определяет то, включает ли первая матрица частотных коэффициентов, сформированная на этапе 1610, в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Устройство кодирования изображений может определять то, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают 0. Кроме того, устройство кодирования изображений также может определять то, является ли блок, который вводится для кодирования, блоком B слоя, и является ли блок внутренне предсказанным блоком.
На этапе 1630, устройство кодирования изображений формирует вторую матрицу частотных коэффициентов посредством избирательного частичного переключения по меньшей мере одного из строк или столбцов первой матрицы частотных коэффициентов на основе результата определения этапа 1620. Вторая матрица частотных коэффициентов формируется посредством выполнения ROT для первой матрицы частотных коэффициентов, как описано выше относительно фиг. 11а-11с, 12 и 13.
Если первая матрица частотных коэффициентов имеет большой размер, например, размер, равный или превышающий 16×16, может быть выбрана матрица, включающая в себя только некоторые дискретизированные коэффициенты первой матрицы частотных коэффициентов, и ROT может быть выполнено только для выбранной матрицы. Когда выбирается матрица, включающая в себя только некоторые дискретизированные коэффициенты, может быть выбрана матрица, включающая в себя только коэффициенты низкочастотных компонентов.
На этапе 1640, устройство кодирования изображений избирательно кодирует вторую матрицу частотных коэффициентов на основе результата определения этапа 1620. Если вторая матрица частотных коэффициентов формируется на этапе 1630 посредством выполнения ROT на основе результата определения этапа 1620, устройство кодирования изображений кодирует сформированную вторую матрицу частотных коэффициентов.
Устройство кодирования изображений квантует вторую матрицу частотных коэффициентов согласно предварительно определенному шагу квантования и энтропийно кодирует квантованную вторую матрицу частотных коэффициентов. Энтропийное кодирование выполняется согласно CABAC-способу или CAVLC-способу.
На этапе 1640, устройство кодирования изображений дополнительно энтропийно кодирует информацию об угловых параметрах, используемых для частичного переключения по меньшей мере одного из строк или столбцов на этапе 1630. Угловые параметры являются параметрами, указывающими степени частичного переключения между по меньшей мере одним из строк или столбцов. Кроме того, устройство кодирования изображений дополнительно может кодировать информацию, указывающую то, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Например, устройство кодирования изображений может кодировать информацию флага, указывающую то, включает ли первая матрица частотных коэффициентов в себя ненулевые коэффициенты.
Устройство кодирования изображений может многократно выполнять этапы 1630 и 1640 для комбинации множества угловых параметров, чтобы определять оптимальный угловой параметр. Устройство кодирования изображений многократно кодирует комбинацию множества угловых параметров, чтобы выбирать угловой параметр, имеющий наилучший коэффициент сжатия.
Комбинация множества угловых параметров может быть выбрана посредством использования вышеуказанного метода Монте-Карло и может соответствовать псевдослучайному числу Лемера. Когда комбинация множества угловых параметров задается соответствующей псевдослучайному числу Лемера, информация об угловых параметрах, которая кодируется на этапе 1640, может быть порядковым номером числа в псевдослучайной последовательности Лемера, соответствующего определенному оптимальному угловому параметру.
Фиг. 17 является блок-схемой последовательности операций способа декодирования изображения, согласно примерному варианту осуществления.
Как показано на фиг. 17, на этапе 1710, устройство декодирования изображений принимает поток битов предварительно определенного блока и декодирует информацию, указывающую то, включает ли первая матрица частотных коэффициентов предварительно определенного блока в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение. Устройство декодирования изображений может декодировать информацию флага, указывающую то, включает ли первая матрица частотных коэффициентов в себя коэффициенты, превышающие 0.
Как описано выше со ссылкой на фиг. 16, в процессе кодирования, только когда первая матрица частотных коэффициентов включает в себя ненулевые коэффициенты, вторая матрица частотных коэффициентов формируется посредством выполнения ROT для первой матрицы частотных коэффициентов и затем энтропийно кодируется. Соответственно, чтобы определять то, кодировать ли энтропийно данные второй матрицы частотных коэффициентов, сначала декодируется информация, указывающая то, включает ли первая матрица частотных коэффициентов в себя коэффициенты, абсолютные значения которых превышают 0. Вторая матрица частотных коэффициентов формируется посредством выполнения ROT для первой матрицы частотных коэффициентов.
На этапе 1720, устройство декодирования изображений декодирует вторую матрицу частотных коэффициентов на основе информации, декодированной на этапе 1710. На основе информации, декодированной на этапе 1710, только если первая матрица частотных коэффициентов включает в себя коэффициенты, абсолютные значения которых превышают предварительно определенное значение, устройство декодирования изображений энтропийно декодирует данные второй матрицы частотных коэффициентов и обратно квантует коэффициенты энтропийно декодированной второй матрицы частотных коэффициентов. Коэффициенты второй матрицы частотных коэффициентов обратно квантуются согласно шагу квантования, используемому в процессе кодирования изображений.
На этапе 1730, устройство декодирования изображений формирует первую матрицу частотных коэффициентов посредством частичного переключения по меньшей мере одного из строк или столбцов второй матрицы частотных коэффициентов, декодированной на этапе 1720. Устройство декодирования изображений формирует первую матрицу частотных коэффициентов посредством обратного выполнения ROT, описанного выше со ссылкой на фиг. 11а-11с, 12 и 13, в отношении информации об угловых параметрах, которая энтропийно декодируется на этапе 1710.
Как описано выше со ссылкой на фиг. 14, если в процессе кодирования ROT выполняется для матрицы, включающей в себя только некоторые дискретизированные коэффициенты первой матрицы частотных коэффициентов, первая матрица частотных коэффициентов формируется посредством выполнения обратного ROT для матрицы, включающей в себя только некоторые дискретизированные коэффициенты.
На этапе 1740, устройство декодирования изображений выполняет обратное преобразование частоты для первой матрицы частотных коэффициентов, сформированной на этапе 1730. Устройство декодирования изображений восстанавливает блок пиксельной области посредством выполнения обратного DCT для первой матрицы частотных коэффициентов.
Как описано выше, согласно примерному варианту осуществления матрица частотных коэффициентов может быть кодирована на основе математических методов с высоким коэффициентом сжатия, и тем самым полный коэффициент сжатия изображения может быть значительно увеличен.
Хотя примерный вариант осуществления, в частности, показан и описан со ссылкой на прилагаемые чертежи, примерные варианты осуществления могут быть осуществлены в качестве машиночитаемых кодов на машиночитаемом носителе записи.
Например, устройство кодирования или декодирования изображений либо кодер или декодер изображений, проиллюстрированные на фиг. 1, 2, 4, 5, 9, 10, 14 или 15, могут включать в себя шину, связанную с каждым модулем устройства или кодера, по меньшей мере, один процессор, который подключается к шине и служит для выполнения команд, и запоминающее устройство, подключенное к шине, чтобы сохранять команды, принятые сообщения и сформированные сообщения.
Машиночитаемым носителем записи является любое устройство хранения данных, которое может сохранять данные, которые впоследствии могут считываться посредством компьютерной системы. Примеры машиночитаемого носителя записи включают в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), диски CD-ROM, магнитные ленты, гибкие диски и оптические устройства хранения данных. Машиночитаемый носитель записи также может быть распределен по объединенным в сеть компьютерным системам, так что машиночитаемый код сохраняется и исполняется распределенным способом.
Вышеприведенные примерные варианты осуществления и преимущества являются просто примерными и не должны быть истолкованы как ограничение. Настоящие принципы могут легко применяться к другим типам устройств. Кроме того, описание примерных вариантов осуществления должно быть иллюстративным, и не ограничивать объем формулы изобретения, а множество альтернатив, модификаций и вариантов описания должно быть очевидным для специалистов в данной области техники.
Класс H04N7/30 с использованием кодирования с преобразованием