Данная заявка испрашивает приоритет Предварительной заявки США № 61/102 783, поданной 3 октября 2008, и Предварительной заявки США № 61/179 228, поданной 18 мая 2009, все содержимое каждой из которых включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Группа изобретений относится к кодированию и декодированию видеоданных, используя размер преобразования больше чем 8×8.
Предшествующий уровень техники
Функциональные возможности цифрового видео могут быть внедрены в широкий диапазон устройств, которые включают в себя цифровое телевидение, системы цифрового прямого широковещания, устройства беспроводной связи, такие как радио-телефоны, системы беспроводного широковещания, карманные персональные компьютеры (КПК), портативные компьютеры или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства для видео игр, игровые консоли и т.п. Цифровые видеоустройства осуществляют методы сжатия видео, такие как MPEG-2, MPEG-4 или H.264/MPEG-4 Part 10, Усовершенствованный стандарт видеокодирования (AVC), для более эффективной передачи и приема цифрового видео. Методы сжатия видео выполняют пространственное и временное предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям.
Сжатие видео в общем случае включает в себя пространственное предсказание и/или временное предсказание. В частности интра-кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности между видео блоками в пределах данной кодированной секции, которая может содержать видеокадр, фрагмент видеокадра и т.п. Напротив, интер-кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности между видео блоками последовательных кодированных секций видео последовательности. Для интра-кодирования, видео кодер выполняет пространственное предсказание для сжатия данных, основываясь на других данных в пределах той же самой кодированной секции. Для интер-кодирования видео кодер выполняет оценку движения и компенсацию движения для отслеживания движения соответствующих видео блоков двух или более смежных кодированных секций.
После пространственного или временного предсказания остаточный блок генерируется вычитанием предсказанного видео блока, сгенерированного во время процесса предсказания, из исходного видео блока, который кодируется. Остаточный (остаточный) блок, таким образом, указывает различия между блоком предсказания и текущим кодируемым блоком. Видео кодер может применять процессы преобразования, квантования и энтропийного кодирования для дополнительного уменьшения скорости передачи информации в битах, связанной с передачей остаточного блока. С помощью метода преобразования можно переводить множество значений пикселей в коэффициенты преобразования, которые представляют энергию значений пикселей в частотной области. Квантование применяется к коэффициентам преобразования, и в общем случае оно вовлекает процесс, который ограничивает количество битов, связанных с любым заданным коэффициентом. Перед энтропийным кодированием видео кодер сканирует блок квантованных коэффициентов в одномерный вектор коэффициентов. Видео кодер выполняет энтропийное кодирование вектора квантованных коэффициентов преобразования для дополнительного сжатия остаточных данных.
Видео декодер может выполнять операции энтропийного декодирования для извлечения коэффициентов. Обратное сканирование можно также выполнять в декодере для формирования двумерных блоков из принимаемых одномерных векторов коэффициентов. Видео декодер затем выполняет обратное квантование и обратное преобразование коэффициентов для получения восстановленного остаточного блока. Видео декодер затем декодирует предсказанный видео блок, основываясь на информации предсказания, которая включает в себя информацию о движении. Видео декодер затем складывает предсказанный видео блок с соответствующим восстановленным остаточным блоком для генерации восстановленного видео блока и для генерации декодированной последовательности видео информации.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Каждый из системы, способа и устройств данной заявки имеет несколько аспектов, ни один из которых не отвечает исключительно за свои желательные признаки. Без ограничения объема данной заявки, который выражен последующей формулой изобретения, ее наиболее важные особенности будут далее кратко обсуждаться. После рассмотрения данного обсуждения, и особенно после изучения раздела, озаглавленного «Подробное описание», будет ясно, как примерные признаки данной заявки могут обеспечивать некоторые усовершенствования, которые включают в себя, среди других, например, улучшение эффективности видео кодирования.
В одном из вариантов осуществления предложен способ кодирования видео данных, данный способ содержит применение пространственного предсказания или компенсации движения к исходному видео блоку в пределах видеокадра для генерации предсказанного видео блока, основываясь на режиме предсказания; вычитание предсказанного видео блока из исходного видео блока в пределах видеокадра для формирования остаточного блока; выбор преобразования, имеющего первый размер преобразования, для применения к остаточному блоку; генерацию данных заголовка, указывающих выбранное преобразование, данные заголовка содержат первый синтаксический элемент, имеющий первое значение, указывающее по меньшей мере один размер преобразования, и второй синтаксический элемент, указывающий размер предсказанного видео блока, причем первый синтаксический элемент и второй синтаксический элемент вместе указывают первый размер преобразования; применение выбранного преобразования к остаточному блоку для генерации остаточных коэффициентов преобразования; и генерацию видео сигнала, основываясь на данных заголовка и остаточных коэффициентах преобразования.
В другом варианте осуществления предложен способ декодирования видео данных, данный способ содержит прием видео сигнала, указывающего по меньшей мере один блок в пределах видеокадра, содержащего данные заголовка по меньшей мере для одного блока и остаточные коэффициенты преобразования по меньшей мере для одного блока, данные заголовка содержат первый синтаксический элемент, имеющий первое значение, указывающее по меньшей мере один размер преобразования, и второй синтаксический элемент, указывающий размер предсказанного блока по меньшей мере для одного блока, причем первый синтаксический элемент и второй синтаксический элемент вместе указывают преобразование, имеющее первый размер преобразования, используемое для кодирования по меньшей мере одного блока; применение пространственного предсказания или компенсации движения по меньшей мере к одному блоку для генерации предсказанного видео блока с размером предсказанного блока, равного по меньшей мере одному блоку; определение первого размера преобразования, используемого для кодирования по меньшей мере одного блока, основываясь на первом синтаксическом элементе и втором синтаксическом элементе; применение обратного преобразования определенного первого размера преобразования к остаточным коэффициентам преобразования для получения декодированного остаточного блока; и сложение декодированного остаточного блока с предсказанным видео блоком для получения декодированного видео блока.
В другом варианте осуществления существует устройство для кодирования видео данных, данное устройство содержит средство применения пространственного предсказания или компенсации движения к исходному видео блоку в пределах видеокадра для генерации предсказанного видео блока, основываясь на режиме предсказания; средство вычитания предсказанного видео блока из исходного видео блока в пределах видеокадра для формирования остаточного блока; средство выбора преобразования, имеющего первый размер преобразования, для применения к остаточному блоку; средство генерации данных заголовка, указывающих выбранное преобразование, данные заголовка содержат первый синтаксический элемент, имеющий первое значение, указывающее по меньшей мере один размер преобразования, и второй синтаксический элемент, указывающий размер предсказанного видео блока, причем первый синтаксический элемент и второй синтаксический элемент вместе указывают первый размер преобразования; средство применения выбранного преобразования к остаточному блоку для генерации остаточных коэффициентов преобразования; и средство генерации видео сигнала, основываясь на данных заголовка и остаточных коэффициентах преобразования.
В другом варианте осуществления предложено устройство для декодирования видео данных, данное устройство содержит средство приема видео сигнала, указывающего по меньшей мере один блок в пределах видеокадра, содержащего данные заголовка по меньшей мере для одного блока, и остаточные коэффициенты преобразования по меньшей мере для одного блока, данные заголовка содержат первый синтаксический элемент, имеющий первое значение, указывающее по меньшей мере один размер преобразования, и второй синтаксический элемент, указывающий размер предсказанного блока по меньшей мере для одного блока, причем первый синтаксический элемент и второй синтаксический элемент вместе указывают преобразование, имеющее первый размер преобразования, используемое для кодирования по меньшей мере одного блока; средство применения пространственного предсказания или компенсации движения по меньшей мере к одному блоку для генерации предсказанного видео блока с размером предсказанного блока, равным по меньшей мере одному блоку; средство определения первого размера преобразования, используемого для кодирования по меньшей мере одного блока, основываясь на первом синтаксическом элементе и втором синтаксическом элементе; средство применения обратного преобразования определенного первого размера преобразования к остаточным коэффициентам преобразования для получения декодированного остаточного блока; и средство суммирования декодированного остаточного блока с предсказанным видео блоком для получения декодированного видео блока.
В другом варианте осуществления предложена система кодирования видео данных, данная система содержит блок предсказания, конфигурированный для применения пространственного предсказания или компенсации движения к исходному видео блоку в пределах видеокадра для генерации предсказанного видео блока, основываясь на режиме предсказания; сумматор, конфигурированный для вычитания предсказанного видео блока из исходного видео блока в пределах видеокадра для формирования остаточного блока; процессор, конфигурированный для выбора преобразования, имеющего первый размер преобразования, для применения к остаточному блоку, и для генерации данных заголовка, указывающих выбранное преобразование, данные заголовка содержат первый синтаксический элемент, имеющий первое значение, указывающее по меньшей мере один размер преобразования, и второй синтаксический элемент, указывающий размер предсказанного видео блока, причем первый синтаксический элемент и второй синтаксический элемент вместе указывают первый размер преобразования; блок преобразования блоков, конфигурированный для применения выбранного преобразования к остаточному блоку для генерации остаточных коэффициентов преобразования; и блок энтропийного кодирования, конфигурированный для генерации видео сигнала, основываясь на данных заголовка и остаточных коэффициентах преобразования.
В другом варианте осуществления предложена система декодирования видео данных, данная система содержит приемник, конфигурированный для приема видео сигнала, указывающего по меньшей мере один блок в пределах видеокадра, содержащего данные заголовка по меньшей мере для одного блока и остаточные коэффициенты преобразования по меньшей мере для одного блока, данные заголовка содержат первый синтаксический элемент, имеющий первое значение, указывающее по меньшей мере один размер преобразования, и второй синтаксический элемент, указывающий размер предсказанного блока по меньшей мере для одного блока, причем первый синтаксический элемент и второй синтаксический элемент вместе указывают преобразование, имеющее первый размер преобразования, используемое для кодирования по меньшей мере одного блока; блок предсказания, конфигурированный для применения пространственного предсказания или компенсации движения по меньшей мере к одному блоку для генерации предсказанного видео блока с размером предсказанного блока по меньшей мере для данного одного блока; процессор, конфигурированный для определения первого размера преобразования, используемого для кодирования по меньшей мере одного блока, основываясь на первом синтаксическом элементе и втором синтаксическом элементе; блок обратного преобразования, конфигурированный для применения обратного преобразования определенного первого размера преобразования к остаточным коэффициентам преобразования для получения декодированного остаточного блока; и сумматор, конфигурированный для суммирования декодированного остаточного блока с предсказанным видео блоком для получения декодированного видео блока.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - структурная схема, на которой показаны устройство-источник и устройство-получатель для кодирования и декодирования видео сигнала.
Фиг. 2 - структурная схема варианта осуществления видео кодера на фиг. 1.
Фиг. 3 - последовательность операций варианта осуществления процесса установки значения флажка, чтобы сообщить декодеру на фиг. 1, какой тип преобразования используется кодером на фиг. 1.
Фиг. 4 - последовательность операций другого варианта осуществления процесса установки значения флажка, чтобы сообщить декодеру на фиг. 1, какой тип преобразования используется кодером на фиг. 1.
Фиг. 5 - последовательность операций варианта осуществления процесса выбора правильного обратного преобразования для декодирования видео данных, закодированных согласно процессу на фиг. 3.
Фиг. 6 - последовательность операций другого варианта осуществления процесса выбора правильного обратного преобразования для декодирования видео данных, закодированных согласно процессу на фиг. 4.
Фиг. 7 - структурная схема варианта осуществления видео декодера на фиг. 1.
ПОДРОБНОЕ ОПИСАНИЕ
Последующее подробное описание направлено на некоторые определенные варианты осуществления. Однако данную идею изобретения можно применять множеством различных способов. В данном описании даются ссылки на чертежи, на которых одинаковые части определены с помощью одинаковых обозначений по всему документу.
Один из вариантов осуществления направлен на синтаксический элемент «размер преобразования» для видео кодирования и декодирования. С помощью воплощения набора упрощенных правил и рекомендаций выбора преобразования в процессе кодирования и декодирования изображения и видео сигналов, можно создавать синтаксис с низкой скоростью передачи данных. Как описано, синтаксис размера преобразования является способом указания определенного размера преобразования в кодере, а так же способом интерпретации размера преобразования в декодере. Синтаксический элемент «размер преобразования» можно использовать для указания размера преобразования, который будут использовать, и он может включать в себя значение флажка, содержащего множество бит. Следует отметить, что последующее подробное описание может в общем случае использовать термины «видеоинформация», «изображение» и «кинофильм» взаимозаменяемо. Соответственно, возможности различных аспектов настоящего изобретения не должны быть ограничены точкой зрения на различия между терминами.
Фиг. 1 - структурная схема, на которой показана система 10 видео кодирования и декодирования, которая выполняет методы кодирования, которые описаны в данном раскрытии. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое передает закодированные видео данные на устройство-получатель 14 через канал связи 16. Устройство-источник 12 может включать в себя источник 18 видео, видео кодер 20 и передатчик 22. Источник 18 видео устройства-источника 12 может включать в себя устройство захвата видео, такое как видео камера, видео архив, содержащий ранее записанное видео, или видео, полученное от поставщика видео контента. В качестве дополнительной альтернативы, источник 18 видео может генерировать в качестве исходного видео данные компьютерной графики или комбинацию видео в реальном времени и создаваемого компьютером видео. В некоторых случаях устройство-источник 12 может быть беспроводным телефоном или видео телефоном, в таком случае источник 18 видеоинформации может быть видео камерой в телефоне. В каждом случае записанное, предварительно записанное или создаваемое компьютером видео можно кодировать с помощью видео кодера 20 для передачи от устройства-источника 12 на устройство-получатель 14 через передатчик 22 и канал связи 16.
Видео кодер 20 принимает видео данные из источника 18 видеоинформации. Видео данные, принимаемые из источника 18 видеоинформации, могут быть последовательностью видеокадров. Видео кодер 20 делит последовательность кадров на секции кодирования и обрабатывает эти секции кодирования для кодирования последовательности видеокадров. Секции кодирования могут, например, быть целыми кадрами или частями кадров (т.е. фрагментами). Таким образом, в некоторых случаях кадры можно делить на фрагменты. Видео кодер 20 делит каждую секцию кодирования на блоки пикселей (упоминаются в данной работе как видео блоки или блоки) и обрабатывает видео блоки в пределах отдельных секций кодирования для кодирования видео данных. Таким образом секция кодирования (например, кадр или фрагмент) может содержать множество видео блоков. Другими словами, видео последовательность может включать в себя множество кадров, кадр может включать в себя множество фрагментов, и фрагмент может включать в себя множество видео блоков.
Видео блоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру согласно указанному стандарту кодирования. В качестве примера, H.264/MPEG-4 Part 10 усовершенствованный стандарт видеокодирования (AVC) международного телекоммуникационного союза - бюро стандартизации телекоммуникаций (ITU-T) (в дальнейшем стандарт «H.264/MPEG-4 Part 10 AVC») поддерживает интра-(внутреннее) предсказание в блоках различного размера, таких как 16×16, 8×8 или 4×4 пикселей для компонентов сигнала яркости, и 8×8 пикселей для компонентов сигнала цветности. Интер-(меж-) предсказание можно выполнять в блоках различного размера, таких как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 пикселей для компонентов сигнала яркости и соответствующие масштабируемые размеры для компонентов сигнала цветности. В H.264, например, каждый видео блок 16 на 16 пикселей, который часто называют макроблоком (MB), можно подразделять на субблоки меньших размеров и выполнять интра- или интер-предсказание в субблоках. В общем случае, MB и различные субблоки могут рассматриваться как видео блоки. Таким образом, MB могут рассматриваться как видео блоки и, если разделяются или подразделяются, то MB могут сами рассматриваться как определяющие наборы видео блоков.
Для каждого из видео блоков, видео кодер 20 выбирает тип блока для данного блока. Тип блока может указывать, предсказывается ли блок с использованием интер-предсказания или интра-предсказания, а также размер предсказанного блока. Например, стандарт H.264/MPEG-4 Part 10 AVC поддерживает множество типов блоков, предсказанных с помощью интер- и интра-предсказания, которые включают в себя интер-предсказание 16×16, интер-предсказание 16×8, интер-предсказание 8×16, интер-предсказание 8×8, интер-предсказание 8×4, интер-предсказание 4×8, интер-предсказание 4×4, интра-предсказание 16×16, интра-предсказание 8×8 и интра-предсказание 4×4. Как описано подробно ниже, видео кодер 20 может выбирать один из типов блока для каждого из видео блоков, которые будут кодироваться.
Видео кодер 20 также выбирает режим предсказания для каждого из видео блоков. В случае видео блока, кодированного с помощью интра-кодирования, режим предсказания может определять способ предсказания текущего видео блока, используя один или более ранее кодированных видео блоков. В стандарте H.264/MPEG-4 Part 10 AVC, например, видео кодер 20 может выбирать один из девяти возможных однонаправленных режимов предсказания для каждого 4×4 блока, предсказанного с помощью интра-предсказания; вертикальный режим предсказания, горизонтальный режим предсказания, режим предсказания DC, режим предсказания по диагонали вниз-влево, режим предсказания по диагонали вниз-вправо, режим предсказания по вертикали вправо, режим предсказания по горизонтали вниз, режим предсказания по вертикали влево и режим предсказания по горизонтали вверх. Подобные режимы предсказания используются для предсказания каждого 8×8 блока интра-предсказания. Для 16×16 блока интер-предсказания, видео кодер 20 может выбирать один из четырех возможных однонаправленных режимов; вертикальный режим предсказания, горизонтальный режим предсказания, режим предсказания DC и плоский режим предсказания. В некоторых случаях видео кодер 20 может выбирать режим предсказания из набора режимов предсказания, которые включают в себя не только однонаправленные режимы предсказания, но также и один или более мультинаправленных режимов предсказания, которые определяют комбинации однонаправленных режимов. Например, один или более мультинаправленных режимов предсказания могут быть двунаправленными режимами предсказания, которые объединяют два однонаправленных режима предсказания.
После выбора режима предсказания для видео блока видео кодер 20 генерирует предсказанный видео блок, используя выбранный режим предсказания. Предсказанный видео блок вычитается из исходного видео блока для формирования остаточного блока. Остаточный блок включает в себя набор значений различий пикселей, которые определяют количество различий между значениями пикселей исходного видео блока и значениями пикселей сгенерированного предсказанного блока. Остаточный блок может быть представлен в формате двумерного блока (например, в двумерной матрице или в матрице значений различий пикселей).
После генерации остаточного блока, видео кодер 20 может выполнять многие другие операции с остаточным блоком перед кодированием данного блока. Видео кодер 20 может применять преобразование, такое как целочисленное преобразование, DCT преобразование, направленное преобразование или вейвлетное преобразование, к остаточному блоку значений пикселей для генерации блока коэффициентов преобразования. Коэффициенты преобразования могут быть представлением в частотной области остаточного блока. Таким образом, видео кодер 20 преобразовывает остаточные значения пикселей в коэффициенты преобразования (также упоминаемые как остаточные коэффициенты преобразования). Остаточные коэффициенты преобразования могут упоминаться как блок преобразования или блок коэффициентов. Остаточные коэффициенты преобразования могут быть одномерным представлением коэффициентов, когда применяется неразделяемое преобразование, или двумерным представлением коэффициентов, когда применяется разделяемое преобразование. Неразделяемое преобразование может включать в себя неразделяемое направленное преобразование. Разделяемое преобразование может включать в себя раздельное направленное преобразование, DCT преобразование, целочисленное преобразование и вейвлетное преобразование.
После преобразования видео кодер 20 выполняет квантование для генерации квантованных коэффициентов преобразования (также называют квантованными коэффициентами или квантованными остаточными коэффициентами). Снова квантованные коэффициенты могут быть представлены в одномерном векторном формате или двумерном блочном формате. Квантование в общем случае относится к процессу, в котором коэффициенты квантуют для возможного уменьшения количества данных, используемых для представления коэффициентов. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или со всеми коэффициентами. В данной работе термин «коэффициенты» может представлять коэффициенты преобразования, квантованные коэффициенты или коэффициенты другого типа. Методы данного раскрытия можно, в некоторых случаях, применять к остаточным значениям пикселей, квантованным остаточным значениям пикселей, а также к коэффициентам преобразования и квантованным коэффициентам преобразования.
Когда используется разделяемое преобразование, и блоки коэффициентов представлены в формате двумерного блока, видео кодер 20 сканирует коэффициенты из двумерного формата в одномерный формат. Другими словами, видео кодер 20 может сканировать коэффициенты из двумерного блока для преобразования коэффициентов в последовательную форму в одномерный вектор коэффициентов. В соответствии с одним из аспектов данного раскрытия, видео кодер 20 может корректировать порядок сканирования, используемый для преобразования блока коэффициентов в одномерное представление, основываясь на собранных статистических данных. Статистические данные могут содержать указание вероятности, что данное значение коэффициента в каждой позиции двумерного блока равно нулю или не равно нулю, и может, например, содержать счетчик, вероятность или другой статистический показатель, связанный с каждой из позиций коэффициентов двумерного блока. В некоторых случаях статистические данные можно собирать только для подмножества позиций блока коэффициентов. Когда порядок сканирования оценивается, например, после определенного количества блоков, порядок сканирования можно изменять таким образом, что позиции коэффициентов в пределах блока, для которых определено, что они имеют более высокую вероятность наличия ненулевых коэффициентов, сканируются до позиций коэффициентов в пределах блока, для которых определено, что они имеют более низкую вероятность наличия ненулевых коэффициентов. Таким образом, начальный порядок сканирования можно настраивать для более эффективного группирования ненулевых коэффициентов в начале одномерного вектора коэффициентов, а коэффициентов с нулевым значением - в конце одномерного вектора коэффициентов. Это может в свою очередь сокращать количество битов, затрачиваемых на энтропийное кодирование, так как существуют более короткие серии нулей между ненулевыми коэффициентами в начале одномерного вектора коэффициентов и одна более длительная серия из нулей в конце одномерного вектора коэффициентов.
После сканирования коэффициентов видео кодер 20 кодирует каждый из видео блоков секции кодирования, используя любую из множества методологий энтропийного кодирования, такую как контекстно-зависимое адаптивное кодирование с переменной длиной (CAVLC), контекстно-зависимое адаптивное двоичное арифметическое кодирование (CABAC), кодирование длин серий и т.п. Устройство-источник 12 передает закодированные видео данные на устройство-получатель 14 через передатчик 22 и канал 16. Канал связи 16 может содержать любое беспроводное или проводное средство связи, такое как радиочастотный (РЧ) спектр или одна или более физических линий передачи, или любая комбинация беспроводной и проводной среды передачи. Канал связи 16 может быть частью сети пакетной передачи, такой как локальная сеть, глобальная сеть или всемирная сеть, такая как Интернет. Канал связи 16 в общем случае представляет любое подходящее средство связи, или совокупность различных средств связи, для передачи кодированных видео данных от устройства-источника 12 на устройство-получатель 14.
Устройство-получатель 14 может включать в себя приемник 24, видео декодер 26 и устройство 28 отображения. Приемник 24, который является одним из средств приема видео сигнала, принимает закодированный битовый поток видеоинформации от устройства-источника 12 через канал 16. Видео декодер 26 применяет энтропийное декодирование для декодирования закодированного битового потока видеоинформации для получения информации заголовка, векторов движения и квантованных остаточных коэффициентов кодированных видео блоков секции кодирования. Как описано выше, квантованные остаточные коэффициенты, закодированные устройством-источником 12, закодированы как одномерный вектор. Видео декодер 26 поэтому сканирует квантованные остаточные коэффициенты закодированных видео блоков для преобразования одномерного вектора коэффициентов в двумерный блок квантованных остаточных коэффициентов. Также как видео кодер 20, видео декодер 26 может собирать статистические данные, которые указывают на вероятность, что данная позиция коэффициента в видео блоке равна нулю или не равна нулю, и таким образом корректировать порядок сканирования таким же способом, который использовался в процессе кодирования. Соответственно, обратный настраиваемый порядок сканирования можно применять с помощью видео декодера 26 для преобразования одномерного векторного представления квантованных последовательных коэффициентов преобразования назад в двумерный блок квантованных коэффициентов преобразования.
Видео декодер 26 восстанавливает каждый из блоков секции кодирования, используя декодированную информацию заголовка и декодированную остаточную информацию. В частности, видео декодер 26 может генерировать предсказанный видео блок для текущего видео блока, используя предсказание и информацию о движении, которую включает в себя как часть информация заголовка, и объединять предсказанный блок с соответствующим остаточным видео блоком для восстановления каждого из видео блоков. Устройство-получатель 14 может отображать восстановленные видео блоки пользователю через устройство отображения 28. Устройство отображения 28 может содержать любое из множества устройств отображения, таких как дисплей на основе электронно-лучевой трубки (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, светодиодный (LED) дисплей, дисплей на органических светодиодах или устройство отображения другого типа.
В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут работать по существу симметричным способом. Например, каждое из устройства-источника 12 и устройства-получателя 14 может включать в себя компоненты видео кодирования и декодирования. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю видео передачу между устройствами 12, 14, например, для потокового видео, широковещания видеоинформации или видеотелефонии. Устройство, которое включает в себя компоненты видео кодирования и декодирования, может также быть частью обычного устройства кодирования, архивации и воспроизведения, такого как цифровой видеомагнитофон (DVR).
Видео кодер 20 и видео декодер 26 могут работать согласно любому из множества стандартов сжатия видеоизображения, таких как стандарты, определенные Экспертной группой по вопросам движущихся изображений (MPEG) в MPEG-1, MPEG-2 и MPEG-4, стандарт ITU-T H.263, стандарт H.264/MPEG4 Part 10 AVC, стандарт Общества инженеров кино и телевидения (SMPTE) 421M видео кодек (обычно называют «VC-1»), стандарт, определенный стандартом кодирования звука и видео рабочей группой Китая (обычно называемый «AVS»), а также любой другой стандарт видео кодирования, определенный организацией по стандартизации, или разработанный организацией, как собственный стандарт. Хотя не показано на фиг. 1, в некоторых аспектах каждый из видео кодера 20 и видео декодера 26 можно интегрировать с аудио кодером и декодером, соответственно, и они могут включать в себя соответствующие блоки мультиплексирования/демультиплексирования или другие аппаратные средства и программное обеспечение для обработки кодирования и аудио и видео в общем потоке данных или в отдельных потоках данных. Таким образом устройство-источник 12 и устройство-получатель 14 могут обрабатывать мультимедийные данные. Если используются, блоки мультиплексирования/демультиплексирования могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских датаграмм (UDP).
В некоторых аспектах при широковещательной передаче видео, методы, описанные в данном раскрытии, можно применять к усовершенствованному видео кодированию H.264 для обеспечения услуг видео в реальном времени в системах наземной мобильной групповой передачи мультимедийной информации (TM3), используя спецификацию беспроводного интерфейса только прямой линии связи (FLO), «Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast», опубликованную в июле 2007 как технический стандарт TIA-1099 («FLO Specification»). Т.е. канал связи 16 может содержать беспроводный информационный канал, используемый для беспроводной передачи видео информации согласно FLO Specification и т.п. FLO Specification включает в себя примеры, определяющие синтаксис и семантику битового потока, и процессы декодирования, подходящие для беспроводного интерфейса FLO.
Альтернативно, можно выполнять широковещательную передачу видео согласно другим стандартам, таким как DVB-H (цифровое широковещание видео для мобильных устройств), ISDB-T (интегрированные услуги цифрового наземного широковещания) или DMB (цифровое широковещание мультимедиа). Следовательно, устройство-источник 12 может быть мобильным беспроводным терминалом, сервером видеопотока или сервером широковещания видео. Однако, методы, описанные в данном раскрытии, не ограничены никаким определенным типом системы широковещания, групповой передачи или одноадресной передачи. В случае широковещания устройство-источник 12 может выполнять широковещание нескольких каналов видео данных на множество устройств-получателей, каждое из которых может быть аналогично устройству-получателю 14 на фиг. 1. Таким образом, хотя одно устройство-получатель 14 показано на фиг. 1, для применения широковещания видеоинформации, устройство-источник 12 обычно выполняет широковещание видеоконтента одновременно на множество устройств-получателей.
В других примерах передатчик 22, канал связи 16 и приемник 24 можно конфигурировать для осуществления связи согласно любой системе проводной или беспроводной связи, которая включает в себя одну или более из систем Ethernet, телефонной системы (например, POTS), кабельной системы, системы на основе линий электропередачи и оптоволоконной системы и/или беспроводной системы, содержащей одну или более из системы связи множественного доступа с кодовым разделением (CDMA или CDMA2000), системы множественного доступа с частотным разделением (FDMA), системы ортогонального множественного доступа с частотным разделением (OFDM), системы множественного доступа с временным разделением (TDMA), такой как GSM (глобальная система мобильной связи), GPRS (пакетная радиосвязь общего назначения) или EDGE (расширенная передача данных в среде GSM), система мобильной телефонной связи TETRA (наземная магистральная беспроводная связь), система широкополосного множественного доступа с кодовым разделением (WCDMA), высокоскоростная передача данных 1×EV-DO (первое поколение развития только для передачи данных) или «золотая» система групповой передачи 1×EV-DO, система IEEE 802.18, система MediaFLO.TM., система DMB, система DVB-H или другая схема передачи данных между двумя или большим количеством устройств.
Каждый из видео кодера 20 и видео декодера 26 можно воплощать как одно или более из микропроцессоров, процессоров цифровой обработки сигналов (ПЦОС), специализированных интегральных схем (СпИС), программируемых пользователем вентильных матриц (ППВМ), дискретных логических схем, программного обеспечения, аппаратных средств, встроенного программного обеспечения или любых их комбинаций. Каждый из видео кодера 20 и видео декодера 26 может включать в себя один или более кодеров или декодеров, любой из которых может быть интегрирован как часть объединенного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, устройстве широковещания, сервере или аналогичном устройстве. Кроме того, каждое из устройства-источника 12 и устройства-получателя 14 может включать в себя соответствующие компоненты модуляции, демодуляции, преобразования частоты, фильтрации и усиления для передачи и приема кодированной видеоинформации, когда применяется, которые включают в себя радиочастотные (РЧ) беспроводные компоненты и антенны, достаточные для обеспечения беспроводной связи. Для простоты иллюстрации, однако, такие компоненты обобщают, как являющиеся передатчиком 22 устройства-источника 12 и приемником 24 устройства-получателя 14 на фиг. 1.
Фиг. 2 - структурная схема, на которой показан пример видео кодера 20. Видео декодер 26 может включать в себя компоненты, аналогичные компонентам в видео кодере 20. Видео кодер 20 может выполнять интра- и интер-кодирование блоков в пределах видеокадров. Интра-кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности в видеоинформации в пределах данного видеокадра. Интер-кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности в видеоинформации в пределах смежных кадров. Для выполнения интер-кодирования видео кодер 20 выполняет оценку движения для отслеживания движения соответствующих видео блоков между двумя или большим количеством смежных кадров.
Как показано на фиг. 2, видео кодер 20 принимает текущий видео блок 21 в пределах видеокадра, который должен кодироваться. В примере на фиг. 2 видео кодер 20 включает в себя блок 23 предсказания движения, блок 25 хранения опорного кадра, блок 29 преобразования блоков, блок 31 квантования, блок 33 обратного квантования, блок 35 обратного преобразования, блок 37 энтропийного кодирования, блок 43 определения режима, блок 47 пространственного предсказания и фильтр 49 отмены разделения на блоки. Видео кодер 20 также включает в себя сумматор 39, сумматор 41 и коммутатор 51. Видео кодер 20 может также включать в себя блок сканирования, который не показан, для сканирования квантованных коэффициентов. Фиг. 2 показывает компоненты временного предсказания видео кодера 20 для выполнения интер-кодирования видео блоков и компоненты пространственного предсказания для интра-кодирования видео блоков. Коммутатором 51 можно управлять с помощью блока 43 определения режима, и он может использоваться для выбора между видео блоком, предсказанным с помощью пространственного предсказания, или видео блоком, предсказанным с помощью временного предсказания, в качестве предсказанного видео блока для входного видео блока.
Для оценки интер-кодирования, блок 23 предсказания движения сравнивает видео блок 21 с блоками в одном или более смежных видеокадров для генерации одного или более векторов движения. Смежный кадр или кадры можно извлекать из блока 25 хранения опорного кадра. Оценку движения можно выполнять для блоков переменных размеров, например 16×16, 16×8, 8×16, 8×8, или для блоков меньших размеров. Блок 23 предсказания движения идентифицирует блок в смежном кадре, который наиболее близко соответствует текущему видео блоку 21, например, основываясь на модели зависимости искажения от скорости, и определяет смещение между блоками. На этой основе блок 23 предсказания движения генерирует вектор движения, который указывает величину и траекторию смещения.
Векторы движения могут иметь точность в половину или в четверть пикселя или еще более высокую точность, предоставляя возможность видео кодеру 20 отслеживать движение с более высокой точностью, чем целочисленные расположения пикселя, и получать лучший предсказанный блок. Когда используются векторы движения с дробными значениями пикселей, операции интерполяции можно выполнять в блоке 23 предсказания движения. Например, в стандарте AVC/H.264, для получения сигнала яркости в расположениях полупикселя, можно использовать 6-отводный фильтр Винера с коэффициентами (1,-5, 20, 20,-5, 1)/32. Для получения сигналов яркости в расположениях четверти пикселя, можно использовать билинейную фильтрацию значений в расположениях целых пикселей и интерполированные значения в расположениях половины пикселя. Билинейный фильтр также можно использовать при интерполяции дробных пикселей для компонентов сигнала цветности, которые могут иметь точность до 1/8 пикселя. После идентификации наилучшего вектора движения для видео блока, используя модель зависимости искажения от скорости, блок 23 предсказания движения выводит предсказанный с помощью компенсации движения видео блок.
Альтернативно, для оценки интра-кодирования блок 47 пространственного предсказания используют для формирования предсказанного видео блока, используя уже закодированные блоки в том же самом элементе кодирования (например, в том же самом кадре). Например, видео блок 21 можно сравнивать с другими уже закодированными блоками в том же самом кадре, как видео блок 21. В некоторых вариантах осуществления уже закодированные блоки можно извлекать из блока 25 хранения опорного кадра. В некоторых вариантах осуществления можно использовать различные способы пространственного предсказания. Например, в H.264/MPEG-4 AVC, направленное пространственное предсказание можно выполнять для видео блоков размеров 4×4, 8×8 и/или 16×16. Дополнительно, в общей сложности 9 направлений предсказания могут использоваться для 4×4 и 8×8 блоков сигнала яркости. В общей сложности 4 направления предсказания могут использоваться для 16×16 блоков сигнала яркости и блоков информации о цвете. Другие типы пространственного предсказания можно выполнять в пределах того же самого элемента кодирования. Например, видео блок, соответствующий текущему видео блоку, можно идентифицировать в уже закодированной части текущего элемента кодирования, используя процесс, аналогичный оценке движения. Дополнительно, количество рассогласований между сравниваемым видео блоком и текущим видео блоком можно определять и затем передавать, как часть данных заголовка кодированной видеоинформации для текущего видео блока. Блок 43 определения режима может выбирать оптимальный режим пространственного предсказания (например, размер предсказанного блока, направление предсказания или смещение предсказанного видео блока и т.д.), основываясь на предопределенных критериях, таких как модель Лагранжа зависимости искажения от скорости.
Видео кодер 20 формирует остаточный видео блок, вычитая предсказанный видео блок, сгенерированный или блоком 23 предсказания движения, или блоком 47 пространственного предсказания, из исходного текущего видео блока 21 в сумматоре 39, который является одним из средств вычитания предсказанного блока из исходного блока. Блок 29 преобразования блоков, который является одним из средств применения преобразования, применяет преобразование к остаточному блоку. Размер и тип преобразования для использования можно указывать для блока 29 преобразования блоков с помощью блока 43 определения режима. Блок 31 квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи информации в битах. Блок 37 энтропийного кодирования, который является одним из средств генерации видео сигнала, выполняет энтропийное кодирование квантованных коэффициентов для дополнительного уменьшения скорости передачи информации в битах. Видео декодер 26 выполняет обратные операции для восстановления кодированной видеоинформации.
Блок 33 обратного квантования и блок 35 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока. Сумматор 41 складывает восстановленный остаточный блок с предсказанным блоком для генерации восстановленного видео блока для хранения в блоке 25 хранения опорного кадра. Восстановленный видео блок используется или блоком 23 предсказания движения, или блоком 47 пространственного предсказания для кодирования последующих видео блоков в текущем видеокадре или последующем видеокадре.
Выполняя компенсацию движения для данного блока в текущем видеокадре 21, блок 23 предсказания движения может использовать фиксированный набор фильтров для интерполяции опорного блока из опорного кадра. Один опорный блок необходим, если текущий блок однонаправлено предсказывают, или два опорных блока необходимы, если текущий блок двунаправлено предсказывают. В H.264 в некоторых случаях можно использовать множество опорных кадров в прямом и обратном направлениях. Фактические фильтры, используемые в блоке 23 предсказания движения, зависят от дробной части вектора движения. Например, если вектор движения указывает на расположение полупикселя в опорном кадре в данном измерении, то для получения значения расположения полупикселя 6-отводный фильтр, такой как (1, -5, 20, 20, -5, 1)/32, используется в этом измерении с вектором движения полупикселя. Если оба компонента вектора движения указывают на целочисленные расположения, то значения пикселя из опорного кадра в блоке 25 хранения опорного кадра можно использовать непосредственно, не выполняя операции фильтрации интерполяции.
Фиг. 7 - структурная схема, на которой показан пример видео декодера 26. Закодированный битовый поток подается в систему 700. Части битового потока могут соответствовать различным видео блокам. Дополнительно, несколько из этих видео блоков могут составлять один видеокадр. Часть битового потока, соответствующую данному видео блоку, энтропийно декодируют в блоке 702 энтропийного декодирования для формирования остаточного блока, содержащего квантованные остаточные коэффициенты преобразования. Остаточный блок затем может обратно сканироваться в блоке обратного сканирования, который не показан. К остаточному блоку можно также применять обратное квантование в блоке 706 обратного квантования и обратное преобразование в блоке 708 обратного преобразования для формирования декодированного остаточного блока. Блок 702 энтропийного декодирования может определять тип и/или размер обратного преобразования для выполнения, основываясь на принятых данных заголовка, как обсуждается ниже. Предсказанный видео блок генерируется и суммируется с декодированным остаточным блоком в блоке 710 суммирования.
Предсказанный видео блок можно формировать, используя один из двух типов способов предсказания - интра-предсказания и интер-предсказания. Блок 716 пространственного предсказания использует уже закодированные блоки в том же самом видеокадре (или в том же самом видео фрагменте, если видео фрагмент используется в качестве элемента кодирования) для генерации блока интра-предсказания. Блок 718 компенсации движения использует предыдущие и/или последующие кадры, сохраненные в блоке 720 хранения опорного кадра, для генерации блока интер-предсказания. В зависимости от принимаемых данных заголовка, указывающих режим кодирования, используемого для кодирования видео блока, коммутатор 722 может переключаться для активизации или блока 716 пространственного предсказания, или блока 718 компенсации движения, для генерации или блока интра-предсказания, или блока интер-предсказания. Предсказанный блок затем суммируется с декодированным остаточным блоком в блоке 710 суммирования для генерации декодированного видео блока.
Результирующий восстановленный видео блок затем посылают в фильтр 712 отмены разделения на блоки, где можно выполнять фильтрацию на краях блока для предотвращения искажений изображения из-за разделения на блоки, что может быть визуально непривлекательными. Сгенерированный выходной сигнал является конечным декодированным видео блоком. Конечный декодированный видео блок можно сохранять в блоке 720 хранения опорного кадра для восстановления других видео блоков в том же самом или в других видеокадрах.
Чтобы должным образом декодировать кодированный видео поток, декодер должен знать, какое преобразование использовалось для кодирования видео данных. Декодер можно затем применять соответствующее обратное преобразование, которое соответствует прямому преобразованию, используемому в кодере. Соответственно, данные, указывающие тип преобразования, используемого для кодирования видео блока, необходимо посылать в декодер как часть битового потока видеоинформации, чтобы должным образом декодировать видео блок.
Как описано относительно фиг. 2, блок 29 преобразования блоков применяет преобразование к остаточному видео блоку. Применение преобразования к остаточным блокам обеспечивает необходимое уплотнение энергии, которое при объединении с квантованием и энтропийным кодированием обеспечивает высокую эффективность сжатия. Примеры преобразования, используемого в популярных основанных на блоках системах видео кодирования, таких как MPEG2 и H.264/AVC, включают в себя 8×8 DCT преобразование и 4×4 и 8×8 целочисленное преобразование.
Стандарт H.264/AVC - последний стандарт видео кодирования, который обеспечивает высокую эффективность кодирования. H.264/AVC использует блоки преобразования различного типа. Для блоков интра-предсказания (пространственного предсказания) и интер-предсказания (временного предсказания), H.264/AVC использует 4×4 целочисленное преобразование, которое основано на 4×4 DCT преобразовании, или 8×8 целочисленное преобразование, которое основано на 8×8 DCT преобразовании.
Для сигнала информации о цвете видео сигнала дополнительный уровень 2×2 преобразования Адамара применяется к 2×2 компонентам DC в каждом блоке.
Для сигнала яркости видео сигнала преобразование выбирается следующим образом. Сначала определяется, с помощью какого предсказания - интра-предсказания или интер-предсказания предсказывается блок. Если блок предсказывается с помощью интер- предсказания, то затем определяют, меньше или нет размер блока чем 8×8. Если блок меньше чем 8×8, то используют 4×4 целочисленное преобразование. Если блок не меньше чем 8×8, то используют или 4×4, или 8×8 целочисленное преобразование.
Если блок предсказывается с помощью интра-предсказания, то определяют, предсказывается или нет блок, используя режим INTRA_16×16. Если блок предсказывается с использованием режима INTRA_16×16, то к блоку применяют 4×4 целочисленное преобразование, и дополнительный уровень 4×4 преобразования Адамара применяют к 4×4 компонентам DC в каждом блоке. Если блок не предсказывается с использованием режима INTRA_16×16, то используют 4×4 целочисленное преобразование, если блок предсказывается с использованием режима INTRA_4×4, и используют 8×8 целочисленное преобразование, если блок предсказывается с использованием режима INTRA_8×8.
В случаях, когда для блока можно использовать или 4×4, или 8×8 преобразование, выбор преобразования зависит от используемого профиля H.264/AVC. При любом профиле H.264, кроме «высокого» профиля (например, при базовом профиле, расширенном базовом профиле, основном профиле), используется только 4×4 целочисленное преобразование. При «высоком» профиле H.264/AVC (т.е. при увеличении качества) для сигнала яркости также можно использовать 8×8 целочисленное преобразование, основанное на 8×8 DCT преобразовании. Выбор или 4×4, или 8×8 целочисленного преобразования передают с помощью дополнительного синтаксического элемента transform_size_8×8_flag. В случаях, когда можно использовать или 4×4, или 8×8 преобразование (например, кодированный с помощью интер-кодирования блок с размером, не меньше, чем 8×8), флажок transform_size_8×8_flag посылают в декодер наряду с кодированными видео данными. Если флажок transform_size_8×8_flag устанавливают в 1, то к остаточным блокам применяют 8×8 целочисленное преобразование; иначе (если флажок transform_size_8×8_flag устанавливают в 0) к остаточным блокам применяют 4×4 целочисленное преобразование.
В H.264/AVC предсказание движения можно выполнять для блоков различного размера (т.е. областей движения), таких как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4. В то время как меньшие области движения обычно используются вокруг краев объекта и областей с большим количеством деталей, большие области движения обычно выбирают вокруг более сглаженных областей. В результате остаточные блоки после предсказания движения являются также обычно более сглаженными, т.е. они имеют тенденцию содержать больше низкочастотных компонентов. Для таких сигналов применение больших преобразований может обеспечивать лучшее уплотнение энергии. Способы и кодеры для выбора областей движения и размера преобразования описаны в патенте США № 5 107 345; патенте США № 6 996 283; и патенте США № 6 600 836, все представлены для справки. Как описано выше, H.264/AVC использует только 4×4 и 8×8 целочисленное преобразование для видео блоков, которые кодируют с помощью интер-кодирования. 4×4 и 8×8 целочисленное преобразование указывают с помощью значения флажка transform_size_8×8_flag, который в настоящее время ограничивается 1-битовым размером. Соответственно, нет никакого способа указывать дополнительные размеры преобразования с помощью существующего синтаксиса, используемого в H.264, потому что 1-битовый флажок transform_size_8×8_flag может передавать только два типа преобразования. Ниже описаны синтаксис и синтаксические элементы, которые обеспечивают указание дополнительного размера преобразования, используемого кодером и декодером. В некоторых вариантах осуществления синтаксический элемент содержит 2-битовое значение флажка для указания размера преобразования. Значение флажка может включать в себя как часть информация заголовка, передаваемая в декодер.
В следующих вариантах осуществления предсказанный с помощью интер-предсказания видео блок или предсказанный с помощью интра-предсказания видео блок можно использовать в связи с описанными способами. Таким образом, предсказанный видео блок может быть сформирован с помощью компенсации движения или пространственного предсказания. В вариантах осуществления, где используется компенсация движения, размер предсказанного блока равен размеру области движения; поэтому термины «предсказанный блок» и «область движения» можно использовать взаимозаменяемо. Дополнительно, в вариантах осуществления, где используется пространственное предсказание, размер предсказанного блока равен размеру используемого блока пространственного предсказания. Поэтому термины «предсказанный блок» и «блок, предсказанный с помощью интра-предсказания» или «блок, предсказанный с помощью пространственного предсказания» можно использовать взаимозаменяемо. Например, множество вариантов преобразования можно использовать для видео блоков, кодированных с использованием предсказания INTRA_16×16 и INTRA_8×8. В дополнение к 4×4 преобразованию, 16×16, 16×8, 8×16 или 8×8 преобразование можно применять к предсказанным с помощью INTRA_16×16 видео блокам; и 8×8 преобразование можно применять к предсказанным с помощью INTRA_8×8 видео блокам. Для предсказанных с помощью интра-предсказания блоков передачу размера преобразования можно выполнять способом, аналогичным, как для предсказанных с помощью интер-предсказания видео блоков. Синтаксические элементы флажка размера преобразования можно объединять с синтаксическими элементами размера предсказанного блока; и можно использовать кодирование переменной длины синтаксического элемента флажка размера преобразования.
Описанный ниже синтаксис использует и значение флажка, и размер предсказанного блока для данного блока для указания размера преобразования. Комбинация размера предсказанного блока для данного блока и значения флажка обеспечивает указание большего количества размеров преобразования, чем при использовании соответствия 1 к 1 между значением флажка и размером преобразования. Например, при соответствии 1 к 1 между размером преобразования и значением флажка 2-битовый флажок указывает только 4 различных размера преобразования, где каждое значение флажка указывает один размер преобразования. Однако с помощью дополнительного использования размера предсказанного блока для данного блока дополнительный размер преобразования можно указывать, используя то же самое количество битов для флажка. Например, если значение флажка 00 указывает, что размер преобразования должен равняться размеру предсказанного блока для данного блока, и размер предсказанного блока может иметь N различных размеров блока, то одно значение флажка 00 может указывать N различных размеров преобразования. Соответственно, в одном из вариантов осуществления одно или более значений флажка может указывать, что используемый размер преобразования равен размеру предсказанного блока для данного блока. В другом варианте осуществления кодирование переменной длины может использоваться для кодирования значений флажка.
Фиг. 3 - примерный вариант осуществления процесса 300 установки значения флажка в кодере, который сообщает размер преобразования, используемый кодером 20 для данного видео блока. Размер предсказанного блока для каждого видео блока можно определять в блоке 43 определения режима, и преобразование можно выполнять в блоке 29 преобразования блоков (см. фиг. 2). Выбор размера предсказанного блока и выбор размера преобразования, используемого для данного блока, можно выполнять с помощью блока 43 определения режима. На первом этапе 302 процесса 300 определяют, больше или нет размер предсказанного блока для данного блока, чем 8×8. Если размер предсказанного блока не больше чем 8×8, то процесс продолжается на этапе 306. Альтернативно, если размер предсказанного блока больше, чем 8×8, то процесс переходит на этап 338.
На этапе 306 определяют, меньше или нет размер предсказанного блока, чем 8×8. Если размер предсказанного блока меньше чем 8×8, то процесс 300 переходит на этап 310, на котором 4×4 преобразование применяется к блоку. Процесс 300 затем продолжается на этапе 314, где никакое значение флажка не устанавливается для передачи в декодер. Альтернативно, если на этапе 306 определено, что размер предсказанного блока не меньше чем 8×8, то процесс переходит на этап 318, на котором определяется, равен или нет размер преобразования, который будет использоваться для блоков, 8×8. Если определено, что 8×8 размер преобразования не должен использоваться, то процесс 300 продолжается на этапе 322, где 4×4 преобразование применяется к блоку, и затем на этапе 326, где 1-битовый флажок со значением 0 устанавливается для передачи в декодер. Альтернативно, если на этапе 318 определено, что 8×8 преобразование должно использоваться, процесс продолжается на этапе 330, на котором 8×8 преобразование применяется к блоку, и затем на этапе 334, где 1-битовый флажок со значением 1 устанавливается для передачи в декодер.
Если на этапе 302 определено, что размер предсказанного блока больше, чем 8×8, то процесс переходит на этап 338. На этапе 338 в кодере определяется, или автоматически или вручную, должен или нет размер преобразования, больше чем 8×8, использоваться для данного блока. Если размер преобразования больше чем 8×8, не должен использоваться, то процесс 300 продолжается на этапе 342, где определяется, равен или нет размер преобразования, который будет использоваться для данного блока, 8×8. Если размер преобразования, который будет использоваться, не 8×8, то процесс 300 продолжается на этапе 346, где 4×4 преобразование применяется к блоку, и затем на этапе 350, где 1-битовое значение флажка 0 устанавливается для передачи в декодер. Альтернативно, если размер преобразования, который будет использоваться, 8×8, то процесс 300 продолжается на этапе 354, где 8×8 преобразование применяется к блоку, и затем на этапе 358, где 2-битовое значение флажка 10 устанавливается для передачи в декодер.
Если на этапе 338 определено, что размер преобразования, который будет использоваться, больше чем 8×8, то процесс 300 продолжается на этапе 362. На этапе 362 определяется, равен или нет размер предсказанного блока для данного блока 16×16. Если определено, что размер предсказанного блока 16×16, то процесс 300 переходит на этап 366, где 16×16 преобразование применяется к блоку, и затем на этап 382. Альтернативно, если на этапе 362 определено, что размер предсказанного блока не 16×16, то процесс 300 продолжается на этапе 370, где определяется, равен или нет размер предсказанного блока 8×16. Если определяют, что размер предсказанного блока 8×16, то процесс 300 продолжается на следующем этапе 374, где 8×16 преобразование применяется к блоку, и затем на этапе 382. Альтернативно, если определено, что размер предсказанного блока не 8×16, то процесс 300 продолжается на следующем этапе 374, где 16×8 преобразование применяется к блоку, и затем на этапе 382. На этапе 382 2-битовое значение флажка 11 устанавливается для передачи в декодер.
Согласно процессу 300, значения флажка соответствуют следующим видам преобразования:
обратного преобразования
Специалистам должно быть понятно, что некоторые из этапов процесса 300 можно опускать, или новые этапы добавлять для обеспечения того же самого результата. Дополнительно, некоторые из этапов можно выполнять в другом порядке. Нужно также отметить, что значения флажка можно изменять (например, 0 может быть 8×8 преобразованием, а 10 - 4×4 преобразованием).
Фиг. 4 - примерный вариант осуществления другого процесса 400 установки значения флажка в кодере, который сообщает размер преобразования, используемый кодером 20 для данного видео блока. Размер предсказанного блока можно определять в блоке 43 определения режима, и преобразование можно выполнять в блоке 29 преобразования блоков. Выбор размера предсказанного блока и выбор размер преобразования, используемого для данного блока, выполняют с помощью блока 43 определения режима. На первом этапе 402 процесса 400 определяют, больше или нет размер предсказанного блока для данного блока чем 8×8. Если размер предсказанного блока не больше чем 8×8, то процесс продолжается на этапе 406. Альтернативно, если размер предсказанного блока больше чем 8×8, то процесс переходит на этап 438.
На этапе 406 определяют, меньше или нет размер предсказанного блока чем 8×8. Если размер предсказанного блока меньше чем 8×8, то процесс 400 переходит на этап 410, на котором 4×4 преобразование применяется к блоку. Процесс 400 затем продолжается на этапе 414, где никакое значение флажка не устанавливают для передачи в декодер. Альтернативно, если на этапе 406 определяют, что размер предсказанного блока не меньше чем 8×8, то процесс переходит на этап 418, на котором определяется, равен или нет размер преобразования, который будет использоваться для блока, 8×8. Если определено, что 8×8 размер преобразования не должен использоваться, то процесс 400 продолжается на этапе 422, где 4×4 преобразование применяется к блоку, и затем на этапе 426, где 1-битовый флажок со значением 0 устанавливается для передачи в декодер. Альтернативно, если на этапе 418 определено, что 8×8 преобразование должно использоваться, то процесс продолжается на этапе 430, на котором 8×8 преобразование применяется к блоку, и затем на этапе 434, где 1-битовый флажок со значением 1 устанавливается для передачи в декодер.
Если на этапе 402 определяют, что размер предсказанного блока больше чем 8×8, то процесс переходит на этап 438. На этапе 438 определяется, равен или нет размер предсказанного блока 16×16. Если размер предсказанного блока равен 16×16, то процесс 400 переходит на этап 442, где определяется, равен или нет размер преобразования, который будут применять к блоку, 8×8. Если определено, что размер преобразования, который будет использоваться, 8×8, то процесс 400 переходит на этап 446, где 8×8 преобразование применяется к данному блоку, и затем на этап 450, где двухбитовый флажок со значением 00 устанавливается для передачи в декодер. Альтернативно, если на этапе 442 определяется, что размер преобразования, который будет применяться, не 8×8, то процесс 442 переходит на этап 454, где определяется, необходимо или нет 16×16 преобразование применять к блоку. Если 16×16 преобразование необходимо применять, то процесс 400 продолжается на этапе 458, где 16×16 преобразование применяется к данному блоку, и затем на этапе 462, где двухбитовый флажок со значением 01 устанавливается для передачи в декодер. Если вместо этого на этапе 454 определено, что размер преобразования, который будут применять, не 16×16, то процесс 400 продолжается на этапе 466, где определяется, равен или нет размер преобразования, который будет применен к данному блоку, 16×8. Если размер преобразования, который будет применяться, равен 16×8, то процесс 400 продолжается на этапе 470, где 16×8 преобразование применяется к данному блоку, и затем на этапе 474, где двухбитовый флажок со значением 10 устанавливается для передачи в декодер. Альтернативно, если на этапе 466 определено, что размер преобразования, который будет применяться к блоку, не 16×8, то процесс 400 продолжается на этапе 478, где 8×16 преобразование применяется к данному блоку, и затем на этапе 482, где двухбитовый флажок со значением 11 устанавливается для передачи в декодер.
Если на этапе 438 определено, что размер предсказанного блока не 16×16, то процесс 400 продолжается на этапе 484, где определяется, равен или нет размер преобразования, который будет применяться к данному блоку, 8×8. Если преобразование, которое будет применяться, 8×8, то процесс 400 продолжается на этапе 492, где 8×8 преобразование применяется к блоку, и затем на этапе 426, где значение 1-битового флажка 0 устанавливается для передачи в декодер. Альтернативно, если на этапе 484 определено, что размер преобразования, который будет применяться к блоку, не 8×8, то процесс продолжается на этапе 486, где определяется, равен или нет размер предсказанного блока 16×8. Если размер предсказанного блока 16×8, то процесс 400 продолжается на этапе 488, где 16×8 преобразование выполняется для блока, и затем на этапе 434. Альтернативно, если на этапе 486 определено, что размер предсказанного блока не 16×8, то процесс 400 продолжается на этапе 490, где 8×16 преобразование выполняется для блока, и затем на этапе 434. На этапе 434 однобитовый флажок со значением 1 устанавливается для передачи в декодер.
Согласно процессу 400, значения флажка соответствуют следующим видам преобразования:
обратного преобразования
Специалистам должно быть понятно, что некоторые из этапов процесса 400 можно опускать, или новые этапы добавлять для обеспечения того же самого результата. Дополнительно, некоторые из этапов можно выполнять в другом порядке. Нужно также отметить, что значения флажка можно изменять (например, 00 может быть 16×16 преобразованием, а 01 - 8×8 преобразованием).
Фиг. 5 - примерный вариант осуществления процесса 500 выполнения обратного преобразования в декодере 26 для блока, закодированного кодером 20, используя процесс 300. Декодер 26, который может включать в себя, среди других компонентов, блок энтропийного декодирования, блок пространственного предсказания, блок компенсации движения, блок обратного квантования, блок обратного преобразования, блок энтропийного декодирования и сумматор, является одним из средств выполнения этапов процесса 500. Дополнительно, различные компоненты декодера 26 могут использоваться для выполнения различных этапов процесса 500. На этапе 502 определяют, больше или нет размер предсказанного блока чем 8×8. Если размер предсказанного блока больше чем 8×8, то процесс переходит на этап 518, где декодер ищет 1-битовое или 2-битовое значение флажка и выполняет обратное преобразование, основываясь на значении флажка и размере предсказанного блока. Тип обратного преобразования для использования показан в таблице 1. Альтернативно, если на этапе 502 определяют, что размер предсказанного блока не больше чем 8×8, то процесс 500 продолжается на этапе 506, где определяют, меньше или нет размер предсказанного блока чем 8×8. Если размер предсказанного блока меньше чем 8×8, то процесс 500 переходит к следующему этапу 510, где выполняют 4×4 обратное преобразование. Если вместо этого на этапе 506 определяют, что размер предсказанного блока не меньше чем 8×8, то процесс переходит на этап 514, где декодер ищет 1-битовое значение флажка и выполняет обратное преобразование, основываясь на значении флажка. Тип обратного преобразования для использования показан в таблице 1.
Фиг. 6 - примерный вариант осуществления процесса 600 выполнения обратного преобразования в декодере 26 для блока, закодированного кодером 20, используя процесс 400. Декодер 26, который может быть процессором, является одним из средств выполнения этапов процесса 600. На этапе 602 определяют, больше или нет размер предсказанного блока чем 8×8. Если размер предсказанного блока больше чем 8×8, то процесс переходит на этап 618, где определяют, равен или нет размер предсказанного блока 16×16. Если размер предсказанного блока равен 16×16, то процесс 600 продолжается на этапе 622, где декодер ищет 2-битовое значение флажка, и обратное преобразование выполняют для блока согласно значению флажка. Тип обратного преобразования для использования показан в таблице 2. Альтернативно, если на этапе 618 определяют, что размер предсказанного блока не равен 16×16, то процесс 600 продолжается на этапе 626, где декодер ищет 1-битовое значение флажка, и обратное преобразование выполняют, основываясь на 1-битовом значении и размере области движения. Тип обратного преобразования для использования показан в таблице 2.
Если на этапе 602 определяют, что размер предсказанного блока не больше чем 8×8, то процесс 600 продолжается на этапе 606, где определяют, меньше или нет размер предсказанного блока чем 8×8. Если размер предсказанного блока меньше чем 8×8, то процесс 600 переходит к следующему этапу 610, где выполняют обратное преобразование 4×4. Если вместо этого на этапе 606 определяют, что размер предсказанного блока не меньше чем 8×8, то процесс переходит к этапу 614, где декодер ищет 1-битовое значение флажка и выполняет обратное преобразование, основываясь на значении флажка. Тип обратного преобразования для использования показан в таблице 2.
Процессы 300, 400, 500 и 600 описывают определенный синтаксис для определения размера преобразования для использования для видео блока. Специалистам должно быть понятно, что данные процессы являются просто примерными процессами кодирования и декодирования блоков и установки значений флажка. Нужно отметить, что другие процессы с дополнительными этапами, меньшим количеством этапов или с измененными этапами могут использоваться для обеспечения того же самого синтаксиса, как показано или в таблице 1, или в таблице 2. Дополнительно, специалисты должны признать, что определенное значение флажка, назначенное каждому указанию преобразования, можно изменять. Дополнительно, можно сформировать синтаксисы, аналогичные описанным в таблице 1 и таблице 2.
Нужно также отметить, что дополнительный размер преобразования (например, 32×32) и размер предсказанного блока (например, 32×32) можно использовать для кодирования и декодирования блоков и установки значений флажка. Например, все еще используя только 2 бита для значения флажка, как описано выше, флажок может указывать размер преобразования 32×32. Например, в процессе 300 на этапе 362 можно определять, равняется или нет размер предсказанного блока 32×32, и на этапе 370 можно определять, равняется или нет размер предсказанного блока 16×32. Этапы 366, 374 и 378 можно затем изменять таким образом, что на каждом этапе, соответственно, 32×32, 16×32 или 32×16 преобразование выполняют для блока. Значение флажка, установленное на этапе 358, поэтому указывает преобразование или 32×32, или 16×32, или 32×16 в противоположность преобразованию или 16×16, или 8×16, или 16×8. Дополнительные изменения можно выполнять для указания дополнительно размера преобразования, используя комбинацию значений флажка и размера предсказанного блока.
Биты значения флажка посылают как часть закодированных видео данных по каналу связи 16. В зависимости от схемы кодирования размещение битов значения флажка может отличаться по передаваемому битовому потоку. Значение флажка может быть частью заголовка, посылаемого в декодер. Заголовок может содержать дополнительные синтаксические элементы заголовка, которые могут идентифицировать определенные характеристики текущего видео блока, такие как тип блока, режим предсказания, структура кодированного блока (CBP) для сигнала яркости и сигнала цветности, размер предсказанного блока и один или более векторов движения. Эти синтаксические элементы заголовка можно генерировать, например, в блоке 37 энтропийного кодирования в пределах видео кодера 20.
В одном из вариантов осуществления заголовок включает в себя бит для указания, существуют ли отличные от нуля коэффициенты в закодированном блоке. Если отличные от нуля коэффициенты существуют, то заголовок также включает в себя биты, указывающие размер преобразования. Если отличные от нуля коэффициенты не существуют, то биты размера преобразования не посылают. В другом варианте осуществления элемент «размер преобразования» посылают в каждом заголовке независимо от того, существуют ли отличные от нуля коэффициенты.
Методы, описанные в данном раскрытии, можно воплощать в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или в любой их комбинации. Любые особенности, описанные как блоки или компоненты, можно воплощать вместе в интегрированном логическом устройстве или отдельно, как дискретные, но взаимодействующие логические устройства. При воплощении в программном обеспечении данные методы можно реализовать по меньшей мере частично с помощью считываемых компьютером носителей, содержащих команды, которые при выполнении выполняют один или более описанных выше способов. Считываемый компьютером носитель может быть частью компьютерного программного продукта, который может включать в себя упаковочный материал. Считываемый компьютером носитель может содержать оперативную память (ОП), такую как синхронная динамическая оперативная память (SDRAM), постоянное запоминающее устройство (ПЗУ), энергонезависимую оперативная память (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память, магнитный или оптический носитель хранения данных и т.п. Методы дополнительно или альтернативно можно реализовать по меньшей мере частично с помощью считываемого компьютером средства связи, которое переносит или передает код в форме команд или структур данных, и к которому можно обратиться, считать и/или выполнить с помощью компьютера.
Код можно выполнять с помощью одного или большего количества процессоров, таких как один или более процессоров цифровой обработки сигналов (ПЦОС), универсальных микропроцессоров, специализированных интегральных схем (СпИС), программируемых пользователем логических матриц (ППВМ) или других аналогичных интегрированных или дискретных логических схем. Соответственно, термин «процессор» может относиться к любой указанной ранее структуре или к любой другой структуре, подходящей для реализации описанных методов. Кроме того, в некоторых аспектах описанные функциональные возможности можно обеспечивать в пределах специализированных программных блоков или аппаратных блоков, конфигурированных для кодирования и декодирования, или внедрять в объединенный видео кодер-декодер (кодек). Описание различных особенностей, таких как блоки, предназначено для выделения различных функциональных аспектов показанных устройств и не подразумевает, что такие блоки должны обязательно быть реализованы с помощью отдельных аппаратных или программных компонентов. Вместо этого функциональные возможности, связанные с одним или большим количеством блоков, можно объединять в пределах общих или отдельных аппаратных или программных компонентов.
Были описаны различные варианты осуществления данного раскрытия. Эти и другие варианты осуществления находятся в рамках последующей формулы изобретения.
Группа изобретений относится к кодированию и декодированию видео данных с предсказанием в блоках различного размера больше чем 8×8. Техническим результатом является улучшение эффективности видео кодирования. Технический результат достигается тем, что обеспечивают способ и систему для применения преобразования больше чем 8×8 и непрямоугольного преобразования и для генерации синтаксического элемента «размер преобразования», указывающего преобразование для декодирования видеоинформации. Синтаксический элемент «размер преобразования» генерируют с помощью кодера, основываясь на размере предсказанного видео блока и на содержимом видео блока. Дополнительно, синтаксический элемент «размер преобразования» можно генерировать согласно набору правил для выбора из 4×4, 8×8 и больших размеров преобразования во время процесса кодирования. Декодер выполняет обратное преобразование, основываясь на синтаксическом элементе «размер преобразования» и правилах, используемых кодером, при этом синтаксический элемент «размер преобразования» передают к декодеру как часть кодированного битового потока видеоинформации. 6 н. и 10 з.п. ф-лы, 2 табл., 7 ил.
1. Способ кодирования видео данных, содержащий
применение пространственного предсказания или компенсации
движения к исходному видео блоку в пределах видеокадра для
генерации предсказанного видео блока на основе режима
предсказания;
вычитание предсказанного видео блока из исходного видео
блока в пределах видеокадра для формирования остаточного блока;
выбор преобразования, имеющего размер преобразования, для
применения к остаточному блоку;
генерацию данных заголовка, указывающих выбранное
преобразование, причем данные заголовка содержат
первый синтаксический элемент, имеющий значение, указывающее по меньшей мере три размера преобразования, причем упомянутые по меньшей мере три размера преобразования содержат по меньшей мере один размер преобразования N×M, и по меньшей мере одно из N и М равно или больше чем 16, и
второй синтаксический элемент, указывающий размер предсказанного блока для предсказанного видео блока,
причем первый синтаксический элемент и второй синтаксический элемент используются в комбинации для указания размера преобразования, причем размер преобразования является одним из упомянутых по меньшей мере трех размеров преобразования; применение выбранного преобразования к остаточному блоку для
генерации остаточных коэффициентов преобразования; и
генерацию видео сигнала на основе данных заголовка и остаточных коэффициентов преобразования.
2. Способ по п.1, в котором значение первого синтаксического элемента отображается на первый размер преобразования на основе размера предсказанного блока для предсказанного видео блока.
3. Способ по п.1, в котором первый синтаксический элемент имеет первое значение, когда размер преобразования равен размеру предсказанного блока для предсказанного видео блока.
4. Способ по п.1, в котором генерация первого синтаксического элемента содержит
определение, является ли размер предсказанного блока большим, чем первое пороговое значение; и
определение, является ли размер предсказанного блока меньшим, чем второе пороговое значение.
5. Способ по п.1, в котором генерация первого синтаксического элемента содержит
определение, является размер предсказанного блока большим, чем первое пороговое значение; и
определение, является ли размер предсказанного блока равным второму значению.
6. Способ по любому из предшествующих пунктов, в котором выбранное преобразование является одним из целочисленного преобразования, дискретного косинусного преобразования, направленного преобразования.
7. Способ декодирования видео данных, содержащий
прием видео сигнала, указывающего по меньшей мере один блок
в пределах видеокадра, содержащий данные заголовка для по меньшей мере одного блока и остаточные коэффициенты преобразования для по меньшей мере одного блока, причем данные заголовка содержат
первый синтаксический элемент, имеющий значение, указывающее по меньшей мере три размера преобразования, причем упомянутые по меньшей мере три размера преобразования содержат по меньшей мере один размер преобразования N×M, и по меньшей мере одно из N и М равно или больше чем 16, и
второй синтаксический элемент, указывающий размер предсказанного блока по меньшей мере одного блока,
причем первый синтаксический элемент и второй синтаксический элемент совместно определяют размер преобразования для преобразования, используемого для кодирования по меньшей мере одного блока, причем размер преобразования является одним из упомянутых по меньшей мере трех размеров преобразования;
применение пространственного предсказания или компенсации движения к по меньшей мере одному блоку для генерации предсказанного видео блока с размером предсказанного блока по меньшей мере одного блока;
определение размера преобразования для преобразования, используемого для кодирования по меньшей мере одного блока, из первого синтаксического элемента и второго синтаксического элемента;
применение обратного преобразования определенного размера преобразования к остаточным коэффициентам преобразования для
получения декодированного остаточного блока; и
суммирование декодированного остаточного блока с предсказанным видео блоком для получения декодированного видео блока.
8. Способ по п.7, в котором значение первого синтаксического элемента отображается на размер преобразования на основе размера предсказанного блока по меньшей мере одного блока.
9. Способ по п.7 или 8, в котором когда первый синтаксический элемент имеет первое значение, первый размер преобразования равен размеру предсказанного блока по меньшей мере одного блока.
10. Способ по п.7, в котором определение размера преобразования содержит
определение, является ли размер предсказанного блока большим, чем первое пороговое значение; и
определение, является ли размер предсказанного блока меньшим, чем второе пороговое значение.
11. Способ по п.7, в котором определение размера преобразования содержит
определение, является ли размер предсказанного блока большим, чем первое пороговое значение; и
определение, является ли размер предсказанного блока равным второму значению.
12. Способ по п.7, в котором обратное преобразование является одним из целочисленного преобразования, дискретного косинусного преобразования и направленного преобразования.
13. Считываемый компьютером носитель, содержащий сохраненные на нем инструкции, которые, при исполнении компьютером, обеспечивают выполнение способа по любому из пп.1-6.
14. Считываемый компьютером носитель, содержащий сохраненные на нем инструкции, которые, при исполнении компьютером, обеспечивают выполнение способа по любому из пп.7-12.
15. Устройство для кодирования видео данных, содержащее средство применения пространственного предсказания или
компенсации движения к исходному видео блоку в пределах
видеокадра для генерации предсказанного видео блока на основе
режима предсказания;
средство вычитания предсказанного видео блока из исходного
видео блока в пределах видеокадра для формирования остаточного
блока;
средство выбора преобразования, имеющего размер
преобразования, для применения к остаточному блоку;
средство генерации данных заголовка, указывающих выбранное
преобразование, причем данные заголовка содержат
первый синтаксический элемент, имеющий значение, указывающее по меньшей мере три размера преобразования, причем упомянутые по меньшей мере три размера преобразования содержат по меньшей мере один размер преобразования N×M, и по меньшей мере одно из N и М равно или больше чем 16, и
второй синтаксический элемент, указывающий размер предсказанного блока для предсказанного видео блока,
причем первый синтаксический элемент и второй синтаксический элемент используются в комбинации для указания размера преобразования, причем размер преобразования является одним из упомянутых по меньшей мере трех размеров преобразования;
средство применения выбранного преобразования к остаточному блоку для генерации остаточных коэффициентов преобразования; и
средство генерации видео сигнала на основе данных заголовка и остаточных коэффициентов преобразования.
16. Устройство для декодирования видео данных, содержащее средство приема видео сигнала, указывающего по меньшей мере один блок в пределах видеокадра, содержащий данные заголовка для по меньшей мере одного блока и остаточные коэффициенты преобразования для по меньшей мере одного блока, причем данные заголовка содержат
первый синтаксический элемент, имеющий значение, указывающее по меньшей мере три размера преобразования, причем упомянутые по меньшей мере три размера преобразования содержат по меньшей мере один размер преобразования N×M, и по меньшей мере одно из N и М равно или больше чем 16, и
второй синтаксический элемент, указывающий размер области движения по меньшей мере одного блока,
причем первый синтаксический элемент и второй синтаксический элемент совместно определяют размер преобразования для преобразования, используемого для кодирования по меньшей мере одного блока, причем размер преобразования является одним из упомянутых по меньшей мере
трех размеров преобразования;
средство применения пространственного предсказания или компенсации движения к по меньшей мере одному блоку для генерации предсказанного видео блока с размером предсказанного блока по меньшей мере одного блока;
средство определения размера преобразования для преобразования, используемого для кодирования по меньшей мере одного блока, из первого синтаксического элемента и второго синтаксического элемента;
средство применения обратного преобразования определенного размера преобразования к остаточным коэффициентам преобразования для получения декодированного остаточного блока; и
средство суммирования декодированного остаточного блока с предсказанным видео блоком для получения декодированного видео блока.
US 2005249291 A1, 2005.11.10 | |||
WO 2008027192 A2, 2008.03.06 | |||
US 2008049834 A1, 2008.02.28 | |||
ОСНОВАННОЕ НА КОНТЕКСТЕ АДАПТИВНОЕ НЕРАВНОМЕРНОЕ КОДИРОВАНИЕ ДЛЯ АДАПТИВНЫХ ПРЕОБРАЗОВАНИЙ БЛОКОВ | 2003 |
|
RU2330325C2 |
КОМПЕНСАЦИЯ ГЛОБАЛЬНОГО ДВИЖЕНИЯ ДЛЯ ВИДЕОИЗОБРАЖЕНИЙ | 2002 |
|
RU2307478C2 |
Text of Joint FCD for Joint Video Specification, JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, JVT-D157, 10 August 2002 | |||
PURI A | |||
et al, Video coding using the H.264/MPEG-4 AVC compression |
Авторы
Даты
2013-10-27—Публикация
2009-09-30—Подача