СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ КОЭФФИЦИЕНТА ПРЕОБРАЗОВАНИЯ
METHOD AND APPARATUS FOR ENTROPY ENCODING/DECODING TRANSFORM COEFFICIENT

Область техники, к которой относится изобретение
Настоящее изобретение относится к энтропийному кодированию и декодированию коэффициентов преобразования, а более конкретно, к способу и устройству для эффективного энтропийного кодирования и декодирования информации относительно местоположения последнего значимого коэффициента преобразования в блоке преобразования.
Предшествующий уровень техники
Согласно международным стандартам кодирования видео, таким как H.264 и MPEG-4, видеосигнал иерархически разбивается на последовательности, кадры, серии последовательных макроблоков, макроблоки и блоки, и блок является минимальной единицей обработки. В процессе кодирования остаточные данные блока получаются посредством выполнения внутрикадрового или межкадрового прогнозирования. Кроме того, остаточные данные сжимаются посредством выполнения преобразования, квантования, сканирования, кодирования по длинам серий и энтропийного кодирования. Процесс декодирования является обратным процессом процесса кодирования. Первоначально, коэффициенты блока преобразования, которые формируются в процессе энтропийного кодирования, извлекаются из потока битов. Затем, остаточные данные блока переконфигурируются посредством выполнения обратного квантования и обратного преобразования, и информация прогнозирования используется для того, чтобы переконфигурировать видеоданные блока.
Сущность изобретения
Техническая задача
Настоящее изобретение предоставляет способ и устройство для эффективного энтропийного кодирования и декодирования информации относительно местоположения последнего значимого коэффициента преобразования в блоке преобразования, имеющем большой размер.
Техническое решение
Согласно варианту осуществления настоящего изобретения, информация относительно местоположения последнего значимого коэффициента преобразования в блоке преобразования кодируется посредством использования его местоположения в направлении по горизонтальной оси и его местоположения в направлении по вертикальной оси в блоке преобразования.
Преимущества изобретения
Согласно настоящему изобретению, может быть эффективно представлено местоположение последнего значимого коэффициента преобразования, включенного в блок преобразования, имеющий большой размер, и информация относительно местоположения последнего значимого коэффициента преобразования может быть декодирована независимо от процесса декодирования коэффициентов преобразования.
Краткое описание чертежей
Фиг. 1 является блок-схемой устройства кодирования изображений согласно варианту осуществления настоящего изобретения.
Фиг. 2 является блок-схемой устройства декодирования изображений согласно варианту осуществления настоящего изобретения.
Фиг. 3 является схемой, показывающей иерархические единицы кодирования согласно варианту осуществления настоящего изобретения.
Фиг. 4 является блок-схемой кодера изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения.
Фиг. 5 является блок-схемой декодера изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения.
Фиг. 6 является схемой, показывающей максимальные единицы кодирования, субъединицы кодирования и единицы прогнозирования согласно варианту осуществления настоящего изобретения.
Фиг. 7 является схемой, показывающей единицу кодирования и единицу преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 8A и 8B являются схемами, показывающими формы разбиения единиц кодирования, единиц прогнозирования и единиц преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 9 является блок-схемой последовательности операций способа энтропийного кодирования коэффициентов преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 10 является справочной схемой для описания процесса энтропийного кодирования коэффициентов преобразования согласно вариантам осуществления настоящего изобретения.
Фиг. 11 является блок-схемой устройства энтропийного кодирования согласно варианту осуществления настоящего изобретения.
Фиг. 12 является блок-схемой устройства контекстно-адаптивного двоичного арифметического кодирования (CABAC) согласно варианту осуществления настоящего изобретения.
Фиг. 13 является справочной схемой для описания процесса выбора контекста для кодирования информации относительно местоположения последнего значимого коэффициента преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 14 показывает карту значимости, соответствующую фиг. 10.
Фиг. 15 является справочной схемой для описания процесса кодирования значений уровня значимых коэффициентов преобразования, включенных в блок преобразования, проиллюстрированного на фиг. 10.
Фиг. 16 является схемой, показывающей пример множества таблиц кодирования переменной длины (VLC), используемых согласно варианту осуществления настоящего изобретения.
Фиг. 17 является справочной схемой для описания способа энтропийного кодирования коэффициентов преобразования согласно другому варианту осуществления настоящего изобретения.
Фиг. 18A и 18B являются справочными схемами для описания способа энтропийного кодирования коэффициентов преобразования согласно другому варианту осуществления настоящего изобретения.
Фиг. 19 является блок-схемой последовательности операций способа энтропийного декодирования коэффициентов преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 20 является блок-схемой устройства энтропийного декодирования согласно варианту осуществления настоящего изобретения.
Оптимальный режим осуществления изобретения
Согласно аспекту настоящего изобретения, предусмотрен способ энтропийного кодирования коэффициентов преобразования, причем способ включает в себя определение местоположения последнего значимого коэффициента преобразования, имеющего ненулевое значение, из коэффициентов преобразования, включенных в блок преобразования, имеющий определенный размер, согласно определенному порядку сканирования; и кодирование информации о местоположении последнего значимого коэффициента преобразования посредством использования его местоположения в направлении по горизонтальной оси и его местоположения в направлении по вертикальной оси в блоке преобразования.
Согласно другому аспекту настоящего изобретения, предусмотрен способ энтропийного декодирования коэффициентов преобразования, причем способ включает в себя извлечение информации о местоположении в направлении по горизонтальной оси и местоположении в направлении по вертикальной оси последнего значимого коэффициента преобразования, имеющего ненулевое значение и включенного в блок преобразования, из принимаемого потока битов согласно определенному порядку сканирования; и определение местоположения последнего значимого коэффициента преобразования посредством декодирования информации о местоположении в направлении по горизонтальной оси и местоположении в направлении по вертикальной оси.
Согласно аспекту настоящего изобретения, предусмотрено устройство для энтропийного кодирования коэффициентов преобразования, причем устройство включает в себя энтропийный кодер для определения местоположения последнего значимого коэффициента преобразования, имеющего ненулевое значение, из коэффициентов преобразования, включенных в блок преобразования, имеющий определенный размер, согласно определенному порядку сканирования и для кодирования информации о местоположении последнего значимого коэффициента преобразования посредством использования его местоположения в направлении по горизонтальной оси и его местоположения в направлении по вертикальной оси в блоке преобразования.
Согласно другому аспекту настоящего изобретения, предусмотрено устройство для энтропийного декодирования коэффициентов преобразования, причем устройство включает в себя энтропийный декодер для извлечения информации о местоположении в направлении по горизонтальной оси и местоположении в направлении по вертикальной оси последнего значимого коэффициента преобразования, имеющего ненулевое значение и включенного в блок преобразования, из принимаемого потока битов согласно определенному порядку сканирования и для определения местоположения последнего значимого коэффициента преобразования посредством декодирования информации о местоположении в направлении по горизонтальной оси и местоположении в направлении по вертикальной оси.
Описание вариантов осуществления изобретения
В дальнейшем в этом документе настоящее изобретение подробно описывается посредством пояснения вариантов осуществления изобретения со ссылкой на прилагаемые чертежи.
Фиг. 1 является блок-схемой устройства 100 кодирования изображений согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 1, устройство 100 кодирования изображений включает в себя модуль 110 разбиения на максимальные единицы кодирования, модуль 120 определения кодированной глубины, кодер 130 данных изображений и кодер 140 информации кодирования.
Модуль 110 разбиения на максимальные единицы кодирования может разбивать текущий кадр или текущую серию последовательных макроблоков на основе максимальной единицы кодирования, которая является единицей кодирования максимального размера. Текущий кадр или текущая серия последовательных макроблоков могут разбиваться, по меньшей мере, на одну максимальную единицу кодирования.
Согласно варианту осуществления настоящего изобретения, единицы кодирования могут быть представлены посредством использования максимальной единицы кодирования и глубины. Как описано выше, максимальная единица кодирования представляет единицу кодирования, имеющую наибольший размер из единиц кодирования текущего кадра, и глубина представляет то, как единицы кодирования иерархически уменьшаются по размеру. По мере того, как увеличивается глубина, единицы кодирования могут быть уменьшены по размеру от максимальной единицы кодирования до минимальной единицы кодирования, и глубина максимальной единицы кодирования может задаваться как минимальная глубина, в то время как глубина минимальной единицы кодирования может задаваться как максимальная глубина. Поскольку единицы кодирования уменьшаются по размеру по мере того, как увеличивается глубина, от максимальной единицы кодирования, субъединица кодирования, имеющая глубину k, может включать в себя множество субъединиц кодирования, имеющих глубины, превышающие k.
Когда кадр, который должен быть кодирован, имеет большой размер, если изображение кодируется в большой единице, изображение может быть кодировано с высоким коэффициентом сжатия изображений. Тем не менее, если размер единицы кодирования увеличивается и является фиксированным, изображение не может быть эффективно кодировано посредством отражения его непрерывно изменяющихся характеристик.
Например, когда кодируется плоское изображение, такое как изображение моря или неба, коэффициент сжатия может быть повышен, если единица кодирования увеличивается по размеру. Тем не менее, когда кодируется сложное изображение, такое как изображение людей или зданий, коэффициент сжатия повышается, если единица кодирования уменьшается по размеру.
Для этого, согласно варианту осуществления настоящего изобретения, максимальные единицы кодирования различного размера и различные максимальные глубины задаются для различных кадров или серий последовательных макроблоков. Поскольку максимальная глубина обозначает максимальное число раз, когда единица кодирования может уменьшаться по размеру, размер минимальных единиц кодирования, включенных в максимальную единицу кодирования, может быть переменно задан согласно максимальной глубине.
Модуль 120 определения кодированной глубины определяет максимальную глубину. Максимальная глубина может быть определена на основе функции затрат на искажение в зависимости от скорости передачи (R-D). Максимальная глубина может быть определена по-разному для каждого кадра или серии последовательных макроблоков либо для каждой максимальной единицы кодирования. Информация относительно определенной максимальной глубины выводится в кодер 140 информации кодирования, и данные изображений каждой максимальной единицы кодирования выводятся в кодер 130 данных изображений.
Максимальная глубина означает единицу кодирования, имеющую наименьший размер в максимальной единице кодирования, т.е. минимальную единицу кодирования. Другими словами, максимальная единица кодирования может разбиваться на субъединицы кодирования различного размера согласно различным глубинам. Их подробные описания предоставляются ниже со ссылкой на фиг. 8A и 8B. Кроме того, субъединицы кодирования различного размера, включенные в максимальную единицу кодирования, могут быть прогнозированы или ортогонально преобразованы на основе единиц обработки различного размера. Другими словами, устройство 100 кодирования изображений может выполнять множество процессов для кодирования изображений на основе единиц обработки различного размера и различной формы. Когда три процесса, такие как прогнозирование, ортогональное преобразование и энтропийное кодирование, выполняются для того, чтобы кодировать данные изображений, единица обработки идентичного размера может быть использована во всех процессах, либо единицы обработки различного размера могут быть использованы в различных процессах.
Например, устройство 100 кодирования изображений может выбирать единицу обработки, отличающуюся от определенной единицы кодирования, чтобы прогнозировать единицу кодирования.
Если единица кодирования имеет размер 2N×2N (N является положительным целым числом), единица обработки для прогнозирования может иметь размер 2N×2N, 2N×N, N×2N, N×N и т.д. Другими словами, прогнозирование движения может быть выполнено на основе единицы обработки, имеющей размер, полученный посредством разделения, по меньшей мере, одной из высоты и ширины единицы кодирования напополам. В дальнейшем в этом документе единица обработки для прогнозирования упоминается как "единица прогнозирования".
Режим прогнозирования может быть, по меньшей мере, одним из внутреннего режима, взаимного режима и режима пропуска, и определенный режим прогнозирования может быть выполнен только для единицы прогнозирования определенного размера или определенной формы. Например, внутренний режим может быть выполнен только для единицы прогнозирования, имеющей размер 2N×2N или N×N, имеющий квадратную форму. Кроме того, режим пропуска может быть выполнен только для единицы прогнозирования, имеющей размер 2N×2N. Если единица кодирования включает в себя множество единиц прогнозирования, прогнозирование может быть выполнено для каждой единицы прогнозирования, и может быть выбрана единица прогнозирования, имеющая наименьшую ошибку кодирования.
Кроме того, устройство 100 кодирования изображений может ортогонально преобразовывать данные изображений на основе единицы обработки, имеющей размер, отличающийся от размера единицы кодирования. Единица кодирования может быть ортогонально преобразована на основе единицы данных, имеющей размер, меньший или равный размеру единицы кодирования. В дальнейшем в этом документе единица обработки для ортогонального преобразования упоминается как "единица преобразования".
Модуль 120 определения кодированной глубины может определять субъединицы кодирования, включенные в максимальную единицу кодирования, посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителя Лагранжа. Другими словами, может быть определена форма разбиения максимальной единицы кодирования во множество субъединиц кодирования. Здесь, множество субъединиц кодирования имеет различные размеры согласно глубинам. После этого кодер 130 данных изображений выводит поток битов посредством кодирования максимальной единицы кодирования на основе формы разбиения, определенной посредством модуля 120 определения кодированной глубины.
Кодер 140 информации кодирования кодирует информацию относительно режима кодирования максимальной единицы кодирования, которая определяется посредством модуля 120 определения кодированной глубины. Поток битов выводится посредством кодирования информации относительно формы разбиения максимальной единицы кодирования, информации относительно максимальной глубины и информации относительно режимов кодирования субъединиц кодирования согласно глубинам. Информация относительно режимов кодирования субъединиц кодирования может включать в себя, например, информацию относительно единиц прогнозирования субъединиц кодирования, информацию относительно режимов прогнозирования единиц прогнозирования и информацию относительно единиц преобразования субъединиц кодирования.
Информация относительно формы разбиения максимальной единицы кодирования может быть информацией, представляющей то, разбивается или нет каждая единица кодирования. Например, когда разбивается и кодируется максимальная единица кодирования, кодируется информация, представляющая то, разбивается или нет максимальная единица кодирования. Кроме того, когда разбиваются и кодируются субъединицы кодирования, сформированные посредством разбиения максимальной единицы кодирования, кодируется информация, представляющая то, разбивается или нет каждая субъединица кодирования. Информация, представляющая то, разбивается или нет единица кодирования, может быть информацией флага, представляющей то, разбивается или нет единица кодирования.
Поскольку максимальная единица кодирования включает в себя субъединицы кодирования различного размера и должна быть определена информация относительно режима кодирования каждой субъединицы кодирования, информация относительно, по меньшей мере, одного режима кодирования может быть определена относительно одной максимальной единицы кодирования.
Устройство 100 кодирования изображений может формировать субъединицы кодирования посредством разделения высоты и ширины максимальной единицы кодирования по мере того, как увеличивается глубина. Иными словами, если единица кодирования, имеющая глубину k, имеет размер 2N×2N, единица кодирования, имеющая глубину k+1, имеет размер N×N.
Соответственно, устройство 100 кодирования изображений может определять оптимальную форму разбиения каждой максимальной единицы кодирования на основе размера максимальной единицы кодирования и максимальной глубины с учетом характеристик изображений. Посредством переменного регулирования размера максимальной единицы кодирования и кодирования изображения посредством разбиения максимальной единицы кодирования на субъединицы кодирования, имеющие различные глубины, с учетом характеристик изображений могут быть эффективно кодированы изображения, имеющие различные разрешения.
Фиг. 2 является блок-схемой устройства 200 декодирования изображений согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 2, устройство 200 декодирования изображений включает в себя модуль 210 получения данных изображений, модуль 220 извлечения информации кодирования и декодер 230 данных изображений.
Модуль 210 получения данных изображений анализирует поток битов, принимаемый посредством устройства 200 декодирования изображений, и получает и выводит данные изображений каждой максимальной единицы кодирования в декодер 230 данных изображений. Модуль 210 получения данных изображений может извлекать информацию относительно максимальной единицы кодирования текущего кадра или серии последовательных макроблоков из заголовка текущего кадра или серии последовательных макроблоков. Другими словами, поток битов разбивается на максимальные единицы кодирования, чтобы давать возможность декодеру 230 данных изображений декодировать данные изображений каждой максимальной единицы кодирования.
Модуль 220 извлечения информации кодирования анализирует поток битов, принимаемый посредством устройства 200 декодирования изображений, и извлекает из заголовка текущего кадра информацию относительно максимальной единицы кодирования, максимальной глубины, формы разбиения максимальной единицы кодирования и режимов кодирования субъединиц кодирования. Информация относительно формы разбиения и режимов кодирования выводится в декодер 230 данных изображений.
Информация относительно формы разбиения максимальной единицы кодирования может включать в себя информацию относительно субъединиц кодирования, включенных в максимальную единицу кодирования и имеющих различные размеры согласно глубинам. Как описано выше относительно фиг. 1, информация относительно формы разбиения может быть информацией, кодированной и представляющей то, разбивается или нет каждая единица кодирования (например, информацией флага). Информация относительно режимов кодирования может включать в себя, например, информацию относительно единиц прогнозирования, информацию относительно режимов прогнозирования, информацию относительно единиц преобразования субъединиц кодирования.
Декодер 230 данных изображений восстанавливает текущий кадр посредством декодирования данных изображений каждой максимальной единицы кодирования на основе информации, извлеченной посредством модуля 220 извлечения информации кодирования.
Декодер 230 данных изображений может декодировать субъединицы кодирования, включенные в максимальную единицу кодирования, на основе информации относительно формы разбиения максимальной единицы кодирования. Процесс декодирования может включать в себя процесс взаимного прогнозирования, включающий в себя внутреннее прогнозирование и компенсацию движения, и процесс обратного ортогонального преобразования.
Декодер 230 данных изображений может выполнять внутреннее (intra) прогнозирование или взаимное (inter) прогнозирование на основе информации относительно единиц прогнозирования и информации относительно режимов прогнозирования субъединиц кодирования, чтобы прогнозировать субъединицы кодирования. Кроме того, декодер 230 данных изображений может выполнять обратное ортогональное преобразование для каждой субъединицы кодирования на основе информации относительно единиц преобразования субъединиц кодирования.
Фиг. 3 является схемой, показывающей иерархические единицы кодирования согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 3, иерархические единицы кодирования могут включать в себя единицы кодирования, имеющие "высота x ширина" в 64×64, 32×32, 16×16, 8×8 и 4×4. В дополнение к единицам кодирования квадратной формы, также могут существовать единицы кодирования, имеющие "высота x ширина" в 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, а максимальная глубина задается как 4. Для данных 330 изображений, имеющих разрешение 352×288, размер максимальной единицы кодирования задается как 16×16, а максимальная глубина задается как 2.
Если разрешение является высоким или объем данных является большим, чтобы повышать коэффициент сжатия и точно отражать характеристики изображений, максимальный размер кодирования может быть относительно большим. Соответственно, для данных 310 и 320 изображений, имеющих разрешение, превышающее разрешение данных 330 изображений, размер максимальной единицы кодирования может быть выбран как 64×64.
Максимальная глубина представляет общее число уровней иерархических единиц кодирования. Поскольку максимальная глубина данных 310 изображений равняется 2, единицы 315 кодирования данных 310 изображений могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси 64, и субъединицы кодирования, имеющие размеры по продольной оси 32 и 16, по мере того, как увеличивается глубина.
Между тем, поскольку максимальная глубина данных 330 изображений равняется 2, единицы 335 кодирования данных 330 изображений могут включать в себя максимальные единицы кодирования, имеющие размер по продольной оси 16, и субъединицы кодирования, имеющие размеры по продольной оси 8 и 4, по мере того, как увеличивается глубина.
Поскольку максимальная глубина данных 320 изображений равняется 4, единицы 325 кодирования данных 320 изображений могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси 64, и субъединицы кодирования, имеющие размеры по продольной оси 32, 16, 8 и 4, по мере того как увеличивается глубина. В связи с этим, поскольку изображение кодируется на основе небольшой субъединицы кодирования по мере того, как увеличивается глубина, изображение, включающее в себя подробную сцену, может быть надлежащим образом кодировано.
Фиг. 4 является блок-схемой кодера 400 изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения.
Модуль 410 внутреннего прогнозирования выполняет внутреннее прогнозирование для единиц прогнозирования внутреннего режима в текущем кадре 405, модуль 420 оценки движения и модуль 425 компенсации движения, соответственно, выполняют взаимное прогнозирование и компенсацию движения для единиц прогнозирования взаимного режима посредством использования текущего кадра 405 и опорного кадра 495.
Остаточные значения формируются на основе вывода единиц прогнозирования из модуля 410 внутреннего прогнозирования, модуля 420 оценки движения и модуля 425 компенсации движения, и сформированные остаточные значения проходят через ортогональный преобразователь 430 и квантователь 440 так, что они выводятся в качестве квантованных коэффициентов преобразования.
Квантованные коэффициенты преобразования проходят через обратный квантователь 460 и обратный преобразователь 470 частоты так, что они восстанавливаются в качестве остаточных значений, и восстановленные остаточные значения постобрабатываются через модуль 480 удаления блочности и контурный фильтр 490 так, что они выводятся в качестве опорного кадра 495. Квантованные коэффициенты преобразования также могут проходить через энтропийный кодер 450 так, что они выводятся в качестве потока 455 битов.
Чтобы кодировать изображение на основе способа кодирования изображений согласно варианту осуществления настоящего изобретения, все компоненты кодера 400 изображений, т.е. модуль 410 внутреннего прогнозирования, модуль 420 оценки движения, модуль 425 компенсации движения, ортогональный преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470 частоты, модуль 480 удаления блочности и контурный фильтр 490, выполняют процессы кодирования изображений на основе максимальной единицы кодирования, субъединиц кодирования согласно глубинам, единиц прогнозирования и единиц преобразования.
Фиг. 5 является блок-схемой декодера 500 изображений на основе единицы кодирования согласно варианту осуществления настоящего изобретения.
Поток 505 битов проходит через анализатор 510 так, что осуществляется разбор данного потока на кодированные данные изображений, которые должны быть декодированы, и информацию кодирования, требуемую для того, чтобы декодировать кодированные данные изображений. Кодированные данные изображений проходят через энтропийный декодер 520 и обратный квантователь 530 так, что они выводятся в качестве обратно квантованных данных, и проходят через обратный преобразователь 540 частоты так, что они восстанавливаются в качестве остаточных значений. Остаточные значения прибавляются к результату внутреннего прогнозирования, выполняемого посредством модуля 550 внутреннего прогнозирования, и результату компенсации движения, выполняемой посредством модуля 560 компенсации движения, так что они восстанавливаются в единицы кодирования. Восстановленные единицы кодирования проходят через модуль 570 удаления блочности и контурный фильтр 580 так, что они используются для того, чтобы декодировать следующие единицы кодирования или прогнозировать следующий кадр.
Чтобы декодировать изображение на основе способа декодирования изображений согласно варианту осуществления настоящего изобретения, все компоненты декодера 500 изображений, т.е. анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540 частоты, модуль 550 внутреннего прогнозирования, модуль 560 компенсации движения, модуль 570 удаления блочности и контурный фильтр 580, выполняют процессы декодирования изображений на основе максимальной единицы кодирования, субъединиц кодирования согласно глубинам, единиц прогнозирования и единиц преобразования.
В частности, модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения определяют единицы прогнозирования в субъединицах кодирования и режимы прогнозирования с учетом максимальной единицы кодирования и глубин, и обратный преобразователь 540 частоты выполняет обратное ортогональное преобразование с учетом размеров единиц преобразования.
Фиг. 6 является схемой, показывающей максимальные единицы кодирования, субъединицы кодирования и единицы прогнозирования согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования изображений, проиллюстрированное на фиг. 1, и устройство 200 декодирования изображений, проиллюстрированное на фиг. 2, используют иерархические единицы кодирования для того, чтобы выполнять кодирование и декодирование с учетом характеристик изображений. Максимальная единица кодирования и максимальная глубина могут быть адаптивно заданы согласно характеристикам изображений или могут по-разному задаваться согласно запросам пользователя.
Фиг. 6 иллюстрирует иерархическую структуру 600 единиц кодирования, в которой высота и ширина максимальной единицы 610 кодирования равняется 64 и 64, а максимальная глубина равняется 4. Глубина увеличивается согласно вертикальной оси иерархической структуры 600 единиц кодирования, а ширины и высоты субъединиц 620, 630, 640 и 650 кодирования уменьшаются по мере того, как увеличивается глубина. Кроме того, вдоль горизонтальной оси иерархической структуры 600 единиц кодирования проиллюстрированы единицы прогнозирования максимальной единицы 610 кодирования и субъединиц 620, 630, 640 и 650 кодирования.
Максимальная единица 610 кодирования имеет глубину 0 и имеет размер, т.е. "высота × ширина", в 64×64. Глубина увеличивается вдоль вертикальной оси, и существуют субъединица 620 кодирования, имеющая размер 32×32 и глубину 1, субъединица 630 кодирования, имеющая размер 16×16 и глубину 2, субъединица 640 кодирования, имеющая размер 8×8 и глубину 3, и субъединица 650 кодирования, имеющая размер 4×4 и глубину 4. Субъединица 650 кодирования, имеющая размер 4×4 и глубину 4, является минимальной единицей кодирования.
Ссылаясь на фиг. 6, примеры единиц прогнозирования согласно глубинам проиллюстрированы вдоль горизонтальной оси. Иными словами, максимальная единица 610 кодирования, имеющая глубину 0, может включать в себя единицу 610 прогнозирования, имеющую размер 64×64, единицу 612 прогнозирования, имеющую размер 64×32, единицу 614 прогнозирования, имеющую размер 32×64, единицу 616 прогнозирования, имеющую размер 32×32, размеры которых равны или меньше размера единицы 610 кодирования, т.е. 64×64.
Единица 620 кодирования, имеющая глубину 1 и размер 32×32, может включать в себя единицу 620 прогнозирования, имеющую размер 32×32, единицу 622 прогнозирования, имеющую размер 32×16, единицу 624 прогнозирования, имеющую размер 16×32, единицу 626 прогнозирования, имеющую размер 16×16, размеры которых равны или меньше размера единицы 620 кодирования, т.е. 32×32.
Единица 630 кодирования, имеющая глубину 2 и размер 16×16, может включать в себя единицу 630 прогнозирования, имеющую размер 16×16, единицу 632 прогнозирования, имеющую размер 16×8, единицу 634 прогнозирования, имеющую размер 8×16, единицу 636 прогнозирования, имеющую размер 8×8, размеры которых равны или меньше размера единицы 630 кодирования, т.е. 16×16.
Единица 640 кодирования, имеющая глубину 3 и размер 8×8, может включать в себя единицу 640 прогнозирования, имеющую размер 8×8, единицу 642 прогнозирования, имеющую размер 8×4, единицу 644 прогнозирования, имеющую размер 4×8, единицу 646 прогнозирования, имеющую размер 4×4, размеры которых равны или меньше размера единицы 640 кодирования, т.е. 8×8.
В завершение, единица 650 кодирования, имеющая глубину 4 и размер 4×4, имеет максимальную глубину и включает в себя единицу 650 прогнозирования, имеющую размер 4×4. Тем не менее, единица 650 кодирования, имеющая максимальную глубину, не должна неизменно включать в себя единицу прогнозирования, имеющую размер, равный размеру единицы кодирования, и может, аналогично другим единицам 610, 620, 630 и 640 кодирования, разбиваться для прогнозирования на единицы прогнозирования, имеющие размер, меньший размера единицы кодирования.
Фиг. 7 является схемой, показывающей единицу кодирования и единицу преобразования согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования изображений, проиллюстрированное на фиг. 1, и устройство 200 декодирования изображений, проиллюстрированное на фиг. 2, кодируют максимальную единицу кодирования или субъединицы кодирования, разбитые и имеющие размеры, меньшие размера максимальной единицы кодирования. Размер единицы преобразования для выполнения ортогонального преобразования в процессе кодирования может быть выбран таким образом, чтобы достигать наибольшего коэффициента сжатия независимо от единицы кодирования и единицы прогнозирования. Например, если текущая единица 710 кодирования имеет размер 64×64, ортогональное преобразование может быть выполнено посредством использования единицы 720 преобразования, имеющей размер 32×32. Кроме того, может задаваться единица преобразования, имеющая размер, превышающий размер единицы кодирования.
Фиг. 8A и 8B являются схемами, показывающими формы разбиения единиц кодирования, единиц прогнозирования и единиц преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 8A показывает единицы кодирования и единицы прогнозирования согласно варианту осуществления настоящего изобретения.
Левая сторона фиг. 8A показывает форму разбиения, выбранную посредством устройства 100 кодирования изображений, проиллюстрированного на фиг. 1, чтобы кодировать максимальную единицу 810 кодирования. Устройство 100 кодирования изображений разбивает и кодирует максимальную единицу 810 кодирования в различные формы, сравнивает кодированные формы разбиения на основе функции R-D-затрат и выбирает оптимальную форму разбиения. Если оптимальная форма разбиения соответствует максимальной единице 810 кодирования, максимальная единица 810 кодирования может быть непосредственно кодирована без разбиения, как проиллюстрировано на фиг. 8A.
Ссылаясь на левую сторону фиг. 8A, максимальная единица 810 кодирования, имеющая глубину 0, разбивается и кодируется в субъединицы кодирования, имеющие глубины, равные или превышающие 1. Максимальная единица 810 кодирования разбивается на четыре субъединицы кодирования, имеющие глубину 1, и затем все или некоторые субъединицы кодирования, имеющие глубину 1, разбиваются на субъединицы кодирования, имеющие глубину 2.
Из субъединиц кодирования, имеющих глубину 1, верхняя правая субъединица кодирования и нижняя левая субъединица кодирования разбиваются на субъединицы кодирования, имеющие глубины, равные или превышающие 2. Некоторые субъединицы кодирования, имеющие глубины, равные или превышающие 2, могут разбиваться на субъединицы кодирования, имеющие глубины, равные или превышающие 3.
Правая сторона фиг. 8A показывает форму разбиения единицы 860 прогнозирования касательно максимальной единицы 810 кодирования.
Ссылаясь на правую сторону фиг. 8A, единица 860 прогнозирования касательно максимальной единицы 810 кодирования может разбиваться отлично от максимальной единицы 810 кодирования. Другими словами, единица прогнозирования касательно каждой субъединицы кодирования может быть меньше субъединицы кодирования.
Например, из субъединиц кодирования, имеющих глубину 1, единица прогнозирования касательно нижней правой субъединицы 854 кодирования может быть меньше субъединицы 854 кодирования. Из субъединиц 814, 816, 818, 828, 850 и 852 кодирования, имеющих глубину 2, единицы прогнозирования касательно некоторых субъединиц 815, 816, 850 и 852 кодирования могут быть меньше субъединиц 815, 816, 850 и 852 кодирования. Кроме того, единицы прогнозирования касательно субъединицы 822, 832 и 848 кодирования, имеющей глубину 3, могут быть меньше субъединицы 822, 832 и 848 кодирования. Единица прогнозирования может иметь форму, полученную посредством разделения каждой субъединицы кодирования на два в направлении высоты или ширины, или форму, полученную посредством разделения каждой субъединицы кодирования на четыре в направлении высоты и ширины.
Фиг. 8B показывает единицы прогнозирования и единицы преобразования согласно варианту осуществления настоящего изобретения.
Левая сторона фиг. 8B показывает форму разбиения единицы 860 прогнозирования касательно максимальной единицы 810 преобразования, проиллюстрированной в левой стороне фиг. 8A, а правая сторона фиг. 8B показывает форму разбиения единицы 870 преобразования касательно максимальной единицы 810 преобразования.
Ссылаясь на правую сторону фиг. 8B, единица 870 преобразования может разбиваться отлично от единицы 860 прогнозирования.
Например, хотя единица прогнозирования касательно единицы 854 кодирования, имеющей глубину 1, выбирается в качестве формы, полученной посредством разделения высоты единицы 854 кодирования напополам, единица преобразования касательно единицы 854 кодирования может быть выбрана с размером, равным размеру единицы 854 кодирования. Аналогично, хотя единицы прогнозирования касательно единиц 814 и 850 кодирования, имеющих глубину 2, выбираются в качестве форм, полученных посредством разделения высот единиц 814 и 850 кодирования напополам, единицы преобразования касательно единиц 814 и 850 кодирования могут быть выбраны в качестве размеров, равных размерам единиц 814 и 850 кодирования.
Единица преобразования может быть выбрана с размером, меньшим размера единицы прогнозирования. Например, если единица прогнозирования касательно единицы 852 кодирования, имеющей глубину 2, выбирается в качестве формы, полученной посредством разделения ширины единицы 852 кодирования напополам, единица преобразования может быть выбрана в качестве формы, имеющей размер, меньший размера единицы прогнозирования, и получена посредством разделения высоты и ширины единицы 852 кодирования напополам. Также может задаваться наименьшая единица преобразования, имеющая размер 2×2. Единица преобразования также может задаваться независимо от размера единицы кодирования, например, размера, превышающего размер единицы кодирования.
Далее подробно описываются процессы энтропийного кодирования и декодирования, выполняемые посредством энтропийного кодера 450 устройства 400 кодирования изображений, проиллюстрированного на фиг. 4, и энтропийного декодера 520 устройства 500 декодирования изображений, проиллюстрированного на фиг. 5.
Как описано выше относительно фиг. 4 и 5, устройство 400 кодирования изображений и устройство 500 декодирования изображений кодируют максимальную единицу кодирования или субъединицы кодирования, разбитые и имеющие размеры, меньшие размера максимальной единицы кодирования. Размер единицы преобразования для выполнения ортогонального преобразования в процессе кодирования может быть выбран таким образом, чтобы достигать наибольшего коэффициента сжатия независимо от единицы кодирования и единицы прогнозирования. Например, если текущая единица кодирования имеет размер 64×64, ортогональное преобразование может быть выполнено посредством использования единицы преобразования, имеющей размер 32×32. Кроме того, может задаваться единица преобразования, имеющая размер, превышающий размер единицы кодирования. В традиционном процессе кодирования, например, H.264, энтропийно кодируются остаточные данные, преобразованные и квантованные на основе единицы преобразования, имеющей относительно небольшой размер, например, 4×4. Тем не менее, согласно варианту осуществления настоящего изобретения, поскольку единица преобразования, которая должна быть энтропийно кодирована (в дальнейшем называемая "блоком преобразования"), может иметь относительно большой размер 16×16, 32×32, 64×64 или 128×128, а также 4×4 или 8×8, и тем самым может быть увеличена длина серии, которая представляет число непрерывных коэффициентов, имеющих значение 0, между значимыми коэффициентами преобразования, имеющими ненулевые значения, большое значение серии должно быть надлежащим образом кодировано. Кроме того, согласно традиционной технологии, чтобы кодировать информацию коэффициентов, включенных в блок преобразования, last_significant_coeff_flag, т.е. элемент синтаксиса, представляющий то, является или нет каждый значимый коэффициент преобразования последним значимым коэффициентом преобразования, энтропийно кодируется вместе с картой значимости, представляющей местоположения значимых коэффициентов преобразования, имеющих ненулевые значения. Тем не менее, если блок преобразования энтропийно кодируется вместе с картой значимости и last_significant_coeff_flag, следует определять то, является или нет каждый значимый коэффициент преобразования последним значимым коэффициентом преобразования в процессе энтропийного декодирования. Таким образом, согласно традиционной технологии, данные, представляющие все значимые коэффициенты преобразования, не могут быть легко и непосредственно идентифицированы из принимаемого потока битов. Следовательно, согласно вариантам осуществления настоящего изобретения, предоставляется способ эффективного энтропийного кодирования и декодирования информации относительно местоположения последнего значимого коэффициента преобразования в блоке преобразования, имеющем большой размер.
Фиг. 9 является блок-схемой последовательности операций способа энтропийного кодирования коэффициентов преобразования согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 9, на этапе 910 энтропийный кодер 450 определяет местоположение последнего значимого коэффициента преобразования из значимых коэффициентов преобразования, имеющих ненулевые значения и включенных в блок преобразования, имеющий определенный размер, согласно определенному порядку сканирования. Подробнее, если вводится блок преобразования, включающий в себя коэффициенты преобразования, полученные посредством выполнения процессов преобразования и квантования, энтропийный кодер 450 определяет значимые коэффициенты преобразования, включенные в блок преобразования, согласно определенному порядку сканирования, например зигзагообразному порядку сканирования, и определяет местоположение последнего значимого коэффициента преобразования, который сканируется в завершение.
На этапе 920 энтропийный кодер 450 кодирует информацию относительно местоположения последнего значимого коэффициента преобразования посредством использования его местоположения в направлении по горизонтальной оси и его местоположения в направлении по вертикальной оси в блоке преобразования. Если последний значимый коэффициент преобразования находится в x-м местоположении (x является целым числом, равным или превышающим 0) в направлении по горизонтальной оси и в y-м местоположении (y является целым числом, равным или превышающим 0) в направлении по вертикальной оси от верхнего левого местоположения блока преобразования, энтропийный кодер 450 кодирует значения x и y, представляющие местоположение последнего значимого коэффициента преобразования. Согласно традиционной технологии, кодируется last_significant_coeff_flag, представляющий то, является или нет каждый значимый коэффициент преобразования последним значимым коэффициентом преобразования. Тем не менее, согласно варианту осуществления настоящего изобретения, кодируется только информация координат, представляющая местоположение последнего значимого коэффициента преобразования в блоке преобразования. Информация относительно местоположения последнего значимого коэффициента преобразования может быть кодирована посредством использования способа контекстно-адаптивного двоичного арифметического кодирования (CABAC) или способа кодирования переменной длины (VLC). Ниже описывается способ кодирования информации относительно местоположения последнего значимого коэффициента преобразования посредством использования CABAC или VLC.
После того как кодирована информация относительно местоположения последнего значимого коэффициента преобразования, энтропийный кодер 450 кодирует информацию уровня каждого значимого коэффициента преобразования, расположенного в блоке преобразования. В качестве информации уровня энтропийный кодер 450 кодирует значение знака и абсолютное значение каждого значимого коэффициента преобразования.
Фиг. 10 является справочной схемой для описания процесса энтропийного кодирования коэффициентов преобразования согласно вариантам осуществления настоящего изобретения.
Ссылаясь на фиг. 10, энтропийный кодер 450 сканирует коэффициенты преобразования в блоке 1000 преобразования согласно зигзагообразному порядку сканирования. Предполагается, что все пустые пространства на фиг. 10 представляют коэффициенты преобразования, имеющие значение '0'. На фиг. 10 последний значимый коэффициент преобразования является коэффициентом 1010 преобразования, имеющим значение '-1'. Как проиллюстрировано на фиг. 10, последний значимый коэффициент 1010 преобразования, имеющий значение '-1', находится в пятом местоположении в направлении по горизонтальной оси и в пятом местоположении в направлении по вертикальной оси от верхнего левого коэффициента преобразования. Соответственно, энтропийный кодер 450 кодирует значения x=5 и y=5 в качестве информации относительно местоположения информации 1010 последнего значимого коэффициента преобразования.
Фиг. 11 является блок-схемой устройства 1100 энтропийного кодирования согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 11, устройство 1100 энтропийного кодирования включает в себя переключатель 1110, контекстно-адаптивный двоичный арифметический кодер (CABAC) 1120 и кодер переменной длины (VLC) 1130.
Как описано выше относительно фиг. 9, если определяется местоположение последнего значимого коэффициента преобразования, информация относительно местоположения последнего значимого коэффициента преобразования кодируется посредством использования CABAC или VLC. Переключатель 1110 управляет информацией относительно местоположения последнего значимого коэффициента преобразования, которая кодируется в единицах серий последовательных макроблоков, изображений и группы изображений, так что она выводится в CABAC 1120 или VLC 1130. То, кодировать информацию посредством использования CABAC или VLC, также может быть определено посредством сравнения функции R-D-затрат, полученной посредством использования CABAC и VLC.
Далее описывается способ кодирования информации относительно местоположения последнего значимого коэффициента преобразования посредством использования CABAC.
Фиг. 12 является блок-схемой CABAC-устройства 1200 согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 12, CABAC-устройство 1200, главным образом, включает в себя преобразователь 1210 в двоичную форму, модуль 1220 моделирования контекста и двоичный арифметический кодер 1230. Кроме того, двоичный арифметический кодер 1230 включает в себя средство 1232 регулярного кодирования и средство 1234 обходного кодирования.
Преобразователь 1210 в двоичную форму преобразует местоположение x в направлении по горизонтальной оси и местоположение y в направлении по вертикальной оси в блоке преобразования, которые представляют местоположение последнего значимого коэффициента преобразования, в двоичные значения и выводит строки элементов выборки. Элемент выборки представляет каждый бит строки элементов выборки. Способ преобразования в двоичную форму информации относительно местоположения последнего значимого коэффициента преобразования включает в себя различные способы преобразования в двоичную форму, к примеру, унарное преобразование в двоичную форму, усеченное унарное преобразование в двоичную форму, конкатенированное унарное/экспоненциальное преобразование в двоичную форму Голомба (Golomb) k-го порядка и преобразование в двоичную форму фиксированной длины. Например, на фиг. 10, если местоположение последнего значимого коэффициента преобразования представляется как X=5 и Y=5, значения X и Y могут преобразовываться в двоичную форму в X=000001 и Y=000001 посредством использования усеченного унарного преобразования в двоичную форму.
Информация относительно местоположения последнего значимого коэффициента преобразования, которая преобразуется в двоичные значения посредством преобразователя 1210 в двоичную форму, вводится в модуль 1220 моделирования контекста. Модуль 1220 моделирования контекста определяет вероятностную модель, требуемую для того, чтобы кодировать текущие входные элементы выборки, т.е. контекст, на основе значений входных элементов выборки или ранее кодированного элемента синтаксиса. В частности, согласно варианту осуществления настоящего изобретения, один из ранее определенных контекстов может быть выбран согласно местоположению последнего значимого коэффициента преобразования.
Средство 1232 регулярного кодирования формирует поток битов посредством арифметического кодирования значений входных элементов выборки на основе вероятностной модели, определенной посредством модуля 1220 моделирования контекста.
Средство 1234 обходного кодирования является средством для вывода входного значения без его сжатия и кодирует такие данные, как данные импульсно-кодовой модуляции (PCM).
Фиг. 13 является справочной схемой для описания процесса выбора контекста для кодирования информации относительно местоположения последнего значимого коэффициента преобразования согласно варианту осуществления настоящего изобретения.
Модуль 1220 моделирования контекста выбирает один из множества ранее подготовленных контекстов согласно местоположению последнего значимого коэффициента преобразования. Множество контекстов классифицирует '0' и '1' двоичного сигнала на наиболее вероятные символы (MPS) и наименее вероятные символы (LPS) согласно местоположению последнего значимого коэффициента преобразования и задает значения вероятности MPS и LPS. То, какой символ из '0' и '1' задается в качестве MPS или LPS и как задавать значения вероятности MPS и LPS, может быть рассчитано при необходимости. Фиг. 13 показывает контексты, выбранные согласно местоположению последнего значимого коэффициента преобразования за исключением верхнего левого местоположения, соответствующего DC, когда коэффициенты преобразования в блоке преобразования сканируются согласно зигзагообразному порядку сканирования. Ссылаясь на фиг. 13, модуль 1220 моделирования контекста включает в себя три контекста, имеющие индексы 0, 1 и 2, относительно блока преобразования 4×4 и выбирает один из трех контекстов, имеющих индексы 0, 1 и 2, согласно местоположению последнего значимого коэффициента преобразования из местоположений в блоке преобразования 4×4 за исключением верхнего левого местоположения. Иными словами, контекст, имеющий индекс 0, выбирается, если последний значимый коэффициент преобразования находится в (1, 0) в блоке преобразования 4×4, контекст, имеющий индекс 1, выбирается, если последний значимый коэффициент преобразования находится в (0, 1), и контекст, имеющий индекс 2, выбирается, если последний значимый коэффициент преобразования находится в (1, 1). Аналогично, модуль 1220 моделирования контекста включает в себя семь контекстов, имеющих индексы 0-6, относительно блока преобразования 8×8 и выбирает один из семи контекстов, имеющих индексы 0-6, согласно местоположению последнего значимого коэффициента преобразования из местоположений в блоке преобразования 8×8 за исключением верхнего левого местоположения. Аналогично, модуль 1220 моделирования контекста включает в себя двенадцать контекстов, имеющих индексы 0-11, относительно блока преобразования 16×16 и выбирает один из двенадцати контекстов, имеющих индексы 0-11, согласно местоположению последнего значимого коэффициента преобразования из местоположений в блоке преобразования 16×16 за исключением верхнего левого местоположения.
Средство 1232 регулярного кодирования формирует поток битов посредством арифметического кодирования значений входных элементов выборки, представляющих местоположение последнего значимого коэффициента преобразования, на основе контекста, определенного посредством модуля 1220 моделирования контекста. Например, предполагается, что местоположение в направлении по горизонтальной оси последнего значимого коэффициента преобразования, т.е. X, имеет значение 3 и что преобразователь 1210 в двоичную форму формирует строку элементов выборки '010' посредством преобразования в двоичную форму значения 3. Также предполагается, что на основе контекста, выбранного посредством модуля 1220 моделирования контекста согласно местоположению последнего значимого коэффициента преобразования, MPS равно '0' при значении вероятности 0,8, а LPS равно '1' при значении вероятности 0,2. Средство 1232 регулярного кодирования обновляет период [0, 1] в период [0, 0,8] посредством его разбиения согласно значению вероятности '0', т.е. начальному элементу выборки для формирования строки элементов выборки '010', и обновляет период [0, 0,8] на новый период [0,64, 0,8] согласно значению вероятности '1', т.е. следующему элементу выборки. Кроме того, средство 1232 регулярного кодирования обновляет период [0,64, 0,8] на новый период [0,64, 0,768] согласно значению вероятности '0', т.е. последнему элементу выборки. Средство 1232 регулярного кодирования выводит '11', полученное посредством исключения начальной цифры из '0,11', т.е. двоичное число вещественного числа 0,75, включенного в период [0,64, 0,768], в качестве кодового слова, соответствующего значению 3, представляющему местоположение в направлении по горизонтальной оси последнего значимого коэффициента преобразования. Аналогично, средство 1232 регулярного кодирования преобразует в двоичную форму значение Y координаты, представляющее местоположение в направлении по вертикальной оси последнего значимого коэффициента преобразования, и формирует поток битов посредством кодирования преобразованного в двоичную форму значения Y координаты согласно выбранному контексту.
В дополнение к вышеописанной информации относительно местоположения последнего значимого коэффициента преобразования, CABAC 1120, проиллюстрированный на фиг. 11, кодирует coded_block_flag, представляющий то, существует или нет значимый коэффициент преобразования, имеющий ненулевое значение, в блоке преобразования, и significant_coeff_flag, представляющий местоположение каждого значимого коэффициента преобразования в блоке преобразования. Процесс кодирования coded_block_flag и significant_coeff_flag может быть идентичным традиционному процессу кодирования H.264. Например, ссылаясь на фиг. 14, показывающую карту 1400 значимости, соответствующую фиг. 10, карта 1400 значимости может быть представлена посредством задания significant_coeff_flag[i] равным 1, если коэффициент преобразования, имеющий i-й порядок сканирования, является значимым коэффициентом преобразования, и задания significant_coeff_flag[i] равным 0, если коэффициент преобразования, имеющий i-й порядок сканирования, равен 0. Карта 1400 значимости может быть кодирована посредством использования пятнадцати вероятностных моделей, как указано в H.264.
После того как кодирована информация относительно местоположения последнего значимого коэффициента преобразования, энтропийный кодер 450 кодирует информацию уровня каждого значимого коэффициента преобразования, расположенного в блоке преобразования.
Фиг. 15 является справочной схемой для описания процесса кодирования значений уровня значимых коэффициентов преобразования, включенных в блок 1000 преобразования, проиллюстрированный на фиг. 10.
Ссылаясь на фиг. 10 и 15, энтропийный кодер 450 сканирует коэффициенты преобразования, проиллюстрированные на фиг. 10, от верхнего левого коэффициента преобразования к последнему значимому коэффициенту преобразования согласно зигзагообразному порядку сканирования и получает одномерно совмещенные коэффициенты преобразования, как проиллюстрировано на фиг. 15.
Энтропийный кодер 450 кодирует одномерно совмещенные коэффициенты преобразования посредством использования серии, представляющей число непрерывных коэффициентов, имеющих значение 0, между значимыми коэффициентами преобразования, и уровня, представляющего значение каждого значимого коэффициента преобразования, как указано в традиционном H.264. Подробнее, энтропийный кодер 450 определяет серию и уровень в порядке, противоположном порядку сканирования, т.е. в направлении от правой стороны к левой стороне фиг. 15, и кодирует серию и уровень посредством использования определенной VLC-таблицы.
Фиг. 16 является схемой, показывающей пример множества VLC-таблиц VLC0-VLC8, используемых согласно варианту осуществления настоящего изобретения. Энтропийный кодер 450 может выбирать одну из VLC-таблиц VLC0-VLC8 согласно местоположению последнего значимого коэффициента преобразования и может кодировать серию и уровень посредством использования выбранной VLC-таблицы. Например, как проиллюстрировано на фиг. 15, VLC выполняется для серий 1530, 1540, 1550 и 1560, представляющих числа непрерывных коэффициентов преобразования, имеющих значение 0, между значимыми коэффициентами преобразования от последнего значимого коэффициента 1510 преобразования, имеющего значение '-1', посредством использования VLC-таблицы.
Поскольку блок преобразования, согласно варианту осуществления настоящего изобретения, может иметь большой размер, равный или превышающий 16Ч16, может увеличиваться значение серии. Например, если VLC-таблица покрывает значения серии только от 0 до 63 и значение серии превышает 63, значение не может быть кодировано посредством использования VLC-таблицы. Соответственно, согласно варианту осуществления настоящего изобретения, с учетом максимального значения серии, доступного посредством VLC-таблицы, если блок преобразования имеет значение серии, превышающее максимальное значение серии, энтропийный кодер 450 кодирует значения серии, равные или меньшие максимального значения серии, и затем кодирует другие значения серии. Например, если максимальное значение серии равняется 63 и значение серии, которое должно быть кодировано, равняется 70, значение 70 серии разбивается на значения 63 и 7 серии, и значения 63 и 7 серии отдельно кодируются в качестве информации серии.
Согласно другому варианту осуществления настоящего изобретения, местоположение (x, y) последнего значимого коэффициента преобразования также может быть кодировано посредством использования VLC, отличного от вышеописанного CABAC. Иными словами, энтропийный кодер 450 может выполнять VLC для значений x и y в отношении VLC-таблицы, ранее подготовленной согласно значениям x и y.
Фиг. 17 является справочной схемой для описания способа энтропийного кодирования коэффициентов преобразования согласно другому варианту осуществления настоящего изобретения.
Согласно текущему варианту осуществления, энтропийный кодер 450 разбивает блок преобразования на субблоки, имеющие определенный размер, и кодирует информацию относительно местоположения последнего значимого коэффициента преобразования в субблоке, включающем в себя последний значимый коэффициент преобразования, вместе с индексом субблока. На фиг. 17 предполагается, что (Sa, b) представляет коэффициент преобразования в субблоке, имеющем b-й индекс сканирования. Ссылаясь на фиг. 17, если предполагается, что последний значимый коэффициент преобразования - это (S1, 12) в субблоке 1 1771, энтропийный кодер 450 кодирует (2, 2), представляющее местоположение последнего значимого коэффициента преобразования (S1, 12) в субблоке 1 1771, в качестве информации относительно местоположения последнего значимого коэффициента преобразования в субблоке, вместе с определенным индексом, представляющим субблок 1 1771.
Снова ссылаясь на фиг. 10, согласно другому варианту осуществления настоящего изобретения, коэффициенты преобразования кодируются посредством использования информации 1010 последнего значимого коэффициента преобразования в блоке 1000 преобразования (в дальнейшем называемого "первым последним значимым коэффициентом преобразования") и значимого коэффициента 1020 преобразования перед первым последним значимым коэффициентом 1010 преобразования (в дальнейшем называемого "вторым последним значимым коэффициентом"). Подробнее, энтропийный кодер 450 кодирует (3, 4), представляющее местоположение второго последнего значимого коэффициента 1020 преобразования, как описано выше. Затем, энтропийный кодер 450 кодирует значение серии между первым и вторым последними значимыми коэффициентами 1010 и 1020 преобразования. Как описано выше, если известно местоположение второго последнего значимого коэффициента 1020 преобразования, местоположение первого последнего значимого коэффициента 1010 преобразования может быть получено посредством прибавления значения серии между первым и вторым последними значимыми коэффициентами 1010 и 1020 преобразования к местоположению второго последнего значимого коэффициента 1020 преобразования.
Фиг. 18A и 18B являются справочными схемами для описания способа энтропийного кодирования коэффициентов преобразования согласно другому варианту осуществления настоящего изобретения.
Энтропийный кодер 450 может выбирать направление сканирования, соответствующее одному из зигзагообразного порядка сканирования и обратного зигзагообразного порядка сканирования, согласно тому, в каком порядке последний значимый коэффициент преобразования сканируется сначала, т.е. согласно тому, находится последний значимый коэффициент преобразования близко к верхнему левому местоположению или нижнему правому местоположению блока преобразования, и может кодировать информацию относительно местоположения последнего значимого коэффициента преобразования вместе с индексом, представляющим выбранное направление сканирования. Например, как проиллюстрировано на фиг. 18A, если ссылка с номером 1812 обозначает центральное местоположение, последний значимый коэффициент 1811 преобразования находится ближе к верхнему левому местоположению. В этом случае энтропийный кодер 450 может кодировать информацию относительно местоположения последнего значимого коэффициента 1811 преобразования вместе с индексом (индексом прямого сканирования), представляющим направление сканирования от верхнего левого местоположения. Кроме того, как проиллюстрировано на фиг. 18B, если ссылка с номером 1822 обозначает центральное местоположение и последний значимый коэффициент 1821 преобразования находятся ближе к нижнему правому местоположению, энтропийный кодер 450 может кодировать информацию относительно местоположения последнего значимого коэффициента 1821 преобразования вместе с индексом (индексом обратного сканирования), представляющим направление сканирования от нижнего правого местоположения.
Согласно другому варианту осуществления настоящего изобретения, чтобы кодировать значение серии, может задаваться определенная глобальная серия, и значение серии может быть представлено посредством использования частного и остатка, полученных, когда значение серии делится на глобальную серию (детализации серии). Например, предполагается, что значение серии равняется 78, и глобальная серия имеет значение 16. В этом случае, когда 78 делится на 16, частное равняется 4, а остаток равняется 14. Соответственно, значение 78 серии может быть представлено посредством использования 16, т.е. значения глобальной серии, 4, т.е. значения частного, и 14, т.е. значения остатка. Энтропийный кодер 450 может кодировать информацию относительно глобальной серии, частного и остатка посредством использования VLC или CABAC. Если кодер и декодер ранее задали идентичную глобальную серию, информация относительно глобальной серии не может быть дополнительно кодирована.
Кроме того, согласно другому варианту осуществления настоящего изобретения, энтропийный кодер 450 может кодировать информацию относительно местоположения последнего значимого коэффициента преобразования посредством применения различных VLC-таблиц согласно размеру блока преобразования, включающего в себя последний значимый коэффициент преобразования.
Фиг. 19 является блок-схемой последовательности операций способа энтропийного декодирования коэффициентов преобразования согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 19, на этапе 1910 энтропийный декодер 520 извлекает информацию относительно местоположения в направлении по горизонтальной оси и местоположения в направлении по вертикальной оси последнего значимого коэффициента преобразования, имеющего ненулевое значение и включенного в блок преобразования, из принимаемого потока битов согласно определенному порядку сканирования. Как описано выше относительно фиг. 9, если последний значимый коэффициент преобразования находится в x-том местоположении (x является целым числом, равным или превышающим 0) в направлении по горизонтальной оси и в y-том местоположении (y является целым числом, равным или превышающим 0) в направлении по вертикальной оси от верхнего левого местоположения блока преобразования, информация относительно местоположения последнего значимого коэффициента преобразования включает в себя значения x и y.
На этапе 1920 энтропийный декодер 520 определяет местоположение последнего значимого коэффициента преобразования посредством декодирования информации относительно местоположения в направлении по горизонтальной оси и местоположения в направлении по вертикальной оси. Энтропийный декодер 520 декодирует информацию относительно местоположения последнего значимого коэффициента преобразования посредством использования контекстно-адаптивного двоичного арифметического декодирования (CABAD) или декодирования переменной длины (VLD) в качестве обратного процесса относительно процесса кодирования, выполняемого посредством энтропийного кодера 450, и определяет местоположение последнего значимого коэффициента преобразования. Подробнее, энтропийный декодер 520 может выполнять VLD для местоположения в направлении по горизонтальной оси и местоположения в направлении по вертикальной оси последнего значимого коэффициента преобразования в отношении определенной VLC-таблицы поиска. Кроме того, энтропийный декодер 520 может выбирать один из множества контекстов согласно местоположению последнего значимого коэффициента преобразования и может выполнять CABAD для информации относительно местоположения последнего значимого коэффициента преобразования согласно выбранному контексту.
На этапе 1930 энтропийный декодер 520 декодирует информацию серии и уровня, включенную в поток битов, посредством использования местоположения последнего значимого коэффициента преобразования. Если длина серии превышает определенное пороговое значение, энтропийный декодер 520 декодирует информацию серии длины до порогового значения и затем декодирует информацию серии длины, превышающей пороговое значение. Как описано выше относительно фиг. 16, если пороговое значение задается так, чтобы кодировать значения серии до 63, значение 70 серии разбивается на значения 63 и 7 серии, и затем отдельно кодируются значения 63 и 7 серии. Таким образом, энтропийный декодер 520 может декодировать значение 70 серии посредством отдельного декодирования и затем комбинирования значений 63 и 7 серии.
Фиг. 20 является блок-схемой устройства 2000 энтропийного декодирования согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 20, устройство 2000 энтропийного декодирования включает в себя переключатель 2010, CABAD 2020 и VLD 2030.
Переключатель 2010 выводит информацию относительно кодированных коэффициентов преобразования в одно из CABAD 2020 и VLD 2030 посредством использования информации режима кодирования коэффициентов преобразования, которая задается в единицах серий последовательных макроблоков, изображений и группы изображений.
VLD 2030 может выполнять VLD для местоположения в направлении по горизонтальной оси и местоположения в направлении по вертикальной оси последнего значимого коэффициента преобразования в отношении определенной VLC-таблицы поиска. Кроме того, CABAD 2020 может выбирать один из множества контекстов согласно местоположению последнего значимого коэффициента преобразования и может выполнять CABAD для информации относительно местоположения последнего значимого коэффициента преобразования согласно выбранному контексту.
Настоящее изобретение также может быть реализовано как машиночитаемый код на машиночитаемом носителе записи. Машиночитаемым носителем записи является любое устройство хранения данных, которое может сохранять данные, которые впоследствии могут считываться посредством компьютерной системы. Примеры машиночитаемого носителя записи включают в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), CD-ROM, магнитные ленты, гибкие диски, оптические устройства хранения данных и т.д. Машиночитаемый носитель записи также может быть распределен по сетевым компьютерным системам так, что машиночитаемый код сохраняется и выполняется распределенным способом.
Хотя настоящее изобретение конкретно показано и описано со ссылкой на его примерные варианты осуществления, специалисты в данной области техники должны понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от сущности и объема изобретения, определяемого прилагаемой формулой изобретения. Следовательно, объем изобретения определяется не подробным описанием изобретения, а нижеприведенной формулой изобретения, и любые отличия в пределах объема должны истолковываться как охватываемые настоящим изобретением.