RU2679201C2 - Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных - Google Patents
Правила для режимов внутрикадрового прогнозирования, когда активируется волновая параллельная обработка данных Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000000903 blocking effect Effects 0.000 abstract description 2
- 230000001133 acceleration Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 239000012634 fragment Substances 0.000 description 45
- 238000001914 filtration Methods 0.000 description 43
- 239000003086 colorant Substances 0.000 description 30
- 239000000872 buffer Substances 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 14
- 230000006854 communication Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 12
- 238000013139 quantization Methods 0.000 description 10
- 238000011084 recovery Methods 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000005070 sampling Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001629 suppression Effects 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 101100068859 Caenorhabditis elegans ggr-1 gene Proteins 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical group COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/55—Motion estimation with spatial constraints, e.g. at image or region borders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree 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-сканирования блока, содержащего правую нижнюю позицию опорной области, меньше порядка Z-сканирования блока, содержащего левую верхнюю позицию текущей области, где offset указывает значение смещения, и текущая область и опорная область имеют размеры m x n. Если да, блок, который содержит правую нижнюю позицию опорной области, ранее восстановлен (а следовательно, также и остальная часть опорной области). Кодер также может проверять то, что значение смещения удовлетворяет, по меньшей мере, одному из условий и , что обеспечивает то, что опорная область не перекрывает текущую область.
[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] Определения
Текущий блок начинается с позиции относительно левой верхней позиции текущего изображения. Ширина и высота текущего блока представляет собой и , соответственно. Текущий блок является частью текущей CU. CTU-размер составляет S. Текущая CU начинается с относительно левой верхней позиции изображения. Блочный вектор представляет собой ).
[0182] Кодер верифицирует то, что удовлетворяются все следующие ограничения.
[0183] Первое ограничение. Кодер верифицирует то, что позиция и позиция находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и левая верхняя позиция опорного блока находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, первое ограничение не удовлетворяется.
[0184] Второе ограничение. Кодер верифицирует то, что позиция и позиция находятся в одном и том же слайсе и одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и правая нижняя позиция опорного блока находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, второе ограничение не удовлетворяется.
[0185] Для первого и второго ограничений, если несколько слайсов не используются, две позиции, которые проверяются, обязательно находятся в одном и том же слайсе, и первое и второе ограничения для слайсов не должны проверяться. Аналогично, если несколько мозаичных фрагментов не используются, две позиции, которые проверяются, обязательно находятся в том же мозаичном фрагменте, и первое и второе ограничения для мозаичных фрагментов не должны проверяться. Все позиции текущего блока находятся в одном слайсе и одном мозаичном фрагменте. Если первое и второе ограничения удовлетворяются, все позиции опорного блока также находятся в этом слайсе и мозаичном фрагменте. Кодер проверяет первое и второе ограничения независимо от того, активируется или нет WPP.
[0186] Третье ограничение. Для третьего ограничения, кодер верифицирует то, что удовлетворяется одно из следующих трех условий. Кодер проверяет третье ограничение независимо от того, активируется или нет WPP.
[0187] Первое условие третьего ограничения. Кодер проверяет то, удовлетворяется или нет . Иными словами, кодер вычисляет CTU-строку, которая включает в себя нижний край опорного блока: . Кодер также вычисляет CTU-строку, которая включает в себя верхний край текущего блока: . Кодер затем проверяет то, находится или нет CTU-строка, которая включает в себя нижний край опорного блока, выше CTU-строки, которая включает в себя верхний край текущего блока. Если да, опорный блок обязательно включает в себя ранее восстановленные значения выборок, по меньшей мере, когда WPP не активируется.
[0188] Второе условие третьего ограничения. Когда , кодер проверяет то, удовлетворяется или нет . Иными словами, если CTU-строка, которая включает в себя нижний край опорного блока, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), кодер вычисляет (a) CTU-столбец, который включает в себя правый край опорного блока , и (b) CTU-столбец, который включает в себя левый край текущего блока . Кодер затем проверяет то, находится или нет CTU-столбец, который включает в себя правый край опорного блока, слева от CTU-столбца, который включает в себя левый край текущего блока. Если да, опорный блок обязательно включает в себя ранее восстановленные значения выборок.
[0189] Третье условие третьего ограничения. Когда и , кодер проверяет то, меньше или нет порядок Z-сканирования позиции порядка Z-сканирования позиции . Иными словами, если CTU-строка, которая включает в себя нижний край опорного блока, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), и CTU-столбец, который включает в себя правый край опорного блока, равен CTU-столбцу, который включает в себя левый край текущего блока (тот же CTU-столбец), то кодер проверяет то, находится или нет правая нижняя позиция опорного блока раньше в порядке Z-сканирования, чем левая верхняя позиция текущего блока. Третье условие применяется, если прогнозирование из текущей CU разрешается. Если прогнозирование из текущей CU не разрешается, должен быть .
[0190] Четвертое ограничение. Кодер проверяет четвертое ограничение, когда WPP активируется. Для четвертого ограничения, кодер верифицирует то, что . Иными словами, кодер вычисляет разность между CTU-столбцом, который включает в себя правый край опорного блока, и CTU-столбцом, который включает в себя левый край текущего блока: . Кодер также вычисляет разность между CTU-строкой, которая включает в себя верхний край текущего блока, и CTU-строкой, которая включает в себя нижний край опорного блока: . Кодер верифицирует то, что первая разность (между CTU-столбцами) меньше или равна второй разности (между CTU-строками). Как показано с помощью неровной линии CTU от текущей CTU вверх и вправо на фиг. 8 или фиг. 18, это верифицирует то, что опорный блок является частью восстановленного контента, который гарантированно доступен для прогнозирования, когда WPP активируется.
3. Примерные ограничения на значения смещения для прогнозирования с внутренним LC, когда WPP активируется
[0191] Этот раздел детализирует примеры ограничений, которые кодер может принудительно активировать для прогнозирования с внутренним LC, когда WPP активируется. Для текущей линии, ограничения верифицируют то, что возможный вариант опорной линии, указываемый посредством значения смещения, включает в себя восстановленные значения выборок, которые должны быть доступны, когда текущая линия закодирована или декодирована, даже когда WPP активируется.
[0192] Определения
Текущий блок начинается с позиции относительно левой верхней позиции текущего изображения. Ширина и высота текущего блока представляет собой и , соответственно. Текущий блок является частью текущей CU. CTU-размер составляет S. Значение смещения для текущей линии составляет . L линий текущего блока уже обработаны.
[0193] Кодер задает начальную и конечную позиции текущей линии текущего блока.
Позиция представляет собой начальную позицию текущей линии, и представляет собой конечную позицию текущей линии. Когда используется горизонтальное сканирование (также называемое "строковым режимом"), каждая линия представляет собой строку текущего блока: и Когда используется вертикальное сканирование (также называемое "столбцовым режимом"), каждая линия представляет собой столбец текущего блока: и
[0194] Кодер также задает начальную и конечную позиции возможного варианта опорной линии, который прогнозирует текущую линию. Позиция представляет собой начальную позицию опорной линии. Позиция представляет собой конечную позицию опорной линии. Опорная линия может представлять собой строку (когда используется горизонтальное сканирование) или столбец (когда используется вертикальное сканирование). Независимо от того, используется горизонтальное сканирование (строковый режим) или вертикальное сканирование (столбцовый режим): и .
[0195] Кодер верифицирует то, что удовлетворяются все следующие ограничения. Для некоторых из этих ограничений, рассматривается левая верхняя позиция текущего блока. Для таких ограничений, альтернативно, начальная позиция текущей линии может проверяться вместо левой верхней позиции текущего блока.
[0196] Первое ограничение. Кодер верифицирует то, что позиция и позиция находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и начальная позиция опорной линии находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, первое ограничение не удовлетворяется.
[0197] Второе ограничение. Кодер верифицирует то, что позиция и позиция находятся в одном и том же слайсе и одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и конечная позиция опорной линии находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, второе ограничение не удовлетворяется.
[0198] Для первого и второго ограничений, если несколько слайсов не используются, две позиции, которые проверяются, обязательно находятся в одном и том же слайсе, и первое и второе ограничения для слайсов не должны проверяться. Аналогично, если несколько мозаичных фрагментов не используются, две позиции, которые проверяются, обязательно находятся в том же мозаичном фрагменте, и первое и второе ограничения для мозаичных фрагментов не должны проверяться. Все позиции текущей линии находятся в одном слайсе и одном мозаичном фрагменте. Если первое и второе ограничения удовлетворяются, все позиции опорной линии также находятся в этом слайсе и мозаичном фрагменте. Кодер проверяет первое и второе ограничения независимо от того, активируется или нет WPP.
[0199] Третье ограничение. Для третьего ограничения, кодер верифицирует то, что удовлетворяется одно из следующих трех условий. Кодер проверяет третье ограничение независимо от того, активируется или нет WPP.
[0200] Первое условие третьего ограничения. Кодер проверяет то, удовлетворяется или нет . Иными словами, кодер вычисляет CTU-строку, которая включает в себя нижний край или позицию опорной линии: . Кодер также вычисляет CTU-строку, которая включает в себя верхний край текущего блока: . Кодер затем проверяет то, находится или нет CTU-строка, которая включает в себя нижний край или позицию опорной линии, выше CTU-строки, которая включает в себя верхний край текущего блока. Если да, опорная линия обязательно включает в себя ранее восстановленные значения выборок, по меньшей мере, когда WPP не активируется.
[0201] Второе условие третьего ограничения. Когда , кодер проверяет то, удовлетворяется или нет . Иными словами, если CTU-строка, которая включает в себя нижний край или позицию опорной линии, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), кодер вычисляет (a) CTU-столбец, который включает в себя правый край или позицию опорной линии , и (b) CTU-столбец, который включает в себя левый край текущего блока . Кодер затем проверяет то, находится или нет CTU-столбец, который включает в себя правый край или позицию опорной линии, слева от CTU-столбца, который включает в себя левый край текущего блока. Если да, опорная линия обязательно включает в себя ранее восстановленные значения выборок.
[0202] Третье условие третьего ограничения. Когда , кодер проверяет то, меньше или нет порядок Z-сканирования позиции порядка Z-сканирования позиции . Иными словами, если CTU-строка, которая включает в себя нижний край или позицию опорной линии, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), и CTU-столбец, который включает в себя правый край или позицию опорной линии, равен CTU-столбцу, который включает в себя левый край текущего блока (тот же CTU-столбец), то кодер проверяет то, находится или нет конечная позиция опорной линии раньше в порядке Z-сканирования, чем начальная позиция текущей линии. Третье условие применяется, если прогнозирование из текущей CU разрешается. Если прогнозирование из текущей CU не разрешается, должен быть .
[0203] Четвертое ограничение. Кодер проверяет четвертое ограничение, когда WPP активируется. Для четвертого ограничения, кодер верифицирует то, что . Иными словами, кодер вычисляет разность между CTU-столбцом, который включает в себя правый край или позицию опорной линии, и CTU-столбцом, который включает в себя левый край текущего блока: . Кодер также вычисляет разность между CTU-строкой, которая включает в себя верхний край текущего блока, и CTU-строкой, которая включает в себя нижний край или позицию опорной линии: . Кодер верифицирует то, что первая разность (между CTU-столбцами) меньше или равна второй разности (между CTU-строками).
4. Примерные ограничения на значения смещения для прогнозирования с внутренним SC, когда WPP активируется
[0204] Этот раздел детализирует примеры ограничений, которые кодер может принудительно активировать для прогнозирования с внутренним SC, когда WPP активируется. Для текущей строки, ограничения верифицируют то, что возможный вариант опорной строки, указываемый посредством значения смещения и значения длины, включает в себя восстановленные значения выборок, которые должны быть доступны, когда текущая строка закодирована или декодирована, даже когда WPP активируется.
[0205] Определения
Текущий блок начинается с позиции относительно левой верхней позиции текущего изображения. Ширина и высота текущего блока представляет собой и , соответственно. Текущий блок является частью текущей CU. CTU-размер составляет S. Значение смещения для текущей строки представляет собой , и значение длины строки для текущей строки представляет собой . K пикселов текущего блока уже обработаны с использованием прогнозирования с внутренним SC.
[0206] Кодер задает начальную и конечную позиции текущей строки текущего блока. Позиция представляет собой начальную позицию текущей строки, и представляет собой конечную позицию текущей строки. Кодер также задает ограничительный прямоугольник, который содержит начальную позицию текущей строки, конечную позицию текущей строки и любые позиции (в порядке строкового сканирования) между начальной и конечной позициями текущей строки. Левая верхняя позиция ограничительного прямоугольника представляет собой , правая нижняя позиция ограничительного прямоугольника представляет собой . Кодер задает опорный прямоугольник (включающий в себя опорную строку) в качестве ограничительного прямоугольника, сдвинутого на значение смещения. Левая верхняя позиция опорного прямоугольника представляет собой . Правая нижняя позиция ограничительного прямоугольника представляет собой .
[0207] Когда используется горизонтальное строковое сканирование (слева направо в строке текущего блока, от верхней строки до нижней строки), начальная позиция является следующей: . Конечная позиция является следующей: . Когда начальная позиция и конечная позиция текущей строки находятся в той же строке текущего блока, , и . В противном случае, левая верхняя позиция ограничительного прямоугольника представляет собой , и правая нижняя позиция ограничительного прямоугольника представляет собой .
[0208] Когда используется вертикальное сканирование (сверху вниз в столбце текущего блока, от левого столбца к правому столбцу), начальная позиция является следующей: . Конечная позиция является следующей: . Когда начальная позиция и конечная позиция текущей строки находятся в том же столбце текущего блока, , и . В противном случае, левая верхняя позиция ограничительного прямоугольника представляет собой , и правая нижняя позиция ограничительного прямоугольника представляет собой .
[0209] Независимо от того, используется горизонтальное сканирование или вертикальное сканирование, левая верхняя позиция опорного прямоугольника представляет собой , и правая нижняя позиция опорного прямоугольника представляет собой . В завершение, начальная позиция опорной строки представляет собой .
[0210] Кодер верифицирует то, что удовлетворяются все следующие ограничения. Для некоторых из этих ограничений, рассматривается левая верхняя позиция текущего блока. Для таких ограничений, альтернативно, начальная позиция текущей строки или левая верхняя позиция ограничительного прямоугольника могут проверяться вместо левой верхней позиции текущего блока.
[0211] Первое ограничение. Кодер верифицирует то, что позиция (x0, y0) и позиция находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и левая верхняя позиция опорного прямоугольника находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, первое ограничение не удовлетворяется.
[0212] Второе ограничение. Кодер верифицирует то, что позиция и позиция находятся в одном и том же слайсе и одном и том же мозаичном фрагменте. Иными словами, кодер верифицирует то, что левая верхняя позиция текущего блока и правая нижняя позиция опорного прямоугольника находятся в одном и том же слайсе и в одном и том же мозаичном фрагменте. Если две позиции находятся в различных слайсах или различных мозаичных фрагментах, второе ограничение не удовлетворяется.
[0213] Для первого и второго ограничений, если несколько слайсов не используются, две позиции, которые проверяются, обязательно находятся в одном и том же слайсе, и первое и второе ограничения для слайсов не должны проверяться. Аналогично, если несколько мозаичных фрагментов не используются, две позиции, которые проверяются, обязательно находятся в том же мозаичном фрагменте, и первое и второе ограничения для мозаичных фрагментов не должны проверяться. Все позиции текущей строки находятся в одном слайсе и одном мозаичном фрагменте. Если первое и второе ограничения удовлетворяются, все позиции опорного прямоугольника (и, следовательно, опорная строка) также находятся в этом слайсе и мозаичном фрагменте. Кодер проверяет первое и второе ограничения независимо от того, активируется или нет WPP.
[0214] Третье ограничение. Для третьего ограничения, кодер верифицирует то, что одно или более следующих условий удовлетворяются. Кодер проверяет третье ограничение независимо от того, активируется или нет WPP.
[0215] Первое условие третьего ограничения. Кодер проверяет то, удовлетворяется или нет . Иными словами, кодер вычисляет CTU-строку, которая включает в себя нижний край опорного прямоугольника: . Кодер также вычисляет CTU-строку, которая включает в себя верхний край текущего блока: . Кодер затем проверяет то, находится или нет CTU-строка, которая включает в себя нижний край опорного прямоугольника, выше CTU-строки, которая включает в себя верхний край текущего блока. Если да, опорный прямоугольник обязательно включает в себя ранее восстановленные значения выборок, по меньшей мере, когда WPP не активируется.
[0216] Второе условие третьего ограничения. Когда , кодер проверяет то, удовлетворяется или нет . Иными словами, если CTU-строка, которая включает в себя нижний край опорного прямоугольника, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), кодер вычисляет (a) CTU-столбец, который включает в себя правый край опорного прямоугольника , и (b) CTU-столбец, который включает в себя левый край текущего блока . Кодер затем проверяет то, находится или нет CTU-столбец, который включает в себя правый край опорного прямоугольника, слева от CTU-столбца, который включает в себя левый край текущего блока. Если да, опорный прямоугольник обязательно включает в себя ранее восстановленные значения выборок.
[0217] Третье условие третьего ограничения. Когда и , кодер проверяет то, меньше или нет порядок Z-сканирования позиции порядка Z-сканирования позиции . Иными словами, если CTU-строка, которая включает в себя нижний край опорного прямоугольника, равна CTU-строке, которая включает в себя верхний край текущего блока (та же CTU-строка), и CTU-столбец, который включает в себя правый край опорного прямоугольника, равен CTU-столбцу, который включает в себя левый край текущего блока (тот же CTU-столбец), то кодер проверяет то, находится или нет правая нижняя позиция опорного прямоугольника раньше в порядке Z-сканирования, чем левая верхняя позиция текущего блока.
[0218] Четвертое условие третьего ограничения. Если прогнозирование из текущей CU разрешается, когда , кодер проверяет то, что . Иными словами, если прогнозирование из текущей CU разрешается, третье ограничение может удовлетворяться, если текущая строка и опорная строка начинаются в одной и той же строке, и опорная строка начинается слева от текущей строки.
[0219] Четвертое ограничение. Кодер проверяет четвертое ограничение, когда WPP активируется. Для четвертого ограничения, кодер верифицирует то, что . Иными словами, кодер вычисляет разность между CTU-столбцом, который включает в себя правый край или позицию опорного прямоугольника, и CTU-столбцом, который включает в себя левый край текущего блока: . Кодер также вычисляет разность между CTU-строкой, которая включает в себя верхний край текущего блока, и CTU-строкой, которая включает в себя нижний край или позицию опорного прямоугольника: . Кодер верифицирует то, что первая разность (между CTU-столбцами) меньше или равна второй разности (между CTU-строками).
[0220] Пятое ограничение. Для пятого ограничения, кодер верифицирует то, что . Иными словами, кодер проверяет то, что текущий блок включает в себя достаточно позиций для текущей строки, с учетом количества позиций, которые уже обработаны.
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.
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)
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)
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)
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)
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 |
-
2014
- 2014-09-30 EP EP14903497.7A patent/EP3202150B1/en active Active
- 2014-09-30 WO PCT/CN2014/087885 patent/WO2016049839A1/en active Application Filing
- 2014-09-30 JP JP2017517017A patent/JP2017535145A/ja active Pending
- 2014-09-30 CA CA3171803A patent/CA3171803A1/en active Pending
- 2014-09-30 EP EP21186125.7A patent/EP3917146A1/en active Pending
- 2014-09-30 RU RU2017110397A patent/RU2679201C2/ru active
- 2014-09-30 AU AU2014408228A patent/AU2014408228B2/en active Active
- 2014-09-30 CN CN201480071878.2A patent/CN105874795B/zh active Active
- 2014-09-30 KR KR1020217010079A patent/KR102330740B1/ko active IP Right Grant
- 2014-09-30 CA CA2959682A patent/CA2959682C/en active Active
- 2014-09-30 KR KR1020177011675A patent/KR102245704B1/ko active IP Right Grant
- 2014-09-30 MX MX2017004211A patent/MX2017004211A/es unknown
- 2014-09-30 US US15/515,559 patent/US10812817B2/en active Active
-
2020
- 2020-09-01 US US17/009,495 patent/US11363283B2/en active Active
-
2022
- 2022-05-09 US US17/739,299 patent/US11758162B2/en active Active
-
2023
- 2023-07-06 US US18/218,796 patent/US12081779B2/en active Active
Patent Citations (2)
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)
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)
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 |