RU2595897C2 - Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео - Google Patents
Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео Download PDFInfo
- Publication number
- RU2595897C2 RU2595897C2 RU2014133154/08A RU2014133154A RU2595897C2 RU 2595897 C2 RU2595897 C2 RU 2595897C2 RU 2014133154/08 A RU2014133154/08 A RU 2014133154/08A RU 2014133154 A RU2014133154 A RU 2014133154A RU 2595897 C2 RU2595897 C2 RU 2595897C2
- Authority
- RU
- Russia
- Prior art keywords
- subunit
- encoded
- subunits
- context
- transform coefficient
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении требований к потреблению полосы пропускания. Способ декодирования видеоданных, в котором определяют значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков; определяют, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован; используют значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и энтропийно декодируют один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста. 8 н. и 44 з.п. ф-лы, 23 ил.
Description
[0001] Данная заявка испрашивает приоритет предварительной заявки на патент (США) порядковый номер 61/586668, поданной 13 января 2012 года, предварительной заявки на патент (США) порядковый номер 61/588595, поданной 19 января 2012 года, и предварительной заявки на патент (США) порядковый номер 61/597097, поданной 9 февраля 2012 года, каждая из которых настоящим полностью содержится в данном документе по ссылке.
Область техники, к которой относится изобретение
[0002] Данное раскрытие сущности относится к кодированию видео.
Уровень техники
[0003] Поддержка цифрового видео может быть включена в широкий диапазон устройств, включающих в себя цифровые телевизионные приемники, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференц-связи, устройства потоковой передачи видео и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видео, как технологии сжатия видео, описанные в стандартах, заданных посредством разрабатываемых в настоящее время стандартов MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), стандарта высокоэффективного кодирования видео (HEVC), и расширений таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких технологий сжатия видео.
[0004] Технологии сжатия видео выполняют пространственное (внутрикадровое) прогнозирование и/или временное (межкадровое) прогнозирование для того, чтобы уменьшать или удалять избыточность, внутренне присущую в видеопоследовательностях. Для блочного кодирования видео слайс (вырезка) (т.е. видеокадр или часть видеокадра) может быть сегментирован на видеоблоки, которые также могут упоминаться как древовидные блоки, единицы кодирования (CU) и/или узлы кодирования. Видеоблоки во внутренне (интра-) кодированном (I) слайсе изображения кодируются с использованием пространственного прогнозирования относительно опорных выборок в соседних блоках в идентичном изображении. Видеоблоки во внешне (интер-) кодированном (P или B) слайсе изображения могут использовать пространственное прогнозирование относительно опорных выборок в соседних блоках в идентичном изображении или временное прогнозирование относительно опорных выборок в других опорных изображениях. Изображения могут упоминаться как кадры, и опорные изображения могут упоминаться как опорные кадры.
[0005] Пространственное или временное прогнозирование приводит в результате к прогнозному блоку для блока, который должен быть кодирован. Остаточные данные представляют пиксельные разности между исходным блоком, который должен быть кодирован, и прогнозным блоком. Внешне кодированный блок кодируется согласно вектору движения, который указывает на блок опорных выборок, формирующих прогнозный блок, и остаточным данным, указывающим разность между кодированным блоком и прогнозным блоком. Внутренне кодированный блок кодируется согласно режиму внутреннего кодирования и остаточным данным. Для дополнительного сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования, приводя к остаточным коэффициентам преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, первоначально размещаемые в двумерном массиве, могут сканироваться для того, чтобы формировать одномерный вектор коэффициентов преобразования, и может применяться энтропийное кодирование с тем, чтобы достигать еще большего сжатия.
Сущность изобретения
[0006] В общем, это раскрытие сущности описывает технологии, связанные с определением контекстов для энтропийного кодирования, например, с использованием контекстно-адаптивного двоичного арифметического кодирования (CABAC), видеоданных. CABAC-кодирование, в общем, заключает в себе определение контекста при кодировании преобразованных в двоичную форму представлений различных элементов синтаксиса. Примеры элементов синтаксиса включают в себя данные для коэффициентов преобразования, к примеру, данные, указывающие то, являются или нет коэффициенты преобразования значимыми, знаки коэффициентов преобразования, которые являются значимыми, и значения уровня для коэффициентов преобразования, которые являются значимыми. Коэффициенты преобразования, в общем, соответствуют коэффициентам блока преобразования, такого как единица преобразования (TU). Это раскрытие сущности описывает технологии для определения контекстов для кодирования коэффициентов преобразования основываясь на областях блока преобразования, в которых возникают коэффициенты преобразования.
[0007] В одном примере, способ кодирования видеоданных включает в себя определение контекста для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийное кодирование коэффициента преобразования с использованием определенного контекста.
[0008] В другом примере, устройство для кодирования видеоданных включает в себя видеокодер, сконфигурированный с возможностью определять контекст для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийно кодировать коэффициент преобразования с использованием определенного контекста.
[0009] В другом примере, устройство для кодирования видеоданных включает в себя средство для определения контекста для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и средство для энтропийного кодирования коэффициента преобразования с использованием определенного контекста.
[0010] В другом примере, считываемый компьютером носитель данных имеет сохраненные инструкции, которые при исполнении побуждают процессор определять контекст для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийно кодировать коэффициент преобразования с использованием определенного контекста.
[0011] В другом примере, способ декодирования видеоданных включает в себя определение того, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, определение контекста для декодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока, и энтропийное декодирование коэффициента преобразования с использованием определенного контекста.
[0012] В другом примере, устройство для декодирования видеоданных включает в себя видеодекодер, сконфигурированный с возможностью определять то, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, определять контекст для декодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока и энтропийно декодировать коэффициент преобразования с использованием определенного контекста.
[0013] В другом примере, устройство для декодирования видеоданных включает в себя средство для определения того, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, средство для определения, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, контекста для декодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока, и средство для энтропийного декодирования коэффициента преобразования с использованием определенного контекста.
[0014] В другом примере, считываемый компьютером носитель данных имеет сохраненные инструкции, которые при исполнении побуждают процессор определять то, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, определять контекст для декодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока, и энтропийно декодировать коэффициент преобразования с использованием определенного контекста.
[0015] В другом примере, способ кодирования видеоданных включает в себя определение того, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, определение контекста для кодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока, и энтропийное кодирование коэффициента преобразования с использованием определенного контекста.
[0016] В другом примере, устройство для кодирования видеоданных включает в себя видеокодер, сконфигурированный с возможностью определять то, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, определять контекст для кодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока и энтропийно кодировать коэффициент преобразования с использованием определенного контекста.
[0017] В другом примере, устройство для кодирования видеоданных включает в себя средство для определения того, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, средство для определения, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, контекста для кодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока, и средство для энтропийного кодирования коэффициента преобразования с использованием определенного контекста.
[0018] В другом примере, считываемый компьютером носитель данных имеет сохраненные инструкции, которые при исполнении побуждают процессор определять то, представляет собой или нет коэффициент преобразования видеоблока DC-коэффициент преобразования, когда определяется то, что коэффициент преобразования представляет собой DC-коэффициент преобразования видеоблока, определять контекст для кодирования коэффициента преобразования на основе того, что коэффициент преобразования представляет собой DC-коэффициент преобразования, без учета размера видеоблока, и энтропийно кодировать коэффициент преобразования с использованием определенного контекста.
[0019] В другом примере, способ декодирования видеоданных включает в себя определение значений для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, определение контекста для декодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков и энтропийное декодирование коэффициента преобразования с использованием определенного контекста.
[0020] В другом примере, устройство для декодирования видеоданных включает в себя видеодекодер, сконфигурированный с возможностью определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, определять контекст для декодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков и энтропийно декодировать коэффициент преобразования с использованием определенного контекста.
[0021] В другом примере, устройство для декодирования видеоданных включает в себя средство для определения значений для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, средство для определения контекста для декодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков, и средство для энтропийного декодирования коэффициента преобразования с использованием определенного контекста.
[0022] В другом примере, считываемый компьютером носитель данных имеет сохраненные инструкции, которые при исполнении побуждают процессор определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, определять контекст для декодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков и энтропийно декодировать коэффициент преобразования с использованием определенного контекста.
[0023] В другом примере, способ кодирования видеоданных включает в себя определение значений для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, определение контекста для кодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков, и энтропийное кодирование коэффициента преобразования с использованием определенного контекста.
[0024] В другом примере, устройство для кодирования видеоданных включает в себя видеокодер, сконфигурированный с возможностью определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, определять контекст для кодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков и энтропийно кодировать коэффициент преобразования с использованием определенного контекста.
[0025] В другом примере, устройство для кодирования видеоданных включает в себя средство для определения значений для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, средство для определения контекста для кодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков, и средство для энтропийного кодирования коэффициента преобразования с использованием определенного контекста.
[0026] В другом примере, считываемый компьютером носитель данных имеет сохраненные инструкции, которые при исполнении побуждают процессор определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, определять контекст для кодирования коэффициента преобразования текущего субблока на основе значений для флагов кодированных субблоков и энтропийно кодировать коэффициент преобразования с использованием определенного контекста.
[0027] Подробности одного или более примеров изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества должны становиться очевидными из описания и чертежей и из формулы изобретения.
Краткое описание чертежей
[0028] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования и декодирования видео, которая может использовать технологии внешнего прогнозирования, описанные в этом раскрытии сущности.
[0029] Фиг. 2 является блок-схемой, иллюстрирующей примерный видеокодер, который может реализовывать технологии внешнего прогнозирования, описанные в этом раскрытии сущности.
[0030] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеодекодер, который может реализовывать технологии, описанные в этом раскрытии сущности.
[0031] Фиг. 4 является концептуальной схемой, которая иллюстрирует взаимосвязь между коэффициентами преобразования в видеоблоке и карте значимости, ассоциированной с видеоблоком.
[0032] Фиг. 5A-5D являются концептуальными схемами, которые иллюстрируют примеры блоков видеоданных, сканированных с использованием зигзагообразного порядка сканирования, горизонтального порядка сканирования, вертикального порядка сканирования и диагонального порядка сканирования.
[0033] Фиг. 6 является концептуальной схемой, которая иллюстрирует примерный видеоблок, разделенный на субблоки для кодирования коэффициентов преобразования.
[0034] Фиг. 7 является концептуальной схемой, которая иллюстрирует примерную пятиточечную поддержку, используемую для того, чтобы задавать контекстную модель для карты значимости коэффициентов в видеоблоке, сканированном с использованием обратного диагонального порядка сканирования.
[0035] Фиг. 8A и 8B являются концептуальными схемами, которые иллюстрируют зависимость от контекста в пятиточечной поддержке.
[0036] Фиг. 9A и 9B являются концептуальными схемами, которые иллюстрируют примерные разделения видеоблока на две или более областей.
[0037] Фиг. 10 является концептуальной схемой, которая иллюстрирует примерное назначение контекстов на основе окружения или позиции для каждой области видеоблока.
[0038] Фиг. 11 является концептуальной схемой, которая иллюстрирует примерное назначение смещений контекста для каждой области видеоблока.
[0039] Фиг. 12 является концептуальной схемой, которая иллюстрирует примерное встроенное разделение видеоблока на две или более областей на основе TU-размеров, которые коррелируются с существующими контекстными моделями.
[0040] Фиг. 13A и 13B являются концептуальными схемами, которые иллюстрируют примерные разделения видеоблока на две или более областей.
[0041] Фиг. 14A и 14B являются концептуальными схемами, которые иллюстрируют примерное назначение смещений контекста для каждой области видеоблока.
[0042] Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования текущего блока.
[0043] Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей примерный способ для декодирования текущего блока видеоданных.
Подробное описание изобретения
[0044] В общем, это раскрытие сущности описывает технологии, связанные с определением контекстов для энтропийного кодирования, например, с использованием контекстно-адаптивного двоичного арифметического кодирования (CABAC), видеоданных. CABAC-кодирование, в общем, заключает в себе определение контекста при кодировании преобразованных в двоичную форму представлений различных элементов синтаксиса. Элементы синтаксиса включают в себя, например, данные для коэффициентов преобразования, к примеру, данные, указывающие то, являются или нет коэффициенты преобразования значимыми, знаки коэффициентов преобразования, которые являются значимыми, и значения уровня для коэффициентов преобразования, которые являются значимыми. Коэффициенты преобразования, в общем, соответствуют коэффициентам блока преобразования, такого как единица преобразования (TU). Это раскрытие сущности описывает технологии для определения контекстов для кодирования коэффициентов преобразования основываясь на областях блока преобразования, в которых возникают коэффициенты преобразования.
[0045] В общем, в соответствии с технологиями этого раскрытия сущности, видеокодер может быть сконфигурирован с возможностью определять контекст для кодирования коэффициента преобразования основываясь на области, в которой возникает коэффициент преобразования, и затем энтропийно кодировать коэффициент преобразования с использованием определенного контекста. Видеоблок может быть разделен на области множеством способов. Фиг. 9A и 11 иллюстрируют примеры, в которых видеоблок разделяется на первую область, включающую в себя один или более верхних левых субблоков (например, субблоков 4×4), и вторую область, включающую в себя субблоки за пределами первой области. Фиг. 9B иллюстрирует пример, в котором видеоблок разделяется на области вдоль диагонального направления. Фиг. 10 иллюстрирует пример, в котором видеоблок разделяется на квартили, и верхний левый квартиль дополнительно разделяется на первую подобласть, включающую в себя субблоки верхней левой части верхнего левого квартиля, и вторую подобласть, включающую в себя субблоки верхнего левого квартиля, внешнего для первой подобласти. Фиг. 12 иллюстрирует пример, в котором видеоблок разделяется на области, которые соответствуют размерам видеоблоков (например, 4×4, 8×8, 16×16 и 32×32). Фиг. 13A иллюстрирует пример, в котором видеоблок разделяется на горизонтальные прямоугольные области. Фиг. 13B иллюстрирует пример, в котором видеоблок разделяется на вертикальные прямоугольные области. Эти чертежи подробнее описываются ниже.
[0046] В различных примерах, видеокодер может быть сконфигурирован с возможностью определять контекст для кодирования коэффициента преобразования различными способами, например, основываясь на области, в которой возникает коэффициент преобразования. Например, видеокодер может быть сконфигурирован с возможностью определять контекст с использованием контекстной информации на основе позиции для некоторых областей или контекстной информации на основе окружения для других областей. В некоторых примерах, все коэффициенты преобразования в конкретной области могут быть кодированы с использованием идентичного контекста, определенного основываясь на области. В других примерах, контексты для коэффициентов преобразования в области могут быть определены на основе окружения контекста. В еще одних других примерах, видеокодер может определять смещение, которое должно применяться к контексту, основываясь на области, в которой возникает коэффициент преобразования. Иными словами, каждая из областей может быть ассоциирована с конкретным смещением, которое должно применяться к контексту.
[0047] Технологии этого раскрытия сущности могут уменьшать потребление полосы пропускания, приводя к экономии битов при кодировании элементов синтаксиса для коэффициентов преобразования. Такие элементы синтаксиса могут включать в себя любое из флага значимого коэффициента (который указывает то, является или нет соответствующий коэффициент преобразования значимым, т.е. ненулевым), знака значимых коэффициентов, индикатора относительно того, имеет или нет значимый коэффициент абсолютное значение, превышающее 1, индикатора относительно того, имеет или нет значимый коэффициент с абсолютным значением, превышающим 1, абсолютное значение, превышающее 2, и/или оставшееся значения уровня для коэффициентов, имеющих абсолютные значения, превышающие 2.
[0048] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать технологии, описанные в этом раскрытии сущности. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое формирует кодированные видеоданные, которые должны быть декодированы впоследствии посредством устройства-адресата 14. Устройство-источник 12 и устройство-адресат 14 могут содержать любые из широкого диапазона устройств, включающих в себя настольные компьютеры, ноутбуки (т.е. переносные компьютеры), планшетные компьютеры, абонентские приставки, телефонные трубки, к примеру, так называемые смартфоны, так называемые интеллектуальные сенсорные панели, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройства потоковой передачи видео и т.п. В некоторых случаях, устройство-источник 12 и устройство-адресат 14 могут быть оснащены возможностями беспроводной связи.
[0049] Устройство-адресат 14 может принимать кодированные видеоданные, которые должны быть декодированы, через линию 16 связи. Линия 16 связи может содержать любой тип носителя или устройства, допускающего перемещение кодированных видеоданных из устройства-источника 12 в устройство-адресат 14. В одном примере, линия 16 связи может содержать среду связи, чтобы обеспечивать возможность устройству-источнику 12 передавать кодированные видеоданные непосредственно в устройство-адресат 14 в реальном времени. Кодированные видеоданные могут быть модулированы согласно стандарту связи, такому как протокол беспроводной связи, и переданы в устройство-адресат 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы упрощать передачу из устройства-источника 12 в устройство-адресат 14.
[0050] Альтернативно, кодированные данные могут выводиться из интерфейса 22 вывода в устройство 34 хранения данных. Аналогично, к кодированным данным может осуществляться доступ из устройства 34 хранения данных посредством интерфейса ввода. Устройство 34 хранения данных может включать в себя любые из множества носителей хранения данных с распределенным или локальным доступом, такие как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство или любые другие подходящие цифровые носители данных для сохранения кодированных видеоданных. В дополнительном примере, устройство 34 хранения данных может соответствовать файловому серверу или другому промежуточному устройству хранения данных, которое может хранить кодированное видео, сформированное посредством устройства-источника 12. Устройство-адресат 14 может осуществлять доступ к сохраненным видеоданным из устройства 34 хранения данных через потоковую передачу или загрузку. Файловый сервер может быть любым типом сервера, допускающего сохранение кодированных видеоданных и передачу этих кодированных видеоданных в устройство-адресат 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-узла), FTP-сервер, устройства системы хранения данных с подключением по сети (NAS) или локальный накопитель на дисках. Устройство-адресат 14 может осуществлять доступ к кодированным видеоданным через любое стандартное подключение для передачи данных, включающее в себя Интернет-подключение. Оно может включать в себя беспроводной канал (например, Wi-Fi-подключение), проводное подключение (например, DSL, кабельный модем и т.д.) или комбинацию означенного, которая является подходящей для того, чтобы осуществлять доступ к кодированным видеоданным, сохраненным на файловом сервере. Передача кодированных видеоданных из устройства 34 хранения данных может представлять собой потоковую передачу, передачу на основе загрузки или комбинацию вышеозначенного.
[0051] Технологии этого раскрытия сущности не обязательно ограничены приложениями или настройками беспроводной связи. Технологии могут применяться к кодированию видео в поддержку любых из множества мультимедийных приложений, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео, например, через Интернет, кодирование цифрового видео для хранения на носителе хранения данных, декодирование цифрового видео, сохраненного на носителе хранения данных, или другие приложения. В некоторых примерах, система 10 может быть сконфигурирована с возможностью поддерживать одностороннюю или двустороннюю передачу видео, чтобы поддерживать такие приложения, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.
[0052] В примере по фиг. 1, устройство-источник 12 включает в себя видеоисточник 18, видеокодер 20 и интерфейс 22 вывода. В некоторых случаях, интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передающее устройство. В устройстве-источнике 12 видеоисточник 18 может включать в себя источник, такой как устройство видеозахвата, например, видеокамера, видеоархив, содержащий ранее захваченное видео, интерфейс прямых видеотрансляций, чтобы принимать видео от поставщика видеоконтента, и/или компьютерную графическую систему для формирования компьютерных графических данных в качестве исходного видео, либо комбинацию таких источников. В качестве одного примера, если видеоисточником 18 является видеокамера, устройство-источник 12 и устройство-адресат 14 могут формировать так называемые камерофоны или видеофоны. Тем не менее, технологии, описанные в этом раскрытии сущности, могут быть применимыми к кодированию видео в целом и могут применяться к беспроводным и/или проводным вариантам применения.
[0053] Захваченное, предварительно захваченное или машиногенерируемое видео может быть кодировано посредством видеокодера 20. Кодированные видеоданные могут быть переданы непосредственно в устройство-адресат 14 через интерфейс 22 вывода устройства-источника 12. Кодированные видеоданные также (или альтернативно) могут сохраняться на устройство 34 хранения данных для последующего доступа посредством устройства-адресата 14 или других устройств для декодирования и/или воспроизведения.
[0054] Устройство-адресат 14 включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В некоторых случаях, интерфейс 28 ввода может включать в себя приемное устройство и/или модем. Интерфейс 28 ввода устройства-адресата 14 принимает кодированные видеоданные по линии 16 связи. Кодированные видеоданные, передаваемые по линии 16 связи или предоставленные на устройстве 34 хранения данных, могут включать в себя множество элементов синтаксиса, сформированных посредством видеокодера 20 для использования посредством видеодекодера, такого как видеодекодер 30, при декодировании видеоданных. Такие элементы синтаксиса могут быть включены с кодированными видеоданными, передаваемыми на среде связи, сохраненными на носителе хранения данных или сохраненными на файловом сервере.
[0055] Устройство 32 отображения может быть интегрированным или внешним для устройства-адресата 14. В некоторых примерах, устройство-адресат 14 может включать в себя интегрированное устройство отображения, а также сконфигурировано с возможностью взаимодействовать с внешним устройством отображения. В других примерах, устройство-адресат 14 может быть устройством отображения. В общем, устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
[0056] Видеокодер 20 и видеодекодер 30 могут работать согласно такому стандарту сжатия видео, как стандарт высокоэффективного кодирования видео (HEVC), разрабатываемый в настоящее время, и могут соответствовать тестовой модели HEVC (HM). Альтернативно, видеокодер 20 и видеодекодер 30 могут работать согласно другим собственным или отраслевым стандартам, таким как стандарт ITU-T H.264, альтернативно называемый "MPEG-4, часть 10, усовершенствованное кодирование видео (AVC)", или расширениям таких стандартов. Расширения стандартов включают в себя, например, масштабируемое кодирование видео (SVC), кодирование многовидового видео (MVC), трехмерный (трехмерный), к примеру, кодирование информации глубины и т.п. Тем не менее, технологии этого раскрытия сущности не ограничены каким-либо конкретным стандартом или расширением стандарта кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263.
[0057] Хотя не показано на фиг. 1, в некоторых аспектах, видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудио-кодером и декодером, соответственно, и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение для того, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, в некоторых примерах блоки мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
[0058] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества надлежащих схем кодера, к примеру, один или более микропроцессоров, процессоры цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Когда технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем энергонезависимом считываемом компьютером носителе и выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия сущности. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.
[0059] JCT-VC проводит работы по разработке HEVC-стандарта. Работа по стандартизации HEVC основана на усовершенствованной модели устройства кодирования видео, называемой "тестовой моделью HEVC (HM)". HM предполагает несколько дополнительных возможностей устройств кодирования видео относительно существующих устройств согласно, например, ITU-T H.264/AVC. Например, тогда как H.264 предоставляет девять режимов внутреннего прогнозирующего кодирования, HM может предоставлять целых тридцать три режима внутреннего прогнозирующего кодирования.
[0060] В общем, рабочая модель HM описывает, что видеокадр или изображение может быть разделено на последовательность древовидных блоков или наибольших единиц кодирования (LCU), которые включают в себя выборки как сигнала яркости, так и сигнала цветности. Древовидный блок имеет назначение, аналогичное назначению макроблока по стандарту H.264. Слайс включает в себя определенное число последовательных древовидных блоков в порядке кодирования. Видеокадр или изображение может быть сегментировано на один или более слайсов. Каждый древовидный блок может разбиваться на единицы кодирования (CU) согласно дереву квадрантов. Например, древовидный блок, в качестве корневого узла дерева квадрантов, может разбиваться на четыре дочерних узла, и каждый дочерний узел, в свою очередь, может быть родительским узлом и разбиваться еще на четыре дочерних узла. Конечный, неразбитый дочерний узел, в качестве концевого узла дерева квадрантов, содержит узел кодирования, т.е. кодированный видеоблок. Синтаксические данные, ассоциированные с кодированным потоком битов, могут задавать максимальное число раз, которое может разбиваться древовидный блок, и также может задавать минимальный размер узлов кодирования.
[0061] CU включает в себя узел кодирования и единицы прогнозирования (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен иметь квадратную форму. Размер CU может колебаться от 88 пикселов вплоть до размера древовидного блока максимум в 6464 пикселов или более. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, сегментирование CU на одну или более PU. Режимы сегментирования могут отличаться между тем, является CU кодированной в режиме пропуска или прямом режиме, кодированной в режиме внутреннего прогнозирования или кодированной в режиме внешнего прогнозирования. PU могут быть сегментированы таким образом, что они имеют неквадратную форму. Синтаксические данные, ассоциированные с CU, также могут описывать, например, сегментирование CU на одну или более TU согласно дереву квадрантов. TU может иметь квадратную или неквадратную форму.
[0062] HEVC-стандарт обеспечивает возможность преобразований согласно TU, которые могут отличаться для различных CU. Размеры NU типично задаются на основе размера PU в данной CU, заданного для сегментированной LCU, хотя это может не всегда иметь место. TU типично имеет идентичный размер или меньше, чем PU. В некоторых примерах, остаточные выборки, соответствующие CU, могут подразделяться на меньшие единицы с использованием структуры в виде дерева квадрантов, известной как "остаточное дерево квадрантов" (RQT). Концевые узлы RQT могут называться "единицами преобразования (TU)". Значения пиксельных разностей, ассоциированные с TU, могут быть преобразованы, чтобы формировать коэффициенты преобразования, которые могут быть квантованы.
[0063] В общем, PU включает в себя данные, связанные с процессом прогнозирования. Например, когда PU кодируется во внутреннем режиме, PU может включать в себя данные, описывающие режим внутреннего прогнозирования для PU. В качестве другого примера, когда PU кодируется во внешнем режиме, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешение для вектора движения (например, точность в одну четверть пиксела или точность в одну восьмую пиксела), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений для вектора движения.
[0064] В общем, TU используется для процессов преобразования и квантования. Данная CU, имеющая одну или более PU, также может включать в себя одну или более TU. После прогнозирования видеокодер 20 может вычислять остаточные значения, соответствующие PU. Остаточные значения содержат значения пиксельных разностей, которые могут быть преобразованы в коэффициенты преобразования, квантованы и сканированы с использованием TU, чтобы формировать преобразованные в последовательную форму коэффициенты преобразования для энтропийного кодирования. Это раскрытие сущности типично использует термин "видеоблок" для того, чтобы означать узел кодирования CU. В некоторых конкретных случаях это раскрытие сущности также может использовать термин "видеоблок" для того, чтобы означать древовидный блок, т.е. LCU или CU, которая включает в себя узел кодирования и PU и TU.
[0065] Видеопоследовательность типично включает в себя серии видеокадров или изображений. Группа изображений (GOP), в общем, содержит последовательность из одного или более видеоизображений. GOP может включать в себя в заголовке GOP, в заголовке одного или более изображений или в другом месте синтаксические данные, которые описывают число изображений, включенных в GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 типично оперирует с видеоблоками в пределах отдельных слайсов, чтобы кодировать видеоданные. Видеоблок может соответствовать узлу кодирования в CU. Видеоблоки могут иметь фиксированные или варьирующиеся размеры и могут отличаться по размеру согласно указанному стандарту кодирования.
[0066] В качестве примера, HM поддерживает прогнозирование для различных PU-размеров. При условии, что размер конкретной CU составляет 2N×2N, HM поддерживает внутреннее прогнозирование для PU-размеров 2N×2N или N×N и внешнее прогнозирование для симметричных PU-размеров 2N×2N, 2N×N, N×2N или N×N. HM также поддерживает асимметричное сегментирование для внешнего прогнозирования для PU-размеров 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном сегментировании одно направление CU не сегментируется, в то время как другое направление сегментируется на 25% и 75%. Часть CU, соответствующая 25%-ому сегменту, указывается посредством "n", после чего идет индикатор относительно "вверх (Up)", "вниз (Down)", "влево (Left)" или "вправо (Right)". Таким образом, например, "2N×nU" ссылается на CU 2N×2N, которая сегментируется горизонтально с PU 2N×0,5N вверху и PU 2N×1,5N внизу.
[0067] В этом раскрытии сущности, "N×N" и "N на N" могут быть использованы взаимозаменяемо для того, чтобы означать размеры в пикселах видеоблока с точки зрения размеров по вертикали и горизонтали, например, 16×16 пикселов, или 16 на 16 пикселов. В общем, блок 16×16 должен иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (x=16). Аналогично, блок N×N, в общем, имеет N пикселов в вертикальном направлении и N пикселов в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Пикселы в блоке могут размещаться в строках и столбцах. Кроме того, блок не обязательно должен иметь совпадающее число пикселов в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселов, причем M не обязательно равно N.
[0068] После внутреннего прогнозирующего кодирования или внешнего прогнозирующего кодирования с использованием PU CU, видеокодер 20 может вычислять остаточные данные для TU CU. PU могут содержать пиксельные данные в пространственной области (также называемой "пиксельной областью"), и TU могут содержать коэффициенты в области преобразования после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлет-преобразования или концептуально аналогичного преобразования к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселами некодированного изображения и прогнозными значениями, соответствующими PU. Видеокодер 20 может формировать TU, включающую в себя остаточные данные для CU, и затем преобразовывать TU таким образом, чтобы формировать коэффициенты преобразования для CU.
[0069] После преобразований, чтобы формировать коэффициенты преобразования, видеокодер 20 может выполнять квантование коэффициентов преобразования. Квантование, в общем, означает процесс, в котором коэффициенты преобразования квантуются, чтобы, возможно, уменьшать объем данных, используемых для того, чтобы представлять коэффициенты, обеспечивая дополнительное сжатие. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, n-битовое значение может быть округлено в меньшую сторону до m-битового значения в ходе квантования, при этом n больше m.
[0070] В некоторых примерах, видеокодер 20 и видеодекодер 30 могут использовать предварительно заданный порядок сканирования для того, чтобы сканировать квантованные коэффициенты преобразования, так чтобы формировать преобразованный в последовательную форму вектор, который может энтропийно кодироваться. В других примерах, видеокодер 20 и видеодекодер 30 могут выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования, чтобы формировать одномерный вектор, или в ходе сканирования, видеокодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию переменной длины (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (CABAC), синтаксическому контекстно-адаптивному двоичному арифметическому кодированию (SBAC), энтропийному кодированию на основе сегментирования на интервалы вероятности (PIPE) или другой технологии энтропийного кодирования. Видеодекодер 30 может энтропийно декодировать коэффициенты, выполнять процесс обратного квантования и процесс обратного преобразования, чтобы воспроизводить остаточные данные, и комбинировать остаточные данные с прогнозирующими данными, чтобы формировать декодированные видеоданные. Видеокодер 20 также может энтропийно кодировать элементы синтаксиса, ассоциированные с кодированными видеоданными, для использования посредством видеодекодера 30 при декодировании видеоданных.
[0071] Чтобы выполнять CABAC, видеокодер 20 и видеодекодер 30 могут назначать контекст в контекстной модели символу, который должен быть кодирован. Контекст может быть связан, например, с тем, являются соседние значения символа ненулевыми или нет. В соответствии с технологиями этого раскрытия сущности, видеокодер 20 и/или видеодекодер 30 могут быть сконфигурированы с возможностью определять контекст для энтропийного кодирования (например, энтропийного кодирования или энтропийного декодирования) коэффициента преобразования основываясь на области видеоблока, в которой возникает коэффициент преобразования.
[0072] Видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с заданиями различных областей для видеоблоков (например, единиц преобразования). Например, видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с заданиями областей для различных размеров видеоблоков. В некоторых примерах, видеокодер 20 может определять способ, посредством которого можно разделять видеоблок на области и кодировать данные, представляющие то, как должен быть разделен блок. Каждая из областей может быть ассоциирована с соответствующим значением и/или технологией для определения контекста для коэффициентов преобразования, возникающих в соответствующей области.
[0073] Например, конкретная область видеоблока может быть ассоциирована со схемой определения контекстов на основе окружения, в то время как другая область видеоблока может быть ассоциирована со схемой определения контекстов на основе позиции. В качестве другого примера, область видеоблока может быть ассоциирована со смещением, которое должно применяться к контексту, определенному для коэффициентов преобразования, расположенных в этой области. Различные области идентичного видеоблока могут быть ассоциированы с различными значениями смещения и/или различными технологиями для вычисления контекста.
[0074] В качестве одного примера, видеоблок может включать в себя две различных области: первую область, включающую в себя один или более субблоков (например, субблоков коэффициентов преобразования 4×4) в верхнем левом углу видеоблока, и вторую область, включающую в себя другие субблоки видеоблока, которые не включаются в первую область. Более конкретно, видеокодер 20 и видеодекодер 30 могут определять координату X и Y субблока и определять то, находится субблок в первой области или во второй области, посредством сравнения суммы X и Y с пороговым значением. Если сумма X и Y меньше порогового значения, видеокодер 20 и видеодекодер 30 могут определять то, что субблок находится в первой области, а в противном случае, видеокодер 20 и видеодекодер 30 могут определять то, что субблок находится во второй области. Видеокодер 20 и видеодекодер 30 могут определять контекст для коэффициентов видеоблока на основе того, находятся коэффициенты в субблоке первой области или субблоке второй области.
[0075] Например, в некоторых областях, контекст может быть фиксированным контекстом, в котором видеокодер 20 и видеодекодер 30 кодируют коэффициенты преобразования в таких областях с использованием фиксированного контекста. Иными словами, видеокодер 20 и видеодекодер 30 могут применять идентичный контекст ко всем коэффициентам преобразования в области. Альтернативно, каждый из субблоков в области может быть ассоциирован с идентичным способом определения контекста (например, способом на основе фиксированных контекстов), но различные субблоки в области могут иметь различные фиксированные контексты. Видеокодер 20 и видеодекодер 30 могут определять фиксированный контекст для субблока на основе позиции субблока в области. В качестве еще одного другого примера, фиксированные контексты могут назначаться отдельным позициям коэффициентов преобразования в области. Иными словами, видеокодер 20 и видеодекодер 30 могут определять контекст для кодирования коэффициента преобразования в области на основе позиции коэффициента преобразования в видеоблоке, субблоке и/или области.
[0076] В качестве другого примера, в некоторых областях, контекстная модель может быть задана согласно соседним субблокам. Например, видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с наборами контекстов для каждого субблока в конкретной области. Иными словами, каждый субблок в области может быть ассоциирован с соответствующим набором контекстов. Видеокодер 20 и видеодекодер 30 могут выбирать надлежащий контекст из набора контекстов для каждого коэффициента преобразования в соответствующем субблоке. Набор контекстов для одного субблока может отличаться от набора контекстов для другого субблока.
[0077] В качестве еще одного другого примера, для каждого субблока в области могут быть кодированы отдельные флаги, представляющие то, существуют или нет какие-либо значимые (т.е. ненулевые) коэффициенты в соответствующем субблоке. Эти флаги могут упоминаться как "флаги кодированных субблоков". Такие флаги могут быть использованы для выбора контекста для кодирования коэффициентов преобразования в субблоках. Например, видеокодер 20 и видеодекодер 30 могут определять контекст для кодирования коэффициентов преобразования в субблоке на основе значений флагов одного или более соседних субблоков. Например, флаги могут иметь двоичные значения в 0 или 1, и видеокодер 20 и видеодекодер 30 могут определять контекст для кодирования коэффициентов преобразования в текущем субблоке на основе суммы значений флага для правого соседнего субблока и нижнего соседнего субблока (также называемого "нижним соседним субблоком"). Другие формулы также могут быть использованы для вычисления контекста для субблока.
[0078] Видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с возможностью реализовывать любые из технологий этого раскрытия сущности, отдельно или в любой комбинации. Одна примерная комбинация этих технологий заключается в том, что видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с возможностью разделять единицу преобразования на субблоки (например, пиксельные субблоки 44) и затем определять контекст для кодирования данных конкретного коэффициента преобразования субблока как на основе позиции коэффициента преобразования в субблоке, так и на основе флагов кодированных блоков для одного или более соседних субблоков, например, левого соседнего субблока и нижнего соседнего субблока.
[0079] Видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с возможностью кодировать один или более элементов синтаксиса, представляющих коэффициенты преобразования с использованием контекстов, определенных в этих различных примерах. Коэффициенты преобразования могут включать в себя различные типы элементов синтаксиса. Например, коэффициент преобразования может включать в себя флаг значимого коэффициента (significant_coeff_flag), указывающий то, имеет или нет коэффициент преобразования ненулевое значение (т.е. является или нет значимым). Если коэффициент преобразования является значимым, коэффициент преобразования может включать в себя значение знака (например, coeff_sign_flag), указывающее то, значение коэффициента преобразования больше или меньше 0, и значение, указывающее то, превышает или нет абсолютное значение коэффициента преобразования 1 (например, coeff_abs_level_greater1_flag). Если коэффициент преобразования имеет абсолютное значение, превышающее 1, коэффициент преобразования может включать в себя значение, указывающее то, имеет или нет коэффициент преобразования абсолютное значение, превышающее 2 (например, coeff_abs_level_greater2_flag). Если коэффициент преобразования имеет абсолютное значение, превышающее 2, коэффициент преобразования может включать в себя значение, указывающее абсолютное значение коэффициента преобразования минус два (например, coeff_abs_level_remaining).
[0080] CABAC-кодер видеокодера 20 и видеодекодера 30 может кодировать любые из этих значений с использованием контекстов, определенных в соответствии с технологиями этого раскрытия сущности. Помимо этого или в альтернативе, видеокодер 20 и видеодекодер 30 могут кодировать данные, указывающие позицию последнего значимого коэффициента (например, last_significant_coeff_x_prefix, last_significant_coeff_x_suffix, last_significant_coeff_y_prefix и last_significant_coeff_y_suffix) с использованием контекста, определенного в соответствии с технологиями этого раскрытия сущности.
[0081] Видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с возможностью осуществлять любую одну или более технологий, описанных в этом раскрытии сущности, отдельно или в любой комбинации. Ниже описываются различные технологии для определения контекста для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийного кодирования коэффициента преобразования с использованием определенного контекста. Примеры таких технологий описываются относительно фиг. 9-14 ниже. В общем, кодирование коэффициента преобразования с использованием определенного контекста включает в себя кодирование одного или более элементов синтаксиса коэффициента преобразования с использованием определенного контекста. Определение контекста, в общем, включает в себя определение области, в которой возникает коэффициент преобразования, и определение контекста основываясь на области. Например, область может быть ассоциирована с конкретным контекстом или набором контекстов и/или ассоциирована с одной или более технологий для определения контекста.
[0082] Фиг. 2 является блок-схемой, иллюстрирующей примерный видеокодер 20, который может реализовывать технологии, описанные в этом раскрытии сущности. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков в слайсах. Внутреннее кодирование основано на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность видео в данном видеокадре или изображении. Внешнее кодирование основано на временном прогнозировании, чтобы уменьшать или удалять временную избыточность видео в смежных кадрах или изображениях видеопоследовательности. Внутренний режим (I-режим) может означать любой из нескольких режимов пространственного сжатия. Внешние режимы, к примеру, однонаправленное прогнозирование (P-режим) или бипрогнозирование (B-режим), могут означать любой из нескольких режимов временного сжатия.
[0083] В примере по фиг. 2, видеокодер 20 включает в себя модуль 35 выбора режима, процессор 41 прогнозирования, запоминающее устройство 64 опорных изображений, сумматор 50, процессор 52 преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Процессор 41 прогнозирования включает в себя модуль 42 оценки движения, модуль 44 компенсации движения и модуль 46 внутреннего прогнозирования. Для восстановления видеоблоков видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен с возможностью фильтровать границы блоков, чтобы удалять артефакты блочности из восстановленного видео. Если требуется, фильтр удаления блочности типично должен фильтровать вывод сумматора 62. Дополнительные контурные фильтры (внутриконтурные или постконтурные) также могут быть использованы в дополнение к фильтру удаления блочности.
[0084] Как показано на фиг. 2, видеокодер 20 принимает видеоданные, и модуль 35 выбора режима сегментирует данные на видеоблоки. Это сегментирование также может включать в себя сегментирование на слайсы, плитки или другие большие единицы, а также сегментирование видеоблока, например, согласно структуре в виде дерева квадрантов LCU и CU. Видеокодер 20, в общем, иллюстрирует компоненты, которые кодируют видеоблоки в видео слайсе, который должен быть кодирован. Слайс может быть разделен на несколько видеоблоков (и возможно на наборы видеоблоков, называемых "плитками"). Процессор 41 прогнозирования может выбирать один из множества возможных режимов кодирования, к примеру, один из множества режимов внутреннего кодирования или один из множества режимов внешнего кодирования, для текущего видеоблока на основе результатов ошибки (например, скорости кодирования и уровня искажения). Процессор 41 прогнозирования может предоставлять результирующий внутренне или внешне кодированный блок в сумматор 50, чтобы формировать остаточные блочные данные, и в сумматор 62, чтобы восстанавливать кодированный блок для использования в качестве опорного изображения.
[0085] Модуль 46 внутреннего прогнозирования в процессоре 41 прогнозирования может выполнять внутреннее прогнозирующее кодирование текущего видеоблока относительно одного или более соседних блоков в кадре или слайсе, идентичном кадру или слайсу текущего блока, который должен быть кодирован, чтобы предоставлять пространственное сжатие. Модуль 42 оценки движения и модуль 44 компенсации движения в процессоре 41 прогнозирования выполняют внешнее прогнозирующее кодирование текущего видеоблока относительно одного или более прогнозных блоков в одном или более опорных изображений, чтобы предоставлять временное сжатие.
[0086] Модуль 42 оценки движения может быть сконфигурирован с возможностью определять режим внешнего прогнозирования для видео слайса согласно предварительно определенному шаблону для видеопоследовательности. Предварительно определенный шаблон может обозначать слайсы в последовательности в качестве P-слайсов, B-слайсов или GPB-слайсов. Модуль 42 оценки движения и модуль 44 компенсации движения могут иметь высокую степень интеграции, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая посредством модуля 42 оценки движения, является процессом формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в текущем видеокадре или изображении относительно прогнозного блока в опорном изображении.
[0087] Прогнозный блок является блоком, для которого обнаруживается, что он практически совпадает с видеоблоком, который должен быть кодирован, с точки зрения пиксельной разности, которая может быть определена посредством суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других разностных показателей. В некоторых примерах, видеокодер 20 может вычислять значения для субцелочисленнопиксельных позиций опорных изображений, сохраненных в запоминающем устройстве 64 опорных изображений. Например, видеокодер 20 может интерполировать значения позиций в одну четверть пиксела, позиций в одну восьмую пиксела или других дробнопиксельных позиций опорного изображения. Следовательно, модуль 42 оценки движения может выполнять поиск движения относительно полнопиксельных позиций и дробнопиксельных позиций и выводить вектор движения с дробнопиксельной точностью.
[0088] Модуль 42 оценки движения вычисляет вектор движения для PU видеоблока во внешне кодированном слайсе посредством сравнения позиции PU с позицией прогнозного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (списка 0) или второго списка опорных изображений (списка 1), каждый из которых идентифицируют одно или более опорных изображений, сохраненных в запоминающем устройстве 64 опорных изображений. Модуль 42 оценки движения отправляет вычисленный вектор движения в модуль 56 энтропийного кодирования и модуль 44 компенсации движения.
[0089] Компенсация движения, выполняемая посредством модуля 44 компенсации движения, может заключать в себе выборку или формирование прогнозного блока на основе вектора движения, определенного посредством оценки движения, возможно выполнение интерполяции в субпиксельную точность. При приеме вектора движения для PU текущего видеоблока модуль 44 компенсации движения может находить прогнозный блок, на который указывает вектор движения в одном из списков опорных изображений. Модуль 44 компенсации движения также может формировать элементы синтаксиса, ассоциированные с видеоблоками и видео слайсом, для использования посредством видеодекодера 30 при декодировании видеоблоков видео слайса.
[0090] Модуль 46 внутреннего прогнозирования может внутренне прогнозировать текущий блок, в качестве альтернативы внешнему прогнозированию, выполняемому посредством модуля 42 оценки движения и модуля 44 компенсации движения, как описано выше. В частности, модуль 46 внутреннего прогнозирования может определять режим внутреннего прогнозирования для использования для того, чтобы кодировать текущий блок. В некоторых примерах, модуль 46 внутреннего прогнозирования может кодировать текущий блок с использованием различных режимов внутреннего прогнозирования, например, во время отдельных проходов кодирования, и модуль 46 внутреннего прогнозирования (либо модуль 35 выбора режима в некоторых примерах) может выбирать надлежащий режим внутреннего прогнозирования для использования из тестированных режимов. Например, модуль 46 внутреннего прогнозирования может вычислять значения искажения в зависимости от скорости передачи с использованием анализа искажения в зависимости от скорости передачи для различных тестированных режимов внутреннего прогнозирования и выбирать режим внутреннего прогнозирования, имеющий наилучшие характеристики искажения в зависимости от скорости передачи, из тестированных режимов. Анализ искажения в зависимости от скорости передачи, в общем, определяет величину искажения (или ошибки) между кодированным блоком и исходным некодированным блоком, который кодирован для того, чтобы формировать кодированный блок, а также скорость передачи битов (т.е. число битов), используемую для того, чтобы формировать кодированный блок. Модуль 46 внутреннего прогнозирования может вычислять отношения из искажений и скоростей для различных кодированных блоков, чтобы определять то, какой режим внутреннего прогнозирования демонстрирует наилучшее значение искажения в зависимости от скорости передачи для блока.
[0091] В любом случае, после выбора режима внутреннего прогнозирования для блока, модуль 46 внутреннего прогнозирования может предоставлять информацию, указывающую выбранный режим внутреннего прогнозирования для блока, в модуль 56 энтропийного кодирования. Модуль 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего прогнозирования, в соответствии с технологиями этого раскрытия сущности. Видеокодер 20 может включать в передаваемый поток битов конфигурационные данные, которые могут включать в себя множество индексных таблиц режима внутреннего прогнозирования и множество модифицированных индексных таблиц режима внутреннего прогнозирования (также называемых "таблицами отображения кодовых слов"), определения контекстов кодирования для различных блоков и индикаторы относительно наиболее вероятного режима внутреннего прогнозирования, индексной таблицы режима внутреннего прогнозирования и модифицированной индексной таблицы режима внутреннего прогнозирования, которые следует использовать для каждого из контекстов.
[0092] После того, как процессор 41 прогнозирования формирует прогнозный блок для текущего видеоблока через внешнее прогнозирование или внутреннее прогнозирование, видеокодер 20 формирует остаточный видеоблок посредством вычитания прогнозного блока из текущего видеоблока. Сумматор 50 представляет модуль, который выполняет это вычисление. Остаточные видеоданные в остаточном блоке могут включаться в одну или более TU и применяться к процессору 52 преобразования. Процессор 52 преобразования, в общем, преобразует остаточные видеоданные из пиксельной области в область преобразования, к примеру, в частотную область. Процессор 52 преобразования может преобразовывать остаточные видеоданные в остаточные коэффициенты преобразования с использованием преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование. Альтернативно, процессор 52 преобразования может применять двумерное (двумерное) преобразование (в горизонтальном и вертикальном направлении) к остаточным данным в TU.
[0093] Процессор 52 преобразования может отправлять результирующие коэффициенты преобразования в модуль 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать скорость передачи битов. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована посредством регулирования параметра квантования.
[0094] После квантования, модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование на основе сегментирования на интервалы вероятности (PIPE) или другую технологию энтропийного кодирования. Такое энтропийное кодирование, в общем, включает в себя сканирование квантованных коэффициентов преобразования (в общем, называемых в данном документе просто "коэффициентами преобразования" для краткости) один или более раз и энтропийное кодирование элементов синтаксиса для коэффициентов преобразования в ходе каждого сканирования, к примеру, элементов синтаксиса, указывающих то, являются или нет соответствующие коэффициенты преобразования значимыми, имеют абсолютное значение, превышающее 1 или 2, абсолютное значение (или его часть, например, часть, превышающую 2) и знак значимых коэффициентов.
[0095] В соответствии с технологиями этого раскрытия сущности, модуль 56 энтропийного кодирования может определять контекст для кодирования (т.е. энтропийного кодирования) коэффициента преобразования видеоблока (например, единицы преобразования) основываясь на области видеоблока, в которой возникает коэффициент преобразования. Например, в ходе сканирования, модуль 56 энтропийного кодирования может определять позицию коэффициента преобразования в видеоблоке и определять то, в какой области возникает позиция. Помимо этого, модуль 56 энтропийного кодирования может включать в себя области задания конфигурационных данных для видеоблока.
[0096] Например, модуль 56 энтропийного кодирования может быть сконфигурирован с пороговым значением. В этом примере, модуль 56 энтропийного кодирования может определять то, имеют или нет координаты X и Y, задающие позицию коэффициента преобразования, сумму (т.е. X+Y), которая превышает пороговое значение. Первая область, в этом примере, соответствует коэффициентам преобразования, для которых сумма значений координаты X и Y меньше порогового значения, и вторая область соответствует коэффициентам преобразования, для которых сумма значений координаты X и Y превышает или равна пороговому значению. Альтернативно, несколько пороговых значений могут быть использованы для того, чтобы задавать несколько областей. Пример областей, заданных таким образом, показывается на фиг. 9B, который подробнее описывается ниже.
[0097] В качестве другого примера, модуль 56 энтропийного кодирования может быть сконфигурирован с возможностью определять позицию субблока, включающего в себя коэффициент преобразования, в видеоблоке. Субблок может соответствовать субблоку коэффициентов преобразования 4×4. Иными словами, видеоблок может включать в себя множество неперекрывающихся субблоков, имеющих идентичный размер, например, коэффициентов преобразования 4×4. Чтобы определять область для субблока, модуль 56 энтропийного кодирования может сравнивать сумму координаты X и Y субблока (например, конкретный коэффициент преобразования субблока, к примеру, верхний левый коэффициент преобразования субблока) с пороговым значением. То, меньше или нет сумма координат X и Y порогового значения, может служить признаком того, включаются коэффициенты преобразования субблока в первую область или во вторую область.
[0098] Например, пусть Cij представляет позицию субблока, имеющего верхний левый коэффициент преобразования в позиции (i, j), где x=i и y=j. Дополнительно, пусть T задает пороговое значение. Модуль 56 энтропийного кодирования может определять область, в которой возникают коэффициенты преобразования субблока, с использованием следующего псевдокода:
(i+j<T)? region1: region2.
[0099] В этом примере, когда i+j меньше T (т.е. сумма координат X и Y субблока меньше порогового значения), модуль 56 энтропийного кодирования определяет то, что все коэффициенты преобразования субблока возникают в области 1, тогда как когда i+j превышает или равно T (т.е. сумма координат X и Y субблока превышает или равна пороговому значению), модуль 56 энтропийного кодирования определяет то, что все коэффициенты преобразования субблока возникают в области 2. Эти и другие примеры областей описываются подробнее ниже относительно фиг. 9-14.
[0100] Модуль 56 энтропийного кодирования может быть сконфигурирован с возможностью определять контексты основываясь на областях различными способами. Например, модуль 56 энтропийного кодирования может определять контекст для кодирования коэффициента преобразования основываясь на области, в которой возникает коэффициент преобразования, с использованием местоположения коэффициента преобразования в видеоблоке или позиции субблока 4×4, в котором возникает коэффициент преобразования.
[0101] Альтернативно, контекстная модель может быть задана согласно соседним субблокам 4×4. Например, модуль 56 энтропийного кодирования может назначать каждому субблоку 4×4 соответствующий набор доступных контекстов и выбирать один из контекстов для текущего коэффициента преобразования, который должен быть кодирован в субблоке, например, на основе позиции коэффициента преобразования в субблоке. Наборы контекстов могут назначаться соответствующим субблокам, так что каждый субблок может иметь различный набор доступных контекстов. В качестве еще одного другого примера, модуль 56 энтропийного кодирования может вычислять контекст в качестве ctx=Right4x4SubBlockFlag+Bottom4x4SubBlockFlag. В этом случае, Right4x4SubBlockFlag представляет флаг кодированного субблока для правого соседнего субблока, в то время как Bottom4x4SubBlockFlag представляет флаг кодированного субблока для флага нижнего соседнего кодированного субблока.
[0102] В некоторых примерах, модуль 56 энтропийного кодирования может применять смещение к определенному контексту для энтропийного кодирования коэффициента преобразования и дополнительно может определять смещение, которое должно применяться, основываясь на области, в которой возникает коэффициент преобразования. Иными словами, модуль 56 энтропийного кодирования может вычислять базовый контекст идентичным общим способом для коэффициентов двух или более областей, но различные области могут иметь различные соответствующие значения смещения. Таким образом, модуль 56 энтропийного кодирования может применять смещение к вычисленному значению контекста на основе смещения, в которое отображается область (т.е. смещение, с которым ассоциирована область).
[0103] Модуль 56 энтропийного кодирования может определять то, представляет собой или нет коэффициент преобразования коэффициент преобразования DC (постоянного тока) (типично представленный в верхнем левом углу блока преобразования), и выбирать контекст для кодирования коэффициента преобразования основываясь на области, в которой возникает коэффициент преобразования, а также того, представляет собой или нет коэффициент преобразования DC-коэффициент преобразования. Например, модуль 56 энтропийного кодирования может определять контексты для коэффициентов преобразования с использованием совместно используемых контекстов для выделенных позиций. Иными словами, совместно используемый контекст может содержать идентичный контекст, который применяется ко всем коэффициентам преобразования, возникающим в конкретной позиции, например, в верхнем левом углу субблока. Таким образом, совместно используемый контекст дополнительно может включать в себя индикатор относительно конкретного контекста, который должен применяться при кодировании DC-коэффициента преобразования, в противоположность не-DC-коэффициентам преобразования, возникающим в верхней левой позиции других субблоков.
[0104] Дополнительно или альтернативно, совместно используемый контекст может содержать совместно используемые контексты для различных размеров блоков для коэффициентов преобразования, возникающих в конкретных позициях блоков. Например, модуль 56 энтропийного кодирования может быть сконфигурирован с возможностью применять идентичный контекст при кодировании DC-коэффициентов преобразования видеоблоков (например, TU) любого размера, например, 4×4, 8×8, 16×16 и т.п. Иными словами, модуль 56 энтропийного кодирования может включать в себя данные, которые отображают DC-коэффициент преобразования, для блоков любого размера, в идентичные контекстные данные для кодирования DC-коэффициента преобразования. Другими словами, модуль 56 энтропийного кодирования может быть сконфигурирован с возможностью кодировать DC-коэффициент преобразования с использованием контекста, определенного для DC-коэффициента преобразования, без учета размера текущего кодируемого видеоблока. Типично, DC-коэффициент преобразования является верхним левым коэффициентом видеоблока.
[0105] После энтропийного кодирования посредством модуля 56 энтропийного кодирования кодированный поток битов может быть передан в видеодекодер 30 или заархивирован для последующей передачи или извлечения посредством видеодекодера 30. Модуль 56 энтропийного кодирования также может энтропийно кодировать векторы движения, индикаторы внутреннего режима и другие элементы синтаксиса для текущего кодируемого видео слайса.
[0106] Модуль 58 обратного квантования и модуль 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы восстанавливать остаточный блок в пиксельной области для последующего использования в качестве опорного блока опорного изображения. Модуль 44 компенсации движения может вычислять опорный блок посредством суммирования остаточного блока с прогнозным блоком одного из опорных изображений в одном из списков опорных изображений. Модуль 44 компенсации движения также может применять один или более интерполяционных фильтров к восстановленному остаточному блоку, чтобы вычислять субцелочисленнопиксельные значения для использования в оценке движения. Сумматор 62 суммирует восстановленный остаточный блок с прогнозным блоком с компенсацией движения, сформированным посредством модуля 44 компенсации движения, чтобы сформировать опорный блок для хранения в запоминающем устройстве 64 опорных изображений. Опорный блок может использоваться посредством модуля 42 оценки движения и модуля 44 компенсации движения в качестве опорного блока для того, чтобы внешне прогнозировать блок в последующем видеокадре или изображении.
[0107] Таким образом, видеокодер 20 представляет пример видеокодера, сконфигурированного с возможностью определять контекст для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийно кодировать коэффициент преобразования с использованием определенного контекста. Область может содержать одну из первой области, содержащей один или более верхних левых субблоков 44 коэффициентов преобразования видеоблока, и второй области, содержащей коэффициенты преобразования видеоблока за пределами первой области.
[0108] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеодекодер 30, который может реализовывать технологии, описанные в этом раскрытии сущности. В примере по фиг. 3, видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, процессор 81 прогнозирования, модуль 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90 и запоминающее устройство 92 опорных изображений. Процессор 81 прогнозирования включает в себя модуль 82 компенсации движения и модуль 84 внутреннего прогнозирования. Видеодекодер 30 может, в некоторых примерах, выполнять проход декодирования, в общем, взаимно-обратный относительно прохода кодирования, описанного относительно видеокодера 20 на фиг. 2.
[0109] В ходе процесса декодирования, видеодекодер 30 принимает кодированный поток видеобитов, который представляет видеоблоки кодированного видео слайса, и ассоциированные элементы синтаксиса из видеокодера 20. Модуль 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует поток битов, чтобы формировать квантованные коэффициенты, векторы движения и другие элементы синтаксиса. Модуль 80 энтропийного декодирования перенаправляет векторы движения, индикаторы внутреннего режима и другие связанные с прогнозированием элементы синтаксиса в процессор 81 прогнозирования. Модуль 80 энтропийного декодирования перенаправляет квантованные коэффициенты в форме блока (например, TU) в модуль 86 обратного квантования. Видеодекодер 30 может принимать элементы синтаксиса на уровне видео слайса и/или уровне видеоблока.
[0110] В частности, в соответствии с технологиями этого раскрытия сущности, модуль 80 энтропийного декодирования может определять контекст для энтропийного декодирования коэффициентов преобразования основываясь на области блока, в которой возникают коэффициенты преобразования. В частности, модуль 80 энтропийного декодирования может определять контекст основываясь на области блока, в которой возникает коэффициент преобразования, когда коэффициент преобразования размещается в блоке. Модуль 80 энтропийного декодирования может быть сконфигурирован с возможностью определять области, как пояснено относительно фиг. 9-14 ниже, или другие такие области. Например, как показано на фиг. 9A, модуль 80 энтропийного декодирования может быть сконфигурирован с возможностью определять то, возникает коэффициент преобразования в первой области, включающей в себя один или более субблоков в верхнем левом углу блока, или во второй области, включающей в себя субблоки за пределами первой области, и определять контекст на основе того, возникает коэффициент преобразования в первой области или во второй области.
[0111] Аналогично, модуль 80 энтропийного декодирования может определять контекст основываясь на области, при этом модуль 80 энтропийного декодирования может быть сконфигурирован с одной или более различных технологий для вычисления или определения контекста, ассоциированного с коэффициентами в каждой области. Иными словами, каждая область может быть ассоциирована с одной или более технологий для вычисления или определения контекста. Например, область может быть ассоциирована с контекстом, который совместно используется одним или более коэффициентов преобразования. В качестве другого примера, область может быть ассоциирована с контекстами, которые совместно используются субблоками области. В качестве еще одного другого примера, область может быть ассоциирована со значением смещения, которое должно применяться к значению контекста, вычисленному для коэффициента преобразования в области. Модуль 80 энтропийного декодирования может быть сконфигурирован с возможностью определять контекст для декодирования коэффициента преобразования с использованием их или других технологий, как описано в данном документе, основываясь на области, в которой возникает коэффициент преобразования. Модуль 80 энтропийного декодирования затем может энтропийно декодировать коэффициент преобразования с использованием определенного контекста.
[0112] Дополнительно или альтернативно, совместно используемый контекст может содержать совместно используемые контексты для различных размеров блоков для коэффициентов преобразования, возникающих в конкретных позициях блоков. Например, модуль 80 энтропийного декодирования может быть сконфигурирован с возможностью применять идентичный контекст при кодировании DC-коэффициентов преобразования видеоблоков (например, TU) любого размера, например, 4×4, 8×8, 16×16 и т.п. Иными словами, модуль 80 энтропийного декодирования может включать в себя данные, которые отображают DC-коэффициент преобразования, для блоков любого размера, в идентичные контекстные данные для кодирования DC-коэффициента преобразования. Другими словами, модуль 80 энтропийного декодирования может быть сконфигурирован с возможностью кодировать DC-коэффициент преобразования с использованием контекста, определенного для DC-коэффициента преобразования, без учета размера текущего кодируемого видеоблока. Типично, DC-коэффициент преобразования является верхним левым коэффициентом видеоблока.
[0113] Когда слайс кодируется в качестве внутренне кодированного (I) слайса, модуль 84 внутреннего прогнозирования процессора 81 прогнозирования может формировать прогнозирующие данные для видеоблока текущего видео слайса на основе передаваемого в служебных сигналах режима внутреннего прогнозирования и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется в качестве внешне кодированного (т.е. B, P или GPB) слайса, модуль 82 компенсации движения процессора 81 прогнозирования формирует прогнозные блоки для видеоблока текущего видео слайса на основе векторов движения и других элементов синтаксиса, принимаемых из модуля 80 энтропийного декодирования. Прогнозные блоки могут формироваться из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, с использованием технологий составления по умолчанию на основе опорных изображений, сохраненных в запоминающем устройстве 92 опорных изображений.
[0114] Модуль 82 компенсации движения определяет информацию прогнозирования для видеоблока текущего видео слайса посредством синтаксического анализа векторов движения и других элементов синтаксиса и использует информацию прогнозирования для того, чтобы формировать прогнозные блоки для текущего декодируемого видеоблока. Например, модуль 82 компенсации движения использует некоторые из принимаемых элементов синтаксиса для того, чтобы определять режим прогнозирования (например, внутреннее или внешнее прогнозирование), используемый для того, чтобы кодировать видеоблоки видео слайса, тип слайса внешнего прогнозирования (например, B-слайс, P-слайс или GPB-слайс), информацию составления для одного или более списков опорных изображений для слайса, векторы движения для каждого внешне кодированного видеоблока слайса, состояние внешнего прогнозирования для каждого внешне кодированного видеоблока слайса и другую информацию для того, чтобы декодировать видеоблоки в текущем видео слайсе.
[0115] Модуль 82 компенсации движения также может выполнять интерполяцию на основе интерполяционных фильтров. Модуль 82 компенсации движения может использовать интерполяционные фильтры, используемые посредством видеокодера 20 в ходе кодирования видеоблоков, для того чтобы вычислять интерполированные значения для субцелочисленных пикселов опорных блоков. В этом случае, модуль 82 компенсации движения может определять интерполяционные фильтры, используемые посредством видеокодера 20, из принимаемых элементов синтаксиса и использовать интерполяционные фильтры для того, чтобы формировать прогнозные блоки.
[0116] Модуль 86 обратного квантования обратно квантует, т.е. деквантует, квантованные коэффициенты преобразования, предоставленные в потоке битов и декодированные посредством модуля 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного посредством видеокодера 20 для каждого видеоблока в видео слайсе, чтобы определять степень квантования и, аналогично, степень обратного квантования, которое должно применяться. Модуль 88 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования, чтобы формировать остаточные блоки в пиксельной области.
[0117] В некоторых случаях, модуль 88 обратного преобразования может применять двумерное обратное преобразование (в горизонтальном и вертикальном направлении) к коэффициентам. Согласно технологиям этого раскрытия сущности, модуль 88 обратного преобразования вместо этого может применять горизонтальное одномерное (одномерное) обратное преобразование, вертикальное одномерное обратное преобразование или отсутствие преобразования к остаточным данным в каждой из TU. Тип преобразования, применяемого к остаточным данным в видеокодере 20, может быть передан в служебных сигналах в видеодекодер 30, чтобы применять надлежащий тип обратного преобразования к коэффициентам преобразования.
[0118] После того, как модуль 82 компенсации движения формирует прогнозный блок для текущего видеоблока на основе векторов движения и других элементов синтаксиса, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков из модуля 88 обратного преобразования с соответствующими прогнозными блоками, сформированными посредством модуля 82 компенсации движения. Сумматор 90 представляет компонент или компоненты, которые выполняют эту операцию суммирования. Если требуется, фильтр удаления блочности также может быть применен для того, чтобы фильтровать декодированные блоки, чтобы удалять артефакты блочности. Другие контурные фильтры (в контуре кодирования или после контура кодирования) также могут быть использованы для того, чтобы сглаживать пиксельные переходы или иным образом повышать качество видео. Декодированные видеоблоки в данном кадре или изображении затем сохраняются в запоминающем устройстве 92 опорных изображений, которое сохраняет опорные изображения, используемые для последующей компенсации движения. Запоминающее устройство 92 опорных изображений также сохраняет декодированное видео для последующего представления на устройстве отображения, таком как устройство 32 отображения по фиг. 1.
[0119] Таким образом, видеодекодер 30 представляет пример видеокодера, сконфигурированного с возможностью определять контекст для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийно кодировать коэффициент преобразования с использованием определенного контекста. Область может содержать одну из первой области, содержащей один или более верхних левых субблоков 4×4 коэффициентов преобразования видеоблока, и второй области, содержащей коэффициенты преобразования видеоблока за пределами первой области.
[0120] Фиг. 4 является концептуальной схемой, которая иллюстрирует взаимосвязь между коэффициентами преобразования в видеоблоке и карте значимости, ассоциированной с видеоблоком. Как проиллюстрировано на фиг. 4, карта значимости включает в себя 1, чтобы указывать каждый экземпляр значения значимого коэффициента, т.е. значение, превышающее нуль, в видеоблоке. Карта значимости может быть передана в служебных сигналах в потоке битов, который является декодируемым посредством видеодекодера, к примеру, видеодекодера 30, чтобы определять местоположение значимых, т.е. превышающих нуль коэффициентов в видеоблоке, который должен быть декодирован. Более конкретно, позиция последнего ненулевого коэффициента в видеоблоке может быть передана в служебных сигналах в потоке битов. Позиция последнего ненулевого коэффициента в видеоблоке зависит от порядка сканирования, используемого для видеоблока. Дополнительные элементы синтаксиса могут быть переданы в служебных сигналах, чтобы указывать другие значимые коэффициенты относительно последнего ненулевого коэффициента согласно известному или узнаваемому порядку сканирования.
[0121] Фиг. 5A-5D являются концептуальными схемами, которые иллюстрируют примеры блоков видеоданных, сканированных с использованием зигзагообразного порядка сканирования, горизонтального порядка сканирования, вертикального порядка сканирования и диагонального порядка сканирования. Как показано на фиг. 5A-5D, бок 88 видеоданных, например, TU для CU, может включать в себя шестьдесят четыре коэффициента преобразования в соответствующих позициях блоков, обозначаемых с помощью кругов. В этом примере, блоки 100, 102, 104 и 106 имеют размер 8×8 и, как следствие, включают в себя шестьдесят четыре коэффициента преобразования, сформированные с использованием вышеописанных технологий прогнозирования.
[0122] Согласно технологиям, описанным в этом раскрытии сущности, шестьдесят четыре коэффициента преобразования в каждом из блоков 100, 102, 104 и 106, возможно, преобразованы или могут быть обратно преобразованы с использованием одного из двумерного преобразования, горизонтального одномерного преобразования и вертикального одномерного преобразования, либо коэффициенты преобразования могут не быть преобразованы вообще. Преобразованы или нет, коэффициенты в каждом из видеоблоков 100, 102, 104 и 106 сканируются при подготовке к энтропийному кодированию с использованием одного из зигзагообразного порядка сканирования, горизонтального порядка сканирования, вертикального порядка сканирования и диагонального порядка сканирования.
[0123] Как показано на фиг. 5A, порядок сканирования, ассоциированный с блоком 100, представляет собой зигзагообразный порядок сканирования. Зигзагообразный порядок сканирования побуждает видеокодер, к примеру, видеокодер 20 или видеодекодер 30 сканировать квантованные коэффициенты преобразования блока 100 диагональным способом, как указано посредством стрелок на фиг. 5A. Аналогично на фиг. 5D, диагональный порядок сканирования побуждает видеокодер сканировать квантованные коэффициенты преобразования блока 106 диагональным способом, как указано посредством стрелок на фиг. 5D. Как показано на фиг. 5B и 5C, порядки сканирования, ассоциированные с блоками 102 и 104, представляют собой горизонтальный порядок сканирования и вертикальный порядок сканирования, соответственно. Горизонтальный порядок сканирования побуждает видеокодер сканировать квантованные коэффициенты преобразования блока 102 горизонтальным построчным или "растровым" способом, в то время как вертикальный порядок сканирования побуждает видеокодер сканировать квантованные коэффициенты преобразования блока 104 вертикальным построчным или "циклически сдвинутым растровым" способом, как также указано посредством стрелок на фиг. 5B и 5C.
[0124] В других примерах, как описано выше, блок может иметь размер, который меньше или более размера блоков 100, 102, 104 и 106, и может включать в себя больше или меньше квантованных коэффициентов преобразования и соответствующих позиций блоков. В этих примерах, порядок сканирования, ассоциированный с конкретным блоком, может побуждать видеокодер сканировать квантованные коэффициенты преобразования блока практически аналогичным способом, как показано в примерах блоков 8×8 по фиг. 5A-5D, например, блок 4×4 или блок 16×16 может сканироваться согласно любому из вышеописанных порядков сканирования.
[0125] Хотя направление сканирований на фиг. 5A-5D, в общем, показано как идущее от низкочастотных коэффициентов к высокочастотным коэффициентам, в других примерах, видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с возможностью осуществлять обратный порядок сканирования, в котором сканирование может идти от высокочастотных коэффициентов к низкочастотным коэффициентам. Иными словами, видеокодер 20 и видеодекодер 30 могут сканировать коэффициенты в обратном порядке относительно порядка, показанного на фиг. 5A-5D.
[0126] Фиг. 6 является концептуальной схемой, которая иллюстрирует примерный видеоблок 110, разделенный на субблоки для кодирования коэффициентов преобразования. В текущей HM, понятие субблока используется для кодирования коэффициентов преобразования. Видеокодер может подразделять любую единицу преобразования (TU), которая превышает определенный размер субблока, на субблоки. Например, видеоблок 110 разделяется на четыре субблока 4×4.
[0127] В проиллюстрированном примере по фиг. 6, видеокодер разделяет видеоблок 110 на субблоки 4×4. В других примерах, видеокодер может разделять видеоблоки на субблоки других размеров, например, 8×8, 16×16 и т.п. Если видеокодер использует идентичный размер субблока для всех TU кадра или слайса, выгоды могут достигаться в аппаратной реализации вследствие достигнутой равномерности размеров субблоков. Например, вся обработка может разбиваться на такие субблоки независимо от TU-размера. Тем не менее, равномерный размер субблока является необязательным для того, чтобы осуществлять технологии этого раскрытия сущности.
[0128] Для кодирования коэффициентов видеокодер может сканировать каждый субблок 4×4 видеоблока 110 с использованием диагонального порядка сканирования, как показано на фиг. 6. В некоторых примерах, видеокодер может использовать унифицированное сканирование для сканирования коэффициентов преобразования каждого субблока. В этом случае, идентичный порядок сканирования используется для информации значимости, т.е. карты значимости, уровней коэффициентов, знака и т.п. В первом примере, как показано на фиг. 6, видеокодер может сканировать коэффициенты преобразования с использованием диагонального сканирования. В другом примере, видеокодер может сканировать коэффициенты преобразования в порядке, который является противоположным порядку, показанному на фиг. 6, например, обратное диагональное сканирование, которое начинается в нижнем правом углу и переходит к верхнему левому углу. В других примерах, видеокодер может сканировать коэффициенты преобразования с использованием зигзагообразного, горизонтального или вертикального сканирования. Другие направления/ориентации сканирования также являются возможными.
[0129] Для простоты пояснения, это раскрытие сущности описывает субблоки видеоблока как субблоки 4×4. Тем не менее, технологии этого раскрытия сущности также могут применяться относительно субблоков других размеров, например, 8×8, 16×16 и т.п. Для каждого блока 4×4 кодируется significant_coeffgroup_flag, и если существует по меньшей мере один ненулевой коэффициент в субблоке, этот флаг задается равным единице, в противном случае он равен нулю. Если significant_coeffgroup_flag является ненулевым для данного субблока, субблок 4×4 сканируется в обратном диагональном порядке, и significant_coeff_flag кодируется для каждого коэффициента субблока, чтобы указывать значимость коэффициента. Группа этих флагов может упоминаться как "карта значимости" для видеоблока. В некотором примере, вместо явной передачи в служебных сигналах карты значимости, significant_coeffgroup_flag может неявно извлекаться с использованием флагов соседних субблоков 4×4, либо когда субблок 4×4 содержит последний коэффициент или DC-коэффициент. Также кодируются абсолютные значения коэффициентов, т.е. уровни коэффициентов.
[0130] Хотя направление сканирования на фиг. 6, в общем, показано как идущее от низкочастотных коэффициентов к высокочастотным коэффициентам, в других примерах, видеокодер 20 и видеодекодер 30 могут быть сконфигурированы с возможностью осуществлять обратный порядок сканирования, в котором сканирование может идти от высокочастотных коэффициентов к низкочастотным коэффициентам. Иными словами, видеокодер 20 и видеодекодер 30 могут сканировать коэффициенты в обратном порядке относительно порядка, показанного на фиг. 6.
[0131] Фиг. 7 является концептуальной схемой, которая иллюстрирует примерное окружение пятиточечной поддержки, используемое для того, чтобы задавать контекстную модель для выбора контекстов для карты значимости коэффициентов в видеоблоке 112, сканированном с использованием обратного диагонального порядка сканирования. Как отмечено выше, для контекстно-адаптивного декодирования, коэффициенты преобразования могут быть кодированы на основе контекстной модели, которая описывает вероятности коэффициента преобразования, имеющего значение 0 или значение 1. Относительно кодирования на основе карты значимости контекстная модель описывает вероятности того, является или нет конкретный коэффициент преобразования значимым, т.е. ненулевым.
[0132] Для кодирования на основе карты значимости пятиточечная поддержка S может быть использована для того, чтобы задавать контекстную модель, чтобы кодировать карту значимости коэффициентов преобразования видеоблока 112. Пятиточечная поддержка может упоминаться как "окружение поддержки контекста", или просто "окружение поддержки". Иными словами, видеокодер может рассматривать поддержку, чтобы определять вероятность равенства значимости текущей позиции единице или нулю. Окружение поддержки контекста задает соседние коэффициенты (например, которые могут включать в себя информацию значимости), которые могут быть использованы в качестве контекстов для кодирования текущего коэффициента. Согласно некоторым примерам этого раскрытия сущности, окружение поддержки контекста может отличаться для различных позиций коэффициентов в блоке или в субблоке.
[0133] В примере, показанном на фиг. 7, пятиточечная поддержка S представляется посредством точки, обведенной квадратом, относительно текущей или "целевой" позиции, представленной посредством точки, обведенной кругом. Контекстная модель Ctx (уравнение (1) ниже) может задаваться как сумма флагов значимости в каждой точке поддержки, при этом флаг значимости может задаваться равным 1, если соответствующий коэффициент преобразования является ненулевым, и задаваться равным 0 в противном случае.
Соответственно, значение счетчика флага значимости может быть меньше или равно числу элементов поддержки. Значение Ctx необязательно является необработанным значением контекста, но может применяться к базовому значению контекста, в форме смещения, чтобы извлекать контекст, который должен быть использован для того, чтобы кодировать данные для конкретного коэффициента.
[0134] Тем не менее, поддержка S, показанная на фиг. 7, может не быть надлежащей при параллельном вычислении контекста для нескольких коэффициентов преобразования (например, информации значимости, ассоциированной с коэффициентом преобразования) (называемым "параллельным вычислением контекстов значимости" или просто "параллельным вычислением контекстов"). Например, использование поддержки S, показанной на фиг. 7, может препятствовать способности видеокодера параллельно вычислять контексты для информации значимости, поскольку все данные в поддержке S должны быть доступными (например, уже кодированными) для обеспечения возможности параллельного вычисления контекстов. В некоторых случаях, как описано ниже относительно фиг. 8A, кодер может быть вынужден ожидать элемента поддержки в поддержке S для того, чтобы завершать кодирование, до определения контекста для другого элемента поддержки в поддержке S. Эта задержка уменьшает способность видеокодера эффективно обрабатывать информацию значимости.
[0135] Фиг. 8A и 8B являются концептуальными схемами, которые иллюстрируют зависимость от контекста в пятиточечной поддержке. Например, чтобы вычислять контекст значимости для позиции в кружке, может быть необходимым синтаксически анализировать флаг значимости позиции в поддержке S, проиллюстрированной посредством ромбом (показано на фиг. 8A). Такой синтаксический анализ может вводить задержку, если существует необходимость параллельно вычислять контексты значимости двух коэффициентов, поскольку ромб размещается непосредственно перед элементом в кружке в порядке сканирования. Иными словами, контекст позиции в кружке не может быть вычислен одновременно с позицией, помеченной ромбом, поскольку позиция в кружке зависит от позиции, помеченной ромбом, и, следовательно, позиция, помеченная ромбом, должна быть кодирована до определения контекста для позиции в кружке.
[0136] Чтобы разрешать эту зависимость, определенные элементы могут удаляться из поддержки S, задавая поддержку с так называемой "дырой" (незаполненной точкой, обведенной треугольником, показанным на фиг. 8B). Например, флаг значимости в дыре пропускается и не учитывается для вычисления контекстов (т.е. допускается равным нулю). Соответственно, нет необходимости синтаксически анализировать флаг значимости в позиции дыры. Форма 5-точечной поддержки зависит от позиции, чтобы предоставлять возможность лучшей параллельной обработки.
[0137] Фиг. 9A и 9B являются концептуальными схемами, которые иллюстрируют примерные разделения видеоблока на две или более областей. В текущей HM, контекстное моделирование на основе окружения используется для TU-размеров, превышающих 8×8 (т.е. 16×16, 32×32 и неквадратных размеров преобразования в 16×4, 4×16, 32×8 и 8×32) с 5-точечной поддержкой. Тем не менее, контекстное моделирование с 5-точечной поддержкой может повышать сложность вычислений контекстов при больших размерах блоков. Область R1 по фиг. 9A представляет пример области, включающей в себя один или более верхних левых субблоков 4×4 коэффициентов преобразования видеоблока, тогда как область R2 по фиг. 9A представляет пример области, включающей в себя коэффициенты преобразования видеоблока за пределами области R1. Фиг. 9A также представляет пример, в котором множество областей содержат соответствующие наборы из одного или более субблоков.
[0138] В соответствии с технологиями, описанными в этом раскрытии сущности, видеокодер, к примеру, видеокодер 20 или видеодекодер 30, может разделять видеоблок на области R (например, как показано на фиг. 9A и 9B) и использовать различные процедуры назначения контекста для каждой из различных областей. Например, некоторые области могут использовать фиксированный контекст или контекст на основе позиции, а некоторые области могут использовать контекст на основе окружения. Как проиллюстрировано на фиг. 9A, области могут быть основаны на субблоках 4×4, так что все субблоки включаются в одну или другую область. Кроме того, разделение на области может быть гибким в некоторых примерах. Как проиллюстрировано на фиг. 9B, видеоблок может быть разделен на области в диагональном направлении, так что части субблоков могут быть включены в две различных области. В других примерах, разделение может зависеть от позиций коэффициентов или позиции субблока 4×4, содержащего этот коэффициент.
[0139] В некоторых примерах, контекст может быть задан согласно позиции коэффициента в видеоблоке или согласно позиции субблока 4×4, который содержит этот коэффициент. Альтернативно, контекстная модель может быть задана согласно соседним субблокам 4×4. Например, каждый коэффициент в идентичном субблоке 4×4 может использовать один или несколько контекстов, коэффициенты следующего субблока 4×4 также могут использовать один или несколько контекстов. Тем не менее, контексты одного субблока 4×4 могут отличаться от предыдущих контекстов на основе субблоков 4×4. Альтернативно, контексты могут вычисляться как Ctx=Right4x4SubBlockFlag+Bottom4x4SubBlockFlag или аналогичные формулы в зависимости от окружения. С другой стороны, Right4x4SubBlockFlag может представлять флаг кодированного субблока для правого соседнего субблока (например, указывающий то, включает или нет правый соседний субблок 4×4 в себя по меньшей мере один ненулевой коэффициент), и Bottom4x4SubBlockFlag может представлять флаг кодированного субблока для правого соседнего субблока (например, указывающий то, включает или нет нижний соседний субблок 4×4 в себя по меньшей мере один ненулевой коэффициент).
[0140] Фиг. 10 является концептуальной схемой, которая иллюстрирует примерное назначение контекстов на основе окружения или позиции для каждой области видеоблока. Как проиллюстрировано на фиг. 10, также может быть использован гибридный тип контекстов, например, для некоторых областей контексты могут быть основаны на окружении, и для некоторых областей идентичного видеоблока они могут быть фиксированными или основанными на позиции. Потенциальное преимущество подхода на основе позиции состоит в том, что необязательно вычислять контекст способом на основе коэффициентов. Вместо этого, видеокодер может вычислять контекст один раз для всех коэффициентов в области, так что все коэффициенты в области имеют идентичный контекст. Фиг. 10 представляет пример, в котором множество областей содержит соответствующий набор из одного или более субблоков.
[0141] Для коэффициента с координатами (X, Y), области могут быть заданы согласно позиции коэффициента. Например, если условие (X+Y>=пороговое значение) является истинным, то видеокодер может определять то, что соответствующий коэффициент возникает в области R2; в противном случае, если условие не является истинным, видеокодер определяет то, что соответствующий коэффициент возникает в области R1. Аналогично, координаты могут назначаться областям на основе субблоков 4×4. Для субблока с координатами (X, Y), области могут быть заданы согласно позиции субблока 4×4. Например, если условие (X+Y>=пороговое значение) является истинным, то видеокодер может определять то, что соответствующий коэффициент возникает в области R2; в противном случае видеокодер может определять то, что соответствующий коэффициент возникает в области R1. Пороговое значение может задаваться фиксированно равным некоторому предварительно заданному значению, к примеру, целому числу, равному 4, 5, 6, 7 или 8, или может зависеть от размера видеоблока, например, TU.
[0142] Таким образом, фиг. 10 представляет пример, в котором видеокодер может быть сконфигурирован с возможностью определять контекст для кодирования коэффициента преобразования основываясь на области, в которой возникает коэффициент преобразования, с использованием одной из контекстной информации на основе позиции и контекстной информации на основе окружения, основываясь на области. В частности, если коэффициент преобразования находится в первой области, видеокодер может использовать первый подход к определению контекстов для того, чтобы определять контекст для кодирования коэффициента преобразования. Если коэффициент преобразования находится во второй области, видеокодер может использовать второй подход к определению контекстов для того, чтобы определять контекст для кодирования коэффициента преобразования, при этом второй подход к определению контекстов отличается от первого подхода к определению контекстов, а первая область отличается от второй области. В примере, первая и вторая области не перекрываются. С другой стороны, примеры первого и второго подходов к определению контекстов включают в себя использование контекстной информации на основе позиции и контекстной информации на основе окружения.
[0143] Фиг. 11 является концептуальной схемой, которая иллюстрирует примерное назначение смещений контекста для каждой области видеоблока. Контекстная модель может быть отдельной для различных областей, но по-прежнему использовать идентичный способ для вычисления контекстов. Другими словами, видеокодер может быть сконфигурирован с помощью одного способа для вычисления контекста для кодирования коэффициента преобразования, но может включать в себя различные контекстные модели, определенные основываясь на области, в которой возникает коэффициент преобразования.
[0144] Например, контекст может быть вычислен на основе окружения, но для других областей он использует смещение. Смещение для каждой области может быть фиксированным или зависимым от одного или более из размера видеоблока, позиции коэффициента в видеоблоке или субблоке и позиции субблока в видеоблоке. Область R1 по фиг. 11 представляет другой пример области, включающей в себя один или более верхних левых субблоков 4×4 коэффициентов преобразования видеоблока, тогда как область R2 по фиг. 11 представляет другой пример области, включающей в себя коэффициенты преобразования видеоблока за пределами области R1. Фиг. 11 также представляет пример, в котором множество областей содержат соответствующие наборы из одного или более субблоков.
[0145] Для смещения, контекст может быть вычислен согласно уравнению (2).
Альтернативно, видеокодер может вычислять контекст согласно функции с использованием Ctx в качестве ввода, например, Ctx=(Ctx+1)>>1.
[0146] Один пример основанных на области смещений показывается на фиг. 11, при этом области R1 и R2 задаются на основе субблоков 4×4, и смещения отличаются для областей R1 и R2. Значения offset1 и offset2 смещения могут быть любыми целыми числами, например, offset1=0, offset2=3. В другом примере, другие разделения на области также являются возможными, и разделения более чем на две области также являются возможными.
[0147] Фиг. 12 является концептуальной схемой, которая иллюстрирует примерное встроенное разделение видеоблока на две или более областей на основе TU-размеров, которые коррелируются с существующими контекстными моделями. Поскольку существует несколько размеров TU в текущей HM (4×4, 8×8, 16×16 и 32×32), разделение больших блоков может выполняться для меньших TU-размеров с использованием встроенного стиля разделения, как проиллюстрировано на фиг. 12. Для встроенного разделения может быть совместно использован способ вычисления контекстов, и может быть совместно использована сама контекстная модель.
[0148] Например, для TU-размера 32×32, в области R1, представляющей TU 4×4, вычисление контекстов может использовать идентичный способ для вычисления контекстов, что и для фактической TU размера 4×4. Помимо этого, контекстная модель может быть совместно использована TU размера 4×4 и R1 TU размера 32×32, или смещение может применяться к контекстной модели для TU размера 4×4. Что касается R2, способ вычисления контекстов может быть совместно использован TU размера 8×8 и R2 TU размера 32×32. R3 представляет область TU 16×16, в то время как R4 представляет область TU 32×32. Потенциальное преимущество этого способа состоит в том, что идентичные единицы могут быть использованы для вычислений контекстов, и может учитываться дополнительная корреляция между встроенными областями и TU.
[0149] Альтернативно, с использованием встроенного разделения стиля, некоторые контекстные модели карты значимости могут быть совместно использованы для выделенных позиций всеми TU или некоторой группой TU. Например, контекстная модель, соответствующая DC-коэффициентам, может быть совместно использована всеми TU с размерами от 4×4 до 32×32. В качестве другого примера, контекстная модель, связанная с высокочастотными коэффициентами, может быть совместно использована всеми TU. В этих случаях, область R1, представляющая TU 4×4, в TU размера 32×32, может использовать идентичную контекстную модель для DC-коэффициентов и/или высокочастотных коэффициентов в качестве TU, имеющих любой из размеров в 4×4, 8×8, 16×16, 32×32 и т.п.
[0150] В качестве дополнительного примера, вместо совместного использования всеми TU, контекстная модель коэффициентов, описанных выше (например, DC- и/или высокочастотных коэффициентов), может быть совместно использована только поднабором или группой всех TU. Например, контекстная модель коэффициента может быть совместно использована только двумя размерами TU, к примеру, TU 4×4 и 8×8. В этом случае, область R1, представляющая TU 4×4, в TU размера 32×32 может использовать идентичную контекстную модель для DC-коэффициентов и/или высокочастотных коэффициентов в качестве TU, имеющих размер 4×4 и 8×8.
[0151] Таким образом, пример по фиг. 12 представляет пример, в котором видеокодер, к примеру, видеокодер 20 или видеодекодер 30, может быть сконфигурирован с возможностью определять область, в которой возникает коэффициент преобразования, из множества областей видеоблока, при этом каждая из областей соответствует соответствующему одному из множества размеров единиц преобразования (TU), при этом видеокодер определяет контекст посредством выбора контекста, который совместно используется областью и TU, имеющей размер, идентичный размеру области.
[0152] Фиг. 12 также представляет пример, в котором видеокодер, к примеру, видеокодер 20 или видеодекодер 30, может быть сконфигурирован с возможностью определять область, в которой возникает коэффициент преобразования, из множества областей видеоблока, при этом каждая из областей соответствует соответствующему одному из множества размеров единиц преобразования (TU), при этом для того, чтобы определять контекст, видеокодер выбирает совместно используемый контекст для выделенных позиций коэффициентов преобразования между двумя или более TU различных размеров, при этом область имеет размер, идентичный размеру одной из двух или более TU различных размеров. Совместно используемый контекст для выделенных позиций коэффициентов преобразования может содержать контекст для одного из DC-коэффициентов и высокочастотных коэффициентов, совместно используемых двумя или более TU различных размеров. Дополнительно или альтернативно, совместно используемый контекст для выделенных позиций коэффициентов преобразования может содержать совместно используемый контекст между первой TU, имеющей размер коэффициентов преобразования 4×4, и второй TU, имеющей размер коэффициентов преобразования 8×8.
[0153] Фиг. 13A и 13B являются концептуальными схемами, которые иллюстрируют примерные разделения видеоблока на две или более областей. Аналогично описанному выше относительно примеров, в которых области основаны на квадратных субблоках, например, 4×4, технологии этого раскрытия сущности также описывают способ классификации, чтобы разделять видеоблок, например, TU, на две или более областей на основе субблоков прямоугольной формы. Например, субблоки 2×8 и 8×2 могут быть использованы для видеоблока 8×8 в зависимости от сканирования коэффициентов, как показано на фиг. 13A и 13B. В этом примере, видеокодер применяет горизонтальное сканирование для коэффициентов в блоке, показанном на фиг. 13A, и вертикальное сканирование к блоку, показанному на фиг. 13B. В примерах, проиллюстрированных на фиг. 13A и 13B, один квадратный блок представляет всего один коэффициент, и размер всего видеоблока составляет 8×8.
[0154] Согласно технологиям этого раскрытия сущности, видеоблок может быть разделен на различные прямоугольные области, например, R1, R2, R3 и R4. Каждая из различных прямоугольных областей может иметь различное назначение контекста. Например, для некоторых областей, может быть использован фиксированный контекст. Эти области могут формироваться на основе прямоугольных субблоков (например, 2×8 или 8×2), описанных выше и показанных на фиг. 13A и 13B. Например, контекст может быть задан согласно позиции коэффициента в видеоблоке или согласно позиции прямоугольного субблока, который содержит этот коэффициент.
[0155] Альтернативно, контекстная модель может быть задана согласно соседним субблокам прямоугольной формы. Например, каждый коэффициент в идентичном прямоугольном субблоке может использовать один или несколько контекстов. Помимо этого, коэффициенты соседнего прямоугольного субблока также могут использовать один или несколько контекстов. Тем не менее, контексты одного прямоугольного субблока могут отличаться от предыдущих контекстов на основе прямоугольных субблоков. Также может быть использован гибридный тип контекстов, например, для некоторых областей контексты могут быть основаны на окружении, и для некоторых областей идентичного видеоблока они могут быть фиксированными или основанными на позиции. Преимущество подхода на основе позиции состоит в том, что необязательно вычислять контекст на основе коэффициентов, это может быть выполняться один раз для области. Кроме того, разделение может зависеть от позиций коэффициентов или позиции прямоугольного субблока, содержащего этот коэффициент.
[0156] Для коэффициента с координатами (X, Y), области могут быть заданы согласно позиции коэффициента. Например, если условие (X+Y>=пороговое значение) является истинным, то этот коэффициент может назначаться области R2; в противном случае, он может назначаться области R1. Аналогичным образом, это может выполняться на основе субблока прямоугольной формы, для субблока с координатами (X, Y), области могут быть заданы согласно позиции прямоугольного субблока. Например, если условие (X+Y>=пороговое значение) является истинным, то этот коэффициент может назначаться области R2, в противном случае, он может назначаться R1. Пороговое значение может задаваться фиксированно равным некоторому предварительно заданному значению, к примеру, целому числу (например, равному 0 или 1) или может зависеть от TU-размера.
[0157] Альтернативно, контекстная модель может отличаться для различных областей, но по-прежнему использовать идентичный способ для вычисления контекстов. Например, контекст может быть вычислен на основе окружения, но для других областей он использует смещение. Смещение может быть фиксированным, зависимым от размера видеоблока или зависимым от одного или более из следующего: позиция коэффициента в видеоблоке и/или прямоугольном субблоке, позиция прямоугольного субблока, содержащего текущий коэффициент в видеоблоке, или любая комбинация этих условий.
[0158] Для смещения, контекст может быть вычислен согласно уравнению (3).
[0159] Альтернативно, контекст может быть вычислен согласно функции с использованием Ctx в качестве ввода, например, Ctx=(Ctx+1)>>1.
[0160] Фиг. 14A и 14B являются концептуальными схемами, которые иллюстрируют примерное назначение смещений контекста для каждой области видеоблока. В этих примерах, области R1 и R2 задаются на основе прямоугольных субблоков и направления сканирования, и смещения отличаются для областей R1 и R2. Значения смещения offset1 и offset2 могут быть любыми целыми числами, например, offset1=0, offset2=3. Другие разделения на области также являются возможными. Например, число областей может превышать два. Следует отметить, что прямоугольные субблоки 2×8 и 8×2, в зависимости от направлений сканирования коэффициентов, использованы в этом раскрытии сущности в качестве примера. Аналогичные способы могут быть использованы для других субблоков прямоугольной формы с размером M×N без ограничения.
[0161] В общем, это раскрытие сущности описывает диагональное разделение видеоблоков, разделение видеоблоков на основе квадратных, например, 4×4, субблоков и разделение видеоблоков на основе прямоугольных, например, 2×8 и 8×2, субблоков. В других примерах, другие типы разделения являются возможными, и разделение может быть гибким на основе различных форм, например, прямоугольной, квадратной, треугольной и т.п., с различными размерами. Это раскрытие сущности также описывает разделение видеоблоков на любое число областей. Это раскрытие сущности дополнительно описывает группировку коэффициентов в области на основе квадратного субблока, прямоугольных субблоков или на основе других группировок, к примеру, диагональных разделений видеоблока. Пороговые значения и смещения, описанные выше, также предоставляются в качестве примера, другие значения или соседние зависимости могут быть использованы.
[0162] Аналогичные технологии, как описано в этом раскрытии сущности, могут быть использованы для неквадратных единиц преобразования или других форм единиц. Описанные технологии могут применяться к кодированию на основе карты значимости и к другому синтаксическому кодированию и кодированию на основе элементов выборки коэффициентов преобразования без ограничения. Помимо этого, это раскрытие сущности типично упоминает видеоблоки как TU-блоки, но технологии могут применяться к любой из TU, PU, CU, LCU или других групп блоков.
[0163] Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования текущего блока. Текущий блок может содержать текущую CU или часть текущей CU. Хотя описывается относительно видеокодера 20 (фиг. 1 и 2), следует понимать, что другие устройства могут быть сконфигурированы с возможностью осуществлять способ, аналогичный способу по фиг. 15.
[0164] В этом примере, видеокодер 20 первоначально прогнозирует текущий блок (150). Например, видеокодер 20 может вычислять одну или более единиц прогнозирования (PU) для текущего блока. Видеокодер 20 затем может вычислять остаточный блок для текущего блока, например, чтобы формировать единицу преобразования (TU) (152). Чтобы вычислять остаточный блок, видеокодер 20 может вычислять разность (т.е. попиксельные разности) между исходным некодированным блоком и прогнозированным блоком для текущего блока. Видеокодер 20 затем может преобразовывать и квантовать коэффициенты остаточного блока (154). Затем, видеокодер 20 может сканировать квантованные коэффициенты преобразования остаточного блока (156).
[0165] В ходе сканирования, видеокодер 20 может определять область, в которой возникает текущий коэффициент, и за счет этого видеокодер 20 может определять области, в которых возникают различные коэффициенты (158). В соответствии с технологиями этого раскрытия сущности, видеокодер 20 может определять области, в которых возникают коэффициенты, на основе, например, позиций коэффициентов или позиций субблоков, в которых возникают коэффициенты. Видеокодер 20 может определять области с использованием любой из технологий, описанных относительно фиг. 9-14, или других аналогичных технологий. Например, как показано на фиг. 9A, видеокодер 20 может быть сконфигурирован с возможностью определять то, возникает коэффициент в первой области, включающей в себя один или более субблоков, или во второй области, включающей в себя субблоки за пределами первой области.
[0166] Видеокодер 20 дополнительно может определять контексты для энтропийного кодирования коэффициентов основываясь на областях (160). Иными словами, видеокодер 20 может определять, для каждого коэффициента, контекст для кодирования коэффициента основываясь на области, в которой возникает коэффициент. Например, как пояснено выше, видеокодер 20 может определять контекст на основе позиции коэффициента в блоке, позиции субблока, включающего в себя коэффициент, в блоке, смещения, которое должно применяться к вычисленному контексту, и т.п., основываясь на области, в которой возникает коэффициент.
[0167] Аналогично, видеокодер 20 может энтропийно кодировать коэффициенты с использованием определенных контекстов (162). В частности, видеокодер 20 может энтропийно кодировать один или более элементов синтаксиса, представляющих коэффициенты, с использованием контекста. Например, видеокодер 20 может энтропийно кодировать одно или более из информации значимости для коэффициентов, информации уровня для значимых коэффициентов и/или информации знака для значимых коэффициентов. Информация значимости может содержать данные significant_coeff_flag. Информация уровня может содержать coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag и coeff_abs_level_remaining. Информация знака может содержать coeff_sign_flag. Видеокодер 20 затем может выводить энтропийно кодированные данные для коэффициентов (164).
[0168] Таким образом, способ по фиг. 15 представляет пример способа, включающего в себя определение контекста для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийное кодирование коэффициента преобразования с использованием определенного контекста. Кроме того, область может содержать одну из первой области, содержащей один или более верхних левых субблоков 4×4 коэффициентов преобразования видеоблока, и второй области, содержащей коэффициенты преобразования видеоблока за пределами первой области.
[0169] Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей примерный способ для декодирования текущего блока видеоданных. Текущий блок может содержать текущую CU или часть текущей CU. Хотя описывается относительно видеокодера 30 (фиг. 1 и 3), следует понимать, что другие устройства могут быть сконфигурированы с возможностью осуществлять способ, аналогичный способу по фиг. 16.
[0170] Видеодекодер 30 может прогнозировать текущий блок (200), например, с использованием режима внутреннего или внешнего прогнозирования для того, чтобы вычислять прогнозированный блок для текущего блока. Видеодекодер 30 также может принимать энтропийно кодированные данные для текущего блока, к примеру, энтропийно кодированные данные для коэффициентов остаточного блока, соответствующего текущему блоку (202).
[0171] В соответствии с технологиями этого раскрытия сущности, видеодекодер 30 может определять области, в которых возникают коэффициенты (204), например, в ходе процесса обратного сканирования и энтропийного декодирования. Иными словами, видеодекодер 30 может определять позицию следующего коэффициента преобразования на основе позиции ранее декодированного коэффициента преобразования и следующего значимого коэффициента преобразования в порядке сканирования. Видеодекодер 30 дополнительно может определять область блока, в которой возникает эта позиция. Видеодекодер 30 может аналогично определять области для каждого из коэффициентов аналогичным образом.
[0172] Кроме того, видеодекодер 30 может определять области, в которых возникают коэффициенты, на основе, например, позиций коэффициентов или позиций субблоков, в которых возникают коэффициенты. Видеодекодер 30 может определять области с использованием любой из технологий, описанных относительно фиг. 9-14, или других аналогичных технологий. Например, как показано на фиг. 9A, видеодекодер 30 может быть сконфигурирован с возможностью определять то, возникает коэффициент в первой области, включающей в себя один или более субблоков, или во второй области, включающей в себя субблоки за пределами первой области.
[0173] Кроме того, видеодекодер 30 может определять контексты для декодирования коэффициентов на основе определенных областей (206). Иными словами, видеодекодер 30 может определять, для каждого коэффициента, контекст для декодирования коэффициента основываясь на области, в которой возникает коэффициент. Например, как пояснено выше, видеодекодер 30 может определять контекст на основе позиции коэффициента в блоке, позиции субблока, включающего в себя коэффициент, в блоке, смещения, которое должно применяться к вычисленному контексту, и т.п., основываясь на области, в которой возникает коэффициент.
[0174] Видеодекодер 30 может энтропийно декодировать энтропийно кодированные данные, чтобы воспроизводить коэффициенты блока с использованием определенных контекстов (208). В частности, видеодекодер 30 может энтропийно декодировать один или более элементов синтаксиса, представляющих коэффициенты, с использованием контекста. Например, видеодекодер 30 может энтропийно декодировать одно или более из информации значимости для коэффициентов, информации уровня для значимых коэффициентов и/или информации знака для значимых коэффициентов. Информация значимости может содержать данные significant_coeff_flag. Информация уровня может содержать coeff_abs_level_greater1_flag, coeff_abs_level_greater2_flag и coeff_abs_level_remaining. Информация знака может содержать coeff_sign_flag. Видеодекодер 30 затем может повторно формировать блок (например, TU), который включает в себя декодированные коэффициенты преобразования в соответствующих позициях (210). Иными словами, как пояснено выше, видеодекодер 30 может обратно сканировать воспроизведенные коэффициенты, чтобы создавать блок квантованных коэффициентов преобразования.
[0175] Видеодекодер 30 затем может обратно квантовать и обратно преобразовывать коэффициенты, чтобы формировать остаточный блок (212). Видеодекодер 30 может, в конечном счете, декодировать текущий блок посредством комбинирования прогнозированного блока и остаточного блока (214). Иными словами, видеодекодер 30 может математически комбинировать пиксельные значения прогнозированного блока с совместно размещенными пиксельными значениями остаточного блока, чтобы декодировать и воспроизводить исходный блок.
[0176] Таким образом, способ по фиг. 16 представляет пример способа, включающего в себя определение контекста для кодирования коэффициента преобразования видеоблока основываясь на области видеоблока, в которой возникает коэффициент преобразования, и энтропийное кодирование коэффициента преобразования с использованием определенного контекста. Кроме того, область может содержать одну из первой области, содержащей один или более верхних левых субблоков 4×4 коэффициентов преобразования видеоблока, и второй области, содержащей коэффициенты преобразования видеоблока за пределами первой области.
[0177] В одном или более примеров, описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации вышеозначенного. При реализации в программном обеспечении, функции могут быть сохранены или переданы, в качестве одной или более инструкций или кода, по считываемому компьютером носителю и выполнены посредством аппаратного процессора. Считываемые компьютером носители могут включать в себя считываемые компьютером носители данных, которые соответствуют материальному носителю, такие как носители данных, или среды связи, включающие в себя любой носитель, который упрощает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители, в общем, могут соответствовать (1) материальному считываемому компьютером носителю хранения данных, который является энергонезависимым, или (2) среде связи, такой как сигнал или несущая. Носители данных могут быть любыми доступными носителями, к которым может осуществляться доступ посредством одного или более компьютеров или одного или более процессоров, с тем чтобы извлекать инструкции, код и/или структуры данных для реализации технологий, описанных в этом раскрытии сущности. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
[0178] В качестве примера, а не ограничения, эти считываемые компьютером носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может быть использован для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Так же, любое подключение корректно называть считываемым компьютером носителем. Например, если инструкции передаются из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включаются в определение носителя. Тем не менее, следует понимать, что считываемые компьютером носители данных и носители данных не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на энергонезависимые материальные носители данных. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число считываемых компьютером носителей.
[0179] Инструкции могут выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в пределах специализированных программных и/или аппаратных модулей, сконфигурированных с возможностью кодирования или декодирования либо встроенных в комбинированный кодек. Кроме того, технологии могут быть полностью реализованы в одной или более схем или логических элементов.
[0180] Технологии этого раскрытия сущности могут быть реализованы в широком спектре устройств или приборов, в том числе в беспроводном переносном телефоне, в интегральной схеме (IC) или в наборе IC (к примеру, в наборе микросхем). Различные компоненты, модули или блоки описываются в этом раскрытии сущности для того, чтобы подчеркивать функциональные аспекты устройств, сконфигурированных с возможностью осуществлять раскрытые технологии, но необязательно требуют реализации посредством различных аппаратных модулей. Наоборот, как описано выше, различные модули могут быть комбинированы в аппаратный модуль кодека или предоставлены посредством набора взаимодействующих аппаратных модулей, включающих в себя один или более процессоров, как описано выше, в сочетании с надлежащим программным обеспечением и/или микропрограммным обеспечением.
[0181] Описаны различные примеры. Эти и другие примеры находятся в пределах объема прилагаемой формулы изобретения.
Claims (52)
1. Способ декодирования видеоданных, при этом способ содержит этапы, на которых:
- определяют значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков;
- определяют, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован;
- используют значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно декодируют один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
- определяют значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков;
- определяют, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован;
- используют значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно декодируют один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
2. Способ по п. 1, в котором один или более соседних субблоков содержат правый соседний субблок и нижний соседний субблок.
3. Способ по п. 2, в котором определение контекста содержит этап, на котором вычисляют сумму значения для флага кодированного субблока правого соседнего субблока и значения для флага кодированного субблока нижнего соседнего субблока и используют вычисленную сумму для того, чтобы определять контекст.
4. Способ по п. 1, в котором флаги кодированных субблоков представляют то, включают или нет соответствующие из соседних субблоков в себя по меньшей мере один ненулевой коэффициент преобразования.
5. Способ по п. 1, в котором каждый из субблоков соответствует соответствующему блоку 4×4 коэффициентов преобразования, и при этом флаги кодированных субблоков указывают то, имеет или нет по меньшей мере один из коэффициентов преобразования в соответствующем блоке 4×4 ненулевое значение.
6. Способ по п. 1, в котором текущий субблок имеет размер 4×4, и при этом текущий субблок находится в текущей единице преобразования, имеющей размер, превышающий 4×4.
7. Способ по п. 1, в котором определение контекста дополнительно содержит этап, на котором определяют контекст для декодирования коэффициента преобразования на основе позиции коэффициента преобразования в текущем субблоке.
8. Способ по п. 1, в котором энтропийное декодирование коэффициента преобразования содержит этап, на котором энтропийно декодируют коэффициент преобразования согласно контекстно-адаптивному двоичному арифметическому кодированию (САВАС).
9. Способ по п. 1, в котором один или более синтаксических элементов содержат флаг значимого коэффициента отдельного коэффициента преобразования, представляющий то, имеет ли упомянутый отдельный коэффициент преобразования ненулевое значение.
10. Способ по п. 1, причем способ исполняется в устройстве беспроводной связи, при этом устройство содержит:
память, сконфигурированную с возможностью сохранения видеоданных, включающих в себя флаги кодированных субблоков, соседние субблоки и текущий блок;
процессор, сконфигурированный с возможностью исполнения инструкций для обработки видеоданных, хранимых в упомянутой памяти; и
приемник, сконфигурированный с возможностью приема видеоданных.
память, сконфигурированную с возможностью сохранения видеоданных, включающих в себя флаги кодированных субблоков, соседние субблоки и текущий блок;
процессор, сконфигурированный с возможностью исполнения инструкций для обработки видеоданных, хранимых в упомянутой памяти; и
приемник, сконфигурированный с возможностью приема видеоданных.
11. Способ по п. 10, при этом устройством беспроводной связи является сотовый телефон, а видеоданные принимаются передатчиком и модулируются согласно стандарту сотовой связи.
12. Устройство для декодирования видеоданных, причем устройство содержит:
память, сконфигурированную с возможностью хранения видеоданных; и
видеодекодер, сконфигурированный с возможностью:
определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока видеоданных, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков,
определять, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован,
использовать значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока, и
энтропийно декодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
память, сконфигурированную с возможностью хранения видеоданных; и
видеодекодер, сконфигурированный с возможностью:
определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока видеоданных, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков,
определять, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован,
использовать значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока, и
энтропийно декодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
13. Устройство по п. 12, в котором один или более соседних субблоков содержат правый соседний субблок и нижний соседний субблок.
14. Устройство по п. 13, в котором для того, чтобы определять контекст, видеодекодер сконфигурирован с возможностью вычислять сумму значения для флага кодированного субблока правого соседнего субблока и значения для флага кодированного субблока нижнего соседнего субблока и использовать вычисленную сумму для того, чтобы определять контекст.
15. Устройство по п. 12, в котором флаги кодированных субблоков представляют то, включают или нет соответствующие из соседних субблоков в себя по меньшей мере один ненулевой коэффициент преобразования.
16. Устройство по п. 12, в котором видеодекодер дополнительно сконфигурирован с возможностью определять контекст для декодирования коэффициента преобразования на основе позиции коэффициента преобразования в текущем субблоке.
17. Устройство по п. 12, в котором видеодекодер сконфигурирован с возможностью энтропийно декодировать коэффициент преобразования согласно контекстно-адаптивному двоичному арифметическому кодированию (САВАС).
18. Устройство по п. 12, в котором один или более синтаксических элементов содержат флаг значимого коэффициента отдельного коэффициента преобразования, представляющий то, имеет ли упомянутый отдельный коэффициент преобразования ненулевое значение.
19. Устройство по п. 12, при этом устройством является устройство беспроводной связи, дополнительно содержащее приемник, сконфигурированный с возможностью приема видеоданных.
20. Устройство по п. 19, при этом устройством беспроводной связи является сотовый телефон, а видеоданные принимаются передатчиком и модулируются согласно стандарту сотовой связи.
21. Устройство для декодирования видеоданных, при этом устройство содержит:
- средство для определения значений для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков;
- средство для определения, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован;
- средство для использования значений для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- средство для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
- средство для определения значений для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков;
- средство для определения, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован;
- средство для использования значений для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- средство для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
22. Устройство по п. 21, в котором один или более соседних субблоков содержат правый соседний субблок и нижний соседний субблок.
23. Устройство по п. 22, в котором средство для определения контекста содержит средство для вычисления суммы значения для флага кодированного субблока правого соседнего субблока и значения для флага кодированного субблока нижнего соседнего субблока, и средство для использования вычисленной суммы для того, чтобы определять контекст.
24. Устройство по п. 21, в котором флаги кодированных субблоков представляют то, включают или нет соответствующие из соседних субблоков в себя по меньшей мере один ненулевой коэффициент преобразования.
25. Устройство по п. 21, в котором средство для определения контекста дополнительно содержит средство для определения контекста для декодирования коэффициента преобразования на основе позиции коэффициента преобразования в текущем субблоке.
26. Устройство по п. 21, в котором средство для энтропийного декодирования коэффициента преобразования содержит средство для энтропийного декодирования коэффициента преобразования согласно контекстно-адаптивному двоичному арифметическому кодированию (CABAC).
27. Устройство по п. 21, в котором один или более синтаксических элементов содержат флаг значимого коэффициента отдельного коэффициента преобразования, представляющий то, имеет ли упомянутый отдельный коэффициент преобразования ненулевое значение.
28. Считываемый компьютером носитель данных, хранищий инструкции, которые при исполнении побуждают процессор:
- определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков;
- определять, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован;
- использовать значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно декодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
- определять значения для флагов кодированных субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодированных субблоков представляет то, кодирован ли соответствующий один из соседних субблоков;
- определять, что флаг кодированного субблока текущего субблока указывает, что текущий субблок кодирован;
- использовать значения для флагов кодированных субблоков соседних субблоков для определения контекста для энтропийного декодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно декодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
29. Способ кодирования видеоданных, при этом способ содержит этапы, на которых:
- определяют значения для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- кодируют значение для флага кодируемого субблока текущего субблока, которое указывает, что текущий субблок кодируется;
- используют значения для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно кодируют один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
- определяют значения для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- кодируют значение для флага кодируемого субблока текущего субблока, которое указывает, что текущий субблок кодируется;
- используют значения для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно кодируют один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
30. Способ по п. 29, в котором один или более соседних субблоков содержат правый соседний субблок и нижний соседний субблок.
31. Способ по п. 30, в котором определение контекста содержит этап, на котором вычисляют сумму значения для флага кодируемого субблока правого соседнего субблока и значения для флага кодируемого субблока нижнего соседнего субблока и используют вычисленную сумму для того, чтобы определять контекст.
32. Способ по п. 29, в котором флаги кодируемых субблоков представляют то, включают или нет соответствующие из соседних субблоков в себя по меньшей мере один ненулевой коэффициент преобразования.
33. Способ по п. 29, в котором каждый из субблоков соответствует соответствующему блоку 4×4 коэффициентов преобразования, и при этом флаги кодируемых субблоков указывают то, имеет или нет по меньшей мере один из коэффициентов преобразования в соответствующем блоке 4×4 ненулевое значение.
34. Способ по п. 29, в котором текущий субблок имеет размер 4×4, и при этом текущий субблок находится в текущей единице преобразования, имеющей размер, превышающий 4×4.
35. Способ по п. 29, в котором определение контекста дополнительно содержит этап, на котором определяют контекст для кодирования коэффициента преобразования на основе позиции коэффициента преобразования в текущем субблоке.
36. Способ по п. 29, в котором энтропийное кодирование коэффициента преобразования содержит этап, на котором энтропийно кодируют коэффициент преобразования согласно контекстно-адаптивному двоичному арифметическому кодированию (САВАС).
37. Способ по п. 29, в котором один или более синтаксических элементов содержат флаг значимого коэффициента отдельного коэффициента преобразования, представляющий то, имеет ли упомянутый отдельный коэффициент преобразования ненулевое значение.
38. Устройство для кодирования видеоданных, причем устройство содержит:
память, сконфигурированную с возможностью сохранения видеоданных; и
видеокодер, сконфигурированный с возможностью:
- определять значения для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока видеоданных, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- кодировать значение для флага кодируемого субблока текущего субблока, которое указывает, что текущий субблок кодируется;
- использовать значения для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно кодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
память, сконфигурированную с возможностью сохранения видеоданных; и
видеокодер, сконфигурированный с возможностью:
- определять значения для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока видеоданных, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- кодировать значение для флага кодируемого субблока текущего субблока, которое указывает, что текущий субблок кодируется;
- использовать значения для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно кодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
39. Устройство по п. 38, в котором один или более соседних субблоков содержат правый соседний субблок и нижний соседний субблок.
40. Устройство по п. 39, в котором для того, чтобы определять контекст, видеокодер сконфигурирован с возможностью вычислять сумму значения для флага кодируемого субблока правого соседнего субблока и значения для флага кодируемого субблока нижнего соседнего субблока и использовать вычисленную сумму для того, чтобы определять контекст.
41. Устройство по п. 38, в котором флаги кодируемых субблоков представляют то, включают или нет соответствующие из соседних субблоков в себя по меньшей мере один ненулевой коэффициент преобразования.
42. Устройство по п. 38, в котором видеокодер дополнительно сконфигурирован с возможностью определять контекст для декодирования коэффициента преобразования на основе позиции коэффициента преобразования в текущем субблоке.
43. Устройство по п. 38, в котором видеокодер сконфигурирован с возможностью энтропийно кодировать коэффициент преобразования согласно контекстно-адаптивному двоичному арифметическому кодированию (САВАС).
44. Устройство по п. 38, в котором один или более синтаксических элементов содержат флаг значимого коэффициента отдельного коэффициента преобразования, представляющий то, имеет ли упомянутый отдельный коэффициент преобразования ненулевое значение.
45. Устройство для кодирования видеоданных, при этом устройство содержит:
- средство для определения значений для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- средство для кодирования значения для флага кодируемого субблока текущего субблока, которое указывает, что текущий субблок кодируется;
- средство для использования значений для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- средство для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
- средство для определения значений для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- средство для кодирования значения для флага кодируемого субблока текущего субблока, которое указывает, что текущий субблок кодируется;
- средство для использования значений для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- средство для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
46. Устройство по п. 45, в котором один или более соседних субблоков содержат правый соседний субблок и нижний соседний субблок.
47. Устройство по п. 46, в котором средство для определения контекста содержит средство для вычисления суммы значения для флага кодируемого субблока правого соседнего субблока и значения для флага кодируемого субблока нижнего соседнего субблока, и средство для использования вычисленной суммы для того, чтобы определять контекст.
48. Устройство по п. 45, в котором флаги кодируемых субблоков представляют то, включают или нет соответствующие из соседних субблоков в себя по меньшей мере один ненулевой коэффициент преобразования.
49. Устройство по п. 45, в котором средство для определения контекста дополнительно содержит средство для определения контекста для кодирования коэффициента преобразования на основе позиции коэффициента преобразования в текущем субблоке.
50. Устройство по п. 45, в котором средство для энтропийного кодирования коэффициента преобразования содержит средство для энтропийного кодирования коэффициента преобразования согласно контекстно-адаптивному двоичному арифметическому кодированию (САВАС).
51. Устройство по п. 45, в котором один или более синтаксических элементов содержат флаг значимого коэффициента отдельного коэффициента преобразования, представляющий то, имеет ли упомянутый отдельный коэффициент преобразования ненулевое значение.
52. Считываемый компьютером носитель данных, хранящий инструкции, которые при исполнении побуждают процессор:
- определять значения для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- кодировать флаг кодируемого субблока текущего субблока, который указывает, что текущий субблок кодируется;
- использовать значения для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно кодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
- определять значения для флагов кодируемых субблоков одного или более соседних субблоков относительно текущего субблока, причем каждый из флагов кодируемых субблоков представляет то, кодируется ли соответствующий один из соседних субблоков;
- кодировать флаг кодируемого субблока текущего субблока, который указывает, что текущий субблок кодируется;
- использовать значения для флагов кодируемых субблоков соседних субблоков для определения контекста для энтропийного кодирования одного или более синтаксических элементов отдельного коэффициента преобразования текущего субблока; и
- энтропийно кодировать один или более синтаксических элементов отдельного коэффициента преобразования с использованием определенного контекста.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261586668P | 2012-01-13 | 2012-01-13 | |
US61/586,668 | 2012-01-13 | ||
US201261588595P | 2012-01-19 | 2012-01-19 | |
US61/588,595 | 2012-01-19 | ||
US201261597097P | 2012-02-09 | 2012-02-09 | |
US61/597,097 | 2012-02-09 | ||
US13/738,602 US9621894B2 (en) | 2012-01-13 | 2013-01-10 | Determining contexts for coding transform coefficient data in video coding |
US13/738,602 | 2013-01-10 | ||
PCT/US2013/021278 WO2013106739A2 (en) | 2012-01-13 | 2013-01-11 | Determining contexts for coding transform coefficient data in video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2014133154A RU2014133154A (ru) | 2016-03-10 |
RU2595897C2 true RU2595897C2 (ru) | 2016-08-27 |
Family
ID=48779949
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014133158A RU2014133158A (ru) | 2012-01-13 | 2013-01-11 | Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео |
RU2014133154/08A RU2595897C2 (ru) | 2012-01-13 | 2013-01-11 | Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео |
RU2014133162/08A RU2603537C2 (ru) | 2012-01-13 | 2013-01-11 | Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014133158A RU2014133158A (ru) | 2012-01-13 | 2013-01-11 | Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014133162/08A RU2603537C2 (ru) | 2012-01-13 | 2013-01-11 | Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео |
Country Status (18)
Country | Link |
---|---|
US (3) | US9253481B2 (ru) |
EP (3) | EP2803196A2 (ru) |
JP (3) | JP6046164B2 (ru) |
KR (3) | KR101721302B1 (ru) |
CN (3) | CN104054340A (ru) |
AU (3) | AU2013207752B2 (ru) |
BR (3) | BR112014017000A8 (ru) |
CA (3) | CA2863011C (ru) |
HK (2) | HK1198404A1 (ru) |
IL (3) | IL233162A (ru) |
MY (2) | MY166883A (ru) |
PH (3) | PH12014501465A1 (ru) |
RU (3) | RU2014133158A (ru) |
SG (4) | SG11201403342YA (ru) |
TW (3) | TWI559736B (ru) |
UA (1) | UA114418C2 (ru) |
WO (3) | WO2013106710A2 (ru) |
ZA (1) | ZA201405688B (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2653289C1 (ru) * | 2016-12-07 | 2018-05-07 | Владимир Леонидович Карякин | Способ повышения качества канала передачи данных в системе iptv по коэффициенту ber в режиме тв вещания и устройство для его осуществления |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9497472B2 (en) | 2010-11-16 | 2016-11-15 | Qualcomm Incorporated | Parallel context calculation in video coding |
US20120163456A1 (en) | 2010-12-22 | 2012-06-28 | Qualcomm Incorporated | Using a most probable scanning order to efficiently code scanning order information for a video block in video coding |
SI2728866T1 (sl) * | 2011-06-28 | 2019-03-29 | Samsung Electronics Co., Ltd. | Postopek dekodiranja videa z uporabo aritmetičnega dekodiranja |
WO2013070974A2 (en) | 2011-11-08 | 2013-05-16 | General Instrument Corporation | Method of determining binary codewords for transform coefficients |
EP2805497A1 (en) | 2012-01-21 | 2014-11-26 | Motorola Mobility LLC | Method of determining binary codewords for transform coefficients |
US9866829B2 (en) * | 2012-01-22 | 2018-01-09 | Qualcomm Incorporated | Coding of syntax elements that correspond to coefficients of a coefficient block in video coding |
US9479780B2 (en) * | 2012-02-01 | 2016-10-25 | Google Technology Holdings LLC | Simplification of significance map coding |
EP3328086A1 (en) | 2012-02-04 | 2018-05-30 | Google Technology Holdings LLC | Devices and methods for context reduction in last significant coefficient position coding |
US20140003488A1 (en) * | 2012-06-30 | 2014-01-02 | Research In Motion Limited | Position-based context selection for greater-than-one flag decoding and encoding |
US9854235B2 (en) * | 2012-08-31 | 2017-12-26 | Blackberry Limited | Methods and devices for entropy coding in scalable video compression |
US9813737B2 (en) | 2013-09-19 | 2017-11-07 | Blackberry Limited | Transposing a block of transform coefficients, based upon an intra-prediction mode |
US9215464B2 (en) | 2013-09-19 | 2015-12-15 | Blackberry Limited | Coding position data for the last non-zero transform coefficient in a coefficient group |
KR102250088B1 (ko) * | 2013-10-24 | 2021-05-10 | 삼성전자주식회사 | 비디오 스트림을 복호화하는 방법 및 장치 |
GB2524726B (en) * | 2014-03-25 | 2018-05-23 | Canon Kk | Image data encapsulation with tile support |
WO2016064185A1 (ko) * | 2014-10-21 | 2016-04-28 | 엘지전자(주) | 최적화 함수를 이용하여 그래프 기반 예측을 수행하는 방법 및 장치 |
US9781424B2 (en) | 2015-01-19 | 2017-10-03 | Google Inc. | Efficient context handling in arithmetic coding |
US10306229B2 (en) * | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
KR20180039578A (ko) | 2015-09-08 | 2018-04-18 | 삼성전자주식회사 | 엔트로피 부호화 및 복호화를 위한 장치 및 방법 |
ES2710234B1 (es) * | 2015-09-11 | 2020-03-09 | Kt Corp | Procedimiento y dispositivo para procesar señales de vídeo |
US10440399B2 (en) * | 2015-11-13 | 2019-10-08 | Qualcomm Incorporated | Coding sign information of video data |
US10542267B2 (en) | 2016-01-21 | 2020-01-21 | Samsung Display Co., Ltd. | Classification preserving image transform compression |
WO2017135661A1 (ko) * | 2016-02-01 | 2017-08-10 | 엘지전자 주식회사 | 그래프 기반 분리 가능한 변환 (graph-based separable transform)을 이용하여 비디오 신호를 인코딩 / 디코딩하는 방법 및 장치 |
CN116915988A (zh) | 2016-04-29 | 2023-10-20 | 世宗大学校产学协力团 | 视频信号编码/解码方法和设备 |
CN113810700B (zh) | 2016-04-29 | 2024-07-02 | 世宗大学校产学协力团 | 用于对图像信号进行编码和解码的方法和装置 |
CN109328461B (zh) | 2016-04-29 | 2023-09-05 | 世宗大学校产学协力团 | 视频信号编码/解码方法和设备 |
EP3270594A1 (en) * | 2016-07-15 | 2018-01-17 | Thomson Licensing | Method and apparatus for advanced cabac context adaptation for last coefficient coding |
CN117412037A (zh) | 2016-08-31 | 2024-01-16 | 株式会社Kt | 用于处理视频信号的方法和设备 |
TWI635742B (zh) * | 2017-01-09 | 2018-09-11 | 晨星半導體股份有限公司 | 動態影像編碼裝置及動態影像編碼方法 |
US10194147B2 (en) * | 2017-01-19 | 2019-01-29 | Google Llc | DC coefficient sign coding scheme |
AU2018252853A1 (en) * | 2017-04-13 | 2019-12-05 | Lg Electronics Inc. | Image encoding/decoding method and device therefor |
US10764582B2 (en) * | 2017-06-29 | 2020-09-01 | Qualcomm Incorporated | Reducing seam artifacts in 360-degree video |
US10484695B2 (en) | 2017-10-23 | 2019-11-19 | Google Llc | Refined entropy coding for level maps |
EP3499885B1 (en) * | 2017-12-18 | 2024-07-17 | Canon Kabushiki Kaisha | Method and device for encoding video data |
US10298895B1 (en) * | 2018-02-15 | 2019-05-21 | Wipro Limited | Method and system for performing context-based transformation of a video |
EP3562156A1 (en) * | 2018-04-27 | 2019-10-30 | InterDigital VC Holdings, Inc. | Method and apparatus for adaptive context modeling in video encoding and decoding |
US10645381B2 (en) | 2018-04-30 | 2020-05-05 | Google Llc | Intra-prediction for smooth blocks in image/video |
US11509890B2 (en) * | 2018-07-24 | 2022-11-22 | Hfi Innovation Inc. | Methods and apparatus for entropy coding and decoding aspects of video data |
RU2766571C1 (ru) * | 2018-09-23 | 2022-03-15 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ кодирования/декодирования видеосигналов и устройство для этого |
CN112956205B (zh) | 2018-10-05 | 2024-06-11 | 罗斯德尔动力有限责任公司 | 变换系数编码方法及其装置 |
CN116886915A (zh) * | 2018-10-05 | 2023-10-13 | Lg电子株式会社 | 图像编码/解码方法、存储介质及数据传输方法 |
US11323748B2 (en) | 2018-12-19 | 2022-05-03 | Qualcomm Incorporated | Tree-based transform unit (TU) partition for video coding |
US11025937B2 (en) * | 2019-03-16 | 2021-06-01 | Tencent America LLC | Method and apparatus for video coding |
US11218735B2 (en) | 2019-04-02 | 2022-01-04 | Qualcomm Incorporated | Context derivation for last position coding for video coding |
CN113711613A (zh) * | 2019-04-19 | 2021-11-26 | 字节跳动有限公司 | 变换跳过模式的上下文编解码 |
CN113728642B (zh) | 2019-04-24 | 2024-04-02 | 字节跳动有限公司 | 编解码视频的量化残差差分脉冲编解码调制表示 |
CN113055683B (zh) | 2019-06-24 | 2022-11-01 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN114631317B (zh) | 2019-10-18 | 2024-03-15 | 北京字节跳动网络技术有限公司 | 子图片的参数集信令中的语法约束 |
US11375220B2 (en) * | 2019-11-27 | 2022-06-28 | Tencent America LLC | Method and apparatus for video decoding using a nominal directional mode and an angular offset |
US11206428B1 (en) * | 2020-07-14 | 2021-12-21 | Tencent America LLC | Method and apparatus for frequency-dependent joint component secondary transform |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2417518C2 (ru) * | 2005-08-12 | 2011-04-27 | Майкрософт Корпорейшн | Эффективное кодирование и декодирование блоков преобразования |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6680974B1 (en) | 1999-12-02 | 2004-01-20 | Lucent Technologies Inc. | Methods and apparatus for context selection of block transform coefficients |
US6856701B2 (en) | 2001-09-14 | 2005-02-15 | Nokia Corporation | Method and system for context-based adaptive binary arithmetic coding |
US7379608B2 (en) | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
KR100612015B1 (ko) * | 2004-07-22 | 2006-08-11 | 삼성전자주식회사 | 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치 |
US8320453B2 (en) | 2005-07-08 | 2012-11-27 | Lg Electronics Inc. | Method for modeling coding information of a video signal to compress/decompress the information |
RU2371881C1 (ru) | 2005-07-08 | 2009-10-27 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации |
WO2007035056A1 (en) | 2005-09-26 | 2007-03-29 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding and entropy decoding fine-granularity scalability layer video data |
KR100873636B1 (ko) | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
KR101356733B1 (ko) | 2007-03-07 | 2014-02-05 | 삼성전자주식회사 | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 |
CN101321283B (zh) * | 2007-06-10 | 2010-04-07 | 华为技术有限公司 | 兼容不同大小块变换的编解码方法及编解码器 |
US9008171B2 (en) | 2008-01-08 | 2015-04-14 | Qualcomm Incorporated | Two pass quantization for CABAC coders |
KR101375668B1 (ko) | 2008-03-17 | 2014-03-18 | 삼성전자주식회사 | 변환 계수의 부호화, 복호화 방법 및 장치 |
US8831087B2 (en) * | 2008-10-06 | 2014-09-09 | Qualcomm Incorporated | Efficient prediction mode selection |
US8576916B2 (en) * | 2008-10-08 | 2013-11-05 | Qualcomm Incorporated | Method and apparatus for reducing bus traffic of a texture decoding module in a video decoder |
US20100174539A1 (en) | 2009-01-06 | 2010-07-08 | Qualcomm Incorporated | Method and apparatus for vector quantization codebook search |
WO2010090484A2 (ko) | 2009-02-09 | 2010-08-12 | 삼성전자 주식회사 | 저복잡도 주파수 변환을 이용한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
US8780999B2 (en) | 2009-06-12 | 2014-07-15 | Qualcomm Incorporated | Assembling multiview video coding sub-BITSTREAMS in MPEG-2 systems |
US8665964B2 (en) | 2009-06-30 | 2014-03-04 | Qualcomm Incorporated | Video coding based on first order prediction and pre-defined second order prediction mode |
US8914835B2 (en) | 2009-10-28 | 2014-12-16 | Qualcomm Incorporated | Streaming encoded video data |
CN114143553A (zh) | 2010-04-13 | 2022-03-04 | Ge视频压缩有限责任公司 | 显著性图和变换系数块的编码 |
KR102310816B1 (ko) | 2010-05-12 | 2021-10-13 | 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 | 통합된 유효성 맵 코딩을 위한 방법 및 장치 |
US8913666B2 (en) | 2010-10-01 | 2014-12-16 | Qualcomm Incorporated | Entropy coding coefficients using a joint context model |
US9313514B2 (en) | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
US20120082235A1 (en) | 2010-10-05 | 2012-04-05 | General Instrument Corporation | Coding and decoding utilizing context model selection with adaptive scan pattern |
US8687904B2 (en) | 2011-01-14 | 2014-04-01 | Panasonic Corporation | Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding |
US8953690B2 (en) | 2011-02-16 | 2015-02-10 | Google Technology Holdings LLC | Method and system for processing video data |
US8891630B2 (en) * | 2011-10-24 | 2014-11-18 | Blackberry Limited | Significance map encoding and decoding using partition set based context assignment |
US8964849B2 (en) * | 2011-11-01 | 2015-02-24 | Blackberry Limited | Multi-level significance maps for encoding and decoding |
HUE043461T2 (hu) | 2011-11-01 | 2019-08-28 | Velos Media Int Ltd | Többszintû szignifikancia térképek kódoláshoz és dekódoláshoz |
CA2773990C (en) * | 2011-11-19 | 2015-06-30 | Research In Motion Limited | Multi-level significance map scanning |
CN104067614B (zh) | 2011-12-28 | 2018-07-27 | 夏普株式会社 | 算术解码装置、图像解码装置以及算术编码装置 |
-
2013
- 2013-01-10 US US13/738,574 patent/US9253481B2/en active Active
- 2013-01-10 US US13/738,534 patent/US20130182772A1/en not_active Abandoned
- 2013-01-10 US US13/738,602 patent/US9621894B2/en active Active
- 2013-01-11 CA CA2863011A patent/CA2863011C/en active Active
- 2013-01-11 AU AU2013207752A patent/AU2013207752B2/en active Active
- 2013-01-11 TW TW102101279A patent/TWI559736B/zh active
- 2013-01-11 CA CA2863019A patent/CA2863019C/en active Active
- 2013-01-11 SG SG11201403342YA patent/SG11201403342YA/en unknown
- 2013-01-11 MY MYPI2014701861A patent/MY166883A/en unknown
- 2013-01-11 KR KR1020147022371A patent/KR101721302B1/ko active IP Right Grant
- 2013-01-11 EP EP13701321.5A patent/EP2803196A2/en not_active Withdrawn
- 2013-01-11 CN CN201380005233.4A patent/CN104054340A/zh active Pending
- 2013-01-11 KR KR1020147022372A patent/KR102187013B1/ko active IP Right Grant
- 2013-01-11 JP JP2014552336A patent/JP6046164B2/ja active Active
- 2013-01-11 CN CN201380005235.3A patent/CN104041029B/zh active Active
- 2013-01-11 CA CA2863043A patent/CA2863043A1/en not_active Abandoned
- 2013-01-11 RU RU2014133158A patent/RU2014133158A/ru unknown
- 2013-01-11 CN CN201380005229.8A patent/CN104041033B/zh active Active
- 2013-01-11 TW TW102101280A patent/TWI532382B/zh active
- 2013-01-11 UA UAA201409067A patent/UA114418C2/uk unknown
- 2013-01-11 WO PCT/US2013/021234 patent/WO2013106710A2/en active Application Filing
- 2013-01-11 EP EP13701192.0A patent/EP2803195A2/en active Pending
- 2013-01-11 JP JP2014552329A patent/JP2015507429A/ja active Pending
- 2013-01-11 SG SG11201403343RA patent/SG11201403343RA/en unknown
- 2013-01-11 BR BR112014017000A patent/BR112014017000A8/pt not_active Application Discontinuation
- 2013-01-11 MY MYPI2014701862A patent/MY172757A/en unknown
- 2013-01-11 SG SG10201605387XA patent/SG10201605387XA/en unknown
- 2013-01-11 JP JP2014552342A patent/JP6266535B2/ja active Active
- 2013-01-11 KR KR1020147022370A patent/KR20140116194A/ko not_active Application Discontinuation
- 2013-01-11 WO PCT/US2013/021261 patent/WO2013106729A2/en active Application Filing
- 2013-01-11 RU RU2014133154/08A patent/RU2595897C2/ru active
- 2013-01-11 SG SG11201403341PA patent/SG11201403341PA/en unknown
- 2013-01-11 AU AU2013207804A patent/AU2013207804A1/en not_active Abandoned
- 2013-01-11 TW TW102101282A patent/TW201336317A/zh unknown
- 2013-01-11 RU RU2014133162/08A patent/RU2603537C2/ru active
- 2013-01-11 WO PCT/US2013/021278 patent/WO2013106739A2/en active Application Filing
- 2013-01-11 AU AU2013207823A patent/AU2013207823B2/en active Active
- 2013-01-11 EP EP13701191.2A patent/EP2803194B1/en active Active
- 2013-01-11 BR BR112014017121-1A patent/BR112014017121B1/pt active IP Right Grant
- 2013-01-11 BR BR112014017118-1A patent/BR112014017118B1/pt active IP Right Grant
-
2014
- 2014-06-16 IL IL233162A patent/IL233162A/en active IP Right Grant
- 2014-06-16 IL IL233161A patent/IL233161A0/en unknown
- 2014-06-16 IL IL233160A patent/IL233160A/en active IP Right Grant
- 2014-06-25 PH PH12014501465A patent/PH12014501465A1/en unknown
- 2014-06-25 PH PH12014501467A patent/PH12014501467B1/en unknown
- 2014-07-02 PH PH12014501530A patent/PH12014501530B1/en unknown
- 2014-07-31 ZA ZA2014/05688A patent/ZA201405688B/en unknown
- 2014-11-24 HK HK14111883A patent/HK1198404A1/xx unknown
- 2014-11-24 HK HK14111885A patent/HK1198405A1/xx unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2417518C2 (ru) * | 2005-08-12 | 2011-04-27 | Майкрософт Корпорейшн | Эффективное кодирование и декодирование блоков преобразования |
Non-Patent Citations (1)
Title |
---|
N. NGUYEN et al. "Multi-level Significant Maps for Large Transform Units", JCTVC-G644, опубл. 26.11.2011 на 14 страницах [найдено 06.10.2015], найдено в Интернет по адресу URL:http://wftp3.itu.int/av-arch/jctvc-site/2011_11_G_Geneva/. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2653289C1 (ru) * | 2016-12-07 | 2018-05-07 | Владимир Леонидович Карякин | Способ повышения качества канала передачи данных в системе iptv по коэффициенту ber в режиме тв вещания и устройство для его осуществления |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2595897C2 (ru) | Определение контекстов для кодирования данных коэффициентов преобразования при кодировании видео | |
JP6882560B2 (ja) | 画像予測方法および装置 | |
RU2584498C2 (ru) | Видеокодирование интра-режима | |
JP6231109B2 (ja) | コンテキスト適応型、マルチレベル有意性コーディングに関するコンテキスト導出 | |
US9503715B2 (en) | Constrained intra prediction in video coding | |
US9167269B2 (en) | Determining boundary strength values for deblocking filtering for video coding | |
US9451277B2 (en) | Restriction of prediction units in B slices to uni-directional inter prediction | |
RU2604421C2 (ru) | Сканирование коэффициентов при кодировании видео | |
CN112514386B (zh) | 网格编解码量化系数编解码 | |
TW201352004A (zh) | 轉換係數寫碼 | |
TW201517599A (zh) | 內部運動補償延伸 | |
JP2015516770A (ja) | ビデオコーディングにおける量子化行列のための均一粒度 | |
KR20140028124A (ko) | 리프 레벨 코딩 단위의 서브셋들에 대한 변환 계수들에 대한 구문 엘리먼트들의 시그널링 | |
TW201505421A (zh) | 基於位元深度之取樣適應性偏移縮放 | |
JP2022511827A (ja) | フレーム間予測方法及び関連する装置 | |
RU2804871C2 (ru) | Способ и устройство предсказания изображений | |
UA112674C2 (uk) | Визначення контекстів для кодування даних коефіцієнтів перетворення при кодуванні відео |