RU2679201C2 - Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных - Google Patents

Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных Download PDF

Info

Publication number
RU2679201C2
RU2679201C2 RU2017110397A RU2017110397A RU2679201C2 RU 2679201 C2 RU2679201 C2 RU 2679201C2 RU 2017110397 A RU2017110397 A RU 2017110397A RU 2017110397 A RU2017110397 A RU 2017110397A RU 2679201 C2 RU2679201 C2 RU 2679201C2
Authority
RU
Russia
Prior art keywords
ctu
current
block
image
line
Prior art date
Application number
RU2017110397A
Other languages
English (en)
Other versions
RU2017110397A (ru
RU2017110397A3 (ru
Inventor
Бинь ЛИ
Цзичжэн СЮЙ
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2017110397A publication Critical patent/RU2017110397A/ru
Publication of RU2017110397A3 publication Critical patent/RU2017110397A3/ru
Application granted granted Critical
Publication of RU2679201C2 publication Critical patent/RU2679201C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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 an image region, e.g. an object
    • H04N19/174Methods 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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в ускорении кодирования при использовании режима внутреннего копирования для текущего изображения. Способ кодирования изображения, используемый в вычислительной системе, в котором кодируют изображение при активированной волновой параллельной обработке (WPP), при этом кодирование формирует закодированные данные, что включает в себя, для прогнозирования с внутренним блочным копированием, этап, на котором принудительно активируют одно или более ограничений, совместимых с WPP, причем одно или более ограничений включает в себя ограничение, что значение горизонтального сдвига от опорной области до текущей области меньше или равно значению вертикального сдвига от текущей области до опорной области; и выводят закодированные данные в качестве части потока битов. 6 н. и 10 з.п. ф-лы, 22 ил.

Description

Уровень техники
[001] Специалисты используют сжатие (также называемое "исходной кодировкой" или "исходным кодированием"), чтобы уменьшать скорость передачи битов цифрового видео. Сжатие снижает затраты на хранение и передачу видеоинформации посредством преобразования информации в форму с более низкой скоростью передачи битов. Распаковка (также называемая "декодированием") восстанавливает версию исходной информации из сжатой формы. "Кодек" представляет собой систему кодера/декодера.
[002] За последние 25 лет приняты различные стандарты видеокодеков, включающие в себя стандарты ITU-T H.261, H.262 (MPEG-2 или ISO/IEC 13818-2), H.263 и H.264 (MPEG-4 AVC или ISO/IEC 14496-10), стандарты MPEG-1 (ISO/IEC 11172-2) и MPEG-4 Visual (ISO/IEC 14496-2) и стандарт SMPTE 421M (VC-1). Позднее, утвержден H.265/HEVC-стандарт (ITU-T H.265 или ISO/IEC 23008-2). В настоящее время разрабатываются расширения для H.265/HEVC-стандарта (например, для масштабируемого кодирования/декодирования видео, для кодирования/декодирования видео с более высокой точностью воспроизведения с точки зрения выборочной битовой глубины или частоты дискретизации сигнала цветности, для контента захвата экрана или для многовидового кодирования/декодирования). Стандарт видеокодеков типично задает опции для синтаксиса закодированного потока видеобитов, детализируя параметры в потоке битов, когда конкретные признаки используются при кодировании и декодировании. Во многих случаях, стандарт видеокодеков также предоставляет подробную информацию касательно операций декодирования, которые должен выполнять декодер, чтобы достигать надлежащих результатов декодирования. Помимо стандартов кодеков, различные собственные форматы кодеков задают другие опции для синтаксиса закодированного потока видеобитов и соответствующих операций декодирования.
[003] Волновая параллельная обработка (WPP) представляет собой инструментальное средство, доступное для кодирования и декодирования в H.265/HEVC-стандарте. Когда WPP активируется, часть изображения разделяется на строки специальных секций, называемых "единицами дерева кодирования (CTU)". В ходе кодирования или декодирования, первая строка CTU может обрабатываться "CTU за CTU", слева направо. Обработка (кодирование или декодирование) вторых строк CTU не должна ожидать завершения обработки для первой строки CTU. Вместо этого, обработка второй строки может начинаться после того, как обработка завершается для нескольких CTU первой строки, которые предоставляют информацию, используемую при обработке начальной CTU второй строки. Аналогично, обработка третьей строки CTU может начинаться после того, как обработка завершается для нескольких CTU второй строки. WPP упрощает параллельную обработку различных строк CTU. Различные подпроцессы или ядра обработки могут выполнять обработку для различных строк CTU на основе временной задержки со сдвигом.
[004] Внутреннее блочное копирование (BC) представляет собой разрабатываемый режим прогнозирования для расширений H.265/HEVC. Для режима прогнозирования с внутренним BC, значения выборок текущего блока изображения прогнозируются с использованием ранее восстановленных значений выборок в том же изображении. Блочный вектор (BV) указывает сдвиг от текущего блока до опорного блока изображения, которое включает в себя ранее восстановленные значения выборок, используемые для прогнозирования. BV передается в служебных сигналах в потоке битов. Прогнозирование с внутренним BC представляет собой форму внутрикадрового прогнозирования, причем прогнозирование с внутренним BC для блока изображения не использует значения выборок, за исключением значений выборок в том же изображении. Режим внутреннего строкового копирования (SC) и режим внутреннего линейного копирования (LC) являются другими примерами режимов внутрикадрового прогнозирования, которые, аналогично режиму внутреннего BC, используют значение смещения для того, чтобы указывать сдвиг до позиции в ранее восстановленных значениях выборок, используемых для прогнозирования. Режим палитрового прогнозирования, который является другим примером режима внутрикадрового прогнозирования, прогнозирует палитру, используемую для того, чтобы представлять цвета в такой секции, как единица кодирования (CU). Как указано в настоящее время для расширений H.265/HEVC-стандарта, различные режимы внутрикадрового прогнозирования не используются эффективно, когда WPP активируется.
Сущность изобретения
[005] В общих словах, подробное описание представляет новшества в правилах, принудительно активированных для режимов внутрикадрового прогнозирования, когда волновая параллельная обработка (WPP) активируется. Синтаксический элемент в потоке битов может указывать то, активируется или нет WPP для видеопоследовательности, набора изображений или изображения. Новшества упрощают использование режимов внутрикадрового прогнозирования, к примеру, режима палитрового прогнозирования, режима внутреннего блочного копирования, режима внутреннего линейного копирования и режима внутреннего строкового копирования, посредством кодера или декодера, когда WPP активируется.
[006] Согласно одному аспекту новшеств, описанных в данном документе, кодер кодирует изображение при активированной WPP. Кодирование формирует закодированные данные. Для режима палитрового кодирования кодер прогнозирует палитру для начальной единицы в текущей WPP-строке изображения с использованием предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке изображения. Кодер выводит закодированные данные в качестве части потока битов.
[007] Соответствующий декодер принимает закодированные данные в качестве части потока битов. Декодер декодирует закодированные данные при активированной WPP. Декодирование восстанавливает изображение. Для режима палитрового декодирования, декодер прогнозирует палитру для начальной единицы в текущей WPP-строке изображения с использованием предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке изображения.
[008] Согласно другому аспекту новшеств, описанных в данном документе, кодер кодирует изображение при активированной WPP. Кодирование формирует закодированные данные. Для режима внутреннего копирования (например, режима внутреннего блочного копирования, режима внутреннего строкового копирования, режима внутреннего линейного копирования), кодер принудительно активирует одно или более ограничений, обусловленных WPP. Кодер выводит закодированные данные в качестве части потока битов.
[009] Соответствующий декодер принимает закодированные данные в качестве части потока битов. Для режима внутреннего копирования (например, режима внутреннего блочного копирования, режима внутреннего строкового копирования, режима внутреннего линейного копирования), закодированные данные удовлетворяют одному или более ограничений, обусловленных WPP. Декодер декодирует закодированные данные при активированной WPP. Декодирование восстанавливает изображение.
[010] Новшества могут реализовываться в качестве части способа, в качестве части вычислительной системы, сконфигурированной с возможностью осуществлять способ, или в качестве части материальных машиночитаемых носителей, хранящих машиноисполняемые инструкции для вынуждения вычислительной системы осуществлять способ. Различные новшества могут использоваться в комбинации или отдельно. Эта сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность не предназначена для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявленной сущности изобретения, как и не предназначена для использования таким образом, чтобы ограничивать объем заявляемой сущности изобретения. Вышеприведенные и другие цели, признаки и преимущества изобретения должны становиться более очевидными из нижеприведенного подробного описания, которое приводится со ссылками на прилагаемые чертежи.
Краткое описание чертежей
[011] Фиг. 1 является схемой примерной вычислительной системы, в которой могут реализовываться некоторые описанные варианты осуществления.
[012] Фиг. 2a и 2b являются схемами примерных сетевых окружений, в которых могут реализовываться некоторые описанные варианты осуществления.
[013] Фиг. 3 является схемой примерной системы кодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления.
[014] Фиг. 4 является схемой примерной системы декодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления.
[015] Фиг. 5a и 5b являются схемами, иллюстрирующими примерный видеокодер, в сочетании с которым могут реализовываться некоторые описанные варианты осуществления.
[016] Фиг. 6 является схемой, иллюстрирующей примерный видеодекодер, в сочетании с которым могут реализовываться некоторые описанные варианты осуществления.
[017] Фиг. 7 является схемой, иллюстрирующей синхронизацию WPP, а фиг. 8 является схемой, иллюстрирующей восстановленный контент, который может использоваться для прогнозирования, когда WPP активируется.
[018] Фиг. 9 и 10 являются схемами, иллюстрирующими аспекты палитрового прогнозирования, согласно некоторым описанным вариантам осуществления.
[019] Фиг. 11 и 12 являются блок-схемами последовательности операций способа, иллюстрирующими кодирование и декодирование, соответственно, с палитровым прогнозированием, когда WPP активируется, согласно некоторым описанным вариантам осуществления.
[020] Фиг. 13 и 14 являются схемами, иллюстрирующими аспекты примера прогнозирования внутреннего блочного копирования для текущего блока изображения.
[021] Фиг. 15 и 16 являются схемами, иллюстрирующими аспекты примеров прогнозирования с внутренним линейным копированием и прогнозирования с внутренним строковым копированием, соответственно.
[022] Фиг. 17 является схемой, иллюстрирующей примерный порядок Z-сканирования для единиц изображений.
[023] Фиг. 18 является схемой, иллюстрирующей пример ограничений на местоположение опорной области для режима внутреннего копирования, когда WPP активируется, согласно некоторым описанным вариантам осуществления.
[024] Фиг. 19 и 20 являются блок-схемами последовательности операций способа, иллюстрирующими кодирование и декодирование, соответственно, с правилами, принудительно активированными для режима внутреннего копирования, когда WPP активируется, согласно некоторым описанным вариантам осуществления.
Подробное описание изобретения
[025] Подробное описание представляет новшества в правилах, принудительно активированных для режимов внутрикадрового прогнозирования, когда волновая параллельная обработка (WPP) активируется. Например, некоторые новшества связаны с прогнозированием палитр для режима палитрового кодирования/декодирования, когда WPP активируется. Другие новшества связаны с ограничениями, принудительно активированными в ходе режима внутреннего копирования (такого как режим внутреннего блочного копирования, режим внутреннего линейного копирования или режим внутреннего строкового копирования), когда WPP активируется. Новшества упрощают использование режимов внутрикадрового прогнозирования посредством кодера или декодера, когда WPP активируется.
[026] Хотя операции, описанные в данном документе, находятся в местах, описанных как выполняемые посредством видеокодера или видеодекодера, во многих случаях операции могут выполняться посредством другого типа инструментального средства обработки мультимедиа (например, кодера изображений или декодера изображений).
[027] Некоторые новшества, описанные в данном документе, проиллюстрированы со ссылкой на термины, конкретные для расширений H.265/HEVC-стандарта. Например, следует обратиться к предварительной версии JCTVC-R1005 расширений для кодирования/декодирования экранного контента для H.265/HEVC-стандарта: "High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 1", JCTVC-R1005 v2, август 2014 года. Новшества, описанные в данном документе, также могут реализовываться для других стандартов или форматов.
[028] Многие новшества, описанные в данном документе, могут повышать производительность искажения в зависимости от скорости передачи при кодировании некоторого "искусственно созданного" видеоконтента, такого как контент захвата экрана. В общем, видео захвата экрана (также называемое "видео экранного контента") представляет собой видео, которое содержит подготовленный посредством рендеринга текст, компьютерную графику, сформированный с помощью анимации контент или другие аналогичные типы контента, захваченного при рендеринге на компьютерном дисплее, в отличие от только захваченного камерой видеоконтента. Контент захвата экрана типично включает в себя повторяющиеся структуры (например, графику, текстовые символы). Контент захвата экрана обычно закодирован в формате (например, YUV 4:4:4 или RGB 4:4:4) с высоким разрешением дискретизации сигнала цветности, хотя он также может быть закодирован в формате с более низким разрешением дискретизации сигнала цветности (например, YUV 4:2:0). Общие сценарии для кодирования/декодирования контента захвата экрана включают в себя конференц-связь с использованием удаленного рабочего стола и кодирование/декодирование графических наложений на естественное видео или другое видео "со смешанным контентом". Некоторые из новшеств, описанных в данном документе, сконфигурированы с возможностью кодирования видео экранного контента или другого искусственно созданного видео. Эти новшества также могут использоваться для естественного видео, но могут не быть настолько эффективными.
[029] Если обобщать, возможны различные альтернативы примерам, описанным в данном документе.
Например, некоторые способы, описанные в данном документе, могут быть изменены посредством изменения упорядочения описанных этапов способа, посредством разбиения, повторения или опускания некоторых этапов способа и т.д. Различные аспекты раскрытой технологии могут использоваться в комбинации или отдельно. Различные варианты осуществления используют одно или более описанных новшеств. Некоторые новшества, описанные в данном документе, разрешают одну или более проблем, отмеченных в разделе "Уровень техники". Типично, данная технология/инструментальное средство не разрешает все такие проблемы.
I. Примерные вычислительные системы
[030] Фиг. 1 иллюстрирует обобщенный пример подходящей вычислительной системы (100), в которой могут реализовываться несколько из описанных новшеств. Вычислительная система (100) не имеет намерение накладывать какие-либо ограничения в отношении объема использования или функциональности, поскольку новшества могут реализовываться во множестве вычислительных систем общего назначения или специального назначения.
[031] Со ссылкой на фиг. 1, вычислительная система (100) включает в себя один или более процессоров (110, 115) и запоминающее устройство (120, 125). Процессоры (110, 115) выполняют машиноисполняемые инструкции. Процессор может представлять собой центральный процессор (CPU) общего назначения, процессор в специализированной интегральной схеме (ASIC) либо любой другой тип процессора. В многопроцессорной системе, несколько процессоров выполняют машиноисполняемые инструкции, с тем чтобы повышать вычислительную мощность. Например, фиг. 1 показывает центральный процессор (110), а также графический процессор или сопроцессор (115). Материальное запоминающее устройство (120, 125) может представлять собой энергозависимое запоминающее устройство (например, регистры, кэш, RAM), энергонезависимое запоминающее устройство (например, ROM, EEPROM, флэш-память и т.д.) или некоторую комбинацию вышеозначенного, доступную посредством процессора(ов). Запоминающее устройство (120, 125) сохраняет программное обеспечение (180), реализующее одно или более новшеств для правил, принудительно активированных для режимов внутрикадрового прогнозирования, когда WPP активируется, в форме машиноисполняемых инструкций, подходящих для выполнения посредством процессора(ов).
[032] Вычислительная система может иметь дополнительные признаки. Например, вычислительная система (100) включает в себя устройство (140) хранения, устройства (150) ввода, одно или более устройств (160) вывода и одно или более соединений (170) связи. Механизм межкомпонентного соединения (не показан), такой как шина, контроллер или сеть, соединяет между собой компоненты вычислительной системы (100). Типично, программное обеспечение операционной системы (не показано) предоставляет операционное окружение для другого программного обеспечения, выполняемого в вычислительной системе (100), и координирует действия компонентов вычислительной системы (100).
[033] Материальное устройство (140) данных хранения может быть съемным или стационарным и включает в себя в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD или любой другой носитель, который может быть использован, чтобы сохранять информацию, и к которому можно осуществлять доступ в пределах вычислительной системы (100). Устройство (140) хранения данных хранит инструкции для программного обеспечения (180), реализующего одно или более новшеств для правил, принудительно активированных для режимов внутрикадрового прогнозирования, когда WPP активируется.
[034] Устройство (150) ввода может представлять собой устройство сенсорного ввода, такое как клавиатура, мышь, перо или шаровой манипулятор, устройство голосового ввода, устройство сканирования или другое устройство, которое предоставляет ввод в вычислительную систему (100). Для видео, устройство (150) ввода может представлять собой камеру, видеокарту, карту ТВ-тюнера, модуль захвата экрана или аналогичное устройство, которое принимает видеоввод в аналоговой или цифровой форме, либо CD-ROM или CD-RW, который считывает видеоввод в вычислительную систему (100). Устройство (160) вывода может представлять собой дисплей, принтер, динамик, устройство записи CD-RW или другое устройство, которое предоставляет вывод из вычислительной системы (100).
[035] Соединения (170) связи обеспечивают связь по среде связи с другим вычислительным объектом. Среда связи передает такую информацию, как машиноисполняемые инструкции, аудио- или видеоввод или вывод либо другие данные, в модулированном сигнале данных. Модулированный сигнал данных представляет собой сигнал, который имеет одну или более характеристик, заданных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи могут использовать электрическую, оптическую, RF- или другую несущую.
[036] Новшества могут быть описаны в общем контексте машиночитаемых носителей.
Машиночитаемые носители представляют собой любые доступные материальные носители, к которым можно осуществлять доступ в вычислительном окружении. В качестве примера, а не ограничения, в вычислительной системе (100) машиночитаемые носители включают в себя запоминающее устройство (120, 125), устройство (140) хранения данных и комбинации любых вышеозначенных элементов.
[037] Новшества могут быть описаны в общем контексте машиноисполняемых инструкций, таких как машиноисполняемые инструкции, включенные в программные модули, выполняемые в вычислительной системе на целевом реальном или виртуальном процессоре. В общем, программные модули включают в себя процедуры, программы, библиотеки, объекты, классы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Функциональность программных модулей может быть комбинирована или разделена между программными модулями, как требуется в различных вариантах осуществления. Машиноисполняемые инструкции для программных модулей могут выполняться в локальной или распределенной вычислительной системе.
[038] Термины "система" и "устройство" используются взаимозаменяемо в данном документе. Если контекст явно не указывает иное, ни один из терминов не подразумевает ограничения на тип вычислительной системы или вычислительного устройства. В общем, вычислительная система или вычислительное устройство могут быть локальными или распределенными и могут включать в себя любую комбинацию аппаратных средств специального назначения и/или аппаратных средств общего назначения с программным обеспечением, реализующим функциональность, описанную в данном документе.
[039] Раскрытые способы также могут реализовываться с использованием специализированных вычислительных аппаратных средств, сконфигурированных с возможностью осуществлять любой из раскрытых способов. Например, раскрытые способы могут реализовываться посредством интегральной схемы (например, ASIC (такой как процессор цифровых сигналов (DSP) на ASIC, графический процессор (GPU) или программируемое логическое устройство (PLD), такое как программируемая пользователем вентильная матрица (FPGA)) специально сконструированной или сконфигурированной с возможностью реализовывать любой из раскрытых способов.
[040] Для целей представления, подробное описание использует такие термины, как "определять" и "использовать", для того чтобы описывать компьютерные операции в вычислительной системе. Эти термины являются высокоуровневыми абстракциями для операций, выполняемых компьютером, и не должны путаться с действиями, выполняемыми человеком. Фактические компьютерные операции, соответствующие этим терминам, различаются в зависимости от реализации.
II. Примерные сетевые окружения
[041] Фиг. 2a и 2b показывают примерные сетевые окружения (201, 202), которые включают в себя видеокодеры (220) и видеодекодеры (270). Кодеры (220) и декодеры (270) соединены по сети (250) с использованием надлежащего протокола связи. Сеть (250) может включать в себя Интернет или другую компьютерную сеть.
[042] В сетевом окружении (201), показанном на фиг. 2a, каждое инструментальное средство (210) для обмена данными в реальном времени (RTC) включает в себя как кодер (220), так и декодер (270) для двунаправленной связи. Данный кодер (220) может формировать вывод, совместимый с варьированием или расширением H.265/HEVC-стандарта, стандартом SMPTE 421M, стандартом ISO-IEC 14496-10 (также известным как H.264 или AVC), другим стандартом или собственным форматом, причем соответствующий декодер (270) принимает закодированные данные из кодера (220). Двунаправленная связь может быть частью видеоконференции, видеотелефонного вызова либо другого сценария двусторонней или многосторонней связи. Хотя сетевое окружение (201) на фиг. 2a включает в себя два инструментальных средства (210) для обмена данными в реальном времени, сетевое окружение (201) вместо этого может включать в себя три или более инструментальных средства (210) для обмена данными в реальном времени, которые участвуют в многосторонней связи.
[043] Инструментальное средство (210) для обмена данными в реальном времени управляет кодированием посредством кодера (220). Фиг. 3 показывает примерную систему (300) кодера, которая может быть включена в инструментальное средство (210) для обмена данными в реальном времени. Альтернативно, инструментальное средство (210) для обмена данными в реальном времени использует другую систему кодера. Инструментальное средство (210) для обмена данными в реальном времени также управляет декодированием посредством декодера (270). Фиг. 4 показывает примерную систему (400) декодера, которая может быть включена в инструментальное средство (210) для обмена данными в реальном времени. Альтернативно, инструментальное средство (210) для обмена данными в реальном времени использует другую систему декодера.
[044] В сетевом окружении (202), показанном на фиг. 2b, инструментальное средство (212) кодирования включает в себя кодер (220), который кодирует видео для доставки в несколько инструментальных средств (214) воспроизведения, которые включают в себя декодеры (270). Однонаправленная связь может предоставляться для системы видеонаблюдения, системы мониторинга на основе веб-камер, представления конференц-связи с использованием удаленного рабочего стола или другого сценария, в котором видео закодировано и отправляется из одного местоположения в одно или более других местоположений. Хотя сетевое окружение (202) на фиг. 2b включает в себя два инструментальных средства (214) воспроизведения, сетевое окружение (202) может включать в себя большее или меньшее число инструментальных средств (214) воспроизведения. В общем, инструментальное средство (214) воспроизведения обменивается данными с инструментальным средством (212) кодирования, чтобы определять поток видео для приема посредством инструментального средства (214) воспроизведения. Инструментальное средство (214) воспроизведения принимает поток, буферизует принимаемые закодированные данные в течение надлежащего периода и начинает декодирование и воспроизведение.
[045] Фиг. 3 показывает примерную систему (300) кодера, которая может быть включена в инструментальное средство (212) кодирования. Альтернативно, инструментальное средство (212) кодирования использует другую систему кодера. Инструментальное средство (212) кодирования также может включать в себя серверную логику контроллера для управления соединениями с одним или более инструментальными средствами (214) воспроизведения. Фиг. 4 показывает примерную систему (400) декодера, которая может быть включена в инструментальное средство (214) воспроизведения. Альтернативно, инструментальное средство (214) воспроизведения использует другую систему декодера. Инструментальное средство (214) воспроизведения также может включать в себя клиентскую логику контроллера для управления соединениями с инструментальным средством (212) кодирования.
III. Примерные системы кодера
[046] Фиг. 3 является блок-схемой примерной системы (300) кодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления. Система (300) кодера может представлять собой инструментальное средство кодирования общего назначения, допускающее работу в любом из нескольких режимов кодирования, таких как режим кодирования с низкой задержкой для обмена данными в реальном времени, режим транскодирования и режим кодирования с более высокой задержкой для формирования мультимедиа для воспроизведения из файла или потока, либо она может представлять собой инструментальное средство кодирования специального назначения, адаптированное для одного такого режима кодирования. Система (300) кодера может быть сконфигурирована с возможностью кодирования конкретного типа контента (например, контента захвата экрана). Система (300) кодера может реализовываться в качестве части модуля операционной системы, в качестве части библиотеки приложений, в качестве части автономного приложения или с использованием аппаратных средств специального назначения. В целом, система (300) кодера принимает последовательность исходных видеоизображений (311) из видеоисточника (310) и формирует закодированные данные в качестве вывода в канал (390). Закодированные данные, выводимые в канал, могут включать в себя контент, закодированный с использованием правил, принудительно активированных для режимов внутрикадрового прогнозирования, когда WPP активируется.
[047] Видеоисточник (310) может представлять собой камеру, карту тюнера, носители хранения данных, модуль захвата экрана или другой цифровой видеоисточник. Видеоисточник (310) формирует последовательность видеоизображений на частоте кадров, например, 30 кадров в секунду. При использовании в данном документе термин "изображение", в общем, означает исходные, кодированные или восстановленные данные изображений. Для видео с построчным сканированием, изображение представляет собой видеокадр с построчным сканированием. Для чересстрочного видео, в примерных вариантах осуществления, чересстрочная развертка чересстрочного видеокадра может устраняться до кодирования. Альтернативно, два комплементарных чересстрочных видеополя закодированы вместе в качестве одного видеокадра или закодированы в качестве двух отдельно кодируемых полей. Кроме указания видеокадра с построчным сканированием или видеокадра с чересстрочным сканированием термин "изображение" может указывать одно неспаренное видеополе, комплементарную пару видеополей, плоскость видеообъектов, которая представляет видеообъект в данное время, или интересующую область в большем изображении. Плоскость или область видеообъектов может быть частью большего изображения, которое включает в себя несколько объектов или областей сцены.
[048] Поступающее исходное изображение (311) сохраняется во временной области (320) хранения запоминающего устройства исходных изображений, которая включает в себя несколько областей (321, 322,..., 32n) хранения буфера изображений. Буфер (321, 322 и т.д.) изображений хранит одно исходное изображение в области (320) хранения исходных изображений. После того, как одно или более исходных изображений (311) сохранены в буферах (321, 322 и т.д.) изображений, модуль (330) выбора изображений выбирает отдельное исходное изображение из области (320) хранения исходных изображений. Порядок, в котором изображения выбираются посредством модуля (330) выбора изображений для ввода в кодер (340), может отличаться от порядка, в котором изображения формируются посредством видеоисточника (310), например, кодирование некоторых изображений может задерживаться, чтобы обеспечивать возможность некоторым последующим изображениям быть закодированными сначала и за счет этого упрощать временно обратное прогнозирование. До кодера (340), система (300) кодера может включать в себя препроцессор (не показан), который выполняет предварительную обработку (например, фильтрацию) выбранного изображения (331) перед кодированием. Предварительная обработка может включать в себя преобразование цветового пространства в первичные (например, сигнала яркости) и вторичные (например, разностей сигнала цветности к красному цвету и к синему цвету) компоненты и обработку повторной дискретизации (например, чтобы уменьшать пространственное разрешение компонентов сигнала цветности) для кодирования. Перед кодированием, видео может преобразовываться в такое цветовое пространство, как YUV, в котором значения выборок компонента сигнала (Y) яркости представляют значения яркости или интенсивности, а значения выборок компонентов сигнала цветности (U, V) представляют значения цветовой разности. Точные определения значений цветовой разности (и операции преобразования в/из цветового YUV-пространства относительно другого цветового пространства, такого как RGB) зависят от реализации. В общем, при использовании в данном документе термин "YUV" указывает любое цветовое пространство с компонентом сигнала яркости (или яркости) и одним или более компонентов сигнала цветности (или цветности), включающих в себя Y'UV, YIQ, Y'IQ и YDbDr, а также варьирования, к примеру, YCbCr и YCoCg. Значения выборок сигнала цветности могут субдискретизироваться до более низкой частоты дискретизации сигнала цветности (например, для формата YUV 4:2:0), или значения выборок сигнала цветности могут иметь разрешение, идентичное разрешению значений выборок сигнала яркости (например, для формата YUV 4:4:4). Или видео может быть закодировано в другом формате (например, в формате RGB 4:4:4, в формате GBR 4:4:4 или в формате BGR 4:4:4). В частности, видео экранного контента может быть закодировано в формате RGB 4:4:4, в формате GBR 4:4:4 или в формате BGR 4:4:4.
[049] Кодер (340) кодирует выбранное изображение (331), чтобы формировать кодированное изображение (341), а также формирует сигналы (342) операции управления запоминающим устройством (MMCO) или информацию (RPS) наборов опорных изображений. RPS представляет собой набор изображений, который может использоваться для ссылки в компенсации движения для текущего изображения или любого последующего изображения. Если текущее изображение не является первым изображением, которое закодировано, при выполнении своего процесса кодирования, кодер (340) может использовать одно или несколько ранее закодированных/декодированных изображений (369), которые сохранены во временной области (360) хранения запоминающего устройства декодированных изображений. Такие сохраненные декодированные изображения (369) используются в качестве опорных изображений для межкадрового прогнозирования контента текущего исходного изображения (331). MMCO/RPS-информация (342) указывает декодеру то, какие восстановленные изображения могут использоваться в качестве опорных изображений и, следовательно, должны сохраняться в области хранения изображений.
[050] Обычно кодер (340) включает в себя несколько модулей кодирования, которые выполняют задачи кодирования, такие как сегментация на мозаичные фрагменты, оценка и прогнозирование на основе внутрикадрового прогнозирования, оценка и компенсация движения, преобразования частоты, квантование и энтропийное кодирование. Точные операции, выполняемые посредством кодера (340), могут варьироваться в зависимости от формата сжатия. Формат выходных закодированных данных может представлять собой варьирование или расширение H.265/HEVC-формата, формат Windows Media Video, VC-1-формат, MPEG-x-формат (например, MPEG-1, MPEG-2 или MPEG-4), H.26x-формат (например, H.261, H.262, H.263, H.264) или другой формат.
[051] Кодер (340) может сегментировать изображение на несколько мозаичных фрагментов идентичного размера или различных размеров. Например, кодер (340) разбивает изображение вдоль строк мозаичных фрагментов и столбцов мозаичных фрагментов, которые, с помощью границ изображения, задают горизонтальные и вертикальные границы мозаичных фрагментов в изображении, причем каждый мозаичный фрагмент представляет собой прямоугольную область. Мозаичные фрагменты зачастую используются для того, чтобы предоставлять возможности для параллельной обработки. Изображение также может быть организовано в качестве одного или нескольких слайсов, причем слайс может представлять собой все изображение или секцию изображения. Слайс может декодироваться независимо от других слайсов в изображении, что повышает устойчивость к ошибкам. Контент слайса или мозаичного фрагмента дополнительно сегментируется на блоки или другие наборы значений выборок для целей кодирования и декодирования. Строки некоторых блоков (например, строки единиц дерева кодирования слайса согласно H.265/HEVC-стандарту) могут быть закодированы параллельно с использованием WPP, как подробнее пояснено ниже.
[052] Для синтаксиса согласно H.265/HEVC-стандарту, кодер разбивает контент изображения (или слайса, или мозаичного фрагмента) на единицы дерева кодирования. Единица дерева кодирования (CTU) включает в себя значения выборок сигнала яркости, организованные в качестве блока дерева кодирования (CTB) сигналов яркости, и соответствующие значения выборок сигнала цветности, организованные в качестве двух CTB сигналов цветности. Размер CTU (и ее CTB) выбирается посредством кодера. CTB сигналов яркости может содержать, например, значения выборок сигнала яркости 64×64, 32×32 или 16×16. CTU включает в себя одну или более единиц кодирования. Единица кодирования (CU) имеет блок кодирования (CB) сигналов яркости и два соответствующих CB сигналов цветности. Например, CTU с CTB сигналов яркости 64×64 и двумя CTB сигналов цветности 64×64 (формат YUV 4:4:4) может разбиваться на четыре CU, причем каждая CU включает в себя CB сигналов яркости 32×32 и два CB сигналов цветности 32×32, и причем каждая CU возможно разбивается дополнительно на меньшие CU. Альтернативно, в качестве другого примера, CTU с CTB сигналов яркости 64×64 и двумя CTB сигналов цветности 32×32 (формат YUV 4:2:0) может разбиваться на четыре CU, причем каждая CU включает в себя CB сигналов яркости 32×32 и два CB сигналов цветности 16×16, и причем каждая CU возможно разбивается дополнительно на меньшие CU. Наименьший допустимый размер CU (например, 8×8, 16×16) может передаваться в служебных сигналах в потоке битов.
[053] Обычно, CU имеет режим прогнозирования, к примеру, взаимный или внутренний. CU включает в себя одну или более единиц прогнозирования для целей передачи в служебных сигналах информации прогнозирования (такой как подробности режима прогнозирования, значения сдвига и т.д.) и/или обработки прогнозирования. Единица прогнозирования (PU) имеет прогнозный блок (PB) сигналов яркости и два PB сигналов цветности. Согласно H.265/HEVC-стандарту, для внутренне прогнозированной CU, PU имеет размер, идентичный размеру CU, если CU не имеет наименьший размер (например, 8×8). В этом случае, CU может разбиваться на четыре меньших PU (например, каждые 4×4, если наименьший CU-размер составляет 8×8 для внутрикадрового прогнозирования), или PU может иметь наименьший CU-размер, как указано посредством синтаксического элемента для CU. Тем не менее, для симметричных или асимметричных сегментов, используемых при прогнозировании с внутренним BC, большая CU может разбиваться на несколько PU.
[054] CU также имеет одну или более единиц преобразования для целей остаточного кодирования/декодирования, при этом единица преобразования (TU) имеет блок преобразования (TB) сигналов яркости и два TB сигналов цветности. PU во внутренне прогнозированной CU может содержать одну TU (равную по размеру PU) или несколько TU. Кодер определяет то, как сегментировать видео на CTU, CU, PU, TU и т.д.
[055] В H.265/HEVC-реализациях, слайс может включать в себя один сегмент слайса (независимый сегмент слайса) или разделяться на несколько сегментов слайса (независимый сегмент слайса и один или более зависимых сегментов слайса). Сегмент слайса является целым числом CTU, упорядоченных последовательно в сканировании мозаичных фрагментов, содержащихся в одной единице уровня абстрагирования от сети (NAL). Для независимого сегмента слайса, заголовок сегмента слайса включает в себя значения синтаксических элементов, которые применяются для независимого сегмента слайса. Для зависимого сегмента слайса, усеченный заголовок сегмента слайса включает в себя несколько значений синтаксических элементов, которые применяются для этого зависимого сегмента слайса, и значения других синтаксических элементов для зависимого сегмента слайса логически выводятся из значений для предыдущего независимого сегмента слайса в порядке декодирования.
[056] При использовании в данном документе, термин "блок" может указывать макроблок, единицу остаточных данных, CB, PB или TB либо некоторый другой набор значений выборок, в зависимости от контекста. Термин "единица" может указывать макроблок, CTU, CU, PU, TU или некоторый другой набор блоков, либо он может указывать один блок, в зависимости от контекста.
[057] Возвращаясь к фиг. 3, кодер представляет внутренне кодированный блок, линию или строку исходного изображения (331) с точки зрения прогнозирования из других ранее восстановленных значений выборок в изображении (331). Для прогнозирования с внутренним копированием, модуль внутрикадровой оценки оценивает сдвиг от текущего блока, линии или строки до позиции в других ранее восстановленных значениях выборок. Опорный блок, линия или строка значений выборок в изображении используются для того, чтобы формировать прогнозные значения для текущего блока, линии или строки. Например, для прогнозирования с внутренним блочным копированием (BC), модуль внутрикадровой оценки оценивает сдвиг от текущего блока до позиции в ранее восстановленных значениях выборок в изображении. Опорный блок представляет собой блок значений выборок в изображении, которые предоставляют значения BC-прогнозирования для текущего блока. Опорный блок может указываться с помощью значения блочного вектора (BV) (определенного в BV-оценке). В качестве другого примера, для прогнозирования с внутренним линейным копированием (LC), модуль внутрикадровой оценки оценивает сдвиг от текущей линии (текущего блока) до позиции в ранее восстановленных значениях выборок в изображении. Опорная линия представляет собой линию значений выборок в изображении, которые предоставляют значения LC-прогнозирования для текущей линии. Опорная линия может указываться с помощью значения смещения, которое указывает сдвиг от текущей линии до опорной линии. В качестве другого примера, для прогнозирования с внутренним строковым копированием (SC), модуль внутрикадровой оценки оценивает сдвиг от текущей строки (текущего блока) до позиции в ранее восстановленных значениях выборок в изображении. Опорная строка представляет собой последовательность значений выборок в изображении, которые используются для того, чтобы формировать значения SC-прогнозирования для текущей строки. Опорная строка может указываться с помощью значения смещения (указывающего сдвиг от текущей строки до опорной строки) и значения длины строки. В зависимости от реализации, кодер может выполнять оценку смещения для блока, линии или строки с использованием входных значений выборок или восстановленных значений выборок (ранее закодированных значений выборок в том же изображении). Когда WPP активируется, модуль внутрикадровой оценки может определять сдвиги (например, для BV-значений при прогнозировании с внутренним BC либо для значений смещения при прогнозировании с внутренним SC или прогнозировании с внутренним LC) в соответствии с ограничениями на местоположения опорных областей, как пояснено ниже.
[058] Для внутреннего пространственного прогнозирования для блока, модуль внутрикадровой оценки оценивает экстраполяцию соседних восстановленных значений выборок в блок.
[059] Модуль внутрикадровой оценки может выводить информацию прогнозирования (к примеру, BV-значения для прогнозирования с внутренним BC, значения смещения для прогнозирования с внутренним LC или прогнозирования с внутренним SC либо режим (направление) прогнозирования для внутреннего пространственного прогнозирования), которая энтропийно кодируется. Предиктор внутрикадрового прогнозирования применяет информацию прогнозирования, чтобы определять внутренние прогнозные значения.
[060] Для режима палитрового кодирования, кодер (340) представляет, по меньшей мере, некоторые значения выборок CU или другой единицы с использованием палитры. Палитра представляет цвета, используемые в единице. Например, палитра преобразует значения 0, 1, 2,..., p индекса в соответствующие цвета. В ходе кодирования единицы, надлежащие значения индекса заменяют значения выборок в позициях в единице. Редкое значение в единице может быть закодировано с использованием значения управляющего кода и литеральных значений вместо использования значения индекса в палитре. Палитра может изменяться между единицами, и информация, указывающая палитры, может передаваться в служебных сигналах в потоке битов.
[061] Кодер (340) представляет межкадрово кодированный прогнозированный блок исходного изображения (331) с точки зрения прогнозирования из опорных изображений. Модуль оценки движения оценивает движение блока относительно одного или более опорных изображений (369). Когда используются несколько опорных изображений, несколько опорных изображений могут исходить из различных временных направлений или одного и того же временного направления. Опорная область прогнозирования с компенсацией движения представляет собой область значений выборок в опорном изображении(ях), которые используются для того, чтобы формировать значения прогнозирования с компенсацией движения для блока значений выборок текущего изображения. Модуль оценки движения выводит информацию движения, такую информацию вектора движения (MV), которая энтропийно кодирована. Модуль компенсации движения применяет MV к опорным изображениям (369), чтобы определять значения прогнозирования с компенсацией движения для межкадрового прогнозирования.
[062] Кодер может определять разности (если имеются) между прогнозными значениями (внутренними или взаимными) блока и соответствующими исходными значениями. Эти значения остатка прогнозирования дополнительно закодированы с использованием преобразования частоты (если преобразование частоты не пропускается), квантования и энтропийного кодирования. Например, кодер (340) задает значения для параметра квантования (QP) для изображения, мозаичного фрагмента, слайса и/или другой части видео и квантует коэффициенты преобразования соответствующим образом. Энтропийный кодер кодера (340) сжимает значения квантованных коэффициентов преобразования, а также некоторую вспомогательную информацию (например, MV-информацию, BV-информацию, QP-значения, решения по выбору режима, варианты выбора параметров). Типичные технологии энтропийного кодирования включают в себя кодирование экспоненциальным кодом Голомба, кодирование Голомба-Райса, арифметическое кодирование, дифференциальное кодирование, кодирование Хаффмана, кодирование по длинам серий, кодирование переменно-переменной длины (V2V), кодирование переменно-фиксированной длины (V2F), кодирование Лемпеля-Зива (LZ), словарное кодирование, энтропийное кодирование на основе сегментации на интервалы вероятности (PIPE) и комбинации вышеозначенного. Энтропийный кодер может использовать различные технологии кодирования для различных видов информации, может применять несколько технологий в комбинации (например, посредством применения кодирования Голомба-Райса с последующим применением арифметического кодирования) и может выбирать из числа нескольких кодовых таблиц в пределах конкретной технологии кодирования. В некоторых реализациях, преобразование частоты может пропускаться. В этом случае, значения остатка прогнозирования могут квантоваться и энтропийно кодироваться. Когда используется режим палитрового кодирования, энтропийный кодер может кодировать палитровые данные. Кодер (340) может использовать палитровое прогнозирование, как пояснено ниже.
[063] Адаптивный фильтр удаления блочности включен в контур компенсации движения (т.е. "внутриконтурную" фильтрацию) в кодере (340), чтобы сглаживать неоднородности по строкам и/или столбцам границ блоков в декодированном изображении. Другая фильтрация (к примеру, фильтрация с подавлением периодически повторяющихся помех, адаптивная контурная фильтрация (ALF) или фильтрация на основе дискретизированного адаптивного смещения (SAO); не показаны) альтернативно или дополнительно может применяться в качестве операций внутриконтурной фильтрации.
[064] Закодированные данные, сформированные посредством кодера (340), включают в себя синтаксические элементы для различных слоев синтаксиса потока битов. Для синтаксиса согласно H.265/HEVC-стандарту, например, набор параметров изображения (PPS) представляет собой синтаксическую структуру, которая содержит синтаксические элементы, которые могут быть ассоциированы с изображением. PPS может использоваться для отдельного изображения, или PPS может быть повторно использован для нескольких изображений в последовательности. PPS типично передается в служебных сигналах отдельно от закодированных данных для изображения (например, одной единицы уровня абстрагирования от сети (NAL) для PPS и одной или более других NAL-единиц для закодированных данных для изображения). В закодированных данных для изображения, синтаксический элемент указывает то, какой PPS следует использовать для изображения. Аналогично, для синтаксиса согласно H.265/HEVC-стандарту, набор параметров последовательности (SPS) представляет собой синтаксическую структуру, которая содержит синтаксические элементы, которые могут быть ассоциированы с последовательностью изображений. Поток битов может включать в себя один SPS или несколько SPS. SPS типично передается в служебных сигналах отдельно от других данных для последовательности, и синтаксический элемент в других данных указывает то, какой SPS следует использовать.
[065] Кодированные изображения (341) и MMCO/RPS-информация (342) (или информация, эквивалентная MMCO/RPS-информации (342), поскольку зависимости и структуры упорядочения для изображений уже известны в кодере (340)) обрабатываются посредством эмулятора (350) процесса декодирования. Эмулятор (350) процесса декодирования реализует часть функциональности декодера, например, задачи декодирования, чтобы восстанавливать опорные изображения. Способом, совместимым с MMCO/RPS-информацией (342), эмулятор процессов декодирования (350) определяет то, должно или нет данное кодированное изображение (341) восстанавливаться и сохраняться для использования в качестве опорного изображения при межкадровом прогнозировании последующих изображений, которые должны быть закодированы. Если кодированное изображение (341) должно сохраняться, эмулятор (350) процесса декодирования моделирует процесс декодирования, который должен осуществляться посредством декодера, который принимает кодированное изображение (341) и формирует соответствующее декодированное изображение (351). При этом, когда кодер (340) использует декодированное изображение(я) (369), которые сохранены в области (360) хранения декодированных изображений, эмулятор (350) процесса декодирования также использует декодированное изображение(я) (369) из области (360) хранения в качестве части процесса декодирования.
[066] Временная область (360) хранения запоминающего устройства декодированных изображений включает в себя несколько областей (361, 362,..., 36n) хранения буфера изображений. Способом, совместимым с MMCO/RPS-информацией (342), эмулятор (350) процесса декодирования управляет контентом области (360) хранения, чтобы идентифицировать любые буферы (361, 362 и т.д.) изображений с изображениями, которые более не требуются посредством кодера (340) для использования в качестве опорных изображений. После моделирования процесса декодирования, эмулятор (350) процесса декодирования сохраняет заново декодированное изображение (351) в буфере (361, 362 и т.д.) изображений, который идентифицирован таким образом.
[067] Кодированные изображения (341) и MMCO/RPS-информация (342) буферизованы во временной области (370) кодированных данных. Кодированные данные, которые агрегированы в области (370) кодированных данных, содержат, в качестве части синтаксиса элементарного кодированного потока видеобитов, закодированные данные для одного или более изображений. Кодированные данные, которые агрегированы в области (370) кодированных данных, также могут включать в себя мультимедийные метаданные, связанные с кодированными видеоданными (например, в качестве одного или более параметров в одном или более сообщений с дополнительной улучшающей информацией (SEI) или сообщений с информацией применимости видео (VUI)).
[068] Агрегированные данные (371) из временной области (370) кодированных данных обрабатываются посредством канального кодера (380). Канальный кодер (380) может пакетизировать и/или мультиплексировать агрегированные данные для передачи или хранения в качестве мультимедийного потока (например, согласно формату потока мультимедийных программ или транспортного потока, такому как ITU-T H.222.0 | ISO/IEC 13818-1, или формату транспортного Интернет-протокола реального времени, такому как IETF RFC 3550), причем в этом случае канальный кодер (380) может добавлять синтаксические элементы в качестве части синтаксиса потока передачи мультимедиа. Альтернативно, канальный кодер (380) может организовывать агрегированные данные для хранения в качестве файла (например, согласно формату мультимедийного контейнера, такому как ISO/IEC 14496-12), причем в этом случае канальный кодер (380) может добавлять синтаксические элементы в качестве части синтаксиса файла хранения мультимедиа. Альтернативно, если обобщать, канальный кодер (380) может реализовывать один или более протоколов мультиплексирования или транспортных протоколов мультимедийной системы, причем в этом случае канальный кодер (380) может добавлять синтаксические элементы в качестве части синтаксиса протокола(ов). Канальный кодер (380) предоставляет вывод в канал (390), который представляет устройство хранения, соединение связи или другой канал для вывода. Канальный кодер (380) или канал (390) также может включать в себя другие элементы (не показаны), например, для кодирования с прямой коррекцией ошибок (FEC) и модуляции аналоговых сигналов.
IV. Примерная система декодера
[069] Фиг. 4 является блок-схемой примерной системы (400) декодера, в сочетании с которой могут реализовываться некоторые описанные варианты осуществления. Система (400) декодера может представлять собой инструментальное средство декодирования общего назначения, допускающее работу в любом из нескольких режимов декодирования, таких как режим декодирования с низкой задержкой для обмена данными в реальном времени и режим декодирования с более высокой задержкой для воспроизведения мультимедиа из файла или потока, либо она может представлять собой инструментальное средство декодирования специального назначения, адаптированное для одного такого режима декодирования. Система (400) декодера может реализовываться в качестве части модуля операционной системы, в качестве части библиотеки приложений, в качестве части автономного приложения или с использованием аппаратных средств специального назначения. В целом, система (400) декодера принимает кодированные данные из канала (410) и формирует восстановленные изображения в качестве вывода для назначения (490) вывода. Принимаемые закодированные данные могут включать в себя контент, закодированный с использованием правил, принудительно активированных для режимов внутрикадрового прогнозирования, когда WPP активируется.
[070] Система (400) декодера включает в себя канал (410), который может представлять устройство хранения данных, соединение связи или другой канал для кодированных данных в качестве ввода. Канал (410) формирует кодированные данные, которые канально кодированы. Канальный декодер (420) может обрабатывать кодированные данные. Например, канальный декодер (420) депакетизирует и/или демультиплексирует данные, которые агрегированы для передачи или хранения в качестве мультимедийного потока (например, согласно формату потока мультимедийных программ или транспортного потока, такому как ITU-T H.222.0 | ISO/IEC 13818-1, или формату транспортного Интернет-протокола реального времени, такому как IETF RFC 3550), причем в этом случае канальный декодер (420) может синтаксически анализировать синтаксические элементы, добавленные в качестве части синтаксиса потока передачи мультимедиа. Альтернативно, канальный декодер (420) разделяет кодированные видеоданные, которые агрегированы для хранения в качестве файла (например, согласно формату мультимедийного контейнера, такому как ISO/IEC 14496-12), причем в этом случае канальный декодер (420) может синтаксически анализировать синтаксические элементы, добавленные в качестве части синтаксиса файла хранения мультимедиа. Альтернативно, если обобщать, канальный декодер (420) может реализовывать один или более протоколов демультиплексирования или транспортных протоколов мультимедийной системы, причем в этом случае канальный декодер (420) может синтаксически анализировать синтаксические элементы, добавленные в качестве части синтаксиса протокола(ов). Канал (410) или канальный декодер (420) также может включать в себя другие элементы (не показаны), например, для FEC-декодирования и демодуляции аналоговых сигналов.
[071] Кодированные данные (421), которые выводятся из канального декодера (420), сохраняются во временной области (430) кодированных данных до тех пор, пока достаточное количество таких данных не будет принято. Кодированные данные (421) включают в себя кодированные изображения (431) и MMCO/RPS-информацию (432). Кодированные данные (421) в области (430) кодированных данных содержат, в качестве части синтаксиса элементарного кодированного потока видеобитов, кодированные данные для одного или более изображений. Кодированные данные (421) в области (430) кодированных данных также могут включать в себя мультимедийные метаданные, связанные с закодированными видеоданными (например, в качестве одного или более параметров в одном или более SEI-сообщений или VUI-сообщений).
[072] В общем, область (430) кодированных данных временно сохраняет кодированные данные (421) до тех пор, пока такие кодированные данные (421) не будут использоваться посредством декодера (450). В этот момент, кодированные данные для кодированного изображения (431) и MMCO/RPS-информации (432) передаются из области (430) кодированных данных в декодер (450). По мере того, как продолжается декодирование, новые кодированные данные добавляются в область (430) кодированных данных, и самые старые кодированные данные, остающиеся в области (430) кодированных данных, передаются в декодер (450).
[073] Декодер (450) декодирует кодированное изображение (431), чтобы формировать соответствующее декодированное изображение (451). Изображение может быть сегментировано на несколько мозаичных фрагментов идентичного размера или различных размеров. Изображение также может быть организовано в качестве одного или более слайсов. Контент слайса или мозаичного фрагмента может дополнительно сегментироваться на блоки или другие наборы значений выборок. Если изображение было закодировано при активированной WPP (с использованием WPP или иным способом, совместимым с использованием WPP в ходе декодирования), строки некоторых блоков (например, строки CTU согласно H.265/HEVC-стандарту) могут декодироваться параллельно с использованием WPP, как подробнее пояснено ниже.
[074] Надлежащим образом, при выполнении своего процесса декодирования, декодер (450) может использовать одно или более ранее декодированных изображений (469) в качестве опорных изображений для межкадрового прогнозирования. Декодер (450) считывает такие ранее декодированные изображения (469) из временной области (460) хранения запоминающего устройства декодированных изображений. Обычно, декодер (450) включает в себя несколько модулей декодирования, которые выполняют задачи декодирования, такие как энтропийное декодирование, внутрикадровое прогнозирование, межкадровое прогнозирование с компенсацией движения, обратное квантование, обратные преобразования частоты (если не пропущены) и объединение мозаичных фрагментов. Точные операции, выполняемые посредством декодера (450), могут варьироваться в зависимости от формата сжатия.
[075] Например, декодер (450) принимает закодированные данные для сжатого изображения или последовательности изображений и формирует вывод, включающий в себя декодированное изображение (451). В декодере (450), буфер принимает закодированные данные для сжатого изображения и в подходящее время делает принимаемые закодированные данные доступными для энтропийного декодера. Энтропийный декодер энтропийно декодирует энтропийно кодированные квантованные данные, а также энтропийно кодированную вспомогательную информацию, типично применяя инверсию энтропийного кодирования, выполняемого в кодере. Когда используется режим палитрового декодирования, энтропийный декодер может декодировать палитровые данные. Декодер (450) может использовать палитровое прогнозирование, как пояснено ниже.
[076] Модуль компенсации движения применяет информацию движения к одному или более опорных изображений, чтобы формировать значения прогнозирования с компенсацией движения для любых взаимно кодированных блоков восстанавливаемого изображения. Модуль внутрикадрового прогнозирования может пространственно прогнозировать значения выборок текущего блока из соседних ранее восстановленных значений выборок. Альтернативно, для прогнозирования с внутренним BC, прогнозирования с внутренним LC или прогнозирования с внутренним SC, модуль внутрикадрового прогнозирования может прогнозировать значения выборок текущего блока, линии или строки с использованием ранее восстановленных значений выборок опорного блока, линии или строки в изображении, который указывается с помощью значения сдвига. В частности, опорный блок/линия/строка может указываться с помощью BV-значения (для прогнозирования с внутренним BC), значения смещения (для прогнозирования с внутренним LC) или значения смещения и значения длины строки (для прогнозирования с внутренним SC). Когда WPP активируется, сдвиги (например, для BV-значений при прогнозировании с внутренним BC либо для значений смещения при прогнозировании с внутренним SC или прогнозировании с внутренним LC) являются согласованными с ограничениями на местоположения опорных областей, как пояснено ниже.
[077] Декодер (450) также восстанавливает значения остатка прогнозирования. Обратный квантователь обратно квантует энтропийно декодированные данные. Например, декодер (450) задает значения для QP для изображения, мозаичного фрагмента, слайса и/или другой части видео на основе синтаксических элементов в потоке битов и обратно квантует коэффициенты преобразования соответствующим образом. Обратный преобразователь частоты преобразует квантованные данные частотной области в данные пространственной области. В некоторых реализациях, преобразование частоты может пропускаться, причем в этом случае обратное преобразование частоты также пропускается. Если да, значения остатка прогнозирования могут энтропийно декодироваться и обратно квантоваться. Для межкадрового прогнозированного блока, декодер (450) комбинирует восстановленные значения остатка прогнозирования со значениями прогнозирования с компенсацией движения. Декодер (450) аналогично может комбинировать значения остатка прогнозирования с прогнозными значениями из внутрикадрового прогнозирования.
[078] Для режима палитрового декодирования, декодер (450) использует палитру, которая представляет, по меньшей мере, некоторые значения выборок CU или другой единицы. Палитра преобразует значения индекса в соответствующие цвета. В ходе декодирования, для позиций в единице, значения индекса из палитры заменяются надлежащими значениями выборок. Управляюще кодированное значение в единице может декодироваться с использованием значения управляющего кода и литеральных значений. Палитра может изменяться между единицами, и информация, указывающая палитры, может передаваться в служебных сигналах в потоке битов.
[079] Адаптивный фильтр удаления блочности включен в контур компенсации движения в видеодекодере (450), чтобы сглаживать неоднородности по строкам и/или столбцам границ блоков в декодированном изображении (451). Другая фильтрация (к примеру, фильтрация с подавлением периодически повторяющихся помех, ALF- или SAO-фильтрация; не показаны) альтернативно или дополнительно может применяться в качестве операций внутриконтурной фильтрации.
[080] Временная область (460) хранения запоминающего устройства декодированных изображений включает в себя несколько областей (461, 462,..., 46n) хранения буфера изображений. Область (460) хранения декодированных изображений является примером буфера декодированных изображений. Декодер (450) использует MMCO/RPS-информацию (432), чтобы идентифицировать буфер (461, 462 и т.д.) изображений, в котором он может сохранять декодированное изображение (451). Декодер (450) сохраняет декодированное изображение (451) в этом буфере изображений.
[081] Модуль (480) упорядочения вывода идентифицирует, когда следующее изображение, которое должно формироваться в порядке вывода, доступно в области (460) хранения декодированных изображений. Когда следующее изображение (481), которое должно формироваться в порядке вывода, доступно в области (460) хранения декодированных изображений, оно считывается посредством модуля (480) упорядочения вывода и выводится в назначение (490) вывода (например, на дисплей). В общем, порядок, в котором изображения выводятся из области (460) хранения декодированных изображений посредством модуля (480) упорядочения вывода, может отличаться от порядка, в котором изображения декодируются посредством декодера (450).
V. Примерные видеокодеры
[082] Фиг. 5a и 5b являются блок-схемой обобщенного видеокодера (500), в сочетании с которым могут реализовываться некоторые описанные варианты осуществления. Кодер (500) принимает последовательность видеоизображений, включающую в себя текущее изображение в качестве входного видеосигнала (505), и формирует закодированные данные в кодированном потоке (595) видеобитов в качестве вывода.
[083] Кодер (500) является блочным и использует блочный формат, который зависит от реализации. Блоки дополнительно могут подразделяться на различных стадиях, например, на стадиях прогнозирования, преобразования частоты и/или энтропийного кодирования. Например, изображение может разделяться на блоки 64×64, блоки 32×32 или блоки 16×16, которые, в свою очередь, могут разделяться на меньшие блоки значений выборок для кодирования и декодирования. В реализациях кодирования для H.265/HEVC-стандарта, кодер сегментирует изображение на CTU (CTB), CU (CB), PU (PB) и TU (TB).
[084] Кодер (500) сжимает изображения с использованием внутрикадрового кодирования и/или межкадрового кодирования. Многие компоненты кодера (500) используются как для внутрикадрового кодирования, так и для межкадрового кодирования. Точные операции, выполняемые посредством этих компонентов, могут варьироваться в зависимости от типа сжимаемой информации.
[085] Модуль (510) мозаичного размещения необязательно сегментирует изображение на несколько мозаичных фрагментов идентичного размера или различных размеров. Например, модуль (510) мозаичного размещения разбивает изображение вдоль строк мозаичных фрагментов и столбцов мозаичных фрагментов, которые, с помощью границ изображения, задают горизонтальные и вертикальные границы мозаичных фрагментов в изображении, причем каждый мозаичный фрагмент представляет собой прямоугольную область. В H.265/HEVC-реализациях, кодер (500) сегментирует изображение на один или более слайсов, при этом каждый слайс включает в себя один или более сегментов слайса. Строки некоторых блоков (например, строки CTU слайса согласно H.265/HEVC-стандарту) могут быть закодированы параллельно с использованием WPP, как подробнее пояснено ниже.
[086] Общий контроллер (520) кодирования принимает изображения для входного видеосигнала (505), а также обратную связь (не показана) из различных модулей кодера (500). В целом, общий контроллер (520) кодирования предоставляет управляющие сигналы (не показаны) в другие модули (к примеру, в модуль (510) мозаичного размещения, преобразователь (530)/модуль масштабирования/квантователь, модуль (535) масштабирования/обратный преобразователь, модуль (540) внутрикадровой оценки, модуль (550) оценки движения и переключатель внутреннего/взаимного режима), чтобы задавать и изменять параметры кодирования в ходе кодирования. В частности, общий контроллер (520) кодирования может определять то, следует или нет и как следует использовать палитровое прогнозирование, прогнозирование с внутренним BC, прогнозирование с внутренним LC и прогнозирование с внутренним SC в ходе кодирования. Общий контроллер (520) кодирования также может оценивать промежуточные результаты в ходе кодирования, например, при выполнении анализа искажения в зависимости от скорости передачи. Общий контроллер (520) кодирования формирует общие управляющие данные (522), которые указывают решения, принимаемые в ходе кодирования, так что соответствующий декодер может принимать согласованные решения. Общие управляющие данные (522) предоставляются в модуль (590) форматирования заголовков/энтропийный кодер.
[087] Если текущее изображение прогнозируется с использованием межкадрового прогнозирования, модуль (550) оценки движения оценивает движение блоков значений выборок текущего изображения входного видеосигнала (505) относительно одного или более опорных изображений. Буфер (570) декодированных изображений буферизует одно или более восстановленных ранее кодированных изображений для использования в качестве опорных изображений. Когда используются несколько опорных изображений, несколько опорных изображений могут исходить из различных временных направлений или одного и того же временного направления. Модуль (550) оценки движения формирует в качестве вспомогательной информации данные (552) движения, такие как MV-данные, значения индекса режима объединения и данные выбора опорных изображений. Данные (552) движения предоставляются в модуль (590) форматирования заголовков/энтропийный кодер, а также в модуль (555) компенсации движения.
[088] Модуль (555) компенсации движения применяет MV к восстановленному опорному изображению(ям) из буфера (570) декодированных изображений. Модуль (555) компенсации движения формирует прогнозирования с компенсацией движения для текущего изображения.
[089] В отдельном тракте в кодере (500), модуль (540) внутрикадровой оценки определяет то, как выполнять внутрикадровое прогнозирование для блоков значений выборок текущего изображения входного видеосигнала (505). Текущее изображение может быть полностью или частично кодировано с использованием внутрикадрового кодирования. С использованием значений восстановления (538) текущего изображения, для внутреннего пространственного прогнозирования, модуль (540) внутрикадровой оценки определяет то, как пространственно прогнозировать значения выборок текущего блока текущего изображения из соседних ранее восстановленных значений выборок текущего изображения.
[090] Альтернативно, для прогнозирования с внутренним копированием, модуль (540) внутрикадровой оценки оценивает сдвиг от текущего блока, линии или строки до позиции в других ранее восстановленных значениях выборок. Опорный блок, линия или строка значений выборок в изображении используются для того, чтобы формировать прогнозные значения для текущего блока, линии или строки. Например, для прогнозирования с внутренним BC, модуль (540) внутрикадровой оценки оценивает сдвиг от текущего блока до опорного блока, который может указываться с помощью BV-значения. В качестве другого примера, для прогнозирования с внутренним LC, модуль (540) внутрикадровой оценки оценивает сдвиг от текущей линии (текущего блока) до опорной линии, который может указываться с помощью значения смещения (указывающего сдвиг от текущей линии до опорной линии). В качестве другого примера, для прогнозирования с внутренним SC, модуль внутрикадровой оценки оценивает сдвиг от текущей строки (текущего блока) до опорной строки, который может указываться с помощью значения смещения (указывающего сдвиг от текущей строки до опорной строки) и значения длины строки. Когда WPP активируется, модуль (540) внутрикадровой оценки может определять сдвиги (например, для BV-значений при прогнозировании с внутренним BC либо для значений смещения при прогнозировании с внутренним SC или прогнозировании с внутренним LC) в соответствии с ограничениями на местоположения опорных областей, как пояснено ниже.
[091] В зависимости от реализации, модуль (540) внутрикадровой оценки может выполнять оценку смещения для текущего блока, линии или строки с использованием входных значений выборок, восстановленных значений выборок до внутриконтурной фильтрации или восстановленных значений выборок после внутриконтурной фильтрации. В общем, посредством использования входных значений выборок или нефильтрованных восстановленных значений выборок для оценки смещения, модуль (540) внутрикадровой оценки может не допускать узкого места при последовательной обработке (которое может возникать в результате фильтрации восстановленных значений выборок опорного блока, линии, строки и т.д. до оценки смещения/прогнозирования с внутренним копированием). С другой стороны, сохранение нефильтрованных восстановленных значений выборок использует дополнительное запоминающее устройство. Кроме того, если внутриконтурная фильтрация применяется до оценки смещения, может быть предусмотрена область влияния, которая перекрывается между процессом фильтрации, который должен применяться после того, как текущий блок/линия/строка декодируется, и областью, используемой для оценки смещения/прогнозирования с внутренним копированием. В таком случае, оценка смещения/прогнозирование с внутренним копированием должна применяться перед этим аспектом операции фильтрации. В некоторых реализациях, кодер может применять некоторые операции внутриконтурной фильтрации до оценки смещения/прогнозирования с внутренним копированием и выполнять дополнительную или альтернативную фильтрацию на последующей стадии обработки.
[092] Модуль (540) внутрикадровой оценки формирует в качестве вспомогательной информации данные (542) внутреннего прогнозирования, такие как информация, указывающая то, внутреннее прогнозирование использует пространственное прогнозирование, прогнозирование с внутренним BC, прогнозирование с внутренним LC или прогнозирование с внутренним SC, направление режима прогнозирования (для внутреннего пространственного прогнозирования), BV-значения (для прогнозирования с внутренним BC), значения смещения (для прогнозирования с внутренним LC) или значения смещения и значения длины (для прогнозирования с внутренним SC). Данные (542) внутреннего прогнозирования предоставляются в модуль (590) форматирования заголовков/энтропийный кодер, а также в модуль (545) внутрикадрового прогнозирования.
[093] Согласно данным (542) внутреннего прогнозирования, модуль (545) внутрикадрового прогнозирования пространственно прогнозирует значения выборок текущего блока текущего изображения из соседних ранее восстановленных значений выборок текущего изображения. Альтернативно, для прогнозирования с внутренним копированием, модуль (545) внутрикадрового прогнозирования прогнозирует значения выборок текущего блока, линии, строки или другой секции с использованием ранее восстановленных значений выборок опорного блока, линии, строки или другой секции, которая указывается посредством сдвига (BV-значения, значения смещения и т.д.) для текущего блока, линии, строки и т.д. В некоторых случаях, BV-значение (или другое значение смещения) может быть прогнозированным значением. В других случаях, BV-значение (или другое значение смещения) может отличаться от своего прогнозированного значения, причем в этом случае дифференциал указывает разность между прогнозированным значением и BV-значением (или другим значением смещения). Для режима внутреннего SC, модуль (545) внутрикадрового прогнозирования также использует значение длины строки при прогнозировании значений выборок текущей строки.
[094] Для режима палитрового кодирования, кодер (500) представляет, по меньшей мере, некоторые значения выборок CU или другой единицы с использованием палитры. Палитра представляет цвета, используемые в единице. Например, палитра преобразует значения 0, 1, 2,..., p индекса в соответствующие цвета, которые могут иметь формат RGB 4:4:4, формат BGR 4:4:4, формат GBR 4:4:4, формат YUV 4:4:4 или другой формат (цветовое пространство, частота дискретизации цветов). Значение индекса может представлять RGB-триплет, BGR-триплет или GBR-триплет для пиксела, при этом пиксел представляет собой набор совместно размещенных значений выборок. Для кодирования единицы, значения индекса заменяют значения выборок пикселов в единице. Редкое значение в единице может быть закодировано с использованием значения управляющего кода и литеральных значений вместо использования значения индекса в палитре. Палитра может изменяться между единицами, и палитровые данные, указывающие палитры, могут передаваться в служебных сигналах в потоке битов.
[095] Переключатель внутреннего/взаимного режима выбирает то, представляет собой прогнозирование (558) для данного блока прогнозирование с компенсацией движения или внутрикадровое прогнозирование.
[096] В некоторых примерных реализациях, остаток не вычисляется для единицы, закодированной в режиме палитрового кодирования или в режиме внутреннего копирования (прогнозирование с внутренним BC, прогнозирование с внутренним LC или прогнозирование с внутренним SC). Вместо этого, остаточное кодирование пропускается, и прогнозные значения выборок используются в качестве восстановленных значений выборок.
[097] Когда остаточное кодирование не пропускается, разность (если имеется) между блоком прогнозирования (558) и соответствующей частью исходного текущего изображения входного видеосигнала (505) предоставляет значения остатка (518). В ходе восстановления текущего изображения, когда остаточные значения закодированы/переданы в служебных сигналах, восстановленные остаточные значения комбинируются с прогнозированием (558), чтобы формировать приблизительное или точное восстановление (538) исходного контента из видеосигнала (505). (При сжатии с потерями, некоторая информация теряется из видеосигнала (505)).
[098] В качестве части остаточного кодирования, в преобразователе (530)/модуле масштабирования/квантователе, когда преобразование частоты не пропускается, преобразователь частоты преобразует видеоинформацию пространственной области в данные частотной области (т.е. спектрального преобразования). Для кодирования видео на основе блоков, преобразователь частоты применяет дискретное косинусное преобразование (DCT), его целочисленную аппроксимацию или другой тип прямого блочного преобразования (например, дискретное синусное преобразование или его целочисленную аппроксимацию) к блокам данных остатков прогнозирования (или данных значений выборок, если прогнозирование (558) является нулем), формируя блоки коэффициентов преобразования частоты. Преобразователь (530)/модуль масштабирования/квантователь может применять преобразование с переменными размерами блоков. В этом случае, преобразователь (530)/модуль масштабирования/квантователь может определять то, какие размеры блоков преобразований следует использовать для остаточных значений для текущего блока. Модуль масштабирования/квантователь масштабирует и квантует коэффициенты преобразования. Например, квантователь применяет скалярное квантование с мертвыми зонами к данным частотной области с размером шага квантования, который варьируется на основе каждого изображения, на основе каждого мозаичного фрагмента, на основе каждого слайса, на поблочной основе, на конкретной для частоты основе или на другой основе. Данные (532) квантованных коэффициентов преобразования предоставляются в модуль (590) форматирования заголовков/энтропийный кодер. Если преобразование частоты пропускается, модуль масштабирования/квантователь может масштабировать и квантовать блоки данных остатков прогнозирования (или данных значений выборок, если прогнозирование (558) является нулем), формируя квантованные значения, которые предоставляются в модуль (590) форматирования заголовков/энтропийный кодер.
[099] Чтобы восстанавливать остаточные значения, в модуле (535) масштабирования/обратном преобразователе, модуль масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование для квантованных коэффициентов преобразования. Когда стадия преобразования не пропущена, обратный преобразователь частоты выполняет обратное преобразование частоты, формируя блоки восстановленных значений остатка прогнозирования или значений выборок. Если стадия преобразования пропущена, обратное преобразование частоты также пропускается. В этом случае, модуль масштабирования/обратный квантователь может выполнять обратное масштабирование и обратное квантование для блоков данных остатков прогнозирования (или данных значений выборок), формируя восстановленные значения. Когда остаточные значения закодированы/переданы в служебных сигналах, кодер (500) комбинирует восстановленные остаточные значения со значениями прогнозирования (558) (например, значениями прогнозирования с компенсацией движения, значениями внутрикадрового прогнозирования), чтобы формировать восстановление (538). Когда остаточные значения не закодированы/переданы в служебных сигналах, кодер (500) использует значения прогнозирования (558) в качестве восстановления (538).
[0100] Для внутрикадрового прогнозирования, значения восстановления (538) могут быть возвращены в модуль (540) внутрикадровой оценки и модуль (545) внутрикадрового прогнозирования. Значения восстановления (538) могут использоваться для прогнозирования с компенсацией движения последующих изображений. Значения восстановления (538) дополнительно могут фильтроваться. Контроллер (560) фильтрации определяет то, как выполнять фильтрацию для удаления блочности и SAO-фильтрацию для значений восстановления (538), для данного изображения видеосигнала (505). Контроллер (560) фильтрации формирует управляющие данные (562) фильтрации, которые предоставляются в модуль (590) форматирования заголовков/энтропийный кодер и модуль (565) объединения/фильтр.
[0101] В модуле (565) объединения/фильтре, кодер (500) объединяет контент из различных мозаичных фрагментов в восстановленную версию изображения. Кодер (500) избирательно выполняет фильтрацию для удаления блочности и SAO-фильтрацию согласно управляющим данным (562) фильтрации и правилам для адаптации фильтра, с тем чтобы адаптивно сглаживать неоднородности на границах в изображениях. Альтернативно или дополнительно, может применяться другая фильтрация (к примеру, фильтрация с подавлением периодически повторяющихся помех или ALF; не показаны). Границы мозаичных фрагментов могут избирательно фильтроваться или вообще не фильтроваться, в зависимости от настроек кодера (500), и кодер (500) может предоставлять синтаксические элементы в кодированном потоке битов, чтобы указывать то, применяется или нет такая фильтрация. Буфер (570) декодированных изображений буферизует восстановленное текущее изображение для использования в последующем прогнозировании с компенсацией движения.
[0102] Модуль (590) форматирования заголовков/энтропийный кодер форматирует и/или энтропийно кодирует общие управляющие данные (522), данные (532) квантованных коэффициентов преобразования, данные (542) внутреннего прогнозирования, данные (552) движения и управляющие данные (562) фильтрации. Для данных (552) движения, модуль (590) форматирования заголовков/энтропийный кодер может выбирать и энтропийно кодировать значения индекса режима объединения, либо может использоваться MV-предиктор по умолчанию. В некоторых случаях, модуль (590) форматирования заголовков/энтропийный кодер также определяет MV-дифференциалы для MV-значений (относительно MV-предикторов для MV-значений), затем энтропийно кодирует MV-дифференциалы, например, с использованием контекстно-адаптивного двоичного арифметического кодирования. Для данных (542) внутреннего прогнозирования, BV-значение (или другое значение смещения) может быть закодировано с использованием прогнозирования. Прогнозирование может использовать предиктор по умолчанию (например, BV-значение или другое значение смещения из одного или более соседних блоков). Когда несколько предикторов являются возможными, индекс предиктора может указывать то, какой из нескольких предикторов следует использовать для прогнозирования BV-значения (или другого значения смещения). Модуль (590) форматирования заголовков/энтропийный кодер может выбирать и энтропийно кодировать значения индекса предиктора (для прогнозирования с внутренним копированием), либо может использоваться предиктор по умолчанию. В некоторых случаях, модуль (590) форматирования заголовков/энтропийный кодер также определяет дифференциалы (относительно предикторов для BV-значений или других значений смещения), затем энтропийно кодирует дифференциалы, например, с использованием контекстно-адаптивного двоичного арифметического кодирования. Для режима палитрового кодирования, модуль (590) форматирования заголовков/энтропийный кодер может кодировать палитровые данные. В частности, модуль (590) форматирования заголовков/энтропийный кодер может использовать палитровое прогнозирование, как пояснено ниже.
[0103] Модуль (590) форматирования заголовков/энтропийный кодер предоставляет закодированные данные в кодированном потоке (595) видеобитов. Формат кодированного потока (595) видеобитов может представлять собой варьирование или расширение H.265/HEVC-формата, формат Windows Media Video, VC-1-формат, MPEG-x-формат (например, MPEG-1, MPEG-2 или MPEG-4), H.26x-формат (например, H.261, H.262, H.263, H.264) или другой формат.
[0104] В зависимости от реализации и требуемого типа сжатия, модули кодера (500) могут добавляться, опускаться, разбиваться на несколько модулей, комбинироваться с другими модулями и/или заменяться аналогичными модулями. В альтернативных вариантах осуществления, кодеры с различными модулями и/или другими конфигурациями модулей выполняют одну или более описанных технологий. Конкретные варианты осуществления кодеров типично используют вариацию или дополненную версию кодера (500). Взаимосвязи, показанные между модулями в кодере (500), указывают общие потоки информации в кодере; другие взаимосвязи не показаны для простоты.
VI. Примерные видеодекодеры
[0105] Фиг. 6 является блок-схемой обобщенного декодера (600), в сочетании с которым могут реализовываться некоторые описанные варианты осуществления. Декодер (600) принимает закодированные данные в кодированном потоке (605) видеобитов и формирует вывод, включающий в себя изображения для восстановленного видео (695). Формат кодированного потока (605) видеобитов может представлять собой варьирование или расширение H.265/HEVC-формата, формат Windows Media Video, VC-1-формат, MPEG-x-формат (например, MPEG-1, MPEG-2 или MPEG-4), H.26x-формат (например, H.261, H.262, H.263, H.264) или другой формат.
[0106] Изображение может быть организовано в качестве нескольких мозаичных фрагментов идентичного размера или различных размеров. Изображение также может быть организовано в качестве одного или более слайсов. Контент слайса или мозаичного фрагмента может быть дополнительно организован в качестве блоков или других наборов значений выборок. Декодер (600) является блочным и использует блочный формат, который зависит от реализации. Блоки дополнительно могут подразделяться на различных стадиях. Например, изображение может разделяться на блоки 64×64, блоки 32×32 или блоки 16×16, которые, в свою очередь, могут разделяться на меньшие блоки значений выборок. В реализациях декодирования для H.265/HEVC-стандарта, изображение сегментировано на CTU (CTB), CU (CB), PU (PB) и TU (TB). Если изображение закодировано при активированной WPP (с использованием WPP или способом, совместимым с использованием WPP в ходе декодирования), строки некоторых блоков (например, строки CTU согласно H.265/HEVC-стандарту) могут декодироваться параллельно с использованием WPP, как подробнее пояснено ниже.
[0107] Декодер (600) распаковывает изображения с использованием внутрикадрового декодирования и/или межкадрового декодирования. Многие компоненты декодера (600) используются как для внутрикадрового декодирования, так и для межкадрового декодирования. Точные операции, выполняемые посредством этих компонентов, могут варьироваться в зависимости от типа распаковываемой информации.
[0108] Буфер принимает закодированные данные в кодированном потоке (605) видеобитов и делает принимаемые закодированные данные доступными для синтаксического анализатора (610)/энтропийного декодера. Синтаксический анализатор (610)/энтропийный декодер энтропийно декодирует энтропийно кодированные данные, типично применяет инверсию энтропийного кодирования, выполняемого в кодере (500) (например, выполняет контекстно-адаптивное двоичное арифметическое декодирование). В качестве результата синтаксического анализа и энтропийного декодирования, синтаксический анализатор (610)/энтропийный декодер формирует общие управляющие данные (622), данные (632) квантованных коэффициентов преобразования, данные (642) внутреннего прогнозирования, данные (652) движения и управляющие данные (662) фильтрации. Для данных (642) внутреннего прогнозирования, если значения индекса предиктора передаются в служебных сигналах, синтаксический анализатор (610)/энтропийный декодер может энтропийно декодировать значения индекса предиктора, например, с использованием контекстно-адаптивного двоичного арифметического декодирования. В некоторых случаях, синтаксический анализатор (610)/энтропийный декодер также энтропийно декодирует дифференциалы для BV-значений или других значений смещения (например, с использованием контекстно-адаптивного двоичного арифметического декодирования), затем комбинирует дифференциалы с соответствующими предикторами, чтобы восстанавливать BV-значения (или другие значения смещения). В других случаях, дифференциал опускается из потока битов, и BV-значение (или другое значение смещения) представляет собой просто предиктор (например, указываемый с помощью значения индекса предиктора). Для режима палитрового декодирования, синтаксический анализатор (610)/энтропийный декодер может декодировать палитровые данные. В частности, синтаксический анализатор (610)/энтропийный декодер может использовать палитровое прогнозирование, как пояснено ниже.
[0109] Общий контроллер (620) декодирования принимает общие управляющие данные (622) и предоставляет управляющие сигналы (не показаны) в другие модули (к примеру, в модуль (635) масштабирования/обратный преобразователь, модуль (645) внутрикадрового прогнозирования, модуль (655) компенсации движения и переключатель внутреннего/взаимного режима), чтобы задавать и изменять параметры декодирования в ходе декодирования.
[0110] Если текущее изображение прогнозируется с использованием межкадрового прогнозирования, модуль (655) компенсации движения принимает данные (652) движения, такие как MV-данные, данные выбора опорных изображений и значения индекса режима объединения. Модуль (655) компенсации движения применяет MV к восстановленному опорному изображению(ям) из буфера (670) декодированных изображений. Модуль (655) компенсации движения формирует прогнозирования с компенсацией движения для взаимно кодированных блоков текущего изображения. Буфер (670) декодированных изображений сохраняет одно или более ранее восстановленных изображений для использования в качестве опорных изображений.
[0111] В отдельном тракте в декодере (600), модуль (645) внутрикадрового прогнозирования принимает данные (642) внутреннего прогнозирования, такие как информация, указывающая то, внутрикадровое прогнозирование использует пространственное прогнозирование, прогнозирование с внутренним BC, прогнозирование с внутренним LC или прогнозирование с внутренним SC, а также направление режима прогнозирования (для внутреннего пространственного прогнозирования), BV-значения (для прогнозирования с внутренним BC), значения смещения (для прогнозирования с внутренним LC) или значения смещения и значения длины (для прогнозирования с внутренним SC). Для внутреннего пространственного прогнозирования, с использованием значений восстановления (638) текущего изображения, согласно данным режима прогнозирования, модуль (645) внутрикадрового прогнозирования пространственно прогнозирует значения выборок текущего блока текущего изображения из соседних ранее восстановленных значений выборок текущего изображения. Альтернативно, для прогнозирования с внутренним копированием, модуль (645) внутрикадрового прогнозирования прогнозирует значения выборок текущего блока, линии, строки или другой секции с использованием ранее восстановленных значений выборок опорного блока, линии, строки или другой секции, которая указывается посредством сдвига (BV-значения, значения смещения и т.д.) для текущего блока, линии, строки и т.д. В некоторых случаях, BV-значение (или другое значение смещения) может быть прогнозированным значением. В других случаях, BV-значение (или другое значение смещения) может отличаться от своего прогнозированного значения, причем в этом случае BV-значение (или другое значение смещения) восстанавливается с использованием дифференциала и прогнозированного значения. Для режима внутреннего SC, модуль (645) внутрикадрового прогнозирования также использует значение длины строки при прогнозировании значений выборок текущей строки.
[0112] Для режима палитрового декодирования, декодер (600) использует палитру, которая представляет, по меньшей мере, некоторые значения выборок CU или другой единицы. Палитра преобразует значения индекса в соответствующие цвета, используемые в единице. Например, палитра преобразует значения 0, 1, 2,..., p индекса в соответствующие цвета, которые могут иметь формат RGB 4:4:4, формат BGR 4:4:4, формат GBR 4:4:4, формат YUV 4:4:4 или другой формат (цветовое пространство, частота дискретизации цветов). Значение индекса может представлять RGB-триплет, BGR-триплет или GBR-триплет для пиксела. В ходе декодирования, для позиций в единице, значения индекса из палитры заменяются надлежащими значениями выборок. Управляюще кодированное значение в единице может декодироваться с использованием значения управляющего кода и литеральных значений. Палитра может изменяться между единицами, на основе палитровых данных, передаваемых в служебных сигналах в потоке битов.
[0113] Переключатель внутреннего/взаимного режима выбирает значения прогнозирования с компенсацией движения или внутрикадрового прогнозирования для использования в качестве прогнозирования (658) для данного блока. Например, когда придерживаются H.265/HEVC-синтаксиса, переключатель внутреннего/взаимного режима может управляться на основе синтаксического элемента, закодированного для CU изображения, которое может содержать внутренне прогнозированные CU и взаимно прогнозированные CU. Когда остаточные значения закодированы/переданы в служебных сигналах, декодер (600) комбинирует прогнозирование (658) с восстановленными остаточными значениями, чтобы формировать восстановление (638) контента из видеосигнала. Когда остаточные значения не закодированы/переданы в служебных сигналах, декодер (600) использует значения прогнозирования (658) в качестве восстановления (638).
[0114] Чтобы восстанавливать остаток, когда остаточные значения закодированы/переданы в служебных сигналах, модуль (635) масштабирования/обратный преобразователь принимает и обрабатывает данные (632) квантованных коэффициентов преобразования. В модуле (635) масштабирования/обратном преобразователе, модуль масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование для квантованных коэффициентов преобразования. Обратный преобразователь частоты выполняет обратное преобразование частоты, формируя блоки восстановленных значений остатка прогнозирования или значений выборок. Например, обратный преобразователь частоты применяет обратное блочное преобразование к коэффициентам преобразования частоты, формируя данные значений выборок или данные остатков прогнозирования. Обратное преобразование частоты может представлять собой обратное DCT, его целочисленную аппроксимацию или другой тип обратного преобразования частоты (например, обратное дискретное синусное преобразование или его целочисленную аппроксимацию). Если преобразование частоты пропущено в ходе кодирования, обратное преобразование частоты также пропускается. В этом случае, модуль масштабирования/обратный квантователь может выполнять обратное масштабирование и обратное квантование для блоков данных остатков прогнозирования (или данных значений выборок), формируя восстановленные значения.
[0115] Для внутрикадрового прогнозирования, значения восстановления (638) могут быть возвращены в модуль (645) внутрикадрового прогнозирования. Для межкадрового прогнозирования, значения восстановления (638) дополнительно могут фильтроваться. В модуле (665) объединения/фильтре, декодер (600) объединяет контент из различных мозаичных фрагментов в восстановленную версию изображения. Декодер (600) избирательно выполняет фильтрацию для удаления блочности и SAO-фильтрацию согласно управляющим данным (662) фильтрации и правилам для адаптации фильтра, с тем чтобы адаптивно сглаживать неоднородности на границах в изображениях. Альтернативно или дополнительно, может применяться другая фильтрация (к примеру, фильтрация с подавлением периодически повторяющихся помех или ALF; не показаны). Границы мозаичных фрагментов могут избирательно фильтроваться или вообще не фильтроваться, в зависимости от настроек декодера (600) или синтаксического элемента в закодированных данных потоков битов. Буфер (670) декодированных изображений буферизует восстановленное текущее изображение для использования в последующем прогнозировании с компенсацией движения.
[0116] Декодер (600) также может включать в себя постобрабатывающий фильтр. Постобрабатывающий фильтр (608) может включать в себя фильтрацию для удаления блочности, фильтрацию с подавлением периодически повторяющихся помех, адаптивную фильтрацию Винера, фильтрацию на основе воспроизведения зерна пленки, SAO-фильтрацию или другой вид фильтрации. С учетом того, что "внутриконтурная" фильтрация выполняется для восстановленных значений выборок изображений в контуре компенсации движения и, следовательно, затрагивает значения выборок опорных изображений, постобрабатывающий фильтр (608) применяется к восстановленным значениям выборок за пределами контура компенсации движения перед выводом для отображения.
[0117] В зависимости от реализации и требуемого типа распаковки, модули декодера (600) могут добавляться, опускаться, разбиваться на несколько модулей, комбинироваться с другими модулями и/или заменяться аналогичными модулями. В альтернативных вариантах осуществления, декодеры с различными модулями и/или другими конфигурациями модулей выполняют одну или более описанных технологий. Конкретные варианты осуществления декодеров типично используют вариацию или дополненную версию декодера (600). Взаимосвязи, показанные между модулями в декодере (600), указывают общие потоки информации в декодере; другие взаимосвязи не показаны для простоты.
VII. Правила для режимов внутрикадрового прогнозирования, когда WPP активируется
[0118] Этот раздел представляет примеры правил для режимов внутрикадрового прогнозирования, когда волновая параллельная обработка (WPP) активируется. Новшества упрощают использование режимов внутрикадрового прогнозирования, к примеру, режима палитрового прогнозирования, режима внутреннего блочного копирования (BC), режима внутреннего линейного копирования (LC) и режима внутреннего строкового копирования (SC), посредством кодера или декодера, когда WPP активируется.
A. Волновая параллельная обработка - введение
[0119] В общем, WPP представляет собой инструментальное средство кодирования/декодирования, которое упрощает параллельную обработку посредством дифференциальной задержки начала обработки для строк единиц в изображении. Когда WPP активируется, различные строки единиц в изображении могут быть закодированы или декодированы параллельно. В ходе кодирования или декодирования, первая строка единиц может обрабатываться "единица за единицей", слева направо. Обработка (кодирование или декодирование) второй строки единиц не должна ожидать завершения обработки для всей первой строки единиц. Вместо этого, обработка второй строки единиц может начинаться после того, как обработка завершается для нескольких единиц первой строки, которые предоставляют информацию, используемую при обработке начальной единицы второй строки. Аналогично, обработка третьей строки единиц может начинаться после того, как обработка завершается для нескольких единиц второй строки. Таким образом, WPP упрощает параллельную обработку различных строк единиц, т.е. различные подпроцессы или ядра обработки могут выполнять обработку для различных строк единиц на основе временной задержки со сдвигом.
[0120] Например, согласно H.265/HEVC-стандарту, когда WPP активируется, слайс разделяется на строки CTU. В ходе кодирования или декодирования, первая строка CTU может обрабатываться "CTU за CTU". Обработка второй строки CTU может начинаться после того, как обработка завершается для первых двух CTU первой строки, которые предоставляют информацию (например, восстановленные значения выборок, восстановленные MV-значения или BV-значения, информацию контекстной модели), используемую при обработке начальной CTU второй строки. Аналогично, обработка третьей строки CTU может начинаться после того, как обработка завершается для первых двух CTU второй строки.
[0121] Фиг. 7 иллюстрирует синхронизацию (700) WPP для текущего изображения (710) согласно H.265/HEVC-стандарту. Изображение (710) сегментировано на CTU, которые организованы в CTU-столбцы и CTU-строки. Различные CTU-строки могут быть закодированы или декодированы параллельно с использованием WPP. Синхронизация WPP отражает зависимости между CTU в ходе кодирования или декодирования. В этом примере, данная CTU может зависеть от информации (такой как восстановленные значения выборок, восстановленные MV-значения или BV-значения, информация контекстной модели) из (1) соседней CTU слева от нее, (2) соседней CTU выше и слева от нее, (3) соседней CTU выше данной CTU и (4) соседней CTU выше и справа от данной CTU, если такие соседние CTU (1)-(4) доступны (например, находятся в пределах изображения, в одном и том же слайсе и мозаичном фрагменте). Каждая соседняя CTU, в свою очередь, может зависеть от своих соседних CTU (1)-(4), если доступны. Фиг. 8 иллюстрирует каскадные зависимости для начальной CTU пятой CTU-строки. Начальная CTU пятой CTU-строки зависит от первых двух CTU четвертой CTU-строки, которые совместно зависят от первых трех CTU третьей CTU-строки и т.д.
[0122] Со ссылкой на фиг. 7, для WPP, первая CTU-строка (т.е. CTU-строка 0) обрабатывается "CTU за CTU" для волны 0. Для волны 1, обработка начальной CTU в CTU-строке 1 может начинаться после того, как кодирование/декодирование второй CTU в CTU-строке 0 завершается. Аналогично, для волны 2, обработка начальной CTU в CTU-строке 2 может начинаться после того, как кодирование/декодирование второй CTU в CTU-строке 1 завершается. Для волны 3, обработка начальной CTU в CTU-строке 3 может начинаться после того, как кодирование/декодирование второй CTU в CTU-строке 2 завершается, и для волны 4, обработка начальной CTU в CTU-строке 4 начинается после того, как кодирование/декодирование второй CTU в CTU-строке 3 завершается.
[0123] Даже когда CTU-строки обрабатываются параллельно, эта обработка с временной задержкой и со сдвигом обеспечивает то, что зависимости между CTU удовлетворяются, когда обработка начинается для CTU-строки. На фиг. 7, вывод с двумя CTU для каждой CTU-строки поддерживается в ходе обработки. Для каждой CTU-строки, обработка для текущей CTU (показана полужирным выделением) выполняется за две CTU до обработки для текущей CTU в следующей CTU-строке. Тем не менее, на практике обработка для данной CTU-строки может останавливаться или замедляться, вызывая каскадные задержки в обработке для последующих CTU-строк, которые зависят от завершения (прямо или косвенно) обработки для CTU в данной CTU-строке. Для данной CTU последующей CTU-строки, зависимости каскадируются из предыдущих CTU-строк. В примере (800), показанном на фиг. 8, для начальной CTU пятой CTU-строки кадра (810), первые две CTU четвертой CTU-строки обрабатываются. В противном случае, обработка для начальной CTU пятой CTU-строки не может начинаться. Вообще говоря, третья CTU третьей CTU-строки обрабатывается, поскольку иначе обработка для второй CTU четвертой CTU-строки не может начинаться. Аналогично, четвертая CTU второй CTU-строки обрабатывается, в качестве предварительного условия для обработки для третьей CTU третьей CTU-строки. В завершение, пятая CTU первой CTU-строки обрабатывается, в качестве предварительного условия для обработки для четвертой CTU второй CTU-строки. Таким образом, фиг. 8 показывает восстановленный контент, который гарантированно доступен для прогнозирования начальной CTU в волне 4 (пятой CTU-строке), когда WPP активируется.
[0124] Напротив, когда WPP не активируется, CTU обрабатываются слева направо в CTU-строке, "CTU-строка за CTU-строкой" сверху вниз изображения (или слайса и мозаичного фрагмента, при использовании).
Информация контекстной модели (также называемая "информацией CABAC-состояния" или "информацией энтропийного кодирования"), используемая для данной CTU, может учитывать результаты обработки любых предыдущих CTU в той же CTU-строке и любых предыдущих CTU-строках изображения (или слайса/мозаичного фрагмента), которые являются более ранними CTU в порядке кодирования/декодирования. Например, обработка второй CTU в CTU-строке зависит от результатов обработки первой CTU в CTU-строке и т.д. В качестве другого примера, обработка для начальной CTU в CTU-строке зависит от результатов обработки для последней CTU в предыдущей CTU-строке в изображении (или слайсе/мозаичном фрагменте).
[0125] С другой стороны, когда WPP активируется, обработка для начальной CTU в CTU-строке не зависит от результатов обработки для последней CTU в предыдущей CTU-строке в изображении (или слайсе/мозаичном фрагменте). Обработка для начальной CTU в CTU-строке может начинаться после обработки концов для второй CTU в предыдущей CTU-строке в изображении (или слайсе/мозаичном фрагменте), даже если информация контекстной модели из последней CTU в предыдущей CTU-строке недоступна. Обработка третьей CTU в предыдущей CTU-строке по-прежнему зависит от результатов обработки второй CTU в этой CTU-строке, идентично тому, когда WPP не активируется.
[0126] Когда WPP активируется, кодер может фактически использовать (или нет) WPP в ходе кодирования. Независимо, кодер принудительно активирует ограничения и правила прогнозирования, которые применяются, когда WPP фактически используется. Аналогично, когда WPP активируется, декодер может фактически использовать (или нет) WPP в ходе декодирования. Синтаксический элемент в потоке битов может указывать то, активируется или нет WPP для видеопоследовательности, набора изображений или изображения. Например, синтаксический элемент может передаваться в служебных сигналах в SPS, PPS или другой синтаксической структуре в потоке битов. В H.265/HEVC-реализациях, например, значение синтаксического элемента флага активации синхронизации энтропийного кодирования, который передается в служебных сигналах в синтаксической PPS-структуре, указывает то, активируется или нет WPP для изображения(й), ассоциированного с синтаксической PPS-структурой. Если флаг активации синхронизации энтропийного кодирования равен 1, WPP активируется для изображения(й). В противном случае, WPP не активируется для изображения(й).
B. Режимы палитрового кодирования/декодирования и палитровое прогнозирование - введение
[0127] В общем, режим палитрового кодирования/декодирования использует палитру, чтобы представлять, по меньшей мере, некоторые значения выборок единицы (например, CU в H.265/HEVC-реализациях или другой единицы). Например, палитра преобразует значения 0, 1, 2,..., p индекса в соответствующие цвета, которые могут иметь формат RGB 4:4:4, формат BGR 4:4:4, формат GBR 4:4:4, формат YUV 4:4:4 или другой формат (цветовое пространство, частота дискретизации цветов). Значение индекса может представлять RGB-триплет, BGR-триплет или GBR-триплет для пиксела. Фиг. 9 показывает два примера палитр. Палитра для текущей единицы (т.е. "текущая палитра") включает в себя p значений 0,..., p-1 индекса, которые ассоциированы с RGB-триплетами. Палитра для предыдущей единицы (представленная в "предыдущих палитровых данных") включает в себя q значений 0,..., q-1 индекса, которые ассоциированы с RGB-триплетами. Значения p и q могут быть идентичными или отличающимися. В ходе кодирования, кодер может заменять значения выборок пиксела с использованием значения индекса, которое может быть дополнительно закодировано, например, с использованием энтропийного кодирования. В ходе декодирования, декодер может восстанавливать значения выборок пиксела из значения индекса с использованием палитры, например, после энтропийного декодирования значения индекса.
[0128] В частности, режим палитрового кодирования/декодирования может быть эффективным, когда единица включает в себя относительно небольшое число разных цветов, что является общей характеристикой для видео экранного контента. Например, CU 64×64 в формате RGB 4:4:4 включает в себя 64×64=4096 пикселов, но может включать в себя гораздо меньшее число цветов (например, 1-20 цветов). Редкий цвет в единице может быть закодирован с использованием значения управляющего кода и литеральных значений (для соответствующих значений выборок) вместо включения редкого цвета непосредственно в палитру.
[0129] Две единицы могут использовать одну и ту же палитру, но цвета типично изменяются между единицами в изображении. В связи с этим, палитры типично изменяются между единицами в изображении. Для палитр, кодер передает в служебных сигналах палитровые данные, которые могут энтропийно кодироваться в потоке битов. Декодер принимает и синтаксически анализирует палитровые данные, энтропийно декодирует их надлежащим образом и восстанавливает палитры. Кодер и декодер могут использовать палитровое прогнозирование, чтобы уменьшать скорость передачи битов, ассоциированную с передачей служебных сигналов палитровых данных.
[0130] В общем, палитровое прогнозирование может представлять собой любой подход, используемый в ходе кодирования или декодирования для того, чтобы прогнозировать значения палитры для текущей единицы (текущей палитры) с использованием палитровых данных из одной или более палитр для предыдущих единиц (предыдущих палитровых данных). Хотя цвета типично изменяются между единицами в изображении, во многих случаях, по меньшей мере, некоторые цвета в данной единице также используются в смежной единице. Палитровое прогнозирование использует это наблюдение для того, чтобы уменьшать скорость передачи битов для палитровых данных.
[0131] Фиг. 9 показывает упрощенный пример (900) палитрового прогнозирования, в котором палитра для текущей единицы (текущая палитра) прогнозируется с использованием палитры для предыдущей единицы (представленной в предыдущих палитровых данных). Например, предыдущие палитровые данные могут быть из палитры, используемой посредством предыдущей единицы, закодированной или декодированной перед текущей единицей, если предыдущая единица использует режим палитрового кодирования/декодирования. Если предыдущая единица не использует режим палитрового кодирования/декодирования, предыдущие палитровые данные для текущей единицы могут быть "унаследованы" из предыдущей единицы. Иными словами, предыдущие палитровые данные, которые доступны для предыдущей единицы, могут быть повторно использованы в качестве предыдущих палитровых данных, доступных для текущей единицы. (В некоторых примерных реализациях, предыдущие палитровые данные, фактически, являются информацией состояния или состояния для текущей единицы. Данная единица, которая сама не использует режим палитрового кодирования/декодирования, по-прежнему имеет предыдущие палитровые данные, которые могут быть унаследованы посредством следующей единицы). Таким образом, через цепочку наследования, предыдущие палитровые данные для текущей единицы могут включать в себя палитровые данные из палитры последнего ранее обработанной единицы (если имеется), которая использует режим палитрового кодирования/декодирования.
[0132] Для палитрового прогнозирования, кодер может определять, является или нет текущая палитра идентичной предыдущим палитровым данным. Если да, кодер может просто указывать то, что предыдущие палитровые данные должны быть повторно использованы в качестве текущей палитры. Иначе (текущая палитра отличается от предыдущих палитровых данных), кодер определяет изменения между предыдущими палитровыми данными и текущей палитрой и передает в служебных сигналах синтаксические элементы, которые указывают изменения. Например, как показано на фиг. 9, для данного значения индекса текущей палитры, кодер передает в служебных сигналах то, представляет собой соответствующий цвет для данного значения индекса цвет в предыдущих палитровых данных ("prev") или новый цвет ("new"). Если соответствующий цвет представляет собой цвет в предыдущих палитровых данных, кодер передает в служебных сигналах значение индекса (из предыдущих палитровых данных) для цвета в предыдущих палитровых данных, которые могут использоваться для того, чтобы заполнять текущую палитру. На фиг. 9, цвет для значения 1 индекса из предыдущих палитровых данных переназначен значению 0 индекса в текущей палитре, а цвет для значения 0 индекса предыдущих палитровых данных переназначен значению 2 индекса в текущей палитре. Таким образом, цвета могут изменять позиции между палитрами, например, так что наиболее распространенные цвета имеют наименьшие значения индекса, что позволяет повышать эффективность энтропийного кодирования. Если соответствующий цвет для данного значения индекса представляет собой новый цвет, кодер передает в служебных сигналах триплет для нового цвета. На фиг. 9, например, для значения 1 индекса в текущей палитре, кодер передает в служебных сигналах новый триплет (215, 170, 200), который используется для того, чтобы обновлять текущую палитру.
[0133] На основе синтаксических элементов, передаваемых в служебных сигналах посредством кодера, декодер может определять, является или нет текущая палитра идентичной предыдущим палитровым данным, которые доступны в декодере. Если да, декодер может повторно использовать предыдущие палитровые данные в качестве текущей палитры. Иначе (текущая палитра отличается от предыдущих палитровых данных), декодер принимает и синтаксически анализирует синтаксические элементы, которые указывают изменения между предыдущими палитровыми данными и текущей палитрой. Например, как показано на фиг. 9, для данного значения индекса текущей палитры, декодер определяет то, представляет собой соответствующий цвет для данного значения индекса цвет в предыдущих палитровых данных ("prev") или новый цвет ("new"). Если соответствующий цвет представляет собой цвет в предыдущих палитровых данных, декодер принимает и синтаксически анализирует синтаксический элемент, который указывает значение индекса (из предыдущих палитровых данных) для цвета в предыдущих палитровых данных, которые могут использоваться для того, чтобы заполнять текущую палитру. Если соответствующий цвет для данного значения индекса представляет собой новый цвет, декодер принимает и синтаксически анализирует синтаксические элементы, которые указывают новый цвет.
[0134] После составления текущей палитры, кодер и декодер обновляют предыдущие палитровые данные для следующей единицы, чтобы сохранять палитровые данные из текущей палитры. Эти новые "предыдущие палитровые данные" могут использоваться для того, чтобы прогнозировать палитру для следующей единицы.
[0135] Фиг. 9 показывает упрощенный пример (900). На практике, синтаксические элементы и правила, используемые для того, чтобы передавать в служебных сигналах палитровые данные, могут быть более сложными. На предмет дополнительных сведений по палитровому кодированию/декодированию и палитровому прогнозированию в примерных реализациях следует обратиться, например, к разделам 7.3.8.8, 7.4.9.6 и 8.4.1 JCTVC-R1005. Альтернативно, другой подход используется для того, чтобы передавать в служебных сигналах палитровые данные.
C. Палитровое прогнозирование, когда WPP активируется
[0136] В общем, предыдущие палитровые данные для целей палитрового прогнозирования используются для того, чтобы прогнозировать палитру текущей единицы (текущую палитру). Например, предыдущие палитровые данные могут представлять собой фактические палитровые данные из соседней единицы, закодированной или декодированной перед текущей единицей (если соседняя единица использует режим палитрового кодирования/декодирования). Альтернативно, (если соседняя единица не использует режим палитрового кодирования/декодирования), предыдущие палитровые данные, доступные для соседней единицы, могут быть повторно использованы (или "унаследованы") в качестве предыдущих палитровых данных для текущей единицы.
[0137] В некоторых примерных реализациях, когда WPP не активируется, для начальной единицы в текущей строке, предыдущие палитровые данные из последней единицы в предыдущей строке (например, из палитры последней единицы, если последняя единица использует режим палитрового кодирования/декодирования; иначе, предыдущие палитровые данные, доступные для последней единицы). Когда WPP активируется, для начальной единицы в текущей строке, предыдущие палитровые данные из последней единицы в предыдущей строке могут быть недоступны. Тем не менее, сброс палитрового прогнозирования в начале каждой строки единиц (отсутствие предиктора для палитрового прогнозирования для начальной единицы в текущей единице) может оказывать негативное влияние на эффективность кодирования.
[0138] Вместо этого, когда WPP активируется, кодер или декодер может использовать предыдущие палитровые данные из одной из первых двух единиц в предыдущей строке (например, одной из первых двух CU в первых двух CTU предыдущей строки), которые уже обработаны для начала обработки начальной единицы в текущей строке. Например, для начальной единицы в текущей строке, предыдущие палитровые данные для целей палитрового прогнозирования из второй единицы предыдущей строки (фактические палитровые данные второй единицы, если вторая единица использует режим палитрового кодирования/декодирования, или предыдущие палитровые данные, доступные для второй единицы предыдущей строки, в противном случае). Таким образом, для начальной единицы в текущей строке, если вторая единица не использует режим палитрового кодирования/декодирования, предыдущие палитровые данные потенциально являются палитровыми данными из первой единицы в предыдущей строке (если первая единица использует режим палитрового кодирования/декодирования), или (если ни одна из первых двух единиц в предыдущей строке не использует режим палитрового кодирования/декодирования), предыдущими палитровыми данными из первой единицы предыдущей строки, которая может зависеть от палитры для второй единицы строки перед предыдущей строкой, и т.д. (Альтернативно, если ни одна из первых двух единиц в предыдущей строке не использует режим палитрового кодирования/декодирования, предыдущие палитровые данные могут быть нулем, без предиктора, или использовать предиктор по умолчанию). После начальной единицы в текущей строке, для текущей единицы, предыдущие палитровые данные для целей палитрового прогнозирования являются палитровыми данными из соседней единицы, закодированной или декодированной перед текущей единицей (если соседняя единица использует режим палитрового кодирования/декодирования), или (если соседняя единица не использует режим палитрового кодирования/декодирования) предыдущими палитровыми данными, доступными для соседней единицы, идентично тому, когда WPP не активируется.
[0139] Фиг. 10 показывает зависимости (1000) при палитровом прогнозировании для текущего изображения (1010), обработанного при активированной WPP согласно некоторым примерным реализациям. Изображение (1010) организовано посредством CTU-строк и CTU-столбцов. В примере по фиг. 10, каждая CTU включает в себя одну CU. Если обобщать, данная CTU может рекурсивно разбиваться на несколько CU (например, одна CU может разбиваться на четыре CU, каждая из которых дополнительно может разбиваться на меньшие CU). Состояние обработки (например, кодирование или декодирование текущих CTU), в общем, соответствует состоянию обработки, показанному на фиг. 7. Стрелки на фиг. 10 показывают направление палитрового прогнозирования, когда WPP активируется. Для начальной CU в первой CTU-строке, предиктор отсутствует. Альтернативно, может использоваться предиктор по умолчанию. Для каждой последующей CU в первой CTU-строке, предыдущие палитровые данные находятся от CU слева. Для начальной CU в любой CTU-строке после первой CTU-строки, предыдущие палитровые данные исходят из второй CU предыдущей строки. Для каждой последующей CU в любой CTU-строке после первой CTU-строки, предыдущие палитровые данные исходят из предыдущей CU в той же строке. Для любой CU, которая использует режим палитрового кодирования/декодирования, его палитра используется для того, чтобы составлять предыдущие палитровые данные для прогнозирования палитры следующей CU. Если данная CU не использует режим палитрового кодирования/декодирования, предыдущие палитровые данные, которые доступны для данной CU, сохраняются в качестве предыдущих палитровых данных следующей CU.
[0140] Когда CTU включает в себя несколько CU для целей палитрового прогнозирования для текущей CU, предыдущая CU может быть более ранней CU в порядке Z-сканирования. Более ранняя CU может находиться в той же CTU или другой CTU (для первой CU CTU). Раздел VII.D поясняет, со ссылкой на фиг. 17, примеры порядка Z-сканирования в некоторых примерных реализациях.
[0141] Кодер и декодер могут использовать запоминающее устройство для того, чтобы сохранять предыдущие палитровые данные, используемые для палитрового прогнозирования. Объем палитровых данных, которые сохранены для предыдущих палитровых данных, зависит от реализации. В общем, предыдущие палитровые данные могут включать в себя количество C цветов в предыдущих палитровых данных и подробности значений выборок (например, цветовые триплеты в формате RGB 4:4:4, формате GBR 4:4:4, формате BGR 4:4:4, формате YUV 4:4:4 или другом формате) для цветов. Кодер и декодер могут сохранять все палитровые данные для предыдущей палитры. Тем не менее, сохранение всех палитровых данных для предыдущей палитры может потреблять существенный объем запоминающего устройства для большой палитры. Альтернативно, чтобы уменьшать потребление запоминающего устройства в некоторых случаях, кодер и декодер ограничивают C посредством порогового количества, причем пороговое количество зависит от реализации. В этом случае, кодер и декодер сохраняют предыдущие палитровые данные для первых C различных цветов в предыдущей палитре, при этом C ограничено посредством порогового количества. Например, пороговое количество равно 16 или 32. Альтернативно, когда WPP активируется, для палитрового прогнозирования для начальной единицы текущей строки, кодер и декодер сохраняют предыдущие палитровые данные, самое большее, для первых C1 различных цветов. После этого, кодер и декодер сохраняют предыдущие палитровые данные, самое большее, для первых C2 различных цветов для палитрового прогнозирования в текущей строке. Например, C1 равно 16 или 32, и C2 равно 64.
[0142] Фиг. 11 показывает обобщенную технологию (1100) для кодирования, которая включает в себя палитровое прогнозирование, когда WPP активируется. Кодер, к примеру, кодер, показанный на фиг. 3 или фиг. 5a и 5b, либо другой кодер может выполнять технологию (1100). Фиг. 12 показывает обобщенную технологию (1200) для декодирования, которая включает в себя палитровое прогнозирование, когда WPP активируется. Декодер, к примеру, декодер, показанный на фиг. 4 или фиг. 6, либо другой декодер может выполнять технологию (1200).
[0143] Со ссылкой на фиг. 11, кодер кодирует (1110) изображение при активированной WPP. Кодирование (1110) формирует закодированные данные. В качестве части кодирования (1110), для режима палитрового кодирования, кодер прогнозирует палитру для начальной единицы в текущей WPP-строке изображения с использованием предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке изображения. Кодер выводит (1120) закодированные данные в качестве части потока битов.
[0144] Со ссылкой на фиг. 12, декодер принимает (1210) закодированные данные в качестве части потока битов. Декодер декодирует (1220) закодированные данные при активированной WPP. Декодирование (1220) восстанавливает изображение. В качестве части декодирования (1220), для режима палитрового декодирования, декодер прогнозирует палитру для начальной единицы в текущей WPP-строке изображения с использованием предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке изображения.
[0145] В некоторых примерных реализациях, в кодере или декодере, текущая WPP-строка и предыдущая WPP-строка представляют собой строки CTU, и начальная единица и предыдущая единица представляют собой CU. Альтернативно, WPP-строки представляют собой строки другого типа единицы, и/или начальные и предыдущие единицы представляют собой другой тип единицы. Синтаксический элемент в потоке битов может указывать то, активируется или нет WPP для видеопоследовательности, набора изображений или изображения. Синтаксический элемент может передаваться в служебных сигналах в синтаксической SPS-структуре, синтаксической PPS-структуре (например, синтаксический элемент флага активации синхронизации энтропийного кодирования в H.265/HEVC-реализациях) или другой синтаксической структуре в потоке битов.
[0146] В общем, в ходе кодирования или декодирования, палитра для начальной единицы в текущей WPP-строке представляет, по меньшей мере, некоторые цвета, используемые в начальной единице в текущей WPP-строке. Предыдущие палитровые данные из предыдущей единицы в предыдущей WPP-строке могут представлять, по меньшей мере, некоторые цвета, используемые в палитре для предыдущей единицы в предыдущей WPP-строке (если предыдущая единица использует режим палитрового кодирования/декодирования). Альтернативно, (если предыдущая единица не использует режим палитрового кодирования/декодирования), предыдущие палитровые данные из предыдущей единицы в предыдущей WPP-строке, возможно, унаследованы посредством предыдущей единицы из более ранней единицы, которая, возможно, использует режим палитрового кодирования/декодирования либо непосредственно наследует предыдущие палитровые данные. Цвета, не представленные в палитре, могут управляюще кодироваться. Предыдущая WPP-строка может представлять собой WPP-строку непосредственно выше текущей WPP-строки. Предыдущая единица в предыдущей WPP-строке может находиться выше начальной единицы в текущей WPP-строке (например, первой единицы в предыдущей строке на фиг. 10), либо она может находиться выше и справа от начальной единицы в текущей WPP-строке (например, второй единицы в предыдущей строке на фиг. 10). После обработки начальной единицы в текущей WPP-строке, для палитры последующей единицы в текущей WPP-строке изображения, кодер или декодер может прогнозировать палитру (последующей единицы) с использованием палитровых данных из палитры для начальной единицы в текущей WPP-строке.
[0147] В ходе кодирования или декодирования, палитровое прогнозирование может включать в себя несколько стадий. Например, в ходе кодирования, кодер может определять (на основе сравнения текущей палитры с предыдущими палитровыми данными) то, следует или нет повторно использовать предыдущие палитровые данные из предыдущей единицы в предыдущей WPP-строке в качестве палитры для начальной единицы в текущей WPP-строке (текущей палитре). В ходе декодирования, декодер может определять (на основе информации, передаваемой в служебных сигналах посредством кодера) то, следует или нет повторно использовать предыдущие палитровые данные из предыдущей единицы в предыдущей WPP-строке в качестве палитры для начальной единицы в текущей WPP-строке (текущей палитре). В качестве другого примера, в ходе кодирования, когда существуют изменения палитры, кодер может выбирать один или более цветов из предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке для того, чтобы включать в палитру для начальной единицы в текущей WPP-строке (текущей палитре). Кодер передает в служебных сигналах синтаксические элементы, указывающие выбранные цвета. Затем в ходе декодирования, декодер может принимать и синтаксически анализировать синтаксические элементы и, на основе синтаксических элементов, выбирать один или более цветов из предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке для того, чтобы включать в палитру для начальной единицы в текущей WPP-строке (текущей палитре). Альтернативно, кодер и декодер могут использовать другой подход для того, чтобы передавать в служебных сигналах палитровые данные.
[0148] Кодер и декодер могут сохранять все предыдущие палитровые данные из предыдущей единицы в предыдущей WPP-строке. Например, кодер и декодер могут сохранять, для каждого из C цветов в предыдущих палитровых данных из предыдущей единицы в предыдущей WPP-строке, одно или более значений цветовых компонентов. Альтернативно, чтобы уменьшать потребление запоминающего устройства в некоторых случаях, кодер и декодер могут ограничивать C посредством порогового количества для предыдущих палитровых данных, так что палитровые данные для первых C цветов, ограниченные посредством порогового количества, сохраняются для палитрового прогнозирования.
D. Прогнозирование с внутренним копированием - введение
[0149] В общем, режим внутреннего копирования использует прогнозирование с внутренним копированием, в котором текущий блок, линия, строка или другая секция в изображении прогнозируются с использованием ранее восстановленных значений выборок в опорном блоке, линии, строке или другой секции в том же изображении. Например, режим внутреннего копирования может использовать прогнозирование с внутренним блочным копированием (BC), прогнозирование с внутренним линейным копированием (LC) или прогнозирование с внутренним строковым копированием (SC).
[0150] В общем, режим внутреннего BC использует прогнозирование с внутренним BC, в котором значения выборок текущего блока изображения прогнозируются с использованием значений выборок в том же изображении. Значение блочного вектора (BV) указывает сдвиг от текущего блока до блока изображения ("опорного блока"), который включает в себя значения выборок, используемые для прогнозирования. Опорный блок предоставляет прогнозированные значения для текущего блока. Значения выборок, используемые для прогнозирования, являются ранее восстановленными значениями выборок, которые в силу этого доступны в кодере в ходе кодирования и в декодере в ходе декодирования. BV-значение передается в служебных сигналах в потоке битов, и декодер может использовать BV-значение для того, чтобы определять опорный блок изображения, который следует использовать для прогнозирования.
[0151] Фиг. 13 показывает пример (1300) прогнозирования с внутренним BC для текущего блока (1330) текущего изображения (1310). Текущий блок может представлять собой блок кодирования (CB) единицы кодирования (CU), прогнозный блок (PB) единицы прогнозирования (PU), блок преобразования (TB) единицы преобразования (TU) или другой блок. Размер текущего блока может составлять 64×64, 32×32, 16×16, 8×8 или некоторый другой размер. Блоки могут быть симметрично или асимметрично сегментированы на меньшие блоки для целей прогнозирования с внутренним BC. Если обобщать, размер текущего блока составляет m x n, где каждое из m и n является целым числом, и где m и n могут быть равны друг другу или могут иметь различные значения. Таким образом, текущий блок может быть квадратным или прямоугольным. Альтернативно, текущий блок может иметь некоторую другую форму.
[0152] BV (1340) указывает сдвиг (или смещение) от текущего блока (1330) до опорного блока (1350) изображения, которое включает в себя значения выборок, используемые для прогнозирования. Опорный блок (1350) может быть идентичным текущему блоку (1330), или он может представлять собой аппроксимацию текущего блока (1330). Предположим, что левая верхняя позиция текущего блока находится в позиции (x0, y0) в текущем изображении, и предположим, что левая верхняя позиция опорного блока находится в позиции (x1, y1) в текущем изображении. BV указывает сдвиг (x1-x0, y1-y0). Например, если левая верхняя позиция текущего блока находится в позиции (256, 128), и левая верхняя позиция опорного блока находится в позиции (126, 104), BV-значение составляет (-130, -24). В этом примере, отрицательный горизонтальный сдвиг указывает позицию слева от текущего блока, а отрицательный вертикальный сдвиг указывает позицию выше текущего блока.
[0153] Прогнозирование с внутренним BC может повышать эффективность кодирования посредством использования избыточности (к примеру, повторяющихся шаблонов в изображении) с использованием BC-операций. Тем не менее, нахождение совпадающего опорного блока для текущего блока может быть вычислительно сложным и длительным, с учетом числа возможных вариантов опорных блоков, которые может оценивать кодер. Фиг. 14 показывает пример (1400), иллюстрирующий некоторые возможные варианты опорных блоков для текущего блока (1430) текущего изображения (1410), когда WPP не активируется. Четыре BV (1441, 1442, 1443, 1444) указывают сдвиги для четырех возможных вариантов опорных блоков. Когда WPP не активируется, возможные варианты опорных блоков могут находиться в любом месте в восстановленном контенте текущего изображения (1410). (Блоки, в общем, кодируются слева направо, затем сверху вниз). Возможный вариант опорного блока может перекрываться с другими возможными вариантами опорных блоков, как показано для возможных вариантов опорных блоков, указываемых посредством BV (1443, 1444). В некоторых примерных реализациях, опорный блок ограничивается нахождением в пределах того же слайса и мозаичного фрагмента, что и текущий блок. Такое прогнозирование с внутренним BC не использует значения выборок в других слайсах или мозаичных фрагментах. Местоположение опорного блока может подвергаться одному или более другим ограничениям, например, ограничению, когда WPP активируется, как описано ниже.
[0154] Блок с режимом прогнозирования для прогнозирования с внутренним BC может представлять собой CB, PB или другой блок.
Когда блок представляет собой CB, BV для блока может передаваться в служебных сигналах на уровне CU (и другие CB в CU используют идентичный BV или его масштабированную версию). Альтернативно, когда блок представляет собой PB, BV для блока может передаваться в служебных сигналах на уровне PU (и другие PB в PU используют идентичный BV или его масштабированную версию). Если обобщать, BV для блока прогнозирования с внутренним BC передается в служебных сигналах на надлежащем уровне синтаксиса для блока.
[0155] В общем, режим внутреннего LC использует прогнозирование с внутренним LC, в котором значения выборок текущей линии текущего блока изображения прогнозируются с использованием значений выборок в том же изображении. Значение смещения указывает сдвиг от текущей линии до линии изображения ("опорной линии"), которая включает в себя значения выборок, используемые для прогнозирования. Значение смещения передается в служебных сигналах в потоке битов, и декодер может использовать значение смещения для того, чтобы определять опорную линию, которую следует использовать для прогнозирования.
[0156] Фиг. 15 иллюстрирует пример (1500) прогнозирования с внутренним LC для линий текущего блока (1530) текущего изображения. Текущий блок может представлять собой CB CU, PB PU, TB TU или другой блок. Размер текущего блока может составлять 64×64, 32×32, 16×16, 8×8 или некоторый другой размер. Если обобщать, размер текущего блока составляет m x n, где каждое из m и n является целым числом, и где m и n могут быть равны друг другу или могут иметь различные значения. Таким образом, текущий блок может быть квадратным или прямоугольным. Для прогнозирования с внутренним LC, блок разбивается на горизонтальные линии или вертикальные линии. Горизонтальные линии имеют высоту в 1 выборку и имеют ширину текущего блока. Вертикальные линии имеют ширину в 1 выборку и имеют высоту текущего блока.
[0157] На фиг. 15, первое смещение (1551) указывает сдвиг от первой линии (1541) текущего блока (1530) до опорной линии (1561), которая включает в себя значения выборок, используемые для прогнозирования первой линии (1541). Опорная линия может быть идентичной данной линии, или она может представлять собой аппроксимацию данной линии. Второе смещение (1552) указывает сдвиг от второй линии (1542) текущего блока (1530) до опорной линии (1562), которая включает в себя значения выборок, используемые для прогнозирования второй линии (1542). Значение (1551, 1552) смещения является аналогичным BV-значению в том, что оно указывает сдвиг в текущем изображении. Хотя фиг. 15 показывает горизонтальные линии, текущий блок (1530) вместо этого может разбиваться на вертикальные линии для прогнозирования с внутренним LC. Синтаксический элемент в расчете на блок, в расчете на единицу или в расчете на изображение может указывать то, используются горизонтальные или вертикальные линии для прогнозирования с внутренним LC.
[0158] Прогнозирование с внутренним LC может повышать эффективность кодирования посредством использования избыточности (к примеру, повторяющихся шаблонов в изображении) с использованием LC-операций. Когда WPP не активируется, возможные варианты опорных линий могут находиться в любом месте в восстановленном контенте текущего изображения. Возможный вариант опорной линии может перекрываться с другими возможными вариантами опорных линий. В некоторых примерных реализациях, опорная линия ограничивается нахождением в пределах того же слайса и мозаичного фрагмента, что и текущая линия. Местоположение опорной линии может подвергаться одному или более другим ограничениям, например, ограничению, когда WPP активируется, как описано ниже.
[0159] В общем, режим внутреннего SC использует прогнозирование с внутренним SC, в котором значения выборок текущей строки текущего блока изображения прогнозируются с использованием значений выборок в том же изображении. Значение смещения указывает сдвиг от текущей строки до строки изображения ("опорной строки"), которая включает в себя значения выборок, используемые для прогнозирования. Значение длины строки указывает длину строки с точки зрения значений выборок. Значение смещения и значение длины строки передаются в служебных сигналах в потоке битов, и декодер может использовать значение смещения и значение длины строки для того, чтобы определять опорную строку, которую следует использовать для прогнозирования.
[0160] Фиг. 16 показывает пример (1600) прогнозирования с внутренним SC для строк текущего блока (1630) текущего изображения. Текущий блок может представлять собой CB CU, PB PU, TB TU или другой блок. Размер текущего блока может составлять 64×64, 32×32, 16×16, 8×8 или некоторый другой размер. Если обобщать, размер текущего блока составляет m x n, где каждое из m и n является целым числом, и где m и n могут быть равны друг другу или могут иметь различные значения. Таким образом, текущий блок может быть квадратным или прямоугольным. Для прогнозирования с внутренним SC, блок разбивается на одну или более строк. На фиг. 16, текущий блок (1630) разбивается на три строки. Строки блока могут сканироваться горизонтально, т.е. слева направо в данной строке, затем следующая строка и т.д. Альтернативно, строки блока могут сканироваться вертикально, т.е. сверху вниз в данном столбце, затем следующий столбец и т.д. Строки на фиг. 16 сканируются горизонтально.
[0161] На фиг. 16, первое смещение (1651) указывает сдвиг от первой строки (1641) текущего блока (1630) до опорной строки (1661), которая включает в себя значения выборок, используемые для прогнозирования первой строки (1641). Длина каждой первой строки (1641) и соответствующей опорной строки (1661) составляет 6 значений выборок. Опорная строка может быть идентичной данной строке, или она может представлять собой аппроксимацию данной строки. Второе смещение (1652) указывает сдвиг от второй строки (1642) текущего блока (1630) до опорной строки (1662), которая включает в себя значения выборок, используемые для прогнозирования второй строки (1642). Длина каждой второй строки (1642) и соответствующей опорной строки (1662) составляет 14 значений выборок. Смещение не показано для третьей строки текущего блока (1630), которая имеет длину в 44 выборки. Аналогично BV-значению, значение (1651, 1652) смещения указывает сдвиг в текущем изображении. Хотя фиг. 16 показывает горизонтальное сканирование, текущий блок (1630) вместо этого может разбиваться на строки, которые сканируются вертикально для прогнозирования с внутренним SC. Синтаксический элемент в расчете на блок, в расчете на единицу или в расчете на изображение может указывать то, используется горизонтальный или вертикальный порядок сканирования для прогнозирования с внутренним SC.
[0162] Прогнозирование с внутренним SC может повышать эффективность кодирования посредством использования избыточности (к примеру, повторяющихся шаблонов в изображении) с использованием SC-операций. Прогнозирование с внутренним SC является более гибким по сравнению с прогнозированием с внутренним BC или прогнозированием с внутренним LC (обеспечивает возможность сегментации на произвольные строки, а не только на фиксированные сегменты), но передает в служебных сигналах больший объем информации (значения длины строки в дополнение к значениям смещения). Когда WPP не активируется, возможные варианты опорных строк могут находиться в любом месте в восстановленном контенте текущего изображения. Возможный вариант опорной строки может перекрываться с другими возможными вариантами опорных строк. В некоторых примерных реализациях, опорная строка ограничивается нахождением в пределах того же слайса и мозаичного фрагмента, что и текущая строка. Местоположение опорной строки может подвергаться одному или более другим ограничениям, например, ограничению, когда WPP активируется, как описано ниже.
[0163] Операции прогнозирования с внутренним копированием для режима внутреннего BC, режима внутреннего LC или режима внутреннего SC могут применяться на уровне CB (когда BV-значение или другое значение смещения передается в служебных сигналах в расчете на CB или его часть) или PB (когда BV-значение или другое смещение передаются в служебных сигналах в расчете на PB или его часть). В этом случае, опорная область ограничивается таким образом, чтобы не перекрывать текущую область или блок, включающий в себя текущую область. Альтернативно, операции прогнозирования с внутренним копированием могут применяться для меньших секций в PB или CB, даже когда BV-значение или другое значение смещения передается в служебных сигналах для PB или CB (или его части). Например, для первой секции блока, опорная область включает в себя позиции за пределами блока. Тем не менее, для второй секции блока, опорная область, используемая в операциях прогнозирования с внутренним копированием, может включать в себя позиции в ранее восстановленной первой секции того же блока. Таким образом, BV-значение или значение смещения может ссылаться на позиции в том же PB или CB. Предоставление возможности применения операций прогнозирования с внутренним копированием для секций в PB или CB упрощает использование BV-значений или других смещений с относительно небольшими абсолютными величинами.
[0164] Когда опорная область для текущей области в текущей единице может включать в себя позицию в той же единице, кодер может проверять достоверность BV-значения или другого значения смещения с учетом порядков Z-сканирования текущей области и опорной области (которые находятся в одном и том же слайсе и одном и том же мозаичном фрагменте). Например, кодер проверяет то, что порядок Z-сканирования блока, содержащего правую нижнюю позицию
Figure 00000001
опорной области, меньше порядка Z-сканирования блока, содержащего левую верхнюю позицию
Figure 00000002
текущей области, где offset указывает значение смещения, и текущая область и опорная область имеют размеры m x n. Если да, блок, который содержит правую нижнюю позицию опорной области, ранее восстановлен (а следовательно, также и остальная часть опорной области). Кодер также может проверять то, что значение смещения удовлетворяет, по меньшей мере, одному из условий
Figure 00000003
и
Figure 00000004
, что обеспечивает то, что опорная область не перекрывает текущую область.
[0165] В общем, порядок Z-сканирования придерживается последовательно указанного упорядочения единиц, которые сегментируют изображение. Фиг. 17 показывает примерный порядок (1700) Z-сканирования для текущей области (1730) и единицы, которые могут включать в себя правую нижнюю позицию опорной области. Текущая область (1730) может представлять собой CB, PB либо другой блок, линию или прямоугольник, который включает в себя строку. Порядки Z-сканирования, в общем, назначаются единицам последовательно слева направо в строке, повторяющейся в последовательных строках сверху вниз. Когда единица разбивается, порядки Z-сканирования назначаются в разбитой единице, рекурсивно. Для реализаций кодирования/декодирования для H.265/HEVC-стандарта, порядок Z-сканирования продолжается от CTU к CTU вдоль шаблона растрового сканирования CTU (слева направо в CTU-строке, повторяясь в последовательных CTU-строках сверху вниз). Если CTU разбивается, порядок Z-сканирования придерживается шаблона растрового сканирования для CU дерева квадрантов в разбитой CTU. Так же, если CU разбивается (например, на несколько CU или на несколько PU), порядок Z-сканирования придерживается шаблона растрового сканирования для блоков в разбитой CU.
[0166] В некоторых примерных реализациях, BV-значение или другое значение смещения передается в служебных сигналах для CU, PU или другой единицы и применяется для всех блоков единицы. В зависимости от цветового пространства и частоты дискретизации цветов, BV-значение или другое значение смещения может использоваться для всех блоков без масштабирования, либо оно может масштабироваться для блоков в различных цветовых компонентах. Альтернативно, различные BV-значения или другие значения смещения могут передаваться в служебных сигналах для различных блоков единицы. В некоторых примерных реализациях, один и тот же режим прогнозирования (например, режим внутреннего BC) применяется для всех блоков единицы. Альтернативно, различные блоки могут иметь различные режимы прогнозирования.
E. Ограничения для прогнозирования с внутренним копированием, когда WPP активируется
[0167] В общем, прогнозирование с внутренним BC, прогнозирование с внутренним LC и прогнозирование с внутренним SC используют ранее восстановленные значения выборок в изображении, чтобы прогнозировать значения выборок текущего блока, линии или строки одного и того же изображения. В качестве правила, область изображения, которое включает в себя ранее восстановленные значения выборок, когда WPP активируется, отличается от области изображения, которое включает в себя ранее восстановленные значения выборок, когда WPP не активируется. Для прогнозирования с внутренним копированием, некоторые ограничения на местоположение опорной области принудительно активированы независимо от того, активируется или нет WPP. Одно или более других ограничений на местоположение опорной области применяются, когда WPP активируется. Ограничения на местоположение опорной области могут принимать форму пределов для разрешенных BV-значений для прогнозирования с внутренним BC или пределов для разрешенных значений смещения для прогнозирования с внутренним LC или прогнозирования с внутренним SC.
[0168] Фиг. 18 показывает пример (1800) ограничений на местоположение опорной области для текущей области (1830) изображения (1810), когда WPP активируется, согласно некоторым примерным реализациям. Изображение (1810) организовано посредством CTU-строк и CTU-столбцов.
[0169] Текущая область (1830) кодируется или декодируется в режиме внутреннего копирования. Текущая область (1830) является частью текущей CTU. Для текущей CTU, зависимости каскадируются из предыдущих CTU-строк. Когда WPP активируется, для начала обработки текущей CTU, обрабатывается CTU слева от нее в той же строке, и обрабатываются CTU в предыдущей строке вплоть до правой верхней CTU. Аналогично, для любых из этих уже обработанных CTU, обрабатываются CTU слева в той же строке и CTU в предыдущей строке вплоть до правой верхней CTU. Как показано на фиг. 18, эти ранее обработанные CTU предоставляют восстановленный контент, гарантированно доступный для прогнозирования с внутренним копированием, когда WPP активируется.
[0170] Фиг. 18 показывает некоторые возможные варианты опорных областей для текущей области (1830) текущего изображения (1810). Четыре значения (1841, 1842, 1843, 1844) смещения указывают сдвиги для четырех возможных вариантов опорных областей. Возможный вариант опорной области может перекрываться с другими возможными вариантами опорных областей. Возможные варианты опорных областей могут находиться в любом месте в восстановленном контенте текущего изображения (1810). Когда WPP не активируется, восстановленный контент текущего изображения (1810), в общем, включает в себя CTU слева от текущей CTU и все CTU в предыдущих CTU-строках. Тем не менее, когда WPP активируется, меньший объем восстановленного контента доступен, как показано на фиг. 18. На фиг. 18, три из значений (1841, 1842, 1843) смещения указывают допустимые опорные области. Эти допустимые опорные области включают в себя только значения выборок в восстановленном контенте, гарантированно доступные для прогнозирования с внутренним копированием, когда WPP активируется. Одно из значений (1844) смещения указывает недопустимую опорную область, которая включает в себя, по меньшей мере, некоторые значения выборок за пределами восстановленного контента, гарантированно доступные для прогнозирования с внутренним копированием, когда WPP активируется.
1. Кодирование и декодирование с ограничениями на режим внутреннего копирования, когда WPP активируется
[0171] Фиг. 19 показывает обобщенную технологию (1900) для кодирования с правилами, принудительно активированными для режима внутреннего копирования, когда WPP активируется. Кодер, к примеру, кодер, показанный на фиг. 3 или фиг. 5a и 5b, либо другой кодер может выполнять технологию (1900). Фиг. 20 показывает обобщенную технологию (2000) для декодирования с правилами, принудительно активированными для режима внутреннего копирования, когда WPP активируется. Декодер, к примеру, декодер, показанный на фиг. 4 или фиг. 6, либо другой декодер может выполнять технологию (2000).
[0172] Со ссылкой на фиг. 19, кодер кодирует (1910) изображение при активированной WPP. Кодирование (1910) формирует закодированные данные. В качестве части кодирования (1910), для режима внутреннего копирования (например, режима с использованием прогнозирования с внутренним BC, прогнозирования с внутренним LC или прогнозирования с внутренним SC), кодер принудительно активирует одно или более ограничений, обусловленных WPP. Кодер выводит (1920) закодированные данные в качестве части потока битов.
[0173] Со ссылкой на фиг. 20, декодер принимает (2010) закодированные данные в качестве части потока битов. Закодированные данные удовлетворяют, для режима внутреннего копирования (например, режима с использованием прогнозирования с внутренним BC, прогнозирования с внутренним LC или прогнозирования с внутренним SC), одному или более ограничений, обусловленных WPP. Декодер декодирует (2020) закодированные данные при активированной WPP. Декодирование (2020) восстанавливает изображение.
[0174] Синтаксический элемент в потоке битов может указывать то, активируется или нет WPP для видеопоследовательности, набора изображений или изображения. Синтаксический элемент может передаваться в служебных сигналах в синтаксической SPS-структуре, синтаксической PPS-структуре (например, синтаксический элемент флага активации синхронизации энтропийного кодирования в H.265/HEVC-реализациях) или другой синтаксической структуре в потоке битов.
[0175] Режим внутреннего копирования может представлять собой режим внутреннего BC. В этом случае, для текущего блока в изображении, значение смещения указывает сдвиг для опорного блока в изображении. Опорный блок включает в себя ранее восстановленные значения выборок. Альтернативно, режим внутреннего копирования может представлять собой режим внутреннего LC. В этом случае, для текущей линии в блоке изображения, значение смещения указывает сдвиг для опорной линии в изображении. Опорная линия включает в себя ранее восстановленные значения выборок, которые сканируются в направлении линейного сканирования, которое может быть горизонтальным или вертикальным. Альтернативно, режим внутреннего копирования может представлять собой режим внутреннего SC. В этом случае, для текущей строки в блоке изображения, значение смещения указывает сдвиг для опорной строки в изображении. Опорная строка включает в себя ранее восстановленные значения выборок, которые сканируются в порядке строкового сканирования, который может быть горизонтальным или вертикальным. Для текущей строки, значение длины указывает длину для каждой текущей строки и опорной строки. Альтернативно, режим внутреннего копирования может представлять собой некоторой другой режим, который использует значение смещения для того, чтобы находить опорный блок, линию, строку или другую секцию в изображении, для текущего блока, линии, строки или другой секции в том же изображении, при этом опорный блок, линия, строка и т.д. включает в себя ранее восстановленные значения выборок.
[0176] Ограничение(я), обусловленное WPP, может включать в себя такое ограничение, что значение горизонтального сдвига от опорной области до текущей области меньше или равно значению вертикального сдвига от текущей области до опорной области. Например, значение горизонтального сдвига измеряет разность от WPP-столбца, который включает в себя правый край опорной области, до WPP-столбца, который включает в себя левый край текущей области, и значение вертикального сдвига измеряет разность от WPP-строки, которая включает в себя верхний край текущей области, до WPP-строки, которая включает в себя нижний край опорной области. В некоторых примерных реализациях, каждый из WPP-столбцов представляет собой столбец CTU, и каждая из WPP-строк представляет собой строку CTU. Альтернативно, ограничение(я), обусловленное WPP, включает в себя одно или более других и/или дополнительных ограничений.
[0177] Если режим внутреннего копирования представляет собой режим внутреннего BC, текущая область представляет собой текущий блок, а опорная область представляет собой опорный блок. Если режим внутреннего копирования представляет собой режим внутреннего LC, текущая область представляет собой текущую линию, а опорная область представляет собой опорную линию. Если режим внутреннего копирования представляет собой режим внутреннего SC, текущая область представляет собой прямоугольник, который включает в себя текущую строку, а опорная область представляет собой прямоугольник, который включает в себя опорную строку. Кодер или декодер может идентифицировать прямоугольник, который включает в себя текущую строку, посредством определения прямоугольника, который включает в себя начальную позицию текущей строки, конечную позицию текущей строки и любые позиции между начальной позицией и конечной позицией текущей строки в порядке строкового сканирования (например, горизонтальный, вертикальный). Кодер или декодер может идентифицировать прямоугольник, который включает в себя опорную строку, с использованием значения смещения, применяемого к прямоугольнику, который включает в себя текущую строку.
[0178] Кодер также может принудительно активировать одно или более других ограничений, которые не обусловлены WPP. Например, кодер может проверять то, что левая верхняя позиция текущей области и левая верхняя позиция опорной области находятся в одном и том же слайсе, если применимо, и в одном и том же мозаичном фрагменте, если применимо. В качестве другого примера, кодер может проверять то, что левая верхняя позиция текущей области и правая нижняя позиция опорной области находятся в одном и том же слайсе, если применимо, и в одном и том же мозаичном фрагменте, если применимо. В качестве еще одного другого примера, кодер может проверять то, что удовлетворяется одно из следующих трех условий: (a) CTU-строка, которая включает в себя нижний край опорной области, находится выше CTU-строки, которая включает в себя верхний край текущей области; (b) если CTU-строка, которая включает в себя нижний край опорной области, равна CTU-строке, которая включает в себя верхний край текущей области, то CTU-столбец, который включает в себя правый край опорной области, находится слева от CTU-столбца, который включает в себя левый край текущей области; и (c) если CTU-строка, которая включает в себя нижний край опорной области, равна CTU-строке, которая включает в себя верхний край текущей области, и если CTU-столбец, который включает в себя правый край опорной области, равен CTU-столбцу, который включает в себя левый край текущей области, то правая нижняя позиция опорной области находится раньше в порядке Z-сканирования, чем левая верхняя позиция текущей области.
[0179] Следующие разделы детализируют примеры ограничений, которые кодер может принудительно активировать для прогнозирования с внутренним BC, прогнозирования с внутренним LC и прогнозирования с внутренним SC, соответственно, когда WPP активируется, согласно некоторым примерным реализациям.
2. Примерные ограничения на BV-значения для прогнозирования с внутренним BC, когда WPP активируется
[0180] Этот раздел детализирует примеры ограничений, которые кодер может принудительно активировать для прогнозирования с внутренним BC, когда WPP активируется. Для текущего блока, ограничения верифицируют то, что возможный вариант опорного блока, указываемый посредством BV-значения, включает в себя восстановленные значения выборок, которые должны быть доступны, когда текущий блок закодирован или декодирован, даже когда WPP активируется.
[0181] Определения
Текущий блок начинается с позиции
Figure 00000005
относительно левой верхней позиции текущего изображения. Ширина и высота текущего блока представляет собой
Figure 00000006
и
Figure 00000007
, соответственно. Текущий блок является частью текущей CU. CTU-размер составляет S. Текущая CU начинается с
Figure 00000008
относительно левой верхней позиции изображения. Блочный вектор представляет собой
Figure 00000009
).
[0182] Кодер верифицирует то, что удовлетворяются все следующие ограничения.
[0183] Первое ограничение. Кодер верифицирует то, что позиция
Figure 00000010
и позиция
Figure 00000011
Figure 00000012
находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и левая верхняя позиция опорного блока находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, первое ограничение не удовлетворяется.
[0184] Второе ограничение. Кодер верифицирует то, что позиция
Figure 00000013
и позиция
Figure 00000014
находятся в одном и том же слайсе и одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и правая нижняя позиция опорного блока находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, второе ограничение не удовлетворяется.
[0185] Для первого и второго ограничений, если несколько слайсов не используются, две позиции, которые проверяются, обязательно находятся в одном и том же слайсе, и первое и второе ограничения для слайсов не должны проверяться. Аналогично, если несколько мозаичных фрагментов не используются, две позиции, которые проверяются, обязательно находятся в том же мозаичном фрагменте, и первое и второе ограничения для мозаичных фрагментов не должны проверяться. Все позиции текущего блока находятся в одном слайсе и одном мозаичном фрагменте. Если первое и второе ограничения удовлетворяются, все позиции опорного блока также находятся в этом слайсе и мозаичном фрагменте. Кодер проверяет первое и второе ограничения независимо от того, активируется или нет WPP.
[0186] Третье ограничение. Для третьего ограничения, кодер верифицирует то, что удовлетворяется одно из следующих трех условий. Кодер проверяет третье ограничение независимо от того, активируется или нет WPP.
[0187] Первое условие третьего ограничения. Кодер проверяет то, удовлетворяется или нет
Figure 00000015
Figure 00000016
. Иными словами, кодер вычисляет CTU-строку, которая включает в себя нижний край опорного блока:
Figure 00000017
. Кодер также вычисляет CTU-строку, которая включает в себя верхний край текущего блока:
Figure 00000018
. Кодер затем проверяет то, находится или нет CTU-строка, которая включает в себя нижний край опорного блока, выше CTU-строки, которая включает в себя верхний край текущего блока. Если да, опорный блок обязательно включает в себя ранее восстановленные значения выборок, по меньшей мере, когда WPP не активируется.
[0188] Второе условие третьего ограничения. Когда
Figure 00000019
, кодер проверяет то, удовлетворяется или нет
Figure 00000020
. Иными словами, если CTU-строка, которая включает в себя нижний край опорного блока, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), кодер вычисляет (a) CTU-столбец, который включает в себя правый край опорного блока
Figure 00000021
, и (b) CTU-столбец, который включает в себя левый край текущего блока
Figure 00000022
. Кодер затем проверяет то, находится или нет CTU-столбец, который включает в себя правый край опорного блока, слева от CTU-столбца, который включает в себя левый край текущего блока. Если да, опорный блок обязательно включает в себя ранее восстановленные значения выборок.
[0189] Третье условие третьего ограничения. Когда
Figure 00000023
и
Figure 00000024
Figure 00000025
, кодер проверяет то, меньше или нет порядок Z-сканирования позиции
Figure 00000026
Figure 00000027
порядка Z-сканирования позиции
Figure 00000028
. Иными словами, если CTU-строка, которая включает в себя нижний край опорного блока, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), и CTU-столбец, который включает в себя правый край опорного блока, равен CTU-столбцу, который включает в себя левый край текущего блока (тот же CTU-столбец), то кодер проверяет то, находится или нет правая нижняя позиция опорного блока раньше в порядке Z-сканирования, чем левая верхняя позиция текущего блока. Третье условие применяется, если прогнозирование из текущей CU разрешается. Если прогнозирование из текущей CU не разрешается,
Figure 00000029
должен быть
Figure 00000030
.
[0190] Четвертое ограничение. Кодер проверяет четвертое ограничение, когда WPP активируется. Для четвертого ограничения, кодер верифицирует то, что
Figure 00000031
Figure 00000032
. Иными словами, кодер вычисляет разность между CTU-столбцом, который включает в себя правый край опорного блока, и CTU-столбцом, который включает в себя левый край текущего блока:
Figure 00000033
. Кодер также вычисляет разность между CTU-строкой, которая включает в себя верхний край текущего блока, и CTU-строкой, которая включает в себя нижний край опорного блока:
Figure 00000034
. Кодер верифицирует то, что первая разность (между CTU-столбцами) меньше или равна второй разности (между CTU-строками). Как показано с помощью неровной линии CTU от текущей CTU вверх и вправо на фиг. 8 или фиг. 18, это верифицирует то, что опорный блок является частью восстановленного контента, который гарантированно доступен для прогнозирования, когда WPP активируется.
3. Примерные ограничения на значения смещения для прогнозирования с внутренним LC, когда WPP активируется
[0191] Этот раздел детализирует примеры ограничений, которые кодер может принудительно активировать для прогнозирования с внутренним LC, когда WPP активируется. Для текущей линии, ограничения верифицируют то, что возможный вариант опорной линии, указываемый посредством значения смещения, включает в себя восстановленные значения выборок, которые должны быть доступны, когда текущая линия закодирована или декодирована, даже когда WPP активируется.
[0192] Определения
Текущий блок начинается с позиции
Figure 00000035
относительно левой верхней позиции текущего изображения. Ширина и высота текущего блока представляет собой
Figure 00000036
и
Figure 00000037
, соответственно. Текущий блок является частью текущей CU. CTU-размер составляет S. Значение смещения для текущей линии составляет
Figure 00000038
. L линий текущего блока уже обработаны.
[0193] Кодер задает начальную и конечную позиции текущей линии текущего блока.
Позиция
Figure 00000039
представляет собой начальную позицию текущей линии, и
Figure 00000040
Figure 00000041
представляет собой конечную позицию текущей линии. Когда используется горизонтальное сканирование (также называемое "строковым режимом"), каждая линия представляет собой строку текущего блока:
Figure 00000042
и
Figure 00000043
Когда используется вертикальное сканирование (также называемое "столбцовым режимом"), каждая линия представляет собой столбец текущего блока:
Figure 00000044
и
Figure 00000045
[0194] Кодер также задает начальную и конечную позиции возможного варианта опорной линии, который прогнозирует текущую линию. Позиция
Figure 00000046
представляет собой начальную позицию опорной линии. Позиция
Figure 00000047
представляет собой конечную позицию опорной линии. Опорная линия может представлять собой строку (когда используется горизонтальное сканирование) или столбец (когда используется вертикальное сканирование). Независимо от того, используется горизонтальное сканирование (строковый режим) или вертикальное сканирование (столбцовый режим):
Figure 00000048
и
Figure 00000049
Figure 00000050
.
[0195] Кодер верифицирует то, что удовлетворяются все следующие ограничения. Для некоторых из этих ограничений, рассматривается левая верхняя позиция
Figure 00000051
текущего блока. Для таких ограничений, альтернативно, начальная позиция
Figure 00000052
текущей линии может проверяться вместо левой верхней позиции
Figure 00000053
текущего блока.
[0196] Первое ограничение. Кодер верифицирует то, что позиция
Figure 00000054
и позиция
Figure 00000055
находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и начальная позиция опорной линии находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, первое ограничение не удовлетворяется.
[0197] Второе ограничение. Кодер верифицирует то, что позиция
Figure 00000056
и позиция
Figure 00000057
находятся в одном и том же слайсе и одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и конечная позиция опорной линии находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, второе ограничение не удовлетворяется.
[0198] Для первого и второго ограничений, если несколько слайсов не используются, две позиции, которые проверяются, обязательно находятся в одном и том же слайсе, и первое и второе ограничения для слайсов не должны проверяться. Аналогично, если несколько мозаичных фрагментов не используются, две позиции, которые проверяются, обязательно находятся в том же мозаичном фрагменте, и первое и второе ограничения для мозаичных фрагментов не должны проверяться. Все позиции текущей линии находятся в одном слайсе и одном мозаичном фрагменте. Если первое и второе ограничения удовлетворяются, все позиции опорной линии также находятся в этом слайсе и мозаичном фрагменте. Кодер проверяет первое и второе ограничения независимо от того, активируется или нет WPP.
[0199] Третье ограничение. Для третьего ограничения, кодер верифицирует то, что удовлетворяется одно из следующих трех условий. Кодер проверяет третье ограничение независимо от того, активируется или нет WPP.
[0200] Первое условие третьего ограничения. Кодер проверяет то, удовлетворяется или нет
Figure 00000058
Figure 00000059
. Иными словами, кодер вычисляет CTU-строку, которая включает в себя нижний край или позицию опорной линии:
Figure 00000060
. Кодер также вычисляет CTU-строку, которая включает в себя верхний край текущего блока:
Figure 00000061
. Кодер затем проверяет то, находится или нет CTU-строка, которая включает в себя нижний край или позицию опорной линии, выше CTU-строки, которая включает в себя верхний край текущего блока. Если да, опорная линия обязательно включает в себя ранее восстановленные значения выборок, по меньшей мере, когда WPP не активируется.
[0201] Второе условие третьего ограничения. Когда
Figure 00000062
, кодер проверяет то, удовлетворяется или нет
Figure 00000063
. Иными словами, если CTU-строка, которая включает в себя нижний край или позицию опорной линии, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), кодер вычисляет (a) CTU-столбец, который включает в себя правый край или позицию опорной линии
Figure 00000064
, и (b) CTU-столбец, который включает в себя левый край текущего блока
Figure 00000065
. Кодер затем проверяет то, находится или нет CTU-столбец, который включает в себя правый край или позицию опорной линии, слева от CTU-столбца, который включает в себя левый край текущего блока. Если да, опорная линия обязательно включает в себя ранее восстановленные значения выборок.
[0202] Третье условие третьего ограничения. Когда
Figure 00000066
, кодер проверяет то, меньше или нет порядок Z-сканирования позиции
Figure 00000067
порядка Z-сканирования позиции
Figure 00000068
. Иными словами, если CTU-строка, которая включает в себя нижний край или позицию опорной линии, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), и CTU-столбец, который включает в себя правый край или позицию опорной линии, равен CTU-столбцу, который включает в себя левый край текущего блока (тот же CTU-столбец), то кодер проверяет то, находится или нет конечная позиция опорной линии раньше в порядке Z-сканирования, чем начальная позиция текущей линии. Третье условие применяется, если прогнозирование из текущей CU разрешается. Если прогнозирование из текущей CU не разрешается,
Figure 00000069
должен быть
Figure 00000070
.
[0203] Четвертое ограничение. Кодер проверяет четвертое ограничение, когда WPP активируется. Для четвертого ограничения, кодер верифицирует то, что
Figure 00000071
. Иными словами, кодер вычисляет разность между CTU-столбцом, который включает в себя правый край или позицию опорной линии, и CTU-столбцом, который включает в себя левый край текущего блока:
Figure 00000072
. Кодер также вычисляет разность между CTU-строкой, которая включает в себя верхний край текущего блока, и CTU-строкой, которая включает в себя нижний край или позицию опорной линии:
Figure 00000073
. Кодер верифицирует то, что первая разность (между CTU-столбцами) меньше или равна второй разности (между CTU-строками).
4. Примерные ограничения на значения смещения для прогнозирования с внутренним SC, когда WPP активируется
[0204] Этот раздел детализирует примеры ограничений, которые кодер может принудительно активировать для прогнозирования с внутренним SC, когда WPP активируется. Для текущей строки, ограничения верифицируют то, что возможный вариант опорной строки, указываемый посредством значения смещения и значения длины, включает в себя восстановленные значения выборок, которые должны быть доступны, когда текущая строка закодирована или декодирована, даже когда WPP активируется.
[0205] Определения
Текущий блок начинается с позиции
Figure 00000074
относительно левой верхней позиции текущего изображения. Ширина и высота текущего блока представляет собой
Figure 00000075
и
Figure 00000076
, соответственно. Текущий блок является частью текущей CU. CTU-размер составляет S. Значение смещения для текущей строки представляет собой
Figure 00000077
, и значение длины строки для текущей строки представляет собой
Figure 00000078
. K пикселов текущего блока уже обработаны с использованием прогнозирования с внутренним SC.
[0206] Кодер задает начальную и конечную позиции текущей строки текущего блока. Позиция
Figure 00000079
представляет собой начальную позицию текущей строки, и
Figure 00000080
представляет собой конечную позицию текущей строки. Кодер также задает ограничительный прямоугольник, который содержит начальную позицию текущей строки, конечную позицию текущей строки и любые позиции (в порядке строкового сканирования) между начальной и конечной позициями текущей строки. Левая верхняя позиция ограничительного прямоугольника представляет собой
Figure 00000081
, правая нижняя позиция ограничительного прямоугольника представляет собой
Figure 00000082
. Кодер задает опорный прямоугольник (включающий в себя опорную строку) в качестве ограничительного прямоугольника, сдвинутого на значение смещения. Левая верхняя позиция опорного прямоугольника представляет собой
Figure 00000083
. Правая нижняя позиция ограничительного прямоугольника представляет собой
Figure 00000084
.
[0207] Когда используется горизонтальное строковое сканирование (слева направо в строке текущего блока, от верхней строки до нижней строки), начальная позиция является следующей:
Figure 00000085
Figure 00000086
. Конечная позиция является следующей:
Figure 00000087
Figure 00000088
. Когда начальная позиция и конечная позиция текущей строки находятся в той же строке текущего блока,
Figure 00000089
Figure 00000090
, и
Figure 00000091
. В противном случае, левая верхняя позиция ограничительного прямоугольника представляет собой
Figure 00000092
, и правая нижняя позиция ограничительного прямоугольника представляет собой
Figure 00000093
Figure 00000094
.
[0208] Когда используется вертикальное сканирование (сверху вниз в столбце текущего блока, от левого столбца к правому столбцу), начальная позиция является следующей:
Figure 00000095
Figure 00000096
. Конечная позиция является следующей:
Figure 00000097
Figure 00000098
. Когда начальная позиция и конечная позиция текущей строки находятся в том же столбце текущего блока,
Figure 00000099
Figure 00000100
, и
Figure 00000101
. В противном случае, левая верхняя позиция ограничительного прямоугольника представляет собой
Figure 00000102
, и правая нижняя позиция ограничительного прямоугольника представляет собой
Figure 00000103
Figure 00000104
.
[0209] Независимо от того, используется горизонтальное сканирование или вертикальное сканирование, левая верхняя позиция опорного прямоугольника представляет собой
Figure 00000105
, и правая нижняя позиция опорного прямоугольника представляет собой
Figure 00000106
Figure 00000107
. В завершение, начальная позиция опорной строки представляет собой
Figure 00000108
Figure 00000109
.
[0210] Кодер верифицирует то, что удовлетворяются все следующие ограничения. Для некоторых из этих ограничений, рассматривается левая верхняя позиция
Figure 00000110
текущего блока. Для таких ограничений, альтернативно, начальная позиция текущей строки или левая верхняя позиция ограничительного прямоугольника могут проверяться вместо левой верхней позиции
Figure 00000111
текущего блока.
[0211] Первое ограничение. Кодер верифицирует то, что позиция (x0, y0) и позиция
Figure 00000112
находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и левая верхняя позиция опорного прямоугольника находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, первое ограничение не удовлетворяется.
[0212] Второе ограничение. Кодер верифицирует то, что позиция
Figure 00000113
и позиция
Figure 00000114
находятся в одном и том же слайсе и одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и правая нижняя позиция опорного прямоугольника находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, второе ограничение не удовлетворяется.
[0213] Для первого и второго ограничений, если несколько слайсов не используются, две позиции, которые проверяются, обязательно находятся в одном и том же слайсе, и первое и второе ограничения для слайсов не должны проверяться. Аналогично, если несколько мозаичных фрагментов не используются, две позиции, которые проверяются, обязательно находятся в том же мозаичном фрагменте, и первое и второе ограничения для мозаичных фрагментов не должны проверяться. Все позиции текущей строки находятся в одном слайсе и одном мозаичном фрагменте. Если первое и второе ограничения удовлетворяются, все позиции опорного прямоугольника (и, следовательно, опорная строка) также находятся в этом слайсе и мозаичном фрагменте. Кодер проверяет первое и второе ограничения независимо от того, активируется или нет WPP.
[0214] Третье ограничение. Для третьего ограничения, кодер верифицирует то, что одно или более следующих условий удовлетворяются. Кодер проверяет третье ограничение независимо от того, активируется или нет WPP.
[0215] Первое условие третьего ограничения. Кодер проверяет то, удовлетворяется или нет
Figure 00000115
. Иными словами, кодер вычисляет CTU-строку, которая включает в себя нижний край опорного прямоугольника:
Figure 00000116
. Кодер также вычисляет CTU-строку, которая включает в себя верхний край текущего блока:
Figure 00000117
. Кодер затем проверяет то, находится или нет CTU-строка, которая включает в себя нижний край опорного прямоугольника, выше CTU-строки, которая включает в себя верхний край текущего блока. Если да, опорный прямоугольник обязательно включает в себя ранее восстановленные значения выборок, по меньшей мере, когда WPP не активируется.
[0216] Второе условие третьего ограничения. Когда
Figure 00000118
, кодер проверяет то, удовлетворяется или нет
Figure 00000119
. Иными словами, если CTU-строка, которая включает в себя нижний край опорного прямоугольника, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), кодер вычисляет (a) CTU-столбец, который включает в себя правый край опорного прямоугольника
Figure 00000120
, и (b) CTU-столбец, который включает в себя левый край текущего блока
Figure 00000121
. Кодер затем проверяет то, находится или нет CTU-столбец, который включает в себя правый край опорного прямоугольника, слева от CTU-столбца, который включает в себя левый край текущего блока. Если да, опорный прямоугольник обязательно включает в себя ранее восстановленные значения выборок.
[0217] Третье условие третьего ограничения. Когда
Figure 00000122
и
Figure 00000123
Figure 00000124
, кодер проверяет то, меньше или нет порядок Z-сканирования позиции
Figure 00000125
порядка Z-сканирования позиции
Figure 00000126
. Иными словами, если CTU-строка, которая включает в себя нижний край опорного прямоугольника, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), и CTU-столбец, который включает в себя правый край опорного прямоугольника, равен CTU-столбцу, который включает в себя левый край текущего блока (тот же CTU-столбец), то кодер проверяет то, находится или нет правая нижняя позиция опорного прямоугольника раньше в порядке Z-сканирования, чем левая верхняя позиция текущего блока.
[0218] Четвертое условие третьего ограничения. Если прогнозирование из текущей CU разрешается, когда
Figure 00000127
, кодер проверяет то, что
Figure 00000128
. Иными словами, если прогнозирование из текущей CU разрешается, третье ограничение может удовлетворяться, если текущая строка и опорная строка начинаются в одной и той же строке, и опорная строка начинается слева от текущей строки.
[0219] Четвертое ограничение. Кодер проверяет четвертое ограничение, когда WPP активируется. Для четвертого ограничения, кодер верифицирует то, что
Figure 00000129
. Иными словами, кодер вычисляет разность между CTU-столбцом, который включает в себя правый край или позицию опорного прямоугольника, и CTU-столбцом, который включает в себя левый край текущего блока:
Figure 00000130
. Кодер также вычисляет разность между CTU-строкой, которая включает в себя верхний край текущего блока, и CTU-строкой, которая включает в себя нижний край или позицию опорного прямоугольника:
Figure 00000131
. Кодер верифицирует то, что первая разность (между CTU-столбцами) меньше или равна второй разности (между CTU-строками).
[0220] Пятое ограничение. Для пятого ограничения, кодер верифицирует то, что
Figure 00000132
Figure 00000133
. Иными словами, кодер проверяет то, что текущий блок включает в себя достаточно позиций для текущей строки, с учетом количества позиций, которые уже обработаны.
F. Альтернативы и варьирования
[0221] Во многих примерах, описанных в данном документе, прогнозирование с внутренним копированием и компенсация движения реализуются в отдельных компонентах или процессах, и оценка смещения и оценка движения реализуются в отдельных компонентах или процессах. Альтернативно, прогнозирование с внутренним копированием может реализовываться как частный случай компенсации движения, и оценка смещения может реализовываться как частный случай оценки движения, для которого текущее изображение используется в качестве опорного изображения. В таких реализациях, значение смещения может передаваться в служебных сигналах в качестве MV-значения, но использоваться для прогнозирования с внутренним копированием (в текущем изображении), а не для межкадрового прогнозирования. При использовании в данном документе, термин "прогнозирование с внутренним копированием" указывает прогнозирование в текущем изображении независимо от того, предоставляется это прогнозирование с использованием модуля внутрикадрового прогнозирования, модуля компенсации движения или некоторого другого модуля. Аналогично, BV-значение или другое значение смещения может быть представлено с использованием MV-значения или с использованием различного типа параметра или синтаксического элемента, и оценка смещения может предоставляться с использованием модуля внутрикадровой оценки, модуля оценки движения или некоторого другого модуля.
[0222] В свете множества возможных вариантов осуществления, к которым могут быть применены принципы изобретения, следует признавать, что проиллюстрированные варианты осуществления являются предпочтительными примерами изобретения и не должны восприниматься как ограничивающие объем изобретения. Вместо этого, объем изобретения задается посредством прилагаемой формулы изобретения. Следовательно, в качестве изобретения заявлено все, что находитсяв пределах объема и сущности этой формулы.

Claims (41)

1. Способ кодирования изображения, используемый в вычислительной системе, содержащий этапы, на которых:
- кодируют изображение при активированной волновой параллельной обработке (WPP), при этом кодирование формирует закодированные данные, что включает в себя, для прогнозирования с внутренним блочным копированием, этап, на котором принудительно активируют одно или более ограничений, совместимых с WPP, причем одно или более ограничений включает в себя ограничение, что значение горизонтального сдвига от опорной области до текущей области меньше или равно значению вертикального сдвига от текущей области до опорной области; и
- выводят закодированные данные в качестве части потока битов.
2. Способ по п. 1, в котором:
- значение горизонтального сдвига измеряет разность от столбца единицы дерева кодирования, CTU, который включает в себя правый край опорной области, до CTU-столбца, который включает в себя левый край текущей области; и
- значение вертикального сдвига измеряет разность от CTU-строки, которая включает в себя верхний край текущей области, до CTU-строки, которая включает в себя нижний край опорной области.
3. Способ по п. 1, в котором текущая область является текущим блоком в единице дерева кодирования, CTU, и при этом кодирование включает в себя:
вычисление значения горизонтального сдвига как (x0+BVx+wblock-1)/S-x0/S, где x0 - горизонтальная позиция текущего блока, CTU, BVx - горизонтальный компонент вектора для прогнозирования с внутренним блочным копированием, wblock - ширина текущего блока и S указывает размер CTU; и
вычисление значения вертикального сдвига как y0/S-(y0+BVy+hblock-1)/S, где y0 - вертикальная позиция текущего блока, BVy - вертикальный компонент вектора для прогнозирования с внутренним блочным копированием и hblock - высота текущего блока.
4. Способ по п. 1, в котором, для прогнозирования с внутренним блочным копированием, другие ограничения включают в себя:
(1) левая верхняя позиция текущей области и левая верхняя позиция опорной области находятся в одном и том же слайсе, если применимо, и в одном и том же мозаичном фрагменте, если применимо;
(2) левая верхняя позиция текущей области и правая нижняя позиция опорной области находятся в одном и том же слайсе, если применимо, и в одном и том же мозаичном фрагменте, если применимо; и
(3) одно из следующих трех условий удовлетворяется:
(a) строка единицы дерева кодирования (CTU), которая включает в себя нижний край опорной области, находится выше CTU-строки, которая включает в себя верхний край текущей области;
(b) если CTU-строка, которая включает в себя нижний край опорной области, равна CTU-строке, которая включает в себя верхний край текущей области, то CTU-столбец, который включает в себя правый край опорной области, находится слева от CTU-столбца, который включает в себя левый край текущей области; и
(c) если CTU-строка, которая включает в себя нижний край опорной области, равна CTU-строке, которая включает в себя верхний край текущей области, и если CTU-столбец, который включает в себя правый край опорной области, равен CTU-столбцу, который включает в себя левый край текущей области, то правая нижняя позиция опорной области находится раньше в порядке Z-сканирования, чем левая верхняя позиция текущей области.
5. Способ по пп. 1-4, в котором текущая область является текущим блоком и опорная область является опорным блоком.
6. Способ по п. 1, в котором для текущего блока в изображении значение смещения указывает сдвиг для опорного блока в изображении, причем опорный блок включает в себя ранее восстановленные значения выборок.
7. Способ декодирования изображения, используемый в вычислительной системе, содержащий этапы, на которых:
- принимают закодированные данные в качестве части потока битов, при этом закодированные данные удовлетворяют, для прогнозирования с внутренним блочным копированием, одному или нескольким ограничениям, совместимым с волновой параллельной обработкой (WPP), причем одно или более ограничений включает в себя ограничение, что значение горизонтального сдвига от опорной области до текущей области меньше или равно значению вертикального сдвига от текущей области до опорной области; и
- декодируют закодированные данные при активированной WPP, при этом декодирование восстанавливает изображение.
8. Способ по п. 7, в котором:
- значение горизонтального сдвига измеряет разность от столбца единицы дерева кодирования, CTU, который включает в себя правый край опорной области, до CTU-столбца, который включает в себя левый край текущей области; и
- значение вертикального сдвига измеряет разность от CTU-строки, которая включает в себя верхний край текущей области, до CTU-строки, которая включает в себя нижний край опорной области.
9. Способ по п. 7, в котором текущая область является текущим блоком в единице дерева кодирования, CTU, и при этом кодирование включает в себя:
вычисление значения горизонтального сдвига как (x0+BVx+wblock-1)/S-x0/S, где x0 - горизонтальная позиция текущего блока, CTU, BVx - горизонтальный компонент вектора для прогнозирования с внутренним блочным копированием, wblock - ширина текущего блока и S указывает размер CTU; и
вычисление значения вертикального сдвига как y0/S-(y0+BVy+hblock-1)/S, где y0 - вертикальная позиция текущего блока, BVy - вертикальный компонент вектора для прогнозирования с внутренним блочным копированием и hblock - высота текущего блока.
10. Способ по п. 7, в котором, для прогнозирования с внутренним блочным копированием, другие ограничения включают в себя:
(1) левая верхняя позиция текущей области и левая верхняя позиция опорной области находятся в одном и том же слайсе, если применимо, и в одном и том же мозаичном фрагменте, если применимо;
(2) левая верхняя позиция текущей области и правая нижняя позиция опорной области находятся в одном и том же слайсе, если применимо, и в одном и том же мозаичном фрагменте, если применимо; и
(3) одно из следующих трех условий удовлетворяется:
(a) строка единицы дерева кодирования (CTU), которая включает в себя нижний край опорной области, находится выше CTU-строки, которая включает в себя верхний край текущей области;
(b) если CTU-строка, которая включает в себя нижний край опорной области, равна CTU-строке, которая включает в себя верхний край текущей области, то CTU-столбец, который включает в себя правый край опорной области, находится слева от CTU-столбца, который включает в себя левый край текущей области; и
(c) если CTU-строка, которая включает в себя нижний край опорной области, равна CTU-строке, которая включает в себя верхний край текущей области, и если CTU-столбец, который включает в себя правый край опорной области, равен CTU-столбцу, который включает в себя левый край текущей области, то правая нижняя позиция опорной области находится раньше в порядке Z-сканирования, чем левая верхняя позиция текущей области.
11. Способ по п. 7, в котором:
текущая область является текущим блоком, а опорная область является опорным блоком.
12. Способ по п. 11, в котором для текущего блока в изображении значение смещения указывает сдвиг для опорного блока в изображении, причем опорный блок включает в себя ранее восстановленные значения выборок.
13. Один или более машиночитаемых носителей, хранящих машиноисполняемые инструкции для вынуждения вычислительной системы, запрограммированной ими, осуществлять способ по п. 1.
14. Один или более машиночитаемых носителей, хранящих машиноисполняемые инструкции для вынуждения вычислительной системы, запрограммированной ими, осуществлять способ по п. 7.
15. Вычислительная система, сконфигурированная с возможностью осуществлять способ по любому из пп. 1-6.
16. Вычислительная система, сконфигурированная с возможностью осуществлять способ по любому из пп. 7-12.
RU2017110397A 2014-09-30 2014-09-30 Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных RU2679201C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087885 WO2016049839A1 (en) 2014-09-30 2014-09-30 Rules for intra-picture prediction modes when wavefront parallel processing is enabled

Publications (3)

Publication Number Publication Date
RU2017110397A RU2017110397A (ru) 2018-10-01
RU2017110397A3 RU2017110397A3 (ru) 2018-10-01
RU2679201C2 true RU2679201C2 (ru) 2019-02-06

Family

ID=55629266

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017110397A RU2679201C2 (ru) 2014-09-30 2014-09-30 Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных

Country Status (10)

Country Link
US (4) US10812817B2 (ru)
EP (2) EP3202150B1 (ru)
JP (1) JP2017535145A (ru)
KR (2) KR102330740B1 (ru)
CN (1) CN105874795B (ru)
AU (1) AU2014408228B2 (ru)
CA (2) CA3171803A1 (ru)
MX (1) MX2017004211A (ru)
RU (1) RU2679201C2 (ru)
WO (1) WO2016049839A1 (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2777394C1 (ru) * 2019-03-09 2022-08-03 Тенсент Америка Ллс Способ и устройство для видеокодирования
US11516504B2 (en) 2018-09-21 2022-11-29 Tencent America LLC Method and apparatus for video coding
US11570484B2 (en) 2018-09-21 2023-01-31 Tencent America LLC Method and apparatus for video coding

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102257269B1 (ko) 2013-10-14 2021-05-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐
KR102275639B1 (ko) 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
US10469863B2 (en) 2014-01-03 2019-11-05 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
KR102268090B1 (ko) 2014-03-14 2021-06-23 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
WO2015192353A1 (en) 2014-06-19 2015-12-23 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
US20160014415A1 (en) * 2014-07-08 2016-01-14 Mediatek Inc. Method and apparatus for performing wave-front parallel encoding procedure with constraint on coding mode and/or quantization parameter selection
EP3202150B1 (en) 2014-09-30 2021-07-21 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US10257521B2 (en) * 2014-10-01 2019-04-09 Kt Corporation Method and apparatus for processing video signal
GB2531001B (en) * 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US10212445B2 (en) * 2014-10-09 2019-02-19 Qualcomm Incorporated Intra block copy prediction restrictions for parallel processing
KR20190101495A (ko) * 2014-11-12 2019-08-30 에이치에프아이 이노베이션 인크. 인덱스 맵 코딩에서의 이스케이프 픽셀 코딩의 방법들
CN105704491B (zh) * 2014-11-28 2020-03-13 同济大学 图像编码方法、解码方法、编码装置和解码装置
CN107211136B (zh) * 2015-01-30 2019-10-29 联发科技股份有限公司 具有大字母表的源样本的熵编码与熵解码的方法
CN107211149A (zh) * 2015-02-05 2017-09-26 联发科技股份有限公司 调色板语法的解码操作装置与方法
US9955185B2 (en) * 2015-02-12 2018-04-24 Mediatek Inc. Method and apparatus of constrained intra block copy for coding video
EP3306925B1 (en) * 2015-06-05 2019-09-18 Sony Corporation Image processing device and image processing method
GB2539211A (en) * 2015-06-08 2016-12-14 Canon Kk Enhanced coding and decoding using intra block copy mode
CN106664405B (zh) 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
US20160366439A1 (en) * 2015-06-12 2016-12-15 Qualcomm Incorporated Palette copy extension
CN107071450B (zh) * 2016-02-10 2021-07-27 同济大学 数据压缩的编码、解码方法及装置
CN116962721A (zh) * 2016-05-04 2023-10-27 微软技术许可有限责任公司 利用样本值的非相邻参考线进行帧内图片预测的方法
FR3068557A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
GB2570879B (en) * 2018-02-06 2022-08-17 Advanced Risc Mach Ltd Encoding data arrays
WO2019185822A1 (en) * 2018-03-29 2019-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Accelerating video encoding and decoding
CN118138777A (zh) * 2018-06-01 2024-06-04 夏普株式会社 图像解码装置以及图像编码装置
TWI792578B (zh) * 2018-07-09 2023-02-11 弗勞恩霍夫爾協會 用於經編碼圖像多樣化空間劃分之編碼器、解碼器、編碼方法及解碼方法
US11606575B2 (en) 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
CN110933411B (zh) 2018-09-19 2023-12-12 北京字节跳动网络技术有限公司 用于帧内编码的邻近的相邻块的选择
BR122021011268B1 (pt) * 2018-10-04 2022-06-14 Lg Electronics Inc Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitórias legíveis por computador
AU2018278914A1 (en) * 2018-12-12 2020-07-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
AU2018278915A1 (en) * 2018-12-12 2020-07-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
US11653010B2 (en) * 2018-12-21 2023-05-16 Sharp Kabushiki Kaisha Moving image encoding device and moving image decoding device
US11025935B2 (en) * 2019-01-10 2021-06-01 Tencent America LLC Method and apparatus for history based motion information buffer update with parallel processing capability
US10771799B2 (en) 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
WO2020156541A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Data storage in buffers for intra block copy in video coding
JP7197720B2 (ja) 2019-02-24 2022-12-27 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の独立した符号化
CN113545068B (zh) 2019-03-01 2023-09-15 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于顺序的更新
US10924750B2 (en) * 2019-03-01 2021-02-16 Alibaba Group Holding Limited Palette size constraint in palette mode for video compression system
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
EP3915252A4 (en) 2019-03-04 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. IMPLEMENTATION OF ASPECTS IN AN INTRA BLOCK COPY IN VIDEO ENCODING
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding
CN109982079B (zh) * 2019-04-03 2021-04-02 北京电子工程总体研究所 一种结合纹理空间相关性的帧内预测模式选择方法
CN113906753B (zh) 2019-04-24 2023-12-01 字节跳动有限公司 编解码视频的量化残差差分脉冲编解码调制表示的约束
WO2020221213A1 (en) * 2019-04-27 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Intra sub-block partitioning and multiple transform selection
CN113796069B (zh) * 2019-05-01 2024-03-08 字节跳动有限公司 使用量化残差差分脉冲编解码调制编解码的帧内编解码视频
EP3949387A4 (en) 2019-05-02 2022-05-18 ByteDance Inc. SIGNALING IN A TRANSFORM JUMP MODE
CN113785306B (zh) 2019-05-02 2024-06-14 字节跳动有限公司 基于编解码树结构类型的编解码模式
JP2022530240A (ja) 2019-05-02 2022-06-28 北京字節跳動網絡技術有限公司 複数の参照フィルタを使用するイントラビデオコーディング
CN118646884A (zh) * 2019-05-15 2024-09-13 现代自动车株式会社 用于运动图像数据的并行编码和解码的方法
WO2020231220A1 (ko) * 2019-05-15 2020-11-19 현대자동차주식회사 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치
WO2020243295A1 (en) 2019-05-31 2020-12-03 Bytedance Inc. Palette mode with intra block copy prediction
WO2020244659A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Interactions between sub-block based intra block copy and different coding tools
CN113966612A (zh) 2019-06-16 2022-01-21 北京字节跳动网络技术有限公司 屏幕内容编解码根据与运动信息之间的相互作用
WO2020259426A1 (en) 2019-06-22 2020-12-30 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for intra block copy mode
CN117714698A (zh) 2019-06-28 2024-03-15 字节跳动有限公司 屏幕内容编解码中的色度帧内模式推导
JP7359934B2 (ja) 2019-07-10 2023-10-11 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのサンプル識別
KR102695788B1 (ko) * 2019-07-11 2024-08-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 비트스트림 적합 제약
KR20220032520A (ko) 2019-07-20 2022-03-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 팔레트 모드 사용 지시의 조건 종속적인 코딩
CN114145013B (zh) 2019-07-23 2023-11-14 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
WO2021018166A1 (en) 2019-07-29 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Scanning order improvements for palette mode coding
US11627327B2 (en) * 2019-08-05 2023-04-11 Qualcomm Incorporated Palette and prediction mode signaling
WO2021030788A1 (en) 2019-08-15 2021-02-18 Bytedance Inc. Entropy coding for palette escape symbol
JP7494289B2 (ja) 2019-08-15 2024-06-03 バイトダンス インコーポレイテッド 異なるパーティション構造をもつパレット・モード
KR20210027175A (ko) * 2019-08-30 2021-03-10 주식회사 케이티 비디오 신호 처리 방법 및 장치
EP4011076A4 (en) 2019-09-09 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. INTRA-BLOCK COPY ENCODING AND DECODING
WO2021049890A1 (ko) * 2019-09-10 2021-03-18 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN114375581A (zh) * 2019-09-12 2022-04-19 字节跳动有限公司 在视频编解码中使用调色板预测器
CN114424545B (zh) 2019-09-19 2024-07-16 字节跳动有限公司 用于调色板模式的量化参数推导
KR20220156831A (ko) 2020-03-20 2022-11-28 바이트댄스 아이엔씨 서브픽처의 레퍼런스 픽처 목록에 대한 제약
US12101479B2 (en) * 2020-03-24 2024-09-24 Intel Corporation Content and quality adaptive wavefront split for parallel video coding
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
BR112022021342A2 (pt) 2020-04-20 2022-12-13 Bytedance Inc Método de processamento de vídeo, aparelho para processamento de dados de vídeo, meios de armazenamento e de gravação não transitórios legíveis por computador
EP4140140A4 (en) 2020-05-21 2023-07-05 ByteDance Inc. PROGRESSIVE DECODING REFRESH SIGNALING AND REFERENCE PICTURE LISTS
EP4144093A4 (en) 2020-05-22 2023-08-23 ByteDance Inc. SIGNALING OF IMAGE INFORMATION IN ACCESS UNITS
CN115668949A (zh) 2020-05-26 2023-01-31 字节跳动有限公司 编解码视频中的帧间层参考图片的标识
CN114827618B (zh) * 2020-06-02 2023-03-14 腾讯科技(深圳)有限公司 视频编码方法、视频解码方法及相关设备
CN112073719B (zh) * 2020-08-21 2021-09-14 浙江大华技术股份有限公司 一种串匹配预测方法、装置、系统及计算机可读存储介质
CN114125464B (zh) * 2020-08-27 2024-02-06 扬智科技股份有限公司 视频解码方法与视频解码装置
US11627328B2 (en) * 2020-10-16 2023-04-11 Tencent America LLC Method and apparatus for video coding
WO2022108421A1 (ko) * 2020-11-23 2022-05-27 현대자동차주식회사 적응적 대체 모드를 이용한 영상 부호화 및 복호화 방법
US11503336B2 (en) * 2020-12-07 2022-11-15 Tencent America LLC Method and apparatus for video coding
US11949894B2 (en) * 2020-12-07 2024-04-02 Tencent America LLC Method and apparatus for string matching with reference location constraints
CA3229953A1 (en) * 2021-08-26 2023-03-02 Yue Yu Operation range extension for versatile video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2420021C2 (ru) * 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
US20130272370A1 (en) * 2012-04-11 2013-10-17 Qualcomm Incorporated Wavefront parallel processing for video coding

Family Cites Families (322)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2114404B (en) 1982-01-28 1986-07-02 British Broadcasting Corp Generating a colour video signal representative of a stored picture
JPH087553B2 (ja) 1988-10-27 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 色画像量子化方法及び装置
US5706290A (en) 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
US8505108B2 (en) 1993-11-18 2013-08-06 Digimarc Corporation Authentication using a digital watermark
US5508942A (en) 1993-11-24 1996-04-16 Intel Corporation Intra/inter decision rules for encoding and decoding video signals
US5999189A (en) 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US6389162B2 (en) 1996-02-15 2002-05-14 Canon Kabushiki Kaisha Image processing apparatus and method and medium
JPH10262258A (ja) 1997-03-19 1998-09-29 Sony Corp 画像符号化装置及び方法
JP2000102016A (ja) 1998-09-22 2000-04-07 Victor Co Of Japan Ltd 動き補償予測回路
DE60040326D1 (de) 1999-04-02 2008-11-06 Matsushita Electric Ind Co Ltd Optische Platte, Aufzeichnungsvorrichtung und Wiedergabevorrichtung
JP2001251507A (ja) 2000-03-03 2001-09-14 Fujitsu Ltd 画像処理装置
US6701012B1 (en) 2000-07-24 2004-03-02 Sharp Laboratories Of America, Inc. Out-of-layer pixel generation for a decomposed-image layer
US6748116B1 (en) 2000-08-22 2004-06-08 Airzip, Inc. Apparatus and method for compressing and decompressing image files
DE10049571C1 (de) 2000-10-06 2002-06-13 Siemens Ag Verfahren und Anordnung zum Übertragen eines Vektors
US7023924B1 (en) 2000-12-28 2006-04-04 Emc Corporation Method of pausing an MPEG coded video stream
US6853755B2 (en) 2001-03-28 2005-02-08 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive compression of scanned documents
US7031540B2 (en) 2001-09-12 2006-04-18 Mobitv, Inc. Transformation to increase the lempel-ziv compressibility of images with minimal visual distortion
JP2004007379A (ja) 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
US6934679B2 (en) 2002-03-07 2005-08-23 Microsoft Corporation Error resilient scalable audio coding
US7120196B2 (en) 2002-04-29 2006-10-10 Ess Technology, Inc. Intra-prediction using intra-macroblock motion compensation
PT1467491E (pt) 2002-05-02 2007-03-30 Fraunhofer Ges Forschung Codificação aritmética de coeficientes de transformação
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
US7085420B2 (en) 2002-06-28 2006-08-01 Microsoft Corporation Text detection in continuous tone image segments
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7072512B2 (en) 2002-07-23 2006-07-04 Microsoft Corporation Segmentation of digital video and images into continuous tone and palettized regions
EP1582061A4 (en) 2003-01-10 2010-09-22 Thomson Licensing DECODER AND METHOD FOR SMOOTHING ARTIFACTS RESULTING FROM ERROR MASKING
DE10301362B4 (de) 2003-01-16 2005-06-09 GEMAC-Gesellschaft für Mikroelektronikanwendung Chemnitz mbH Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
US7373005B2 (en) 2003-04-10 2008-05-13 Micron Technology, Inc. Compression system for integrated sensor devices
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
BRPI0413988A (pt) 2003-08-26 2006-11-07 Thomson Licensing método e aparelho para decodificar blocos intra-inter codificador hìbridos
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
KR101044934B1 (ko) 2003-12-18 2011-06-28 삼성전자주식회사 움직임 벡터 추정방법 및 부호화 모드 결정방법
JP4591657B2 (ja) 2003-12-22 2010-12-01 キヤノン株式会社 動画像符号化装置及びその制御方法、プログラム
KR101169895B1 (ko) 2004-01-20 2012-07-31 파나소닉 주식회사 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치, 화상 복호화 장치 및 그 프로그램
US8036271B2 (en) 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
JP4338654B2 (ja) 2004-03-18 2009-10-07 三洋電機株式会社 動きベクトル検出装置及び方法、及びその動きベクトル検出装置を利用可能な画像符号化装置
US8116374B2 (en) 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
JP4418762B2 (ja) 2004-05-07 2010-02-24 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
KR100907847B1 (ko) 2004-07-20 2009-07-14 퀄컴 인코포레이티드 순간적 비디오 압축으로 이동 벡터 예측을 위한 방법 및장치
JP2006140683A (ja) 2004-11-11 2006-06-01 Canon Inc 画像符号化装置
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
US7720154B2 (en) 2004-11-12 2010-05-18 Industrial Technology Research Institute System and method for fast variable-size motion estimation
KR100679035B1 (ko) 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US20060274070A1 (en) 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
KR100716999B1 (ko) 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
KR101211665B1 (ko) 2005-08-12 2012-12-12 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP2007053561A (ja) 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
WO2007021227A1 (en) 2005-08-19 2007-02-22 Telefonaktiebolaget Lm Ericsson (Publ) Texture compression based on two hues with modified brightness
US7986844B2 (en) 2005-11-22 2011-07-26 Intel Corporation Optimized video compression using hashing function
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US8792555B2 (en) 2006-01-31 2014-07-29 Qualcomm Incorporated Methods and systems for resizing multimedia content
CN101026761B (zh) 2006-02-17 2010-05-12 中国科学院自动化研究所 一种具有最小误差的快速变尺寸块匹配的运动估计方法
US7668382B2 (en) 2006-02-24 2010-02-23 Microsoft Corporation Block-based fast image compression
US7616816B2 (en) 2006-03-20 2009-11-10 Sarnoff Corporation System and method for mission-driven visual information retrieval and organization
CN101422047B (zh) 2006-04-14 2011-01-12 Nxp股份有限公司 图像边界处的运动估计方法及显示设备
US7965861B2 (en) 2006-04-26 2011-06-21 The Board Of Regents Of The University Of Texas System Methods and systems for digital image security
WO2008004940A1 (en) 2006-07-07 2008-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Video data management
DE102007035204A1 (de) 2006-07-28 2008-02-07 Mediatek Inc. Videoverarbeitungs- und - betriebsvorrichtung
US8472527B2 (en) 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
FR2906433B1 (fr) 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
CN101518085A (zh) 2006-09-22 2009-08-26 汤姆森许可贸易公司 多通道视频编码和解码的方法及装置
US20080084924A1 (en) 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
US8170101B2 (en) 2006-10-27 2012-05-01 Sharp Laboratories Of America, Inc. Methods and systems for low-complexity data compression
US8218640B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8218641B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture encoding using same-picture reference for pixel reconstruction
JP2008154015A (ja) 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
US7907783B2 (en) 2007-01-24 2011-03-15 Samsung Electronics Co., Ltd. Apparatus and method of matching symbols in a text image coding and decoding system
CN100527842C (zh) 2007-01-26 2009-08-12 清华大学 基于背景的运动估计编码方法
RU2472305C2 (ru) 2007-02-23 2013-01-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ кодирования видео и способ декодирования видео, устройства для этого, программы для этого и носители хранения, на которых хранятся программы
US8031937B2 (en) 2007-04-04 2011-10-04 Telefonaktiebolaget Lm Ericsson (Publ) Frame buffer compression and decompression method for graphics rendering
US8160150B2 (en) 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
WO2008130367A1 (en) 2007-04-19 2008-10-30 Thomson Licensing Adaptive reference picture data generation for intra prediction
US7903873B2 (en) 2007-09-13 2011-03-08 Microsoft Corporation Textual image coding
CN101420606A (zh) 2007-10-23 2009-04-29 青岛海信电器股份有限公司 图像处理方法和装置
KR101365444B1 (ko) 2007-11-19 2014-02-21 삼성전자주식회사 영상의 해상도의 조정을 통하여 동영상을 효율적으로부호화/복호화하는 방법 및 장치
JP2009147807A (ja) 2007-12-17 2009-07-02 Fujifilm Corp 画像処理装置
CN101232619B (zh) 2008-01-25 2011-05-11 浙江大学 嵌入帧内编码块的视频编码方法
TWI375472B (en) 2008-02-04 2012-10-21 Ind Tech Res Inst Intra prediction method for luma block of video
CN101552924B (zh) 2008-03-31 2011-08-03 深圳市融创天下科技发展有限公司 一种用于视频编码的空间预测方法
JP5413923B2 (ja) 2008-04-11 2014-02-12 トムソン ライセンシング 変位イントラ予測およびテンプレート・マッチングのためのデブロッキング・フィルタリング
JP2009260473A (ja) 2008-04-14 2009-11-05 Canon Inc 色処理方法及び装置、プログラム、記録媒体
JP2010035137A (ja) 2008-07-01 2010-02-12 Sony Corp 画像処理装置および方法、並びにプログラム
WO2010017166A2 (en) 2008-08-04 2010-02-11 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
KR101306834B1 (ko) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
US8254704B2 (en) 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
US8180165B2 (en) 2008-12-19 2012-05-15 Microsoft Corp. Accelerated screen codec
KR101359490B1 (ko) 2008-12-23 2014-02-10 에스케이 텔레콤주식회사 컬러 영상 부호화/복호화 방법 및 장치
TW201028018A (en) 2009-01-07 2010-07-16 Ind Tech Res Inst Encoder, decoder, encoding method and decoding method
CA2750735C (en) 2009-02-02 2018-09-18 Calgary Scientific Inc. Image data transmission
EP2249571A1 (en) 2009-05-04 2010-11-10 Thomson Licensing SA Method and device for encoding an image frame comprising macroblocks
CN102804771B (zh) 2009-06-22 2015-07-01 汤姆森特许公司 基于匹配追踪编码图像序列的视频数据的方法
JPWO2011004598A1 (ja) 2009-07-10 2012-12-20 パナソニック株式会社 動画像符号化方法、装置、プログラム、および集積回路
CN101626512A (zh) 2009-08-11 2010-01-13 北京交通大学 一种基于相关性优化准则的多描述视频编码方法及装置
CN102918840B (zh) 2009-10-01 2016-05-25 Sk电信有限公司 使用分割层进行图像编码/解码的方法和装置
US20120213288A1 (en) 2009-10-20 2012-08-23 Yoshihiro Kitaura Video encoding device, video decoding device, and data structure
TWI566586B (zh) 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
JP5321426B2 (ja) 2009-11-26 2013-10-23 株式会社Jvcケンウッド 画像符号化装置、画像復号化装置、画像符号化方法、及び画像復号化方法
KR101623124B1 (ko) 2009-12-03 2016-05-24 에스케이 텔레콤주식회사 비디오 인코딩 장치 및 그 인코딩 방법, 비디오 디코딩 장치 및 그 디코딩 방법, 및 거기에 이용되는 방향적 인트라 예측방법
WO2011095260A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) Managing predicted motion vector candidates
US20110194613A1 (en) 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
JP5375676B2 (ja) 2010-03-04 2013-12-25 富士通株式会社 画像処理装置、画像処理方法、および画像処理プログラム
EP2553927B1 (fr) 2010-03-31 2018-11-28 Orange Procedes et dispositifs de codage et de decodage d'une sequence d'images mettant en oeuvre une prediction par compensation de mouvement avant, et programme d'ordinateur correspondant
KR101789634B1 (ko) 2010-04-09 2017-10-25 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US8644375B2 (en) 2010-04-09 2014-02-04 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
WO2011136896A1 (en) 2010-04-27 2011-11-03 Sony Corporation Boundary adaptive intra prediction for improving subjective video quality
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
CN103141091A (zh) 2010-06-21 2013-06-05 汤姆逊许可公司 图像数据编码/解码的方法及其设备
WO2012002785A2 (ko) 2010-07-02 2012-01-05 (주)휴맥스 화면내 예측 부호화를 위한 영상 부호화/복호화 장치 및 방법
KR101484281B1 (ko) 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
HUE053802T2 (hu) 2010-07-14 2021-07-28 Ntt Docomo Inc Kis komplexitású intra predikció videó kódoláshoz
CN105227958B (zh) 2010-07-20 2019-06-25 Sk电信有限公司 用于解码视频信号的解码装置
KR102126374B1 (ko) 2010-11-04 2020-06-24 지이 비디오 컴프레션, 엘엘씨 블록 병합 및 스킵 모드를 지원하는 화상 코딩
US8787459B2 (en) 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
KR101756442B1 (ko) 2010-11-29 2017-07-11 에스케이텔레콤 주식회사 인트라예측모드의 중복성을 최소화하기 위한 영상 부호화/복호화 방법 및 장치
US9167252B2 (en) 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
US20120163457A1 (en) * 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
US8767835B2 (en) 2010-12-28 2014-07-01 Mitsubishi Electric Research Laboratories, Inc. Method for coding videos using dictionaries
KR101739579B1 (ko) 2011-01-04 2017-05-24 에스케이 텔레콤주식회사 코딩 유닛 단위 병렬 인트라예측을 이용한 부호화/복호화 방법 및 장치
KR20120080122A (ko) 2011-01-06 2012-07-16 삼성전자주식회사 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
KR102390352B1 (ko) 2011-01-07 2022-04-25 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법과 이를 이용한 장치
WO2012097377A1 (en) 2011-01-14 2012-07-19 General Instrument Corporation Joint spatial and temporal block merge mode for hevc
WO2012097376A1 (en) 2011-01-14 2012-07-19 General Instrument Corporation Spatial block merge mode
KR102588145B1 (ko) 2011-01-14 2023-10-12 지이 비디오 컴프레션, 엘엘씨 엔트로피 인코딩 및 디코딩 방식
US8755437B2 (en) 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
CN103329534B (zh) 2011-01-19 2017-03-08 瑞萨电子株式会社 图像编码装置及图像解码装置
US9532066B2 (en) 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
US8548057B2 (en) 2011-01-25 2013-10-01 Microsoft Corporation Video coding redundancy reduction
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9288501B2 (en) 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
BR122020015658B1 (pt) 2011-03-09 2023-03-28 Nec Corporation Dispositivo de decodificação de vídeo e método de decodificação de vídeo
KR101532665B1 (ko) 2011-03-14 2015-07-09 미디어텍 인크. 시간적 움직임 백터 예측을 도출하기 위한 방법 및 장치
ES2900107T3 (es) 2011-03-21 2022-03-15 Lg Electronics Inc Método para seleccionar un predictor de vector de movimiento
US8693547B2 (en) 2011-04-06 2014-04-08 Google Inc. Apparatus and method for coding using motion vector segmentation
MY185091A (en) 2011-04-21 2021-04-30 Samsung Electronics Co Ltd Method of quantizing linear predictive coding coefficients, sound encoding method, method of de-quantizing linear predictive coding coefficients, sound decoding method, and recording medium
US20140050414A1 (en) 2011-04-29 2014-02-20 Telefonaktiebolaget L M Ericsson (Publ) Encoder, Decoder and Methods Thereof for Texture Compression
US20120281760A1 (en) 2011-05-04 2012-11-08 Hyung Joon Kim Iterative Grid-Pattern Motion Search
US8971416B2 (en) 2011-05-05 2015-03-03 Vixs Systems, Inc Video decoder with vector processor and methods for use therewith
CN102137263B (zh) 2011-05-09 2013-07-03 松日数码发展(深圳)有限公司 基于cnm关键帧分类的分布式视频编码及解码方法
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US20140085418A1 (en) 2011-05-16 2014-03-27 Sony Corporation Image processing device and image processing method
CN102238391B (zh) 2011-05-25 2016-12-07 深圳市云宙多媒体技术有限公司 一种预测编码方法、装置
JP5727873B2 (ja) 2011-06-10 2015-06-03 日本放送協会 動きベクトル検出装置、符号化装置、及びこれらのプログラム
CN103688533B (zh) 2011-06-20 2015-12-23 联发科技(新加坡)私人有限公司 可减少行存储器的色度帧内预测方法及装置
WO2012174990A1 (en) 2011-06-24 2012-12-27 Mediatek Inc. Method and apparatus for removing redundancy in motion vector predictors
CA2842646C (en) 2011-06-27 2018-09-04 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
WO2013001729A1 (ja) 2011-06-28 2013-01-03 日本電気株式会社 映像符号化装置及び映像復号装置
US9060173B2 (en) 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
KR101572535B1 (ko) 2011-06-30 2015-11-27 후아웨이 테크놀러지 컴퍼니 리미티드 합성 비디오에서의 무손실 코딩 및 관련 시그널링 방법
CN103650496B (zh) 2011-07-12 2018-09-21 华为技术有限公司 用于在hevc中编码的基于像素的帧内预测
CN102223541B (zh) 2011-07-14 2013-07-03 北京工业大学 一种混合图像的编码方法
US9232237B2 (en) 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
WO2013023518A1 (en) 2011-08-17 2013-02-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction using non-square blocks
KR101492105B1 (ko) 2011-08-29 2015-02-11 주식회사 아이벡스피티홀딩스 Amvp 모드에서 영상 부호화 방법
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
US9578336B2 (en) 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems
US9451284B2 (en) 2011-10-10 2016-09-20 Qualcomm Incorporated Efficient signaling of reference picture sets
WO2013057359A1 (en) 2011-10-21 2013-04-25 Nokia Corporation Method for video coding and an apparatus
GB2495990A (en) 2011-10-28 2013-05-01 Canon Kk Motion compensated image coding with omission of coding mode cost calculation for a motion predictor in a set.
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
BR112014011149A2 (pt) 2011-11-08 2017-05-16 Motorola Mobility Llc dispositivos e métodos para codificação e / ou de sinalização de deslocamento adaptativo de amostra
KR101660605B1 (ko) 2011-11-08 2016-09-27 구글 테크놀로지 홀딩스 엘엘씨 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
BR112014011155B1 (pt) 2011-11-08 2023-04-04 Google Technology Holdings LLC Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador
EP2777284B1 (en) 2011-11-11 2018-09-05 GE Video Compression, LLC Effective wedgelet partition coding using spatial prediction
US20130121417A1 (en) * 2011-11-16 2013-05-16 Qualcomm Incorporated Constrained reference picture sets in wave front parallel processing of video data
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
EP2781091B1 (en) 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
CN103621097B (zh) 2011-11-25 2018-04-24 太阳专利托管公司 图像处理方法及图像处理装置
RU2493670C2 (ru) 2011-12-15 2013-09-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ блочной межкадровой компенсации движения для видеокодеков
EP2795901A1 (en) 2011-12-20 2014-10-29 Motorola Mobility LLC Method and apparatus for efficient transform unit encoding
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US20130163664A1 (en) 2011-12-22 2013-06-27 Qualcomm Incorporated Unified partition mode table for intra-mode coding
US9900615B2 (en) 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
WO2013102293A1 (en) 2012-01-04 2013-07-11 Mediatek Singapore Pte. Ltd. Improvements of luma-based chroma intra prediction
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US9332259B2 (en) 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
JP2013150173A (ja) 2012-01-19 2013-08-01 Sony Corp 画像処理装置および方法
US20130188719A1 (en) 2012-01-20 2013-07-25 Qualcomm Incorporated Motion prediction in svc using motion vector for intra-coded block
US9210438B2 (en) 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
JP2013150215A (ja) 2012-01-20 2013-08-01 Fujitsu Ltd 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
CA3081964A1 (en) 2012-01-20 2013-07-25 Ge Video Compression, Llc Coding concept allowing parallel processing, transport demultiplexer and video bitstream
US10244246B2 (en) 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
WO2013128010A2 (en) 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
JP2015515806A (ja) 2012-03-26 2015-05-28 ユークリッド・ディスカバリーズ・エルエルシーEuclid Discoveries,Llc コンテキストベースの映像符号化及び映像復号化
US20130258052A1 (en) 2012-03-28 2013-10-03 Qualcomm Incorporated Inter-view residual prediction in 3d video coding
US10129540B2 (en) 2012-04-10 2018-11-13 Texas Instruments Incorporated Reduced complexity coefficient transmission for adaptive loop filtering (ALF) in video coding
US20130272409A1 (en) 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
US20150085932A1 (en) 2012-04-24 2015-03-26 Mediatek Inc. Method and apparatus of motion vector derivation for 3d video coding
US9521410B2 (en) 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US20130294524A1 (en) 2012-05-04 2013-11-07 Qualcomm Incorporated Transform skipping and lossless coding unification
US9762903B2 (en) 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
RU2602782C2 (ru) 2012-06-28 2016-11-20 Нек Корпорейшн Способ кодирования параметров квантования видео, способ декодирования параметров квантования видео и соответствующие устройства и программы
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
CN102752595B (zh) 2012-06-29 2014-07-09 香港应用科技研究院有限公司 用于深度图编码和解码的混合型跳过模式
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9591302B2 (en) 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
US9549182B2 (en) 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US8754792B2 (en) 2012-07-14 2014-06-17 Sigma Designs, Inc. System and method for fixed rate entropy coded scalar quantization
US9467692B2 (en) 2012-08-31 2016-10-11 Qualcomm Incorporated Intra prediction improvements for scalable video coding
US20140071235A1 (en) 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
WO2014050030A1 (ja) 2012-09-26 2014-04-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置
WO2014050948A1 (ja) 2012-09-28 2014-04-03 シャープ株式会社 画像復号装置及び画像符号化装置
EP2904795A4 (en) 2012-10-03 2016-09-07 Mediatek Inc METHOD AND APPARATUS FOR THE HEREDITY OF MOTION INFORMATION IN THREE-DIMENSIONAL VIDEO CODING
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
US9615090B2 (en) 2012-12-28 2017-04-04 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding
US9826244B2 (en) 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
CN103067716B (zh) 2013-01-10 2016-06-29 华为技术有限公司 深度图像的编解码方法和编解码装置
CA2893011C (en) 2013-01-11 2017-11-21 Mediatek Singapore Pte. Ltd. Method and apparatus for efficient coding of depth lookup table
US9800857B2 (en) 2013-03-08 2017-10-24 Qualcomm Incorporated Inter-view residual prediction in multi-view or 3-dimensional video coding
US9516306B2 (en) 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US11259020B2 (en) 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
US10904551B2 (en) 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
CN103237226B (zh) 2013-04-07 2016-08-03 宁波大学 一种立体视频宏块丢失错误隐藏方法
WO2014166104A1 (en) 2013-04-12 2014-10-16 Mediatek Singapore Pte. Ltd. Removal of parsing dependency for illumination compensation
US9609336B2 (en) 2013-04-16 2017-03-28 Fastvdo Llc Adaptive coding, transmission and efficient display of multimedia (acted)
US11323747B2 (en) 2013-06-05 2022-05-03 Qualcomm Incorporated Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans
CN103281538B (zh) 2013-06-06 2016-01-13 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
US9787989B2 (en) 2013-06-11 2017-10-10 Blackberry Limited Intra-coding mode-dependent quantization tuning
CN104244007B (zh) 2013-06-13 2020-09-01 上海天荷电子信息有限公司 一种图像编码方法和装置及解码方法和装置
KR20160021222A (ko) 2013-06-18 2016-02-24 브이아이디 스케일, 인크. Hevc 확장을 위한 계층간 파라미터 집합
US9300967B2 (en) 2013-06-19 2016-03-29 Apple Inc. Sample adaptive offset control
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
GB2516422A (en) 2013-07-09 2015-01-28 Sony Corp Data encoding and decoding
US20150016533A1 (en) * 2013-07-12 2015-01-15 Qualcomm Incorporated Intra motion compensation extensions
US9558567B2 (en) 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US20150016516A1 (en) 2013-07-15 2015-01-15 Samsung Electronics Co., Ltd. Method for intra prediction improvements for oblique modes in video coding
US9756347B2 (en) 2013-07-23 2017-09-05 Futurewei Technologies, Inc. Screen content coding systems and methods
WO2015010226A1 (en) 2013-07-24 2015-01-29 Qualcomm Incorporated Simplified advanced motion prediction for 3d-hevc
US9774879B2 (en) 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
CN112383781B (zh) 2013-08-16 2023-05-02 上海天荷电子信息有限公司 参考块的位置决定其重构阶段的块匹配编解码方法和装置
CN103428498A (zh) 2013-08-21 2013-12-04 江苏新瑞峰信息科技有限公司 一种无损图像压缩系统
US10313682B2 (en) 2013-08-26 2019-06-04 Qualcomm Incorporated Determining regions when performing intra block copying
US9503715B2 (en) 2013-08-30 2016-11-22 Qualcomm Incorporated Constrained intra prediction in video coding
WO2015032350A1 (zh) * 2013-09-07 2015-03-12 同济大学 一种使用块匹配的图像压缩方法和装置
US20150071357A1 (en) 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
AU2013228045A1 (en) * 2013-09-13 2015-04-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US10009629B2 (en) 2013-10-11 2018-06-26 Sony Corporation Video coding system with search range and method of operation thereof
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
KR102257269B1 (ko) 2013-10-14 2021-05-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐
KR102275639B1 (ko) 2013-10-14 2021-07-08 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 영상 코딩 및 디코딩에 대한 기본 색상 인덱스 맵 모드의 특징
US20150110181A1 (en) * 2013-10-18 2015-04-23 Samsung Electronics Co., Ltd. Methods for palette prediction and intra block copy padding
US10291827B2 (en) 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
EP3425914B1 (en) 2013-12-10 2021-08-18 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding a palette in palette coding mode
RU2679566C1 (ru) 2013-12-10 2019-02-11 Кэнон Кабусики Кайся Улучшенный палитровый режим в hevc
US10321141B2 (en) * 2013-12-18 2019-06-11 Hfi Innovation Inc. Method and apparatus for palette initialization and management
WO2015091879A2 (en) 2013-12-19 2015-06-25 Canon Kabushiki Kaisha Improved encoding process using a palette mode
GB2521606A (en) 2013-12-20 2015-07-01 Canon Kk Method and apparatus for transition encoding in video coding and decoding
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
BR112016015109A2 (pt) 2013-12-30 2017-08-08 Qualcomm Inc Simplificação de codificação residual dc delta em codificação de vídeo 3d
US10362333B2 (en) 2014-01-02 2019-07-23 Qualcomm Incorporated Color index coding for palette-based video coding
WO2015103496A2 (en) 2014-01-02 2015-07-09 Vid Scale, Inc. Two-demensional palette coding for screen content coding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US10469863B2 (en) 2014-01-03 2019-11-05 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US9883197B2 (en) 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
US20150271515A1 (en) 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
GB2522844A (en) 2014-01-29 2015-08-12 Sony Corp Data encoding and decoding
US9699468B2 (en) 2014-02-10 2017-07-04 Microsoft Technology Licensing, Llc Adaptive screen and video coding scheme
US20150237356A1 (en) 2014-02-18 2015-08-20 Microsoft Corporation Host encoder for hardware-accelerated video encoding
KR101908205B1 (ko) 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
KR102185245B1 (ko) 2014-03-04 2020-12-01 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반 블록 매칭을 위한 해시 테이블 구성 및 이용가능성 검사
US10368091B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US20150262404A1 (en) 2014-03-13 2015-09-17 Huawei Technologies Co., Ltd. Screen Content And Mixed Content Coding
WO2015135484A1 (en) 2014-03-14 2015-09-17 Mediatek Inc. Method of color index coding with palette stuffing
KR102268090B1 (ko) 2014-03-14 2021-06-23 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
US9681135B2 (en) * 2014-03-14 2017-06-13 Hfi Innovation Inc. Method for palette table initialization and management
US10404988B2 (en) 2014-03-16 2019-09-03 Vid Scale, Inc. Method and apparatus for the signaling of lossless video coding
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US20150312573A1 (en) * 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US10477232B2 (en) * 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
US9654806B2 (en) 2014-03-26 2017-05-16 Qualcomm Incorporated Determining palette size, palette entries and filtering of palette coded blocks in video coding
CN103957412B (zh) 2014-05-06 2017-04-12 北京大学 一种针对屏幕视频帧间残差的基础色索引映射算法
JP6272630B2 (ja) 2014-05-09 2018-01-31 ノキア テクノロジーズ オーユー ビデオ符号化及び復号の方法及び技術装置
AU2014202682A1 (en) 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
US10750198B2 (en) 2014-05-22 2020-08-18 Qualcomm Incorporated Maximum palette parameters in palette-based video coding
US10264285B2 (en) 2014-05-22 2019-04-16 Qualcomm Incorporated Coding runs in palette-based video coding
US10038915B2 (en) 2014-05-22 2018-07-31 Qualcomm Incorporated Escape sample coding in palette-based video coding
US10382749B2 (en) 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
US10291940B2 (en) 2014-05-23 2019-05-14 Qualcomm Incorporated Coding runs with escape in palette-based video coding
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
AU2014202921B2 (en) 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
WO2015184605A1 (en) 2014-06-04 2015-12-10 Mediatek Singapore Pte. Ltd. Depth coding compatible with arbitrary bit-depth
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US9877043B2 (en) 2014-06-19 2018-01-23 Vid Scale Inc. Methods and systems for intra block copy coding with block vector derivation
WO2015192353A1 (en) 2014-06-19 2015-12-23 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
WO2015194187A1 (en) 2014-06-20 2015-12-23 Sharp Kabushiki Kaisha Harmonized palette coding
KR101748620B1 (ko) 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US9948949B2 (en) 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
US20150381994A1 (en) * 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10412387B2 (en) * 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
AU2014216056A1 (en) 2014-08-25 2016-03-10 Canon Kabushiki Kaisha Method, apparatus and system for predicting a block of video samples
EP3202150B1 (en) 2014-09-30 2021-07-21 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US20160112713A1 (en) 2014-10-20 2016-04-21 Google Inc. Mapping spherical image to 2d representations
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
TW201642655A (zh) 2015-04-21 2016-12-01 Vid衡器股份有限公司 基於藝術意向之視訊編碼
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
CN106664405B (zh) 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
US9704270B1 (en) 2015-07-30 2017-07-11 Teradici Corporation Method and apparatus for rasterizing and encoding vector graphics
CA3025477C (en) 2016-05-25 2023-10-03 Arris Enterprises Llc Jvet coding block structure with asymmetrical partitioning
JP2018032949A (ja) 2016-08-23 2018-03-01 キヤノン株式会社 動きベクトル検出装置およびその制御方法
US10817747B2 (en) 2019-03-14 2020-10-27 Ubicquia Iq Llc Homography through satellite image matching
US11425376B2 (en) 2019-08-23 2022-08-23 Apple Inc. Image signal encoding/decoding method and apparatus therefor
EP4088462A4 (en) 2020-02-14 2023-05-24 Beijing Bytedance Network Technology Co., Ltd. SUBPICTURE INFORMATION SIGNALING IN VIDEO BITSTREAM

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2420021C2 (ru) * 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
US20130272370A1 (en) * 2012-04-11 2013-10-17 Qualcomm Incorporated Wavefront parallel processing for video coding

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
C. PANG et al. "Non-RCE3: Intra Motion Compensation with 2-D MVs", JCTVC-N0256 (version 4), опубл. 02.08.2013 на 12 страницах. *
C. PANG et al. "Non-RCE3: Intra Motion Compensation with 2-D MVs", JCTVC-N0256 (version 4), опубл. 02.08.2013 на 12 страницах. DO-KYOUNG KWON et al. "Fast intra block copy (IntraBC) search for HEVC screen content coding", опубл. 28.07.2014 на 4 страницах. *
DO-KYOUNG KWON et al. "Fast intra block copy (IntraBC) search for HEVC screen content coding", опубл. 28.07.2014 на 4 страницах. *
P. LAI et al. "Non-RCE4: Major color table (palette) sharing", JCTVC-P0153 (version 3), опубл. 11.01.2014 на 6 страницах. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516504B2 (en) 2018-09-21 2022-11-29 Tencent America LLC Method and apparatus for video coding
US11570484B2 (en) 2018-09-21 2023-01-31 Tencent America LLC Method and apparatus for video coding
US12010340B2 (en) 2018-09-21 2024-06-11 Tencent America LLC Intra block copy search range
RU2777394C1 (ru) * 2019-03-09 2022-08-03 Тенсент Америка Ллс Способ и устройство для видеокодирования

Also Published As

Publication number Publication date
WO2016049839A1 (en) 2016-04-07
EP3202150A4 (en) 2017-12-20
RU2017110397A (ru) 2018-10-01
MX2017004211A (es) 2017-11-15
CN105874795A (zh) 2016-08-17
BR112017004041A2 (pt) 2017-12-05
KR102330740B1 (ko) 2021-11-23
US11363283B2 (en) 2022-06-14
CA2959682A1 (en) 2016-04-07
EP3202150A1 (en) 2017-08-09
AU2014408228B2 (en) 2019-09-19
KR20170063885A (ko) 2017-06-08
CA2959682C (en) 2022-12-06
US10812817B2 (en) 2020-10-20
KR20210040195A (ko) 2021-04-12
US11758162B2 (en) 2023-09-12
EP3917146A1 (en) 2021-12-01
JP2017535145A (ja) 2017-11-24
US12081779B2 (en) 2024-09-03
AU2014408228A1 (en) 2017-03-16
EP3202150B1 (en) 2021-07-21
RU2017110397A3 (ru) 2018-10-01
CA3171803A1 (en) 2016-04-07
US20170238001A1 (en) 2017-08-17
US20230353767A1 (en) 2023-11-02
US20200404301A1 (en) 2020-12-24
KR102245704B1 (ko) 2021-04-27
CN105874795B (zh) 2019-11-29
US20220264131A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
RU2679201C2 (ru) Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных
US11388433B2 (en) Block vector prediction in video and image coding/decoding
US20220046276A1 (en) Adaptive switching of color spaces, color sampling rates and/or bit depths
RU2657210C2 (ru) Зеркальное отображение блоков и режим пропуска в интра-основанном на копии блока предсказании
RU2683165C1 (ru) Внутреннее предсказание блочного копирования с асимметричными разделами и схемами поиска на стороне кодера, диапазоны поиска и подходы к разделению
JP2018088715A (ja) イントラブロックコピー予測におけるブロック反転及びスキップモード
JP6793778B2 (ja) 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則
BR112017004041B1 (pt) Método implementado por computador, mídia legível por computador e sistema de computação
BR122022001703B1 (pt) Método, sistema de computador, mídia legível por computador