СПОСОБ И УСТРОЙСТВО ДЛЯ ОГРАНИЧЕНИЯ УРОВНЯ КВАНТОВАНИЯ
METHOD AND DEVICE FOR LIMITING QUANTIZATION LEVEL

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее изобретение испрашивает приоритет Заявки на патент по Договору о международной патентной кооперации (PCT), имеющей порядковый номер № PCT/CN2011/084083, поданной 15 декабря 2011 года, озаглавленной "Method of Clipping Transformed Coefficients before De-Quantization" (Способ ограничения преобразованных коэффициентов до обращенного квантования). PCT заявка на патент тем самым полностью включена в документ путем ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к кодированию видеосигнала. В частности, настоящее изобретение относится к ограничению уровня квантования для стандарта высокоэффективного кодирования видео (HEVC).
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Высокоэффективное кодирование видео (HEVC) является новым международным стандартом кодирования видео, разрабатываемым Объединенной совместной группой по кодированию видео (JCT-VC). HEVC основывается на гибридной архитектуре блочного кодирования с компенсацией движения с преобразованием, подобным дискретному косинусному преобразованию (DCT). Базовой единицей для сжатия, называемой «единица кодирования» (Coding Unit, CU), является прямоугольный (двумерный) блок 2N×2N, и каждая CU может рекурсивно разбиваться на четыре меньшие CU, пока не будет достигнут заранее заданный минимальный размер. Каждая CU содержит один или несколько имеющих переменный размер блоков «единиц предсказания» (Prediction Unit, PU) и «единиц преобразования» (Transform Unit, TU). Для каждой PU выбирается предсказание либо внутрикадровое (режим intra), либо межкадровое (режим inter). Каждая TU обрабатывается посредством пространственного блочного преобразования, и коэффициенты преобразования для TU затем квантуются. Наименьшим размером TU, допускаемым для HEVC, является 4×4.
Квантование коэффициентов преобразования играет важную роль в скорости передачи битов и контроле качества при кодировании видео. Используется ряд шагов квантования, чтобы квантовать коэффициент преобразования в уровень квантования. Больший размер шага квантования будет иметь результатом более низкую скорость передачи битов и более низкое качество. С другой стороны, меньший размер шага квантования будет иметь результатом более высокую скорость передачи битов и более высокое качество. Прямая реализация процесса квантования предусматривает операцию деления, которая является более сложной в аппаратной реализации и потребляет больше вычислительных ресурсов в программной реализации. Соответственно, в области техники были разработаны различные способы для процесса квантования без (операций) деления. В Редакции 5 тестовой модели HEVC (HM-5.0) процесс квантования описывается, как изложено ниже по тексту. Определен набор параметров:
B=битовая ширина или битовая глубина входного исходного (источника) видео,
DB=B-8,
N= размер преобразования единицы преобразования (TU),
2
M=log(N),
Q[x]=f(x), где f(x)={26214, 23302, 20560, 18396, 16384, 14564}, x=0..., 5, и
IQ[x]QN=g(x), где g(x)={40,45,51,57,64,72}, x=0..., 5.
Q[x] и IQ[x] называются шагом квантования и шагом обращенного квантования (деквантования) соответственно. Процесс квантования выполняется согласно:
где
(1)
где "%" - оператор деления «по модулю». Процесс обращенного квантования выполняется согласно:
, где
(2)
Переменная qlevel в уравнениях (1) и (2) представляет уровень квантования для коэффициента преобразования. Переменная coeffQ в уравнении (2) представляет обращенно квантованный коэффициент преобразования. IQ[x] указывает шаг обращенного квантования (также называемый размером шага обращенного квантования), и QP представляет параметр квантования. "QP/6" в уравнениях (1) и (2) представляет целую часть QP, деленного на 6. Как показано в уравнениях (1) и (2), процессы квантования и обращенного квантования реализуются целочисленным умножением, за которым следует арифметический сдвиг(и). Значение смещения добавлено в оба уравнения (1) и (2) для реализации целочисленного преобразования с использованием округления.
Битовой глубиной уровня квантования является 16 битов (включая 1 бит для знака) для стандарта HEVC. Другими словами, уровень квантования представляется в виде 2 байтов или 16-битового слова. Поскольку IQ(x)<=72 и QP<=51, динамическим диапазоном для IQ[x] является 7 битов и операция "<<QP/6)" выполняет арифметический сдвиг влево вплоть до 8 битов. Соответственно, динамическим диапазоном для обращенно квантованного коэффициента преобразования coeffQ, то есть "(qlevel*IQ[QP%6])<<(QP/6)", является 31 (16+7+8) бит. Следовательно, процесс обращенного квантования, как описано уравнением (2), никогда не вызовет переполнение, поскольку процесс обращенного квантования использует 32-битовое представление данных.
Однако когда вводится матрица квантования, процесс обращенного квантования модифицируется, как показано в уравнениях (3)-(5):
, (3)
если (iShift>QP/6),
, где
при  (4)
иначе
(5)
где "[i][j]" указывает позицию (также называемую индексами) преобразованного коэффициента внутри единицы преобразования, W обозначает матрицу квантования, nW и nH являются шириной и высотой преобразования. Если n представляет динамический диапазон уровня квантования для коэффициента преобразования, динамический диапазон n должен удовлетворять следующему условию, чтобы избегать переполнения:
n+w+iq+QP/6-M+DB-3≤32, (6)
где w - динамический диапазон матрицы W квантования, iq - динамический диапазон IQ[x], и битовой глубиной обращенно квантованного или восстановленного коэффициента преобразования является 32 бита.
Если динамическим диапазоном для матрицы W квантования является 8 битов, динамическим диапазоном восстановленного коэффициента преобразования, как описано уравнениями (3)-(5), становятся 34 (16+8+7+3) бита для QP=51, M=2 и DB=0. Если процесс обращенного квантования использует 32-битовое представление данных, восстановленный коэффициент преобразования согласно уравнениям уравнения (3)-(5) может выйти за границы и вызвать системный отказ. Следовательно, является желательным разработать схему восстановления коэффициентов преобразования с возможностью избегать возможного переполнения.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Раскрываются способ и устройство для ограничения (сведения к требуемому) уровня квантования. Варианты осуществления согласно настоящему изобретению предотвращают переполнение квантованного коэффициента преобразования путем ограничения уровня квантования адаптивно после квантования. В одном варианте осуществления настоящего изобретения способ содержит генерирование уровня квантования для коэффициента преобразования единицы преобразования путем квантования коэффициента преобразования согласно матрице квантования и параметру квантования; определение условия ограничения на основании матрицы квантования, параметра квантования, битовой глубины источника видео, размера преобразования единицы преобразования или любой комбинации таковых, причем условие ограничения включает в себя условие нулевого ограничения; и ограничение уровня квантования в соответствии с условием ограничения, чтобы генерировать обрабатываемый с ограничением уровень квантования. Упомянутое ограничение уровня квантования может соответствовать безусловному ограничению с фиксированным диапазоном, и ограниченный уровень квантования представляется в n битах, где n может соответствовать 8, 16 или 32. Упомянутое ограничение уровня квантования может также соответствовать безусловному ограничению с фиксированным диапазоном, и уровень квантования является ограниченным внутри диапазона от -m до m-1, где m может соответствовать 128, 32768 или 2147483648.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - иллюстрация примерной блок-схемы последовательности операций для ограничения коэффициента преобразования, включающей в себя осуществление настоящего изобретения для избегания переполнения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Как упомянуто ранее, процесс обращенного квантования (или восстановления) коэффициентов, как описано выше по тексту, может испытывать переполнение при введении матрицы квантования. Чтобы избегать потенциального переполнения в течение восстановления коэффициентов преобразования, в вариантах осуществления согласно настоящему изобретению уровень квантования коэффициента преобразования ограничивается до выполнения процесса обращенного квантования. Динамический диапазон для уровня квантования коэффициента преобразования представлен целым числом n. В примере, как описано в уравнениях (3)-(5), динамический диапазон n не должен превышать 32 бита, если будет использоваться 32-битовое представление данных для обращенно квантованного (или восстановленного) коэффициента преобразования. Соответственно, n должно удовлетворять следующему ограничительному условию:
n+8+7+(QP/6-(M-l+DB+4))≤32, (7)
которое приводит к
n≤20+M+DB-QP/6. (8)
В этом случае уровень квантования, qlevel, коэффициента преобразования будет ограничиваться согласно уравнению (9):
(9)
Чтобы избежать переполнения, динамический диапазон уровня квантования коэффициента преобразования подлежит ограничению согласно уравнению (8). Согласно уравнению (8), n должно быть меньшим или равным (20+M+DB-QP/6), чтобы избежать переполнения. Однако поскольку уровень квантования представлен 16 битами в этом примере (то есть битовая глубина уровня квантования =16), n не должно превышать 16 битов. Соответственно, если (20+M+DB-QP/6) больше чем 16, уровень квантования коэффициента преобразования должен ограничиваться до диапазона, чтобы не превысить 16-битовое представление данных. Следующие псевдокоды (псевдокод A) иллюстрируют пример для ограничения уровня квантования, qlevel, для коэффициента преобразования согласно варианту осуществления настоящего изобретения для избегания переполнения данных в течение восстановления коэффициентов преобразования:
Псевдокод A:
если (20+M+DB-QP/6>=16)
иначе
Как показано в псевдокоде A, используются два диапазона ограничения для двух различных условий ограничения. Первое условие ограничения соответствует "20+M+B-8-QP/6≥16", и второе условие ограничения соответствует "20+M+B-8-QP/6<16". Первый диапазон ограничения соответствует диапазону с фиксированным ограничением, то есть (-215, 215-1), и второй диапазон ограничения соответствует (-220+M+B-8-QP/6 -1, 220+M+B-8-QP/61). Хотя проверяемое условие "если (20+M+B-8-QP/6≥16)" используется в примерном псевдокоде, показанном выше по тексту, также могут использоваться другие проверяемые условия. Например, проверяемое условие может использовать битовую глубину B источника видео вместо параметра DB. Проверяемым условием становится "если (20+M+B-8-QP/6>=16)", то есть "если (12+M+B-QP/6>=16)". Соответствующими псевдокодами (Псевдокод B) становятся:
Псевдокод B:
если (12+M+B-QP/6>=16)
иначе
Если битовой глубиной источника видео является 8 битов (DB=0) и размером преобразования является 4×4, уравнение (8) можно упростить к виду:
n≤22-QP/6.
Следовательно, проверяемым условием "если (12+M+B-QP/6≥16)" становится "если (22-QP/6≥16)" в этом случае. Проверяемое условие можно дополнительно упростить к виду "если (QP<=36)". Следовательно, процесс ограничения для уровня квантования коэффициента преобразования согласно другому варианту осуществления настоящего изобретения зависит только от QP для источника видео с фиксированным динамическим диапазоном. Примерный псевдокод (Псевдокод C) показан ниже:
Псевдокод C:
если (QP<=36)
иначе
.
Когда битовой глубиной источника видео является 10 битов или выше, то есть DB≥2, условие в (7) всегда удовлетворяется. В этом случае ограничение в 16-битов, а именно  или qlevel=max(-32768, min(32767, qlevel)), всегда используется безусловно. Хотя ограничение выполняется безусловно для битовой глубины, равной 10 битам или выше, уровень квантования коэффициента преобразования может также безусловно ограничиваться до требуемой битовой глубины независимо от битовой глубины источника видео. Требуемой битовой глубиной может быть 8, 16 или 32 битов, и соответствующими диапазонами ограничения могут быть [-128, 127], [-32768, 32767] и [-2147483648, 2147483647].
Три примерных псевдокода, включающие в себя исполнение настоящего изобретения, описаны выше по тексту. Эти псевдокоды предназначены для иллюстрации примерного процесса для избегания переполнения данных в течение восстановления коэффициентов преобразования. Специалист в данной области техники может осуществлять на практике настоящее изобретение с использованием других проверяемых условий. Например, вместо проверки "если (QP<=36)" может использоваться проверяемое условие "если (QP/6<=6)". В другом примере операция ограничения может быть реализована с использованием другой функции, такой как ограничивающая функция, clip(x,y,z), где переменная z (двусторонне) ограничивается между x и y (x<y). Операции ограничения для псевдокода C могут быть выражены в виде:
и
В вышеприведенных примерах используются конкретные параметры, чтобы проиллюстрировать процесс обращенного квантования, включающий в себя исполнения настоящего изобретения для избегания переполнения данных. Конкретные используемые параметры не должны рассматриваться в качестве ограничений настоящего изобретения. Специалист в данной области техники может модифицировать проверку условия ограничения на основании предоставленных параметров. Например, если шаг обращенного квантования имеет 6-битовый динамический диапазон вместо 7-битового динамического диапазона, ограничением уравнения (8) становится n≤19+M+DB-QP/6. Соответствующей проверкой условия ограничения в псевдокоде A становится "если (19+M+DB-QP/6>=16)".
Тогда как вышеупомянутый процесс ограничения уровня квантования выполняется для стороны декодера, процесс ограничения уровня квантования может также выполняться на стороне кодера после квантования. Для избегания потенциального переполнения, в вариантах осуществления согласно настоящему изобретению уровень квантования коэффициента преобразования ограничивают после выполнения процесса квантования. Условие ограничения может основываться на матрице квантования, параметре квантования, шаге обращенного квантования, битовой глубине источника видео, размере преобразования единицы преобразования или любой комбинации таковых. Условие ограничения может также включать в себя условие нулевого ограничения, где условие ограничения не устанавливается. Другими словами, нулевое условие соответствует безусловному ограничению, которое всегда ограничивает уровень квантования до некоторого диапазона. В варианте осуществления уровень квантования может ограничиваться до первого диапазона для первого условия ограничения, и уровень квантования может ограничиваться до второго диапазона для второго условия ограничения. Первый диапазон может соответствовать фиксированному диапазону, относящемуся к битовой глубине уровня квантования, и второй диапазон может относиться к динамическому диапазону уровня квантования. Условие ограничения может определяться сравнением первого взвешенного значения с пороговой величиной, причем первое взвешенное значение соответствует первой линейной функции матрицы квантования, параметра квантования, битовой глубины источника видео, размера преобразования единицы преобразования или любой комбинации таковых. Кроме того, пороговая величина может соответствовать фиксированному значению или второму взвешенному значению, причем второе взвешенное значение соответствует второй линейной функции матрицы квантования, параметра квантования, битовой глубины источника видео, размера преобразования единицы преобразования или любой комбинации такового.
Уровень квантования для коэффициента преобразования также может ограничиваться безусловно до требуемой битовой глубины независимо от битовой глубины источника видео. Требуемой битовой глубиной может быть 8, 16 или 32 битов, и соответствующими диапазонами с ограничением могут быть [-128, 127], [-32768, 32767] и [-2147483648, 2147483647].
На Фиг. 1 иллюстрируется примерная блок-схема последовательности операций ограничения уровня квантования для видеокодера, включающего в себя исполнение настоящего изобретения для избегания переполнения. На этапе 110 генерируется уровень квантования для коэффициента преобразования единицы преобразования путем квантования коэффициента преобразования согласно матрице квантования и параметру квантования. На этапе 120 определяется условие ограничения на основании матрицы квантования, параметра квантования, шага обращенного квантования, битовой глубины источника видео, размера преобразования единицы преобразования или любой комбинации такового, причем условие ограничения включает в себя условие нулевого ограничения. Уровень квантования на этапе 130 затем ограничивается согласно условию ограничения, чтобы сгенерировать обрабатываемый с ограничением уровень квантования.
Блок-схема последовательности операций на Фиг. 1 предназначена для иллюстрации примера ограничения уровня квантования для видеокодера, чтобы избегать переполнения уровня квантования. Специалист в данной области техники может осуществлять на практике настоящее изобретение путем перегруппировки этапов, разделения одного или нескольких этапов или объединения одного или нескольких этапов.
Вышеупомянутое описание представлено, чтобы дать возможность обычному специалисту в данной области техники осуществлять на практике настоящее изобретение, как предусмотрено в объеме конкретного применения и требований к нему. Различные модификации описанных вариантов осуществления будут очевидны специалистам в данной области техники, и общие принципы, определенные в документе, могут применяться к другим исполнениям. Следовательно, подразумевается, что настоящее изобретение не ограничивается конкретными показанными и описанными вариантами осуществления, а подлежит расширительному толкованию в соответствии с принципами и признаками новизны, раскрытыми в документе. В приведенном выше подробном описании иллюстрируются различные конкретные подробности для обеспечения полного понимания настоящего изобретения. Однако специалисты в данной области техники поймут, каким образом настоящее изобретение может быть осуществлено на практике.
Исполнение настоящего изобретения, как описано выше по тексту, может быть реализовано различными аппаратными средствами, кодами программного обеспечения или комбинациями такового. Например, исполнение настоящего изобретения может быть схемой, интегрированной в микросхему сжатия видео, или кодом программы, интегрированным в программное обеспечение сжатия видео, для выполнения обработки, описанной в документе. Вариант осуществления настоящего изобретения также может быть программным кодом, подлежащим исполнению в цифровом процессоре сигналов (DSP), для выполнения обработки, описанной в документе. Изобретение может также предусматривать ряд функций, подлежащих выполнению процессором компьютера, цифровым процессором сигналов, микропроцессором или программируемой вентильной матрицей (FPGA). Эти процессоры могут быть сконфигурированы для выполнения конкретных задач согласно изобретению путем исполнения машиночитаемого программного кода или микропрограммного кода, который задает конкретные способы, реализуемые изобретением. Программный код или микропрограммный код могут быть разработаны на различных языках программирования и в различных форматах или стилях. Программный код также может быть скомпилированным для различных целевых платформ. Однако различные форматы кода, стили и языки программных кодов и других средств конфигурирования кода, чтобы выполнять задачи в соответствии с изобретением, не будут выходить за рамки существа и объема изобретения.
Изобретение может осуществляться в других конкретных формах без выхода за рамки существа или существенных характеристик. Описанные примеры должны рассматриваться во всех отношениях только в качестве иллюстративных, а не ограничительных. Объем изобретения, следовательно, указывается прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые подпадают под смысл и область эквивалентности формулы изобретения, подлежат охвату рамками ее объема.