Способ и устройство для кодирования и декодирования вектора движения на основании сокращенных предсказателей-кандидатов вектора движения
Иллюстрации
Показать всеИзобретение относится к предсказательному кодированию и декодированию вектора движения. Технический результат - повышение коэффициента сжатия при кодировании/декодировании изображения. Способ кодирования вектора движения содержит этапы, на которых генерируют информацию о векторе движения на основании вектора движения текущего блока и предсказателя вектора движения текущего блока, генерируют виртуальный вектор движения, генерируют векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивают векторные разности с информацией о векторе движения, и выборочно исключают второй предсказатель-кандидат вектора движения согласно сравнению, и кодируют информацию о векторе движения и информацию о предсказателе вектора движения текущего блока. 5 н. и 10 з.п. ф-лы, 16 ил.
Реферат
Область техники
[1] Устройства и способы, в соответствии с иллюстративными вариантами осуществления, относятся к кодированию и декодированию вектора движения и, в частности, к предсказательному кодированию и декодированию вектора движения текущего блока.
Уровень техники
[2] В таком кодеке, как «усовершенствованное кодирование видеосигнала» MPEG-4 H.264/MPEG-4 (AVC), векторы движения ранее закодированных блоков, соседствующих с текущим блоком, можно использовать для предсказания вектора движения текущего блока. Медиана векторов движения ранее закодированных блоков, соседствующих с левой стороной, верхней стороной и правой верхней стороной текущего блока, используется в качестве предсказателя вектора движения текущего блока. Вектор движения текущего блока непосредственно не кодируется, а вместо этого кодируется разность между вектором движения и предсказателем вектора движения.
Раскрытие изобретения
Решение проблемы
[3] Один или более иллюстративных вариантов осуществления предусматривают способ и устройство для предсказательного кодирования и декодирования вектора движения и машиночитаемый носитель записи, на котором записана компьютерная программа для выполнения способа.
Преимущественные результаты изобретения
[4] Согласно иллюстративному варианту осуществления, когда предсказатели-кандидаты вектора движения используются для предсказательного кодирования и декодирования вектора движения, количество предсказателей-кандидатов вектора движения можно уменьшить для предсказательного кодирования и декодирования вектора движения. Соответственно, информацию, необходимую для указания предсказателя вектора движения, используемого для предсказания вектора движения текущего блока из предсказателей-кандидатов вектора движения, можно кодировать с минимальным числом битов, благодаря чему коэффициент сжатия кодирования/декодирования вектора движения увеличивается, что позволяет повышать коэффициент сжатия при кодировании/декодировании изображения.
Краткое описание чертежей
[5] Вышеперечисленные и другие признаки и преимущества станут ясны из подробного описания иллюстративных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых
[6] фиг. 1 - блок-схема устройства для кодирования изображения согласно иллюстративному варианту осуществления;
[7] фиг. 2 - блок-схема устройства для декодирования изображения согласно иллюстративному варианту осуществления;
[8] фиг. 3 иллюстрирует иерархические единицы кодирования согласно иллюстративному варианту осуществления;
[9] фиг. 4 - блок-схема кодера изображения на основе единицы кодирования, согласно иллюстративному варианту осуществления;
[10] фиг. 5 - блок-схема декодера изображения на основе единицы кодирования согласно иллюстративному варианту осуществления;
[11] фиг. 6 иллюстрирует максимальную единицу кодирования, единицу кодирования более низкого уровня и единицу предсказания согласно иллюстративному варианту осуществления;
[12] фиг. 7 иллюстрирует единицу кодирования и единицу преобразования согласно иллюстративному варианту осуществления;
[13] фиг. 8a-8d иллюстрируют формы разделения единицы кодирования, единицы предсказания и единицы преобразования согласно иллюстративному варианту осуществления;
[14] фиг. 9 - блок-схема устройства для кодирования вектора движения согласно иллюстративному варианту осуществления;
[15] фиг. 10a и 10b иллюстрируют предсказатели-кандидаты вектора движения согласно иллюстративному варианту осуществления;
[16] фиг. 10c-10e иллюстрируют блоки различных размеров, которые соседствуют с текущим блоком, согласно иллюстративному варианту осуществления;
[17] фиг. 11a-11c иллюстрируют предсказатели-кандидаты вектора движения согласно другому иллюстративному варианту осуществления;
[18] фиг. 12 иллюстрирует способ уменьшения количества предсказателей-кандидатов вектора движения согласно иллюстративному варианту осуществления;
[19] фиг. 13a-13d иллюстрируют местоположение текущего блока, включенного в единицу кодирования заранее определенного размера, согласно иллюстративному варианту осуществления;
[20] фиг. 14 - блок-схема устройства для декодирования вектора движения согласно иллюстративному варианту осуществления;
[21] фиг. 15 - блок-схема, иллюстрирующая способ кодирования вектора движения, согласно иллюстративному варианту осуществления; и
[22] фиг. 16 - блок-схема, иллюстрирующая способ декодирования вектора движения, согласно иллюстративному варианту осуществления.
Предпочтительные варианты осуществления изобретения
[23] Согласно аспекту иллюстративного варианта осуществления предусмотрен способ кодирования вектора движения, причем способ включает в себя этапы, на которых генерируют информацию о векторе движения на основании вектора движения текущего блока и предсказателя вектора движения текущего блока путем оценивания вектора движения текущего блока и определения первого предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения в качестве предсказателя вектора движения текущего блока на основании результата оценивания, генерируют виртуальный вектор движения с использованием второго предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и информации о векторе движения, генерируют векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивают векторные разности с информацией о векторе движения, и выборочно исключают второй предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения, и кодируют информацию о векторе движения и информацию о предсказателе вектора движения текущего блока.
[24] Согласно аспекту другого иллюстративного варианта осуществления предусмотрен способ декодирования вектора движения, причем способ включает в себя этапы, на которых декодируют информацию о векторе движения текущего блока, генерируют виртуальный вектор движения с использованием заранее определенного предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и декодированной информации о векторе движения, генерируют векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивают сгенерированные векторные разности с декодированной информацией о векторе движения, и выборочно исключают заранее определенный предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения, и определяют предсказатель вектора движения предсказателей-кандидатов вектора движения, которые не исключаются из множества предсказателей-кандидатов вектора движения, в качестве предсказателя вектора движения текущего блока, и восстанавливают вектор движения текущего блока на основании определенного предсказателя вектора движения и декодированной информации о векторе движения.
[25] Согласно аспекту другого иллюстративного варианта осуществления предусмотрено устройство для кодирования вектора движения, причем устройство включает в себя блок оценки вектора движения, который генерирует информацию о векторе движения на основании вектора движения текущего блока и предсказателя вектора движения текущего блока путем оценивания вектора движения текущего блока и определяет первый предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения в качестве предсказателя вектора движения текущего блока на основании результата оценивания, блок определения кандидата, который генерирует виртуальный вектор движения с использованием второго предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и информации о векторе движения, генерирует векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивает векторные разности с информацией о векторе движения и выборочно исключает второй предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения; и кодер вектора движения, который кодирует информацию о векторе движения и информацию о предсказателе вектора движения текущего блока.
[26] Согласно аспекту другого иллюстративного варианта осуществления предусмотрено устройство для декодирования вектора движения, причем устройство включает в себя декодер вектора движения, который декодирует информацию о векторе движения текущего блока; блок определения кандидата, который генерирует виртуальный вектор движения с использованием заранее определенного предсказателя-кандидата вектора движения из множества предсказателей-кандидатов вектора движения и декодированной информации о векторе движения, генерирует векторные разности между виртуальным вектором движения и множеством предсказателей-кандидатов вектора движения, сравнивает сгенерированные векторные разности с декодированной информацией о векторе движения и выборочно исключает заранее определенный предсказатель-кандидат вектора движения из множества предсказателей-кандидатов вектора движения; и блок восстановления вектора движения, который определяет предсказатель-кандидат вектора движения предсказателей-кандидатов вектора движения, которые не исключаются из множества предсказателей-кандидатов вектора движения, в качестве предсказателя вектора движения текущего блока и восстанавливает вектор движения текущего блока на основании определенного предсказателя вектора движения и декодированной информации о векторе движения.
[27] Согласно аспекту другого иллюстративного варианта осуществления предусмотрен машиночитаемый носитель записи, в котором содержится компьютерная программа для выполнения способов кодирования и декодирования вектора движения.
Варианты осуществления изобретения
[28] Далее один или более иллюстративных вариантов осуществления будет описан более полно со ссылкой на прилагаемые чертежи. Такие выражения, как “по меньшей мере один из”, предшествующие списку элементов, изменяют список элементов в целом и не изменяют отдельные элементы списка.
[29] Далее 'изображение' может обозначать неподвижное изображение для видео или движущееся изображение, то есть само видео.
[30] На фиг. 1 показана блок-схема устройства 100 для кодирования изображения согласно иллюстративному варианту осуществления.
[31] Согласно фиг. 1 устройство 100 для кодирования изображения включает в себя блок 110 разделения на максимальные единицы кодирования, блок 120 определения глубины кодирования, кодер 130 данных изображения и кодер 140 информации кодирования.
[32] Блок 110 разделения на максимальные единицы кодирования может делить текущий кадр или срез на основе максимальной единицы кодирования, то есть единицы кодирования наибольшего размера. Таким образом, блок 110 разделения на максимальные единицы кодирования может делить текущий кадр или срез на по меньшей мере одну максимальную единицу кодирования.
[33] Согласно иллюстративному варианту осуществления единицу кодирования можно представлять с использованием максимальной единицы кодирования и глубины. Как описано выше, максимальная единица кодирования указывает единицу кодирования, имеющую наибольший размер из единиц кодирования текущего кадра, и глубина указывает степень иерархического снижения единицы кодирования. С увеличением глубины единица кодирования может уменьшаться от максимальной единицы кодирования до минимальной единицы кодирования, причем глубина максимальной единицы кодирования определяется как минимальная глубина, и глубина минимальной единицы кодирования определяется как максимальная глубина. Поскольку размер единицы кодирования уменьшается от максимальной единицы кодирования с увеличением глубины, единица кодирования более низкого уровня k-й глубины может включать в себя множество единиц кодирования более низкого уровня (k+n)-й глубины (k и n - целые числа, большие или равные 1).
[34] Согласно увеличению размера кадра, подлежащего кодированию, кодирование изображения в более крупной единице кодирования может приводить к более высокому коэффициенту сжатия изображения. Однако если более крупная единица кодирования фиксирована, эффективное кодирование изображения, отражающее непрерывно изменяющиеся характеристики изображения, может оказаться невозможным.
[35] Например, при кодировании гладкой области, например моря или неба, чем больше единица кодирования, тем больше можно повысить коэффициент сжатия. Однако при кодировании сложной области, например людей или зданий, чем меньше единица кодирования, тем больше можно повысить коэффициент сжатия.
[36] Соответственно, согласно иллюстративному варианту осуществления для каждого кадра или среза можно устанавливать разную максимальную единицу кодирования и разную максимальную глубину. Поскольку максимальная глубина обозначает максимальное число раз, в которое может уменьшаться единица кодирования, размер каждой минимальной единицы кодирования, включенной в максимальную единицу кодирования, можно устанавливать по-разному согласно максимальной глубине.
[37] Блок 120 определения глубины кодирования определяет максимальную глубину. Максимальную глубину можно определять на основании вычисления издержек «скорость-искажение» (RD). Максимальную глубину можно определять по-разному для каждого кадра, или среза, или для каждой максимальной единицы кодирования. Определенная максимальная глубина поступает на кодер 140 информации кодирования, и данные изображения согласно максимальным единицам кодирования поступают на кодер 130 данных изображения.
[38] Максимальная глубина может обозначать единицу кодирования наименьшего размера, которая может быть включена в максимальную единицу кодирования, то есть минимальную единицу кодирования. Другими словами, максимальная единица кодирования может делиться на единицы кодирования более низкого уровня, имеющие разные размеры согласно разным глубинам, что будет описано ниже со ссылкой на фиг. 8a и 8b. Кроме того, единицы кодирования более низкого уровня, имеющие разные размеры, которые включены в максимальную единицу кодирования, можно предсказывать или преобразовывать на основе единиц обработки, имеющих разные размеры. Преобразование осуществляется для преобразования пиксельных значений пространственной области в коэффициенты частотной области и может представлять собой дискретное косинусное преобразование или преобразование Карунена-Лоэва (KLT). Другими словами, устройство 100 для кодирования изображения может осуществлять множество операций обработки для кодирования изображения на основе единиц обработки, имеющих различные размеры и различные формы. Для кодирования данных изображения осуществляются такие операции обработки, как по меньшей мере одно из предсказание, преобразование и статистическое кодирование, причем для каждой операции можно использовать единицы обработки, имеющие одинаковый размер или разные размеры.
[39] Например, устройство 100 для кодирования изображения может выбирать единицу обработки, которая отличается от единицы кодирования для предсказания единицы кодирования.
[40] Когда размер единицы кодирования равен 2N×2N (где N - положительное целое число), единицами обработки для предсказания могут быть 2N×2N, 2N×N, N×2N и N×N. Другими словами, предсказание движения может осуществляться на основе единицы обработки, имеющей такую форму, что по меньшей мере одна из высоты и ширины единицы кодирования делится на две равные части. В дальнейшем, единица обработки, являющаяся основой предсказания, определяется как 'единица предсказания'.
[41] Режим предсказания может представлять собой по меньшей мере одно из внутреннего режима, взаимного режима и режима пропуска, и конкретный режим предсказания может осуществляться только для единицы предсказания, имеющей конкретный размер или конкретную форму. Например, внутренний режим может осуществляться только для единицы предсказания размерами 2Nx2N и NxN и квадратной формы. Кроме того, режим пропуска может осуществляться только для единицы предсказания размером 2Nx2N. Если в единице кодирования существует множество единиц предсказания, то после осуществления предсказания для каждой единицы предсказания можно выбрать режим предсказания с наименьшими ошибками кодирования.
[42] Альтернативно, устройство 100 для кодирования изображения может осуществлять преобразование данных изображения на основе единицы обработки, отличающейся размером от единицы кодирования. Для преобразования в единице кодирования преобразование может осуществляться на основе единицы обработки, размер которой меньше или равен размеру единицы кодирования. В дальнейшем единица обработки, являющаяся основой преобразования, определяется как 'единица преобразования'.
[43] Блок 120 определения глубины кодирования может определять единицы кодирования более низкого уровня, включенные в максимальную единицу кодирования, с использованием оптимизации RD на основании множителя Лагранжа. Другими словами, блок 120 определения глубины кодирования может определять форму множественных единиц кодирования более низкого уровня, полученных разделением максимальной единицы кодирования, причем множество единиц кодирования более низкого уровня имеет различные размеры согласно их глубинам. Кодер 130 данных изображения выводит битовый поток путем кодирования максимальной единицы кодирования на основании форм разделения, определенных блоком 120 определения глубины кодирования.
[44] Кодер 140 информации кодирования кодирует информацию о режиме кодирования максимальной единицы кодирования, определенной блоком 120 определения глубины кодирования. Другими словами, кодер 140 информации кодирования выводит битовый поток, кодируя информацию о форме разделения максимальной единицы кодирования, информацию о максимальной глубине и информацию о режиме кодирования единицы кодирования более низкого уровня для каждой глубины. Информация о режиме кодирования единицы кодирования более низкого уровня может включать в себя информацию о единице предсказания единицы кодирования более низкого уровня, информацию о режиме предсказания для каждой единицы предсказания и информацию о единице преобразования единицы кодирования более низкого уровня.
[45] Информация о форме разделения максимальной единицы кодирования может представлять собой информацию, указывающую, делится ли каждая единица кодирования. Например, когда максимальная единица кодирования делится и кодируется, информация, указывающая, делится ли максимальная единица кодирования, кодируется. Кроме того, когда единица кодирования более низкого уровня, полученная делением максимальной единицы кодирования, делится и кодируется, информация, указывающая, делится ли единица кодирования более низкого уровня, кодируется. Информация, указывающая, делится ли единица кодирования более низкого уровня, может представлять собой информацию флага.
[46] Поскольку единицы кодирования более низкого уровня, имеющие разные размеры, существуют для каждой максимальной единицы кодирования, и информацию о режиме кодирования нужно определять для каждой единицы кодирования более низкого уровня, информацию о по меньшей мере одном режиме кодирования можно определять для одной максимальной единицы кодирования.
[47] Устройство 100 для кодирования изображения может генерировать единицы кодирования более низкого уровня путем деления на две равные части высоты и ширины максимальной единицы кодирования согласно увеличению глубины. Таким образом, когда размер единицы кодирования k-й глубины равен 2N×2N, размер единицы кодирования (k+1)-й глубины равен N×N.
[48] Соответственно, устройство 100 для кодирования изображения может определять оптимальную форму разделения для каждой максимальной единицы кодирования на основании размеров максимальных единиц кодирования и максимальной глубины с учетом характеристик изображения. Гибко регулируя размер максимальной единицы кодирования с учетом характеристик изображения и кодируя изображение путем разделения максимальной единицы кодирования на единицы кодирования более низкого уровня разных глубин, можно более эффективно кодировать изображения, имеющие различные разрешения.
[49] На фиг. 2 показана блок-схема устройства 200 для декодирования изображения согласно иллюстративному варианту осуществления.
[50] Согласно фиг. 2 устройство 200 для декодирования изображения включает в себя блок 210 получения данных изображения, блок 220 выделения информации кодирования и декодер 230 данных изображения.
[51] Блок 210 получения данных изображения получает данные изображения согласно максимальным единицам кодирования, анализируя битовый поток, принятый устройством 200 для декодирования изображения, и выводит данные изображения на декодер 230 данных изображения. Блок 210 получения данных изображения может выделять информацию о максимальной единице кодирования текущего кадра или среза из заголовка текущего кадра или среза. Другими словами, блок 210 получения данных изображения делит битовый поток в максимальной единице кодирования, что позволяет декодеру 230 данных изображения декодировать данные изображения согласно максимальным единицам кодирования.
[52] Блок 220 выделения информации кодирования выделяет информацию о максимальной единице кодирования, максимальной глубине, форме разделения максимальной единицы кодирования, режиме кодирования единиц кодирования более низкого уровня из заголовка текущего кадра, анализируя битовый поток, принятый устройством 200 для декодирования изображения. Информация о форме разделения и информация о режиме кодирования поступают на декодер 230 данных изображения.
[53] Информация о форме разделения максимальной единицы кодирования может включать в себя информацию о единицах кодирования более низкого уровня, имеющих разные размеры согласно глубинам и включенных в максимальную единицу кодирования, и может представлять собой информацию (например, информацию флага), указывающую, делится ли каждая единица кодирования. Информация о режиме кодирования может включать в себя информацию о единице предсказания согласно единицам кодирования более низкого уровня, информацию о режиме предсказания и информацию о единице преобразования.
[54] Декодер 230 данных изображения восстанавливает текущий кадр, декодируя данные изображения каждой максимальной единицы кодирования на основании информации, выделяемой блоком 220 выделения информации кодирования.
[55] Декодер 230 данных изображения может декодировать единицы кодирования более низкого уровня, включенные в максимальную единицу кодирования, на основании информации о форме разделения максимальной единицы кодирования. Процесс декодирования может включать в себя процесс взаимного предсказания, включающий в себя внутреннее предсказание и компенсацию движения, и процесс обратного преобразования.
[56] Декодер 230 данных изображения может осуществлять внутреннее предсказание или взаимное предсказание на основании информации о единице предсказания согласно единицам кодирования более низкого уровня и информации о режиме предсказания для предсказания единицы кодирования более низкого уровня. Декодер 230 данных изображения также может осуществлять обратное преобразование для каждой единицы кодирования более низкого уровня на основании информации о единице преобразования единицы кодирования более низкого уровня.
[57] Фиг. 3 иллюстрирует иерархические единицы кодирования согласно иллюстративному варианту осуществления.
[58] Согласно фиг. 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.
[59] На фиг. 3 для данных 310 изображения с разрешением 1920×1080 размер максимальной единицы кодирования задан равным 64×64 и максимальная глубина задана равной 2.
[60] Для данных изображения 320 с разрешением 1920×1080 размер максимальной единицы кодирования задан равным 64×64 и максимальная глубина задана равной 3. Для данных 330 изображения с разрешением 352×288 размер максимальной единицы кодирования задан равным 16×16 и максимальная глубина задана равной 2.
[61] При высоком разрешении или большом объеме данных максимальный размер единицы кодирования может быть относительно велик, чтобы повышать коэффициент сжатия и точно отражать характеристики изображения. Соответственно, для данных 310 и 320 изображения, имеющих более высокое разрешение, чем данные 330 изображения, в качестве размера максимальной единицы кодирования можно выбирать 64×64.
[62] Максимальная глубина указывает суммарное количество уровней в иерархических единицах кодирования. Поскольку максимальная глубина данных 310 изображения равна 2, единица 315 кодирования данных 310 изображения может включать в себя максимальную единицу кодирования, размер которой по длинной оси равен 64, и единицы кодирования более низкого уровня, размеры которых по длинной оси равны 32 и 16, согласно увеличению глубины.
[63] С другой стороны, поскольку максимальная глубина данных 330 изображения равна 2, единица 335 кодирования данных 330 изображения может включать в себя максимальную единицу кодирования, размер которой по длинной оси равен 16, и единицы кодирования, размеры которых по длинной оси равны 8 и 4, согласно увеличению глубины.
[64] Однако, поскольку максимальная глубина данных изображения 320 равна 4, единица 325 кодирования данных изображения 320 может включать в себя максимальную единицу кодирования, размер которой по длинной оси равен 64, и единицы кодирования более низкого уровня, размеры которых по длинной оси равны 32, 16, 8 и 4, согласно увеличению глубины. Поскольку изображение кодируется на основе меньшей единицы кодирования более низкого уровня с увеличением глубины, иллюстративный вариант осуществления пригоден для кодирования изображения, включающего в себя больше малых сцен.
[65] На фиг. 4 показана блок-схема кодера 400 изображения на основе единицы кодирования согласно иллюстративному варианту осуществления.
[66] Блок 410 внутреннего предсказания осуществляет внутреннее предсказание на единицах предсказания внутреннего режима в текущем кадре 405, и блок 420 оценки движения и блок 425 компенсации движения осуществляют взаимное предсказание и компенсацию движения на единицах предсказания взаимного режима с использованием текущего кадра 405 и эталонного кадра 495.
[67] Остаточные значения генерируются на основании единиц предсказания, выводимых из блока 410 внутреннего предсказания, блока 420 оценки движения и блока 425 компенсации движения, и сгенерированные остаточные значения выводятся как квантованные коэффициенты преобразования посредством пропускания через преобразователь 430 и блок 440 квантования.
[68] Квантованные коэффициенты преобразования восстанавливаются к остаточным значениям путем пропускания через блок 460 обратного квантования и обратный преобразователь 470, и восстановленные остаточные значения подвергаются последующей обработке посредством пропускания через блок 480 устранения разделения на блоки и блок 490 контурной фильтрации и выводятся в качестве эталонного кадра 495. Квантованные коэффициенты преобразования могут выводиться в качестве битового потока 455 путем пропускания через статистический кодер 450.
[69] Для осуществления кодирования на основании способа кодирования согласно иллюстративному варианту осуществления компоненты кодера 400 изображения, т.е. блок 410 внутреннего предсказания, блок 420 оценки движения, блок 425 компенсации движения, преобразователь 430, блок 440 квантования, статистический кодер 450, блок 460 обратного квантования, обратный преобразователь 470, блок 480 устранения разделения на блоки и блок 490 контурной фильтрации, осуществляют процессы кодирования изображения на основе максимальной единицы кодирования, единицы кодирования более низкого уровня согласно глубинам, единицы предсказания и единицы преобразования.
[70] На фиг. 5 показана блок-схема декодера 500 изображения на основе единицы кодирования согласно иллюстративному варианту осуществления.
[71] Согласно фиг. 5 битовый поток 505 проходит через анализатор 510, что позволяет декодировать кодированные данные изображения и анализировать информацию кодирования, используемую для декодирования. Кодированные данные изображения выводятся в качестве обратно квантованных данных путем пропускания через статистический декодер 520 и блок 530 обратного квантования и восстанавливаются до остаточных значений путем пропускания через обратный преобразователь 540. Остаточные значения восстанавливаются согласно единицам кодирования путем суммирования с результатом внутреннего предсказания блока 550 внутреннего предсказания или результатом компенсации движения блока 560 компенсации движения. Восстановленные единицы кодирования используются для предсказания следующих единиц кодирования или следующего кадра путем пропускания через блок 570 устранения разделения на блоки и блок 580 контурной фильтрации.
[72] Для осуществления декодирования на основании способа декодирования согласно иллюстративному варианту осуществления компоненты декодера 500 изображения, т.е. анализатор 510, статистический декодер 520, блок 530 обратного квантования, обратный преобразователь 540, блок 550 внутреннего предсказания, блок 560 компенсации движения, блок 570 устранения разделения на блоки и блок 580 контурной фильтрации, осуществляют процессы декодирования изображения на основе максимальной единицы кодирования, единицы кодирования более низкого уровня согласно глубинам, единицы предсказания и единицы преобразования.
[73] В частности, блок 550 внутреннего предсказания и блок 560 компенсации движения определяют единицу предсказания и режим предсказания в единице кодирования более низкого уровня с учетом максимальной единицы кодирования и глубины, и обратный преобразователь 540 осуществляет обратное преобразование с учетом размера единицы преобразования.
[74] Фиг. 6 иллюстрирует максимальную единицу кодирования, единицу кодирования более низкого уровня и единицу предсказания согласно иллюстративному варианту осуществления.
[75] Устройство 100 для кодирования изображения, проиллюстрированное на фиг. 1, и устройство 200 для декодирования изображения, проиллюстрированное на фиг. 2, используют иерархические единицы кодирования для осуществления кодирования и декодирования с учетом характеристик изображения. Максимальная единица кодирования и максимальная глубина могут адаптивно устанавливаться согласно характеристикам изображения или переменно устанавливаться согласно требованиям пользователя.
[76] На фиг. 6 структура 600 иерархических единиц кодирования имеет максимальную единицу 610 кодирования, высота и ширина которой составляют 64 и максимальная глубина которой равна 4. Глубина увеличивается по вертикальной оси структуры 600 иерархических единиц кодирования, и с увеличением глубины значения высоты ширины единиц 620-650 кодирования более низкого уровня уменьшаются. Единицы предсказания максимальной единицы 610 кодирования и единицы 620-650 кодирования более низкого уровня показаны вдоль горизонтальной оси структуры 600 иерархических единиц кодирования.
[77] Максимальная единица 610 кодирования имеет глубину 0 и размер единицы кодирования, т.е. высоту и ширину, 64×64. Глубина увеличивается по вертикальной оси, и существуют единица 620 кодирования более низкого уровня размером 32×32 и глубиной 1, единица 630 кодирования более низкого уровня размером 16×16 и глубиной 2, единица 640 кодирования более низкого уровня размером 8x8 и глубиной 3 и единица 650 кодирования более низкого уровня размером 4×4 и глубиной 4. Единица 650 кодирования более низкого уровня размером 4×4 и глубиной 4 является минимальной единицей кодирования.
[78] Согласно фиг. 6 примеры единицы предсказания показаны вдоль горизонтальной оси согласно каждой глубине. Таким образом, единица предсказания максимальной единицы 610 кодирования, глубина которой равна 0, может представлять собой единицу предсказания такого же размера, как единица 610 кодирования, т.е. 64×64, или единица 612 предсказания размером 64×32, единица 614 предсказания размером 32×64 или единица 616 предсказания размером 32×32, размер которой меньше, чем у единицы 610 кодирования размером 64×64.
[79] Единица предсказания единицы 620 кодирования, глубина которой равна 1 и размер равен 32×32, может представлять собой единицу предсказания такого же размера, как единица 620 кодирования, т.е. 32×32, или единица 622 предсказания размером 32×16, единица 624 предсказания размером 16×32 или единица 626 предсказания размером 16×16, размер которой меньше, чем у единицы 620 кодирования размером 32×32.
[80] Единица предсказания единицы 630 кодирования, глубина которой равна 2 и размер равен 16×16, может представлять собой единицу предсказания такого же размера, как единица 630 кодирования, т.е. 16×16, или единица 632 предсказания размером 16×8, единица 634 предсказания размером 8×16 или единица 636 предсказания размером 8×8, размер которой меньше, чем у единицы 630 кодирования размером 16×16.
[81] Единица предсказания единицы 640 кодирования, глубина которой равна 3 и размер равен 8×8, может представлять собой единицу предсказания такого же размера, как единица 640 кодирования, т.е. 8×8, или единица 642 предсказания размером 8×4, единица 644 предсказания размером 4×8 или единица 646 предсказания размером 4×4, размер которой меньше, чем у единицы 640 кодирования размером 8×8.
[82] Наконец, единица 650 кодирования, глубина которой равна 4 и размер равен 4×4, является единицей кодирования максимальной глубины, и единица предсказания единицы 650 кодирования может представлять собой единицу предсказания 650 размером 4×4. Однако единица кодирования максимальной глубины не всегда может иметь такой же размер, как единица предсказания. Аналогично единицам 610-650 кодирования, единица кодирования максимальной глубины может делиться на единицы предсказания, имеющие меньшие размеры, чем единица кодирования, и может осуществлять предсказание.
[83] Фиг. 7 иллюстрирует единицу кодирования и единицу преобразования согласно иллюстративному варианту осуществления.
[84] Устройство 100 для кодирования изображения, проиллюстрированное на фиг. 1, и устройство 200 для декодирования изображения, проиллюстрированное на фиг. 2, осуществляют кодирование и декодирование с самой максимальной единицей кодирования или с единицами кодирования более низкого уровня, которые меньше или равны максимальной единице кодирования, полученными разделением максимальной единицы кодирования. В процессе кодирования и декодирования размер единицы преобразования для преобразования выбирается так, чтобы обеспечивать наибольший коэффициент сжатия независимо от единицы кодирования и единицы предсказания. Например, согласно фиг. 7, когда текущая единица 710 кодирования имеет размер 64×64, преобразование может осуществляться с использованием единицы 720 преобразования размером 32×32.
[85] Фиг. 8a-8d иллюстрируют формы разделения единицы 810 кодирования, единицы 860 предсказания и единицы 870 преобразования согласно иллюстративному варианту осуществления.
[86] Фиг. 8a и 8b иллюстрируют единицу 810 кодирования и единицу 860 предсказания согласно иллюстративному варианту осуществления.
[87] На фиг. 8a показана форма разделения, выбранная устройством 100 для кодирования изображения, проиллюстрированного на фиг. 1, для кодирования максимальной единицы 810 кодирования. Устройство 100 для кодирования изображения делит максимальную единицу 810 кодирования на различные формы, осуществляет кодирование и выбирает оптимальную форму разделения, сравнивая результаты кодирования различных форм разделения друг