RU2613740C2 - Способ кодирования и декодирования изображений, устройство для кодирования и декодирования и соответствующие компьютерные программы - Google Patents

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

Info

Publication number
RU2613740C2
RU2613740C2 RU2014102226A RU2014102226A RU2613740C2 RU 2613740 C2 RU2613740 C2 RU 2613740C2 RU 2014102226 A RU2014102226 A RU 2014102226A RU 2014102226 A RU2014102226 A RU 2014102226A RU 2613740 C2 RU2613740 C2 RU 2613740C2
Authority
RU
Russia
Prior art keywords
blocks
block
decoding
encoding
module
Prior art date
Application number
RU2014102226A
Other languages
English (en)
Other versions
RU2014102226A (ru
Inventor
Феликс ГЕНРИ
Стефан ПАТЁ
Гордон КЛЭР
Original Assignee
Долби Интернэшнл Аб
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46508090&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2613740(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Долби Интернэшнл Аб filed Critical Долби Интернэшнл Аб
Publication of RU2014102226A publication Critical patent/RU2014102226A/ru
Application granted granted Critical
Publication of RU2613740C2 publication Critical patent/RU2613740C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/12Frequency diversity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

Изобретение относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение эффективности декодирования потока данных за счет улучшения адаптации потока кодированных данных к конкретному виду декодирования. Предложено устройство декодирования, содержащее средство для приема битового пока, представляющего, по меньшей мере, одно кодированное изображение. Устройство также содержит средство для идентификации из битового потока предопределенного множества подмножеств блоков упомянутого, по меньшей мере, одного кодированного изображения, каждый из упомянутого множества подмножеств включает в себя, по меньшей мере, ряд последовательных блоков. Устройство также содержит средство для энтропийного декодирования первого ряда последовательных блоков в первом подмножестве блоков и для энтропийного декодирования второго ряда последовательных блоков во втором подмножестве блоков. 2 н.п. ф-лы, 14 ил.

Description

Область техники, к которой относится изобретение
Настоящее изобретение относится в общем случае к области обработки изображений и более конкретно к кодированию и декодированию цифровых изображений и последовательностей цифровых изображений.
Настоящее изобретение, таким образом, может быть применено к способам видеокодирования, реализованным как в современных видеокодирующих устройствах (стандарты MPEG, Н.264 и т.п.), так и в будущих видеокодирующих устройствах (стандарты ITU-T/VCEG (Н.265) или ISO/MPEG (HVC)).
Уровень техники
Современные видеокодирующие устройства (стандарты MPEG, Н.264 и т.п.) используют поблочное представление видеопоследовательности. Изображения разбивают на макроблоки, каждый макроблок в свою очередь разбивают на блоки и каждый блок или макроблок кодируют с применением внутрикадрового или межкадрового прогнозирования. Таким образом, некоторые изображения кодируют посредством пространственного прогнозирования (внутрикадровое прогнозирование), а другие изображения кодируют посредством временного прогнозирования (межкадровое прогнозирование) относительно одного или нескольких кодированных и/или декодированных опорных изображений с применением компенсации движения, известной специалистам в этой области. Более того, для каждого блока может быть кодирован остаточный блок, соответствующий исходному блоку, из которого вычтен результат прогнозирования. Коэффициенты этого блока квантуют, возможно, после преобразования, и затем кодируют посредством энтропийного кодирующего устройства.
Для применения внутрикадрового прогнозирования и межкадрового прогнозирования требуется, чтобы были доступны некоторые блоки, которые были ранее кодированы и декодированы, чтобы их можно было использовать в декодере или в кодирующем устройстве для прогнозирования текущего блока. Схематичный пример кодирования с прогнозированием, подобного рассматриваемому, представлен на фиг.1, на котором изображение IN разбито на блоки, текущий блок MBi этого изображения, подвергается кодированию с прогнозированием относительно заданного числа трех предварительно кодированных и декодированных блоков MBr1, МВr2 и МВr3, обозначенных заштрихованными стрелками. Упомянутые выше три блока, в частности, представляют собой блок MBr1, расположенный непосредственно слева от текущего блока MBi, и два блока МВr2 и МВr3, расположенные непосредственно сверху и сверху справа от текущего блока MBi.
Более конкретный интерес здесь представляет энтропийное кодирующее устройство. Это энтропийное кодирующее устройство кодирует информацию в порядке ее поступления. Обычно блоки просматривают строка за строкой по схеме "растрового сканирования", как показано на фиг.1 линией PRS, начиная от блока в верхнем левом углу изображения. Для каждого блока в энтропийное кодирующее устройство последовательно передают различные сегменты информации для представления этого блока (тип блока, режим прогнозирования, остаточные коэффициенты и т.п.).
На сегодня уже известно обладающее приемлемой сложностью эффективное устройство арифметического кодирования, именуемое устройством контекстно-ориентированного адаптивного двоичного арифметического кодирования ("САВАС" ("Context Adaptive Binary Arithmetic Coder")) и введенное в стандарт сжатия AVC (известный также под названиями (ISO-MPEG4 часть 10 и ITU-T Н.264)).
Такое энтропийное кодирующее устройство реализует различные принципы:
- арифметическое кодирование: кодирующее устройство, такое, как устройство, первоначально описанное в документе Й. Риссанен и Г.Г. Лэнгдон, мл. "Универсальное моделирование и кодирование" (J. Rissanen and G.G. Langdon Jr, "Universal modeling and coding,") IEEE Trans. Inform. Theory, vol. IT-27, pp.12-23, Jan. 1981, используется для кодирования символа и вероятности появления этого символа;
- адаптация к контексту: здесь это охватывает адаптацию вероятности появления символа, подлежащего кодированию. С одной стороны "обучение" происходит прямо в процессе работы ("на лету"). С другой стороны, в зависимости от состояния ранее кодированной информации для кодирования используется конкретный контекст. Каждому контексту здесь соответствует некая присущая ему собственная вероятность появления символа. Например, контекст соответствует типу кодируемого символа (представление коэффициента остатка, сигнализация о режиме кодирования и т.п.) согласно данной конфигурации или состоянию ближайшего окружения (соседства) (например, число ближайших соседствующих блоков, для которых выбран режим внутрикадрового прогнозирования, и т.п.);
- бинаризация: осуществляется формирование последовательности битов символов, подлежащих кодированию. После этого, полученные различные биты последовательно передают в двоичное энтропийное кодирующее устройство.
Таким образом, это энтропийное кодирующее устройство реализует, для каждого используемого контекста, систему для обучения вероятностям в процессе работы применительно к ранее кодированным символам для рассматриваемого контекста. Это обучение основано на порядке кодирования этих символов. Обычно изображение просматривают согласно описанному выше порядку типа "растрового сканирования".
В процессе кодирования данного символа b, который может быть равен 0 или 1, результат обучения вероятности pi появления этого символа обновляют для текущего блока MBi следующим образом:
Figure 00000001
где α представляет собой заданную величину, например, 0,95, и pi-1 представляет собой вероятность появления символа, вычисленную после последнего появления этого символа.
На фиг.1 представлен схематичный пример такого энтропийного кодирования, в котором такому энтропийному кодированию подвергается текущий блок MBi изображения IN. Когда начинается энтропийное кодирование блока MBi, используют вероятности появления символов, полученные после кодирования ранее кодированного и декодированного блока, в качестве которого выбирают блок, непосредственно предшествующий текущему блоку MBi в соответствии с описанной выше схемой просмотра блоков строка за строкой по принципу "растрового сканирования". Такое обучение на основе взаимозависимости от блока к блоку показано на фиг.1 для некоторых блоков (только для ясности картинки) посредством тонких стрелок.
Недостаток такого типа энтропийного кодирования состоит в том, что вероятности, используемые при кодировании символа, расположенного в начале строки, соответствуют главным образом вероятностям, наблюдаемым для символов, находящихся в конце предшествующей строки, если применять просмотр блоков в порядке "растрового кодирования". Теперь, применительно к возможным пространственным вариациям вероятностей символов (например, для символов, связанных с сегментом информации движения, движение в правой части изображения может отличаться от движения, наблюдаемого в левой части, и это, по всей видимости, отразится на вытекающих отсюда локальных вероятностях), можно наблюдать недостаток локальной конформности вероятностей, что возможно способно привести к потере эффективности во время кодирования.
Для ограничения этого явления были внесены предложения о модификации порядка просмотра блоков с целью обеспечить улучшенную локальную согласованность, но кодирование и декодирование остаются последовательными.
В этой области лежит другой недостаток энтропийного кодирующего устройства этого типа. Действительно, кодирование и декодирование символа зависят от состояния "выученной" для него вероятности, поэтому декодирование может быть произведено только в том же порядке, который был использован во время кодирования. Обычно декодирование в этом случае может быть только последовательным, что препятствует параллельному декодированию нескольких символов (например, чтобы получить выигрыш от многоядерных архитектур).
Документ: Томас Виганд, Гэри Дж. Салливан, Гисле Бьонтегаард и Аджай Лутра "Обзор стандарта видеокодирования H.264/AVC" (Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, and Ajay Luthra, "Overview of the H.264/AVC Video Coding Standard", IEEE Transactions on Circuits and Systems for Video Technology, Vol.13, No. 7, pp.560-576, July 2003), указывает, что энтропийное кодирующее устройство стандарта САВАС имеет характерную особенность назначения нецелочисленного количества битов каждому символу текущего алфавита, подлежащему кодированию, это является предпочтительным для вероятностей появления символов свыше 0,5. Конкретнее, кодирующее устройство стандарта САВАС ожидает момента, когда оно прочитает несколько символов, и затем назначает этой группе прочитанных символов заданное число битов, которые это кодирующее устройство записывает в сжатом потоке данных для передачи декодеру. Таким образом, такое предложение делает возможным "обобществить" биты нескольких символов и кодировать символ посредством дробного числа битов, это число отражает информацию, более близкую к информации, реально передаваемой символом. Другие биты, ассоциированные с прочитанными символами, не передают в составе сжатого потока, а сохраняют в режиме готовности, ожидая назначения одному или нескольким новым символам, прочитанным кодирующим устройством стандарта САВАС, что делает возможным снова обобществить эти другие символы. Указанное энтропийное кодирующее устройство предпринимает известным способом в данный момент времени "опустошение" этих непереданных битов. Иными словами, в этот данный момент времени кодирующее устройство извлекает биты, еще не переданные, и записывает в состав сжатого потока, адресованного декодеру. Такое опустошение имеет место, например, в момент, в который прочитан последний символ, подлежащий кодированию, чтобы обеспечить, что сжатый поток действительно содержит все биты, что позволит декодеру осуществить декодирование всех символов алфавита. В более общем смысле, момент, в который происходит указанное опустошение, определяется в функции характеристик и функциональных возможностей, специфичных для рассматриваемого кодирующего устройства/декодера.
Документ, доступный в Интернете по адресу http://research.microsoft.com/en-us/um/people/jin1/paper_2002/msri_jpeg.htm на 15 апреля 2011 г., описывает способ кодирования неподвижных изображения в соответствии со стандартом сжатия JPEG2000. Согласно этому способу данные неподвижного изображения подвергают дискретному вейвлетному преобразованию, за которым следует квантование, что делает возможным получение квантованных вейвлетных коэффициентов, с которыми соответственно ассоциированы индексы квантования. Полученные индексы квантования кодируют посредством энтропийного кодирующего устройства. Квантованные коэффициенты предварительно группируют в прямоугольные блоки, именуемые кодовыми блоками, обычно размером 64×64 или 32×32. Затем осуществляют независимое кодирование каждого кодового блока посредством энтропийного кодирования. Таким образом, энтропийное кодирующее устройство во время кодирования текущего кодового блока не использует вероятности появления символов, вычисленные в ходе кодирования предшествующих кодовых блоков. Поэтому указанное энтропийное кодирующее устройство находится в инициализированном состоянии в начале кодирования каждого кодового блока. Преимуществом такого способа является декодирование данных кодового блока без необходимости декодировать соседние кодовые блоки. Таким образом, например, сегмент клиентского программного обеспечения может потребовать от сегмента серверного программного обеспечения предоставить только те сжатые кодовые блоки, которые нужны клиенту для декодирования выделенной части изображения. Преимуществом такого способа является также возможность параллельного кодирования и/или декодирования кодовых блоков. Таким образом, чем меньше размер кодового блока, тем выше уровень параллелизма. Например, при фиксированном уровне параллелизма, равном двум, два кодовых блока могут быть кодированы и/или декодированы параллельно. Теоретически, величина уровня параллелизма равна числу кодовых блоков, подлежащих кодированию в изображении. Однако характеристики сжатия, получаемые таким способом, не являются оптимальными вследствие того факта, что такое кодирование не использует вероятности, соответствующие ближайшему окружению текущего кодового блока.
Цель и краткое изложение существа изобретения
Одной из целей настоящего изобретения является устранение недостатков, свойственных упомянутым выше известным способам.
Поэтому предмет настоящего изобретения относится к способу кодирования по меньшей мере одного изображения, содержащему этапы:
- разбиение изображения на несколько блоков, которые могут содержать символы, принадлежащие заданному множеству символов;
- группирование блоков в заданное число подмножеств блоков;
- кодирование, посредством модуля энтропийного кодирования, каждого из подмножества блоков путем ассоциирования цифровой информации с символами каждого блока из рассматриваемого подмножества, этап кодирования содержит, для первого блока изображения, подэтап инициализации переменных состояния для модуля энтропийного кодирования;
- генерация по меньшей мере одного подпотока данных, представляющего по меньшей мере одно из кодированных подмножеств блоков.
Способ согласно настоящему изобретению примечателен тем, что:
- в случае, когда текущий блок является первым блоком, подлежащим кодированию, из состава рассматриваемого подмножества, в качестве вероятностей появления символов для первого текущего блока, принимают вероятности, которые были определены для кодированного и декодированного заданного блока из состава по меньшей мере одного другого подмножества;
- если текущий блок представляет собой последний кодированный блок из состава рассматриваемого подмножества, тогда:
- записывают в подпоток, представляющий рассматриваемое подмножество, всю полноту цифровой информации, ассоциированной с символами, во время кодирования блоков рассматриваемого подмножества;
- выполняют подэтап инициализации.
Указанный выше этап записи содержит, как только будет закодирован последний блок какого-либо подмножества блоков, опустошение цифровой информации (битов), еще не переданной, как было объяснено в приведенном выше описании.
Связь между упомянутым выше этапом записи и этапом реинициализации модуля энтропийного кодирования делает возможным генерировать поток кодированных данных, содержащий различные подпотоки данных, соответствующие по меньшей мере одному кодированному подмножеству блоков, этот поток адаптирован для параллельного декодирования согласно различным уровням параллелизма, и это не зависит от типа кодирования - последовательного или параллельного, примененного к рассматриваемому подмножеству блоков. Таким образом, может быть получена большая степень свободы при кодировании с точки зрения уровня параллелизма в функции от ожидаемых характеристик кодирования/декодирования. Уровень параллелизма при декодировании является величиной переменной и может даже отличаться от уровня параллелизма при кодировании, поскольку в момент начала декодирования подмножества блоков декодер всегда находится в инициализированном состоянии.
Согласно первому примеру переменные состояния модуля энтропийного кодирования образуют границы внутреннего представления вероятности появления одного из символов из совокупности, составляющей заданное множество символов.
Согласно второму примеру переменные состояния модуля энтропийного кодирования представляют собой строки символов, содержащиеся в кодовой преобразовательной таблице энтропийного кодирующего устройства для кода LZW (Лемпеля-Зива-Уэлша), хорошо известного специалистам в рассматриваемой области и описанного по следующему интернет-адресу, 21 июня 2011 г.: http://en.wikipedia.org/wiki/Lempe1%E2%80%93Ziv%E2%80%93Welch.
Основное преимущество от использования вероятностей появления символов, найденных для первого блока из указанного другого подмножества, в процессе энтропийного кодирования первого текущего блока из состава рассматриваемого подмножества блоков состоит в экономии буферной памяти кодирующего устройства путем сохранения в этой памяти исключительно обновлений вероятностей появления символов, не принимая в расчет вероятности появления символов, найденные другими последовательными блоками указанного другого подмножества.
Основное преимущество от использования вероятностей появления символов, найденных для какого-либо другого блока из указанного другого подмножества, отличного от первого блока, например, второго блока, в процессе энтропийного кодирования первого текущего блока из состава рассматриваемого подмножества блоков состоит в получении более точных и потому лучше "изученных" вероятностей появления символов, что дает лучшие характеристики сжатия видеосигнала.
В конкретном варианте указанные подмножества блоков кодируют последовательно или еще и параллельно.
Тот факт, что кодирование подмножеств блоков осуществляется последовательно, имеет то преимущество, что способ кодирования согласно настоящему изобретению совместим со стандартом H.264/MPEG-4 AVC.
Тот факт, что кодирование подмножеств блоков осуществляется параллельно, имеет преимущество сокращения затрат времени на кодирование и использования выгод архитектуры, имеющей несколько платформ, для кодирования изображения.
В другом конкретном варианте, когда по меньшей мере два подмножества блоков кодируют параллельно по меньшей мере с одним другим подмножеством блоков, указанные по меньшей мере два кодированных множества блоков заключены в одном и том же подпотоке данных.
Такое предложение делает возможным, в частности, уменьшение объема сигнализации в подпотоках данных. Действительно, чтобы модуль декодирования мог произвести декодирование подпотока как можно раньше, необходимо указать в сжатом файле точку, в которой начинается интересующий подпоток. Когда в одном и том же подпотоке данных присутствуют несколько подмножеств блоков, необходим единый индикатор, что позволит уменьшить размер сжатого файла.
Еще в одном другом конкретном варианте, когда кодированные подмножества блоков предназначены для параллельного декодирования в заданном порядке, подпотоки данных, полученные после кодирования соответственно каждого подмножества блоков, сначала упорядочивают заданным образом перед тем как передать, с учетом перспективы декодирования этих данных.
Такое предложение делает возможным адаптировать поток кодированных данных к конкретному виду декодирования без того, чтобы требовать декодировать и затем снова кодировать изображение.
Соответственно, настоящее изобретение относится далее к устройству для кодирования по меньшей мере одного изображения, содержащему:
- модуль для разбиения изображения на несколько блоков, которые могут содержать символы, принадлежащие заданному множеству символов;
- модуль для группирования блоков в заданное число подмножеств блоков;
- модуль для кодирования каждого из подмножеств блоков, так что этот модуль для кодирования содержит модуль энтропийного кодирования, способный ассоциировать цифровую информацию с символами каждого блока из рассматриваемого подмножества, этот модуль для кодирования содержит, для первого блока изображения, субмодуль для инициализации переменных состояния для модуля энтропийного кодирования;
- модуль для генерации по меньшей мере одного подпотока данных, представляющего по меньшей мере одно из кодированных подмножеств блоков.
Такое устройство для кодирования примечательно тем, что оно содержит:
- модуль для определения вероятностей появления символов для текущего блока, так что этот модуль в случае, когда текущий блок является первым блоком, подлежащим кодированию, из состава рассматриваемого подмножества, принимает в качестве вероятностей появления символов для первого текущего блока вероятности, которые были определены для кодированного и декодированного заданного блока из состава по меньшей мере одного другого подмножества;
- записывающий модуль, который в случае, когда текущий блок является последним кодированным блоком из состава рассматриваемого подмножества, активизируют для записи в подпоток, представляющий рассматриваемое подмножество, всей полноты цифровой информации, ассоциированной с символами, во время кодирования блоков рассматриваемого подмножества,
указанный субмодуль инициализации дополнительно активизируют, чтобы реинициализировать переменные состояния модуля энтропийного кодирования.
Соответствующим образом, настоящее изобретение относится к способу декодирования потока, представляющего по меньшей мере одно кодированное изображение, содержащему этапы:
- идентификация потока, содержащего заданное число подпотоков данных, соответствующих по меньшей мере одному подмножеству блоков, подлежащих декодированию, так что эти блоки могут содержать символы, принадлежащие заданному множеству символов;
- декодирование идентифицированных подмножеств блоков, посредством модуля энтропийного декодирования, путем считывания, по меньшей мере в одном из идентифицированных подпотоков, цифровой информации, ассоциированной с символами каждого блока из подмножества, соответствующего указанному по меньшей мере одному идентифицированному подпотоку, этап декодирования содержит, для первого блока, подлежащего декодированию в изображении, подэтап инициализации переменных состояния для модуля энтропийного декодирования.
Такой способ декодирования примечателен тем, что:
- в случае, когда текущий блок является первым блоком, подлежащим декодированию, из состава рассматриваемого подмножества, в качестве вероятностей появления символов для первого блока из состава рассматриваемого подмножества, принимают вероятности, которые были определены для декодированного заданного блока из состава по меньшей мере одного другого подмножества;
- если текущий блок представляет собой последний декодированный блок из состава рассматриваемого подмножества, тогда выполняют подэтап инициализации.
В конкретном варианте указанные подмножества блоков декодируют последовательно или еще и параллельно.
В другом конкретном варианте, когда по меньшей мере два подмножества блоков декодируют параллельно по меньшей мере с одним другим подмножеством блоков, один из идентифицированных подпотоков данных представляет по меньшей мере два подмножества блоков.
Еще в одном другом конкретном варианте, когда кодированные подмножества блоков предназначены для параллельного декодирования в заданном порядке, подпотоки данных, соответствующие кодированным подмножествам блоков, сначала упорядочивают в указанном заданном порядке в составе потока, подлежащего декодированию.
Соответственно, настоящее изобретение относится также к устройству для декодирования потока, представляющего по меньшей мере одно кодированное изображение, содержащему:
- модуль для идентификации в потоке заданного числа подпотоков данных, соответствующих по меньшей мере одному подмножеству блоков, подлежащих декодированию, так что эти блоки могут содержать символы, принадлежащие заданному множеству символов;
- модуль декодирования идентифицированных подмножеств блоков, этот модуль декодирования содержит модуль энтропийного декодирования, способный считывать, по меньшей мере в одном из идентифицированных подпотоков, цифровую информацию, ассоциированную с символами каждого блока из подмножества, соответствующего указанному по меньшей мере одному идентифицированному подпотоку, этот модуль декодирования содержит, для первого блока, подлежащего декодированию в изображении, подмодуль для инициализации переменных состояния для модуля энтропийного декодирования.
Такое устройство для декодирования примечательно тем, что оно содержит модуль для определения вероятностей появления символов для текущего блока, так что этот модуль в случае, когда текущий блок является первым блоком, подлежащим кодированию, из состава рассматриваемого подмножества, принимает в качестве вероятностей появления символов для первого текущего блока вероятности, которые были определены для декодированного заданного блока из состава по меньшей мере одного другого подмножества,
и тем, что если текущий блок представляет собой последний декодированный блок из состава рассматриваемого подмножества, тогда активизируется субмодуль инициализации для повторной инициализации переменных состояния для модуля энтропийного декодирования.
Настоящее изобретение направлено также на создание компьютерной программы, содержащей команды для реализации этапов описанного выше способа кодирования или декодирования, при выполнении этой программы компьютером.
Такая программа может использовать любой язык программирования и может быть в форме исходного кода, объектного кода или кода, занимающего промежуточное положение между исходным кодом и объектным кодом, например, в частично компилированной форме или в какой-либо другой нужной форме.
Еще один предмет настоящего изобретения также направлен на создание читаемого компьютером носителя записи, содержащего команды компьютерной программы, такой как упомянутая выше.
Такой носитель записи может представлять собой какой-либо объект или устройство, способное сохранять указанную программу. Например, подобный носитель может представлять собой запоминающее устройство, такое постоянное запоминающее устройство (ПЗУ (ROM)), например, ПЗУ на основе компакт-диска (CD-ROM) или микроэлектронное ПЗУ (ROM) или также магнитный носитель записи, например, дискета (гибкий диск) или накопитель на жестком магнитном диске.
Более того, такой носитель записи может быть передаваемым носителем, таким как электрический или оптический сигнал, который может быть передан по электрическому или по оптическому кабелю, по радио или каким-либо другим способом. Программу согласно настоящему изобретению можно, в частности, скачать из сети связи типа Интернет.
В качестве альтернативы такой носитель записи может представлять собой интегральную схему, в которую встроена указанная программа, эта схема может быть адаптирована для реализации рассматриваемого способа или может быть использована при его реализации.
Перечисленные выше устройство для кодирования, способ декодирования, устройство для декодирования и компьютерные программы обладают по меньшей мере такими же преимуществами, какие свойственны способу кодирования согласно настоящему изобретению.
Краткое описание чертежей
Другие характеристики и преимущества станут очевидными после прочтения описание двух предпочтительных вариантов, данного со ссылками на прилагаемые чертежи, на которых:
- фиг.1 представляет схему кодирования изображения согласно известным способам;
- фиг.2A представляет основные этапы способа кодирования согласно настоящему изобретению;
- фиг.2B представляет подробно процесс кодирования, реализованный способом кодирования, показанным на фиг.2A;
- фиг.3A представляет первый вариант кодирующего устройства согласно настоящему изобретению;
- фиг.3B представляет модуль кодирования в составе кодирующего устройства, показанного на фиг.3A;
- фиг.3C представляет второй вариант кодирующего устройства согласно настоящему изобретению;
- фиг.4A представляет схему кодирования/декодирования изображения согласно первому предпочтительному варианту;
- фиг.4B представляет схему кодирования/декодирования изображения согласно второму предпочтительному варианту;
- фиг.5A представляет основные этапы способа декодирования согласно настоящему изобретению;
- фиг.5B представляет подробно процесс декодирования, реализованный способом декодирования, показанным на фиг.5A;
- фиг.6A представляет вариант декодирующего устройства согласно настоящему изобретению;
- фиг.6B представляет модуль декодирования в составе декодирующего устройства, показанного на фиг.6A;
- фиг.7A представляет схему кодирования/декодирования изображения, реализующую кодирование последовательного типа и декодирование параллельного типа;
- фиг.7B представляет схему кодирования/декодирования изображения, реализующую кодирование/декодирование параллельного типа при различных уровнях параллелизма.
Подробное описание первого варианта кодирующей части
Теперь будет описан один из вариантов настоящего изобретения, в котором способ кодирования согласно настоящему изобретению используется для кодирования последовательности изображений в соответствии с двоичным потоком, таким же, как поток, получаемый в результате кодирования по стандарту H.264/MPEG-4 AVC. В рассматриваемом варианте способ кодирования согласно настоящему изобретению реализован, например, посредством программного обеспечения или аппаратным способом путем модификации кодирующего устройства, первоначально совместимого со стандартом H.264/MPEG-4 AVC. Способ кодирования согласно настоящего изобретению представлен в форме алгоритма, содержащего этапы с C1 по C5 и показанного на фиг.2A.
Способ кодирования согласно одному из вариантов настоящего изобретения реализован в кодирующем устройстве СО, два варианта которого представлены соответственно на фиг.3A и 3C.
Как показано на фиг.2A, первый этап С1 кодирования представляет собой разбиение изображения IE в последовательности, изображений, подлежащих кодированию, на несколько блоков или макроблоков MB, как это изображено на фиг.4A и 4B. Указанные макроблоки могут содержать один или несколько символов, составляющих часть заданного множества символов. В представленных примерах эти макроблоки MB обладают квадратной формой и все имеют одинаковый размер. В зависимости от размера изображения, который необязательно кратен размеру блоков, последние блоки слева и последние блоки внизу изображения могут не быть квадратными. В альтернативном варианте блоки, например, могут быть прямоугольной формы и/или могут быть не совмещены один с другим.
Каждый блок или макроблок может, далее, сам быть разбит на субблоки, которые в свою очередь могут быть разбиты на части.
Такое разбиение осуществляется посредством модуля РСО разбиения, показанного на фиг.3A и использующего, например, хорошо известный алгоритм разбиения.
Как показано на фиг.2A, второй этап С2 кодирования представляет собой группирование указанных выше блоков в заданное число Р подмножеств SE1, SE2,.., SEk,…,SEP последовательных блоков, которые должны быть кодированы последовательно или параллельно. В примерах, показанных на фиг.4A и 4B, число подмножеств Р=6, но для большей ясности чертежа изображены только четыре подмножества SE1, SE2, SE3 и SE4. Каждое из этих четырех подмножеств блоков показано в заштрихованном виде, а все четыре подмножества образованы первыми четырьмя строками (каждое - своей) блоков изображения IE.
Такое группирование осуществляется посредством вычислительного модуля GRCO разбиения, показанного на фиг.3A, с использованием хорошо известного алгоритма.
Как показано на фиг.2A, третий этап С3 кодирования состоит в кодировании каждого из подмножеств блоков с SE1 по SE6, так что блоки из состава любого рассматриваемого подмножества кодируют в соответствии с заданным порядком PS прохождения через эти блоки, например, для последовательного кодирования. В примерах, представленных на фиг.4A и 4B, блоки текущего подмножества SEk (1≤k≤Р) кодируют один за другим слева направо, как показано стрелкой PS.
Согласно первому варианту такое кодирование относится к последовательному типу кодирования и реализуется в одном кодирующем модуле UC, как представлено на фиг.3A. Согласно известным технологиям кодирующее устройство СО содержит буферную память МТ, адаптированную для хранения вероятностей появления символов, постоянно обновляемых в процессе кодирования текущего блока.
Как показано более подробно на фиг.3B, кодирующий модуль UC содержит:
- модуль для кодирования с прогнозированием применительно к текущему блоку с учетом по меньшей мере одного из ранее кодированных и декодированных блоков, обозначенный МСР;
- модуль для энтропийного кодирования текущего блока с использованием по меньшей мере одной вероятности появления символа, вычисленной для указанного ранее кодированного и декодированного блока, обозначенный МСЕ.
Модуль МСР кодирования с прогнозированием представляет собой программный модуль, способный осуществлять кодирование с прогнозированием применительно к текущему блоку в соответствии с обычными способами прогнозирования, такого как, например, режим внутрикадрового и/или межкадрового прогнозирования.
Указанный модуль МСЕ энтропийного кодирования представляет собой модуль стандарта САВАС, но модифицированный согласно настоящему изобретению, как это будет рассмотрено далее в этом описании.
В качестве варианта, указанное энтропийное кодирующее устройство МСЕ может представлять собой известное кодирующее устройство в коде Хаффмена.
В примерах, представленных на фиг.4A и 4B, модуль UC кодирует блоки первой строки SE1 слева направо. После достижения последнего блока в первой строке SE1 модуль переходит к первому блоку второй строки SE2. После достижения последнего блока во второй строке SE2 модуль переходит к первому блоку третьей строки SE3. После достижения последнего блока в третьей строке SE3 модуль переходит к первому блоку четвертой строки SE4 и т.д. до тех пор, пока не будет закодирован последний блок изображения IE.
Безусловно, возможны и другие варианты просмотра изображения, отличные от того варианта, который был только что описан выше. Таким образом, можно разбить изображение IE на несколько подызображений и затем применить разбиение такого типа к каждому подызображению независимо. Кроме того, кодирующий модуль может обрабатывать не последовательность строк, как было рассмотрено выше, а последовательность столбцов. Можно также просматривать строки или столбцы в любом направлении.
Согласно второму варианту такое кодирование представляет собой кодирование параллельного типа и отличается от первого варианта последовательного кодирования исключительно тем фактом, что он реализован заданным числом R кодирующих модулей UCk (1≤k≤R), при R=2, как в примере, представленном на фиг.3C. Такое параллельное кодирование, как известно, вызывает значительное ускорение способа кодирования.
Каждый из кодирующих модулей UCk идентичен кодирующему модулю UC, представленному на фиг.3B. Соответствующим образом кодирующий модуль UCk содержит модуль МСРк кодирования с прогнозированием и модуль энтропийного кодирования MCEk.
Снова со ссылками на фиг.4A и 4B первый модуль UC1 кодирует, например, блоки строк с нечетными номерами, тогда как второй модуль UC2 кодирует, например, блоки строк с четными номерами. Более точно, первый модуль UC кодирует блоки первой строки SE1 слева направо. После достижения последнего блока в первой строке SE1 этот модуль переходит к первому блоку (2n+1)-й строки, иными словами к третьей строке SE3 и т.д. Параллельно с обработкой, выполняемой первым модулем UC1, второй модуль UC2 кодирует блоки второй строки SE2 слева направо. После достижения последнего блока во второй строке SE2 этот модуль переходит к первому блоку (2n)-й строки, здесь это четвертая строка SE4 и т.д. Указанные выше два просматривающих прохода повторяют до тех пор, пока не будет закодирован последний блок изображения IE.
Как показано на фиг.2A, на четвертом этапе С4 кодирования генерируют L подпотоков F1, F2,…, Fm,…, FL (1≤m≤L≤P) битов, представляющих обработанные блоки, сжатые посредством указанного выше кодирующего модуля UC или каждого из указанных выше кодирующих модулей UCk, равно как и декодированную версию обработанных блоков из состава каждого подмножества SEk. Декодированные обработанные блоки из состава рассматриваемого подмножества, обозначенные SED1, SED2,…, SEDk,…, SEDP, могут быть повторно использованы кодирующим модулем UC, представленным на фиг.3A, или каждым из кодирующих модулей UCk, представленных на фиг.3C, в соответствии с механизмом синхронизации, который будет подробно рассмотрен в настоящем описании дальше.
Как показано на фиг.3B, этап генерации L подпотоков реализуется программным модулем MGSF или MGSFk генерации потоков, адаптированным для генерации потоков данных, таких как потоки битов, например.
Как показано на фиг.2A, пятый этап C5 кодирования состоит в построении глобального потока F на основе упомянутых выше L подпотоков F1, F2,…,Fm,…, FL. Согласно одному из вариантов подпотоки F1, F2,…, Fm,…, FL просто накладывают один на другой, так что необходим дополнительный сегмент информации, предназначенный для индикации местонахождения каждого подпотока Fm в глобальном потоке F для декодера. Этот глобальный поток затем передают по сети связи (не показана) удаленному терминалу. Этот терминал содержит декодер DO, представленный на фиг.5A. Согласно другому варианту, который особенно предпочтителен, поскольку он не требует декодирования и потом повторного кодирования изображения, кодирующее устройство СО, перед передачей потока F декодеру DO, предварительно располагает L подпотоки F1, F2,…, Fm,…, FL в заданном порядке, соответствующем порядку, в котором указанный декодер DO способен декодировать эти подпотоки.
Таким образом, как это будет подробно рассмотрено далее в настоящем описании, декодер согласно настоящему изобретению способен выделить подпотоки F1, F2,…, Fm,…, FL из состава глобального потока F и назначить эти подпотоки одному или нескольким декодирующим модулям, из которых состоит декодер. Следует отметить, что такое разложение глобального потока на подпотоки не зависит от выбора использования одного кодирующего модуля или нескольких кодирующих модулей, работающих параллельно, и что при таком подходе можно иметь только кодирующее устройство или только декодер, содержащий модули, работающие параллельно.
Такая структура глобального потока F реализована в модуле CF построения потоков, таком, как представлен на фиг.3A и на фиг.3C.
Различные специфичные подэтапы настоящего изобретения, такие как реализуемые в ходе указанного выше этапа С3 кодирования в кодирующем модуле UC или UCk, будут теперь описаны со ссылками на фиг.2B.
В процессе выполнения этапа С31 кодирующий модуль UC или UCk выбирает в качестве текущего блока первый блок, подлежащий кодированию, в текущей строке SEk, представленной на фиг.4A или 4B, такой как, например, первая строка SE1.
В процессе выполнения этапа С32 модуль UC или UCk проверяет, является ли текущий блок первым блоком (расположенным сверху и слева) изображения IE, которое было разбито на блоки в ходе указанного выше этапа С1.
Если текущий блок - первый, тогда на этапе С33 модуль МСЕ или МСЕk энтропийного кодирования осуществляет инициализацию своих переменных состояния. Согласно представленному примеру, использующему арифметическое кодирование, описанное ранее, этот этап содержит инициализацию интервала, представляющего вероятность появления одного из символов из совокупности, составляющей заданное множество символов. Известным способом этот интервал инициализируют с двумя границами L и Н, соответственно нижней и верхней. Значение нижней границы L фиксируют на 0, а значение верхней границы фиксируют на 1, что соответствует вероятности появления первого символа из совокупности всех символов, составляющих заданное множество символов. Размер R этого интервала определен, поэтому, здесь формулой R=Н - L=1. Инициализированный интервал обычно разбивают дополнительно на несколько заданных подинтервалов, представляющих соответственно вероятности появления символов из совокупности символов, составляющей заданное множество символов.
В качестве варианта, если используемый способ энтропийного кодирования представляет собой способ кодирования LZW, инициализируется кодовая таблица строк символов, так что эта таблица содержит все возможные символы по одному и только по одному разу.
Если после указанного выше этапа С32 оказалось, что текущий блок не является первым блоком изображения IE, определяют на этапе С40, который будет рассмотрен в настоящем описании позднее, наличие необходимых ранее кодированных и декодированных блоков.
В процессе выполнения этапа С34 кодируют первый текущий блок МВ1 первой строки SE1, представленной на фиг.4A или 4B. Такой этап С34 содержит несколько подэтапов с С341 по С348, которые будут описаны ниже.
В ходе выполнения первого подэтапа С341, представленного на фиг.2B, осуществляют кодирование с прогнозированием применительно к текущему блоку МВ1 посредством известного способа внутрикадрового и/или межкадрового прогнозирования, согласно которому блок МВ1 прогнозируют относительно по меньшей мере одного ранее кодированного и декодированного блока.
Само собой разумеется, что возможны также другие режимы внутрикадрового прогнозирования, такие как режимы, предлагаемые в стандарте Н.264.
Текущий блок МВ1 может быть также подвергнут кодированию с прогнозированием в режиме, в ходе которого блок МВ1 прогнозируют относительно блока, полученного на основе ранее кодированного и декодированного изображения. Безусловно, можно представить и другие типы прогнозирования. Из совокупности возможных способов прогнозирования для текущего блока оптимальный способ прогнозирования выбирают согласно критерию искажения скорости передачи данных, хорошо известному специалистам в рассматриваемой области.
Упомянутый выше этап кодирования с прогнозированием делает возможным построение прогнозированного блока MBp1, представляющего собой аппроксимацию текущего блока МВ1. Информация, относящаяся к кодированию с прогнозированием, будет в последующем записана в потоке F, передаваемом декодеру DO. Такая информация содержит в частности указание типа прогнозирования (межкадровое или внутрикадровое) и, если это подходит, режима внутрикадрового прогнозирования, типа разбиения блока или макроблока, если последний был разбит, индекса опорного изображения и вектора смещения, используемого в режиме межкадрового прогнозирования. Кодирующее устройство СО сжимает эту информацию.
В процессе выполнения следующего подэтапа С342 вычитают прогнозируемый блок MBp1 из текущего блока MB1 для получения остаточного блока MBr1.
В процессе выполнения следующего подэтапа С343 осуществляют преобразование прогнозируемого блока MBp1 согласно обычной процедуре прямого преобразования, такой как, например, дискретное косинусное преобразование типа DCT, для получения преобразованного блока MBt1.
В процессе выполнения следующего подэтапа С344 выполняют квантование преобразованного блока MBt1 согласно обычной процедуре квантования, такой как, например, скалярное квантование. В результате получен блок MBq1 квантованных коэффициентов.
В процессе выполнения следующего подэтапа С345 осуществляют энтропийное кодирование блока квантованных коэффициентов MBq1. В предпочтительно варианте здесь выполняется энтропийное кодирование по стандарту САВАС. Такой этап содержит:
(a) считывание символа или символов из состава заданного множества символов, ассоциированных с текущим блоком;
(b) ассоциирование цифровой информации, такой как биты, с прочитанным(и) символом(ами).
В указанном выше варианте, в котором в качестве алгоритма кодирования использован алгоритм кодирования LZW, с символом, подлежащим кодированию, ассоциируют цифровой сегмент информации, соответствующий коду рассматриваемого символа в текущей кодовой таблице и затем обновляют эту кодовую таблицу согласно известной процедуре.
В процессе выполнения следующего подэтапа С346 выполняют деквантование блока MBq1 согласно обычной процедуре деквантования, представляет собой операцию обратную, процедуре квантования, выполненной на этапе С344. В результате получен блок MBDq1 деквантованных коэффициентов.
В процессе выполнения следующего подэтапа С347 выполняют обратное преобразование блока MBDq1 деквантованных коэффициентов, представляющее собой операцию обратную процедуре прямого преобразования, выполненной на этапе С343 выше. В результате получен декодированный остаточный блок MBDr1.
В процессе выполнения следующего подэтапа С348 формируют декодированный блок MBD1 путем суммирования прогнозируемого блока MBp1 с декодированным остаточным блоком MBDr1. Следует отметить, что последний блок является таким же, как декодированный блок, полученный после завершения выполнения способа декодирования изображения IE, который был рассмотрен выше в настоящем описании. Декодированный блок MBD1 делают, таким образом, доступным для использования кодирующим модулем UCk или каким-либо другим кодирующим модулем, составляющим часть заданного числа R кодирующих модулей.
По завершении упомянутого выше этапа С34 кодирования модуль МСЕ или МСЕk энтропийного кодирования, такой как показан на фиг.3B, содержит все вероятности, такие, как вероятности, постоянно обновляемые совместно в процессе кодирования первого блока. Эти вероятности соответствуют разнообразным элементам возможных синтаксисов и различным ассоциированным контекстам кодирования.
После выполнения указанного выше этапа С34 кодирования проверяют в ходе этапа С35, является ли текущий блок j-м блоком той же самой строки, где j - представляет собой заданную величину, известную кодирующему устройству СО и равную по меньшей мере 1.
Если это так, то в ходе выполнения этапа С36, представленного на фиг.2B, множество вероятностей, вычисленных для j-блока, сохраняют в буферной памяти МТ в составе кодирующего устройства СО, такого как показано на фиг.3A или 3B и на фиг.4A или 4B, и размер указанной памяти адаптирован для сохранения вычисленного числа вероятностей.
В процессе выполнения этапа С37, представленного на фиг.2B, кодирующий модуль UC или UCk проверяет, является ли текущий блок строки SEk, который был только что закодирован, последним блоком изображения IE. Такой этап выполняется также, если в процессе осуществления этапа С35 оказалось, что текущий блок не является j-м блоком строки SE1.
Если оказалось, что текущий блок представляет собой последний блок изображения IE, на этапе С38 выполнение способа кодирования завершается.
Если текущий блок - не последний, на этапе С39 выбирают следующий блок MBi, подлежащий кодированию, в соответствии с порядком просмотра изображения, обозначенным стрелкой PS на фиг.4A или 4B.
В процессе выполнения этапа С40, представленного на фиг.2B, определяют доступность предварительно кодированных и декодированных блоков, необходимых для кодирования текущего блока MBi.
Если происходит обработка первой строки SE1, этот этап состоит в проверке доступности по меньшей мере одного блока, расположенного слева от текущего блока MBi, подлежащего кодированию. Однако с учетом порядка PS просмотра изображения, выбранного в варианте, представленном на фиг.4A и 4B, блоки в рассматриваемой строке SEk кодируют один за другим. Следовательно, всегда (за исключением обработки первого блока строки) имеется и доступен расположенный слева кодированный и декодированный блок. В примере, представленном на фиг.4A или 4B, это блок, расположенный непосредственно слева рядом с текущим блоком, подлежащим кодированию.
Если рассматривается строка SEk, отличная от первой строки, указанный этап проверки дополнительно содержит проверку, имеется ли заданное число N' блоков, расположенных в предыдущей строке SEk-1, например, два блока, находящихся соответственно сверху и сверху справа от текущего блока, и доступных для кодирования текущего блока, иными словами, если они уже были кодированы и затем декодированы посредством кодирующего модуля UC или UCk-1.
Поскольку этот этап проверки замедляет работу способа кодирования, в альтернативном варианте настоящего изобретения, в котором кодирование строк осуществляется по параллельному типу, тактовый сигнал CLK, показанный на фиг.3C, приспособлен для опережающей синхронизации кодирования блоков таким образом, чтобы гарантировать доступность двух блоков, расположенных соответственно сверху и сверху справа от текущего блока, не требуя обязательной проверки доступности этих двух блоков. Таким образом, кодирующий модуль UCk всегда начинает кодировать первый блок со сдвигом на заданное число N' (при, например, N'=2) кодированных и декодированных блоков предыдущей строки SEk-1, используемых для кодирования текущего блока. С программной точки зрения реализация такого тактового сигнала делает возможным значительно ускорить и сократить затраты времени на обработку блоков изображения IE в кодирующем устройстве СО.
В процессе выполнения этапа С41, представленного на фиг.2B, проверяют, является ли текущий блок первым блоком рассматриваемой строки SEk.
Если текущий блок - первый, в процессе выполнения этапа С42 считывают из буферной памяти МТ исключительно вероятности появления символов, вычисленные во время кодирования j-го блока предыдущей строки SEk-1.
Согласно первому варианту, представленному на фиг.4A, j-й блок является первым блоком предыдущей строки SEk-1 (j=1). Такое считывание состоит в замене вероятностей в кодирующем устройстве по стандарту САВАС вероятностями, записанными в буферной памяти МТ. Процесс чтения, захватывающий соответствующие первые блоки второй, третьей и четвертой строк SE2, SE3 и SE4, показан на фиг.4A тонкими стрелками.
Согласно второму варианту, упомянутого выше этапа С43, представленного на фиг.4B, j-й блок является вторым блоком предыдущей строки SEk-1 (j=2). Такое считывание состоит в замене вероятностей в кодирующем устройстве по стандарту САВАС вероятностями, записанными в буферной памяти МТ. Процесс чтения, захватывающий соответствующие первые блоки второй, третьей и четвертой строк SE2, SE3 и SE4, показан на фиг.4B тонкими штриховыми стрелками.
После этапа С42 текущий блок кодируют и затем декодируют путем повторения этапов с С34 по С38, описанных выше.
Если после указанного выше этапа С41 оказалось, что текущий блок не является первым блоком рассматриваемой строки SEk, предпочтительно не считывать вероятности для ранее кодированного и декодированного блока, расположенного в той же самой строке SEk, иными словами кодированного и декодированного блока, расположенного (в представленном примере) непосредственно рядом слева от текущего блока. Действительно, при последовательном порядке PS просмотра блоков изображения для считывания блоков, расположенных в той же самой строке, как показано на фиг.4A или 4B, вероятности появления символов, присутствующие в кодирующем устройстве, использующем алгоритм САВАС, в момент начала кодирования текущего блока являются точно теми, какие присутствуют после декодирования/декодирования предыдущего блока в той же самой строке.
Затем, в процессе выполнения этапа С43, представленного на фиг.2B, производят обучение вероятностям появления символов для энтропийного кодирования текущего блока, так что эти вероятности соответствуют исключительно тем, которые были вычислены для указанного предыдущего блока в той же самой строке, как показано двойными сплошными стрелками на фиг.4A или 4B.
После этапа С43 текущий блок кодируют и затем декодируют путем повторения этапов с С34 по С38, описанных выше.
После этого, в процессе выполнения этапа С44 проверяют, является ли текущий блок последним блоком рассматриваемой строки SEk.
Если текущий блок - не последний в этой строке, после этапа С44 снова выполняют этап С39 выбора следующего блока MBi, подлежащего кодированию.
Если текущий блок является последним блоком в рассматриваемой строке SEk, в процессе выполнения этапа С45 кодирующее устройство СО, представленное на фиг.3A или 3C, осуществляет опустошение, как рассмотрено выше в настоящем описании. С этой целью кодирующий модуль UCk передает соответствующему модулю MGSFk генерации подпотока полностью все биты, которые были ассоциированы с символом(ами), считываемым(и) в процессе кодирования каждого блока рассматриваемой строки SEk, таким образом, что этот модуль MGSFk записывает в подпоток Fm данных, содержащий двоичную последовательность, представляющую кодированные блоки рассматриваемой строки SEk, все эти биты полностью. Такое опустошение символически обозначено на фиг.4A и 4B треугольником в конце каждой строки SEk.
В процессе выполнения этапа С46 представленного на фиг.2B, кодирующий модуль UC или UCk выполняет процедуру, идентичную указанному выше этапу С33, иными словами снова инициализирует интервальное представление вероятности появления символа, входящего в состав заданного множества символов. Такая повторная инициализация обозначена на фиг.4A и 4B черной точкой в начале каждой строки SEk.
Преимущество выполнения этапов С45 и С46 на этом уровне кодирования состоит в том, что в процессе кодирования следующего блока, обрабатываемого кодирующим модулем UC или кодирующим модулем UCk, кодирующее устройство СО находится в инициализированном состоянии. Таким образом, как это будет рассмотрено далее в настоящем описании, для декодирующего модуля становится возможным работать параллельно, чтобы непосредственно декодировать сжатый поток F от этой точки, поскольку модулю достаточно для этого быть в инициализированном состоянии.
Подробное описание одного из вариантов декодирующей части
Теперь будет описан один из вариантов способа декодирования согласно настоящему изобретению, в котором этот способ декодирования реализован посредством программного обеспечения или аппаратным способом путем модификации декодера, первоначально совместимого со стандартом H.264/MPEG-4 AVC.
Способ декодирования согласно настоящего изобретению представлен в форме алгоритма, содержащего этапы с D1 по D4 и показанного на фиг.5A.
Способ декодирования согласно рассматриваемому варианту настоящего изобретению реализован в декодирующем устройстве DO, представленном на фиг.6A.
Как показано на фиг.5A, первый этап D1 декодирования представляет собой идентификацию в потоке F совокупности из L подпотоков F1, F2,…, Fm,…, FL, содержащих соответственно Р подмножеств SE1, SE2,…,SEk,…, SEP предварительно кодированных блоков или макроблоков MB, как это изображено на фиг.4A и 4B. С этой целью каждый подпоток Fm в составе потока F ассоциируют с индикатором, позволяющим декодеру DO определить местонахождение каждого подпотока Fm в потоке F. В качестве варианта, по завершении указанного выше этапа С3 кодирования, кодирующее устройство СО упорядочивает подпотоки F1, F2,…, Fm,…, FL в потоке F в соответствии с порядком, ожидаемым декодером DO, что позволяет избежать вставки индикаторов подпотоков в поток F. Такое предложение делает возможным уменьшение затрат с точки зрения скорости передачи данных в потоке F данных.
В примере, представленном на фиг.4A или 4B, указанные блоки MB обладают квадратной формой и все имеют одинаковый размер. В зависимости от размера изображения, который необязательно кратен размеру блоков, последние блоки слева и последние блоки внизу изображения могут не быть квадратными. В альтернативном варианте блоки, например, могут быть прямоугольной формы и/или могут быть не совмещены один с другим.
Каждый блок или макроблок может далее сам быть разбит на субблоки, которые сами могут быть разбиты на части.
Такая идентификация осуществляется посредством модуля EXDO выделения потоков, такого, как представлен на фиг.6A.
В примере, показанном на фиг.4A или 4B, заданное число Р равно 6, но для большей ясности чертежа изображены только четыре подмножества SE1, SE2, SE3 и SE4.
Как показано на фиг.5A, второй этап D2 декодирования состоит в декодировании каждого из подмножеств блоков SE1, SE2, SE3 и SE4, так что блоки из состава любого рассматриваемого подмножества декодируют в соответствии с заданным последовательным порядком PS прохождения через эти блоки. В примере, представленном на фиг.4A или 4B, блоки текущего подмножества SEk (1≤k≤Р) декодируют один за другим слева направо, как показано стрелкой PS. По завершении этапа D2 получают декодированные подмножества блоков SED1, SED2, SED3,…, SEDk,…,SEDP.
Такое декодирование может быть последовательного типа и, следовательно, может быть произведено посредством единственного декодирующего модуля.
Однако для создания возможности использовать преимущества архитектуры декодирования, содержащей несколько платформ, декодирование подмножеств блоков представляет собой декодирование параллельного типа и реализуется посредством нескольких R декодирующих модулей UDk (1≤k≤R), например, при R=4, как это представлено на фиг.6A. Это предложение, таким образом, позволяет значительно ускорить выполнение способа декодирования. Согласно известным технологиям декодирующее устройство DO содержит буферную память МТ, адаптированную для хранения вероятностей появления символов, постоянно обновляемых совместно в процессе декодирования текущего блока.
Как показано более подробно на фиг.6B, каждый из декодирующих модулей UDk содержит:
- модуль для энтропийного декодирования текущего блока посредством обучения по меньшей мере одной вероятности появления символа, вычисленной по меньшей мере для одного ранее декодированного блока, обозначенный MDEk;
- модуль для декодирования с прогнозированием применительно к текущему блоку с учетом указанного ранее декодированного блока, обозначенный MDPk.
Модуль SUDPk кодирования с прогнозированием способен осуществлять декодирование с прогнозированием применительно к текущему блоку в соответствии с обычными способами прогнозирования, такого как, например, режим внутрикадрового и/или межкадрового прогнозирования.
Указанный модуль MDEk энтропийного декодирования представляет собой модуль стандарта САВАС, но модифицированный согласно настоящему изобретению, как это будет рассмотрено далее в этом описании.
В качестве варианта, указанный модуль MDEk энтропийного декодирования может представлять собой известное декодирующее устройство для кода Хаффмена.
В примере, представленном на фиг.4A или 4B, первый модуль UD1 декодирует блоки первой строки SE1 слева направо. После достижения последнего блока в первой строке SE1 этот модуль переходит к первому блоку (n+1)-й строки, здесь это 5-я строка, и т.д. Второй модуль UD2 декодирует блоки второй строки SE2 слева направо. После достижения последнего блока во второй строке SE2 этот модуль переходит к первому блоку (n+2)-й строки, здесь это 6-я строка, и т.д. Такой просмотр повторяется вплоть до модуля UD4, который декодирует блоки четвертой строки SE2 слева направо. После достижения последнего блока в первой строке модуль переходит к первому блоку (n+4)-й строки, здесь это 8-я строка, и т.д. и т.п. пока не будет декодирован последний блок последнего идентифицированного потока.
Безусловно, возможны и другие варианты просмотра изображения, отличные от того варианта, который был только что описан выше. Например, каждый декодирующий модуль может обрабатывать не вложенные строки, как было рассмотрено выше, а вложенные столбцы. Можно также просматривать строки или столбцы в любом направлении.
Как показано на фиг.5A, третий этап D3 кодирования состоит в реконструкции декодированного изображения ID на основе каждого декодированного подмножества SED1, SED2,…, SEDk,…, SEDP, полученного на этапе D2 декодирования. Более точно, декодированные блоки каждого декодированного подмножества SED1, SED2,…, SEDk,…, SEDP передают в модуль URI реконструкции изображения, как представлено на фиг.6A. В процессе выполнения этапа D3 модуль URI записывает декодированные блоки в состав декодированного изображения по мере того, как эти блоки становятся доступными.
В процессе выполнения четвертого этапа D4 декодирования, представленного на фиг.5A, модуль URI показанный на фиг.6A, передает на выход полностью декодированное изображение ID.
Различные специфичные подэтапы настоящего изобретения, такие как реализуемые в ходе указанного выше этапа D2 параллельного декодирования в декодирующем модуле UDk, будут теперь описаны со ссылками на фиг.5B.
В процессе выполнения этапа D21 декодирующий модуль UDk выбирает в качестве текущего блока первый блок, подлежащий декодированию, в текущей строке SEk, представленной на фиг.4A или 4B.
В процессе выполнения этапа D22 декодирующий модуль UDk проверяет, является ли текущий блок первым блоком декодированного изображения, в этом примере первым блоком подпотока F1.
Если это так, в процессе выполнения этапа D23 модуль MDE или MDEk энтропийного декодирования осуществляет инициализацию своих переменных состояния. Согласно представленному примеру, этот этап содержит инициализацию интервала, представляющего вероятность появления одного из символов из совокупности, составляющей заданное множество символов.
В качестве варианта, если используемый способ энтропийного декодирования представляет собой способ декодирования LZW, инициализируется кодовая таблица строк символов, так что эта таблица содержит все возможные символы по одному и только по одному разу. Этап D23 идентичен указанному выше этапу С33 кодирования и потому далее описан не будет.
Если после указанного выше этапа D22 оказалось, что текущий блок не является первым блоком декодированного изображения ID, определяют на этапе D30, который будет рассмотрен в настоящем описании позднее, наличие и доступность необходимых ранее декодированных блоков.
В процессе выполнения этапа D24 декодируют первый текущий блок МВ1 первой строки SE1, представленной на фиг.4A или 4B. Такой этап D24 содержит несколько подэтапов с D241 по D246, которые будут описаны ниже.
В процессе выполнения первого подэтапа D241 осуществляют энтропийное декодирование синтаксических элементов, относящихся к текущему блоку. Такой этап содержит главным образом:
(a) считывание битов из подпотока,
(b) ассоциированного с первой строкой SE1;
(c) реконструкцию символов на основе прочитанных битов.
В указанном выше варианте, в котором в качестве алгоритма декодирования использован алгоритм декодирования LZW, считывают цифровой сегмент информации, соответствующий коду символа, подлежащего кодированию, из текущей кодовой таблицы, реконструируют символ на основе прочитанного кода и затем обновляют эту кодовую таблицу согласно известной процедуре.
Более точно, синтаксические элементы, связанные с текущим блоком, декодируют посредством использующего алгоритм САВАС модуля MDE1 энтропийного декодирования, такого, как представлено на фиг.6 В. Последний декодирует подпоток F1 битов из состава сжатого файла для получения синтаксических элементов и в то же самое время заново обновляет вероятности таким способом, чтобы в момент, когда модуль декодирует какой-либо символ, вероятности появления этого символа были идентичны вероятностям, получаемым в процессе кодирования этого же самого символа на указанном выше этапе С345 энтропийного кодирования.
В ходе выполнения подэтапа D242 осуществляют декодирование с прогнозированием применительно к текущему блоку МВ1 посредством известного способа внутрикадрового и/или межкадрового прогнозирования, согласно которому блок МВ1 прогнозируют относительно по меньшей мере одного ранее декодированного блока.
Само собой разумеется, что возможны также другие режимы внутрикадрового прогнозирования, такие как режимы, предлагаемые в стандарте Н.264.
В процессе выполнения этого этапа декодирование с прогнозированием осуществляется с помощью синтаксических элементов, декодированных на предыдущем этапе и содержащих, в частности, указание типа прогнозирования (межкадровое или внутрикадровое) и, если это подходит, режима внутрикадрового прогнозирования, типа разбиения блока или макроблока, если последний был разбит, индекса опорного изображения и вектора смещения, используемого в режиме межкадрового прогнозирования.
Упомянутый выше этап декодирования с прогнозированием делает возможным построение прогнозированного блока МВр1.
В процессе выполнения следующего подэтапа D243 формируют квантованный остаточный блок MBq1 с помощью ранее декодированных синтаксических элементов.
В процессе выполнения следующего подэтапа D244 осуществляют деквантование квантованного остаточного блока MBq1 согласно обычной процедуре деквантования, представляющей собой операцию обратную, процедуре квантования, выполненной на этапе С344, для получения декодированного деквантованного блока MBDt1.
В процессе выполнения следующего подэтапа D245 осуществляют обратное преобразование деквантованного блока MBDt1, представляющее собой операцию обратную процедуре прямого преобразования, выполненной на этапе С343 выше. В результате получают декодированный остаточный блок MBDr1.
В процессе выполнения следующего подэтапа D246 формируют декодированный блок MBD1 путем суммирования прогнозируемого блока MBp1 с декодированным остаточным блоком MBDr1. Декодированный блок MBD1 делают, таким образом, доступным для использования декодирующим модулем UD1 или каким-либо другим декодирующим модулем, составляющим часть заданного числа N декодирующих модулей.
По завершении упомянутого выше этапа D246 декодирования модуль MDE1 энтропийного декодирования, такой как показан на фиг.6B, содержит все вероятности, такие как постоянно обновляемые совместно в процессе декодирования первого блока. Эти вероятности соответствуют разнообразным элементам возможных синтаксисов и различным ассоциированным контекстам декодирования.
После выполнения указанного выше этапа D24 декодирования проверяют в ходе этапа D25, является ли текущий блок j-м блоком той же самой строки, где j представляет собой заданную величину, известную декодеру DO и равную по меньшей мере 1.
Если это так, то в ходе выполнения этапа D26, множество вероятностей, вычисленных для j-блока, сохраняют в буферной памяти МТ в составе декодера DO, такого как показано на фиг.6A и на фиг.4A или 4B, при этом размер указанной памяти адаптирован для сохранения вычисленного числа вероятностей.
В процессе выполнения этапа D27 декодирующий модуль UDk проверяет, является ли текущий блок, только что декодированный, последним блоком последнего подпотока.
Если это так, то в ходе этапа D28 выполнение способа декодирования завершается.
Если текущий блок - не последний, на этапе D29 выбирают следующий блок MB,-, подлежащий декодированию, в соответствии с порядком просмотра изображения, обозначенным стрелкой PS на фиг.4A или 4B.
Если в ходе указанного выше этапа D25 оказалось, что текущий блок не является j-м блоком рассматриваемой строки SEDk, выполняют рассмотренный выше этап D27.
В процессе выполнения этапа D30, следующего за рассмотренным выше этапом D29, определяют доступность предварительно декодированных блоков, необходимых для декодирования текущего блока MBi. Если учесть тот факт, что эта процедура использует параллельное декодирование блоков разными декодирующими модулями UDk, может случиться, что эти блоки еще не были декодированы посредством декодирующего модуля, назначенного для декодирования этих блоков, и поэтому эти блоки пока еще недоступны. Указанный этап проверки состоит в проверке, имеется ли заданное число N' блоков, расположенных в предыдущей строке SEk-1, например, два блока, находящихся соответственно сверху и сверху справа от текущего блока, и доступных для декодирования текущего блока, иными словами, если они уже были декодированы посредством декодирующего модуля UDk-1, назначенного для их декодирования. Этот этап проверки состоит также в проверке доступности по меньшей мере одного блока, расположенного слева от текущего блока MBi, подлежащего декодированию. Однако с учетом порядка PS просмотра изображения, выбранного в варианте, представленном на фиг.4A или 4B, блоки в рассматриваемой строке SEk декодируют один за другим. Следовательно, всегда (за исключением обработки первого блока строки) имеется и доступен расположенный слева декодированный блок. В примере, представленном на фиг.4A или 4B, это блок, расположенный слева непосредственно рядом с текущим блоком, подлежащим декодированию. С этой целью проверяют доступность только этих двух блоков, расположенных соответственно сверху и сверху справа от текущего блока.
Поскольку этот этап проверки замедляет работу способа декодирования, в альтернативном варианте настоящего изобретения тактовый сигнал CLK, показанный на фиг.6A, приспособлен для опережающей синхронизации декодирования блоков таким образом, чтобы гарантировать доступность двух блоков, расположенных соответственно сверху и сверху справа от текущего блока, не требуя обязательной проверки доступности этих двух блоков. Таким образом, как показано на фиг.4A или 4B, декодирующий модуль UDk всегда начинает декодировать первый блок со сдвигом на заданное число N' (здесь, N'=2) декодированных блоков предыдущей строки SEk-1, используемых для декодирования текущего блока. С программной точки зрения реализация такого тактового сигнала делает возможным значительно ускорить и сократить затраты времени на обработку блоков каждого подмножества SEk в декодере DO.
В процессе выполнения этапа D31 проверяют, является ли текущий блок первым блоком рассматриваемой строки SEk.
Если текущий блок - первый, в процессе выполнения этапа D32 считывают из буферной памяти МТ исключительно вероятности появления символов, вычисленные во время декодирования j-ro блока предыдущей строки SEk-1.
Согласно первому варианту, представленному на фиг.4A, j-й блок является первым блоком предыдущей строки SEk-1 (j=1). Такое считывание состоит в замене вероятностей в декодере по стандарту САВАС вероятностями, записанными в буферной памяти МТ. Процесс чтения, захватывающий соответствующие первые блоки второй, третьей и четвертой строк SE2, SE3 и SE4, показан на фиг.4A тонкими стрелками.
Согласно второму варианту упомянутого выше этапа D32, представленного на фиг.4B, j-й блок является вторым блоком предыдущей строки SEk-1 (j=2). Такое считывание состоит в замене вероятностей в декодере по стандарту САВАС вероятностями, записанными в буферной памяти МТ. Процесс чтения, захватывающий соответствующие первые блоки второй, третьей и четвертой строк SE2, SE3 и SE4, показан на фиг.4B тонкими штриховыми стрелками.
После выполнения этапа D32 текущий блок декодируют путем повторения этапов с D24 по D28, описанных выше.
Если после указанного выше этапа D31 оказалось, что текущий блок не является первым блоком рассматриваемой строки SEk, предпочтительно не считывать вероятности для ранее декодированного блока, расположенного в той же самой строке SEk, иными словами декодированного блока, расположенного (в представленном примере) слева непосредственно рядом от текущего блока. Действительно, при последовательном порядке PS просмотра для считывания блоков, расположенных в той же самой строке, как показано на фиг.4A или 4B, вероятности появления символов, присутствующие в декодере, использующем алгоритм САВАС, в момент начала декодирования текущего блока являются точно теми же, какие присутствуют после декодирования предыдущего блока в той же самой строке.
Затем, в процессе выполнения этапа D33 производят обучение вероятностям появления символов для энтропийного декодирования текущего блока, так что эти вероятности соответствуют исключительно тем, которые были вычислены для указанного предыдущего блока в той же самой строке, как показано двойными сплошными стрелками на фиг.4A или 4B.
После этапа D33 текущий блок декодируют путем повторения этапов с D24 по D28, описанных выше.
В процессе выполнения этапа D34 проверяют, является ли текущий блок последним блоком рассматриваемой строки SEk.
Если текущий блок - не последний в этой строке, после этапа D34 снова выполняют этап D29 выбора следующего блока MBi, подлежащего декодированию.
Если текущий блок является последним блоком рассматриваемой строки SEk, в процессе выполнения этапа D35 декодирующий модуль UDk выполняет процедуру, идентичную указанному выше этапу D23, иными словами снова инициализирует интервальное представление вероятности появления символа, входящего в состав заданного множества символов. Такая повторная инициализация обозначена на фиг.4A и 4B черной точкой в начале каждой строки SEk.
Таким образом, в начале каждой строки декодер DO находится в инициализированном состоянии, что обеспечивает более высокую степень гибкости с точки зрения выбора уровня параллелизма при декодировании и оптимизации затрат времени на обработку данных при декодировании.
В примере схемы кодирования/декодирования, представленном на фиг.7A, кодирующее устройство СО содержит единственный кодирующий модуль UC, как показано на фиг.3A, тогда как декодер DO содержит шесть декодирующих модулей.
Кодирующий модуль UC последовательно кодирует строки SE1, SE2, SE3, SE4, SE5 и SE6. В представленном примере строки с SE1 по SE4 закодированы полностью, строка SE5 находится в стадии кодирования, а строка SE6 еще не была кодирована. С учетом последовательного характера кодирования кодирующий модуль UC приспособлен для передачи потока F, содержащего подпотоки F1, F2, F3, F4, упорядоченные один за другим в том же порядке, в котором происходило кодирование строк SE1, SE2, SE3 и SE4. С этой целью подпотоки F1, F2, F3 и F4 символически обозначены с такой же штриховкой, как и соответствующие кодированные строки SE1, SE2, SE3 и SE4. Благодаря выполнению этапов опустошения в конце кодирования каждой кодированной строки и повторной инициализации интервала вероятностей в начале кодирования или декодирования следующей строки, подлежащей кодированию/декодированию, декодер DO каждый раз, когда он считывает подпоток, чтобы декодировать его, находится в инициализированном состоянии и может, поэтому, оптимальным образом декодировать параллельно четыре подпотока F1, F2, F3, F4 с использованием декодирующих модулей UD1, UD2, UD3 и UD4, которые могут быть, например, установлены на четырех разных платформах.
В примере схемы кодирования/декодирования, представленном на фиг.7B, кодирующее устройство СО содержит два кодирующих модуля UC1 и UC2, как показано на фиг.3C, тогда как декодер DO содержит шесть декодирующих модулей.
Кодирующий модуль UC1 последовательно кодирует строки с нечетными номерами SE1, SE3 и SE5, тогда как кодирующий модуль UC2 последовательно кодирует строки с четными номерами SE2, SE4 и SE6. Для этого строки SE1, SE3 и SE5 имеют белый фон, а строки SE2, SE4 и SE6 имеют фон, заполненный точками. В представленном примере строки с SE1 по SE4 закодированы полностью, строка SE5 находится в стадии кодирования, а строка SE6 еще не была кодирована. Учитывая тот факт, что выполняемое кодирование является кодированием параллельного типа уровня 2, кодирующий модуль UC1 адаптирован для передачи подпотока F2n+1, разложенного на две части F1 и F3, полученные после кодирования соответственно строк SE1 и SE3, тогда как кодирующий модуль UC2 адаптирован для передачи подпотока F2n, разложенного на две части F2 и F4, полученные после кодирования соответственно строк SE2 и SE4. Кодирующее устройство СО поэтому предназначено для передачи декодеру DO потока F, содержащего результат наложения двух подпотоков F2n+1 и F2n, вследствие чего порядок следования подпотоков F1, F3, F2, F4 отличается от того, что показано на фиг.7A. С этой целью подпотоки F1, F2, F3 и F4 символически обозначены с такой же штриховкой, как и соответствующие кодированные строки SE1, SE2, SE3 и SE4, подпотоки F1 и F3 имеют белый фон (кодирование строк с нечетными номерами), а подпотоки F2 и F4 имеют точечный фон (кодирование строк с четными номерами).
Что касается преимуществ, отмеченных в связи с фиг.7A, такая схема кодирования/декодирования дополнительно предоставляет преимущества способности использовать декодер, уровень параллелизма при декодировании в котором полностью независим от уровня параллелизма при кодировании, что делает возможным в еще большей степени оптимизировать работу кодирующего устройства/декодера.

Claims (20)

1. Устройство декодирования, содержащее:
средство для приема битового потока, представляющего по меньшей мере одно кодированное изображение;
средство для идентификации из битового потока предопределенного множества подмножеств блоков упомянутого по меньшей мере одного кодированного изображения, каждый из упомянутого множества подмножеств включает в себя по меньшей мере ряд последовательных блоков;
средство для энтропийного декодирования первого ряда последовательных блоков в первом подмножестве блоков и для энтропийного декодирования второго ряда последовательных блоков во втором подмножестве блоков;
при этом упомянутое предопределенное множество подмножеств блоков размещены в битовом потоке в таком порядке, при котором
первое подмножество включает в себя первый ряд последовательных блоков;
второе подмножество включает в себя второй ряд последовательных блоков;
причем второй ряд последовательных блоков не расположен сразу после первого ряда последовательных блоков в битовом потоке, представляющем по меньшей мере одно кодированное изображение; и
при этом блоки упомянутого множества подмножеств блоков размещаются в декодируемом изображении в таком порядке, при котором второй ряд последовательных блоков располагается сразу после первого ряда последовательных блоков в порядке растра изображения после его декодирования из кодированного изображения.
2. Способ декодирования изображений, содержащий:
прием битового потока, представляющего по меньшей мере одно кодированное изображение;
идентификацию из битового потока предопределенного множества подмножеств блоков упомянутого по меньшей мере одного кодированного изображения, каждый из упомянутого множества подмножеств включает в себя по меньшей мере ряд последовательных блоков;
энтропийное декодирование первого ряда последовательных блоков в первом подмножестве блоков; и
энтропийное декодирование второго ряда последовательных блоков во втором подмножестве блоков;
при этом упомянутое предопределенное множество подмножеств блоков размещены в битовом потоке в таком порядке, при котором
первое подмножество включает в себя первый ряд последовательных блоков;
второе подмножество включает в себя второй ряд последовательных блоков;
причем второй ряд последовательных блоков не расположен сразу после первого ряда последовательных блоков в битовом потоке, представляющем по меньшей мере одно кодированное изображение; и
при этом упомянутое предопределенное множество подмножеств блоков размещаются в декодируемом изображении в таком порядке, при котором
второй ряд последовательных блоков располагается сразу после первого ряда последовательных блоков в порядке растра изображения после его декодирования из кодированного изображения.
RU2014102226A 2011-06-24 2012-06-20 Способ кодирования и декодирования изображений, устройство для кодирования и декодирования и соответствующие компьютерные программы RU2613740C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR11/55,606 2011-06-24
FR1155606A FR2977111A1 (fr) 2011-06-24 2011-06-24 Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
PCT/FR2012/051391 WO2012175870A1 (fr) 2011-06-24 2012-06-20 Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2017103486A Division RU2646345C1 (ru) 2011-06-24 2012-06-20 Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы

Publications (2)

Publication Number Publication Date
RU2014102226A RU2014102226A (ru) 2015-08-10
RU2613740C2 true RU2613740C2 (ru) 2017-03-21

Family

ID=46508090

Family Applications (5)

Application Number Title Priority Date Filing Date
RU2017103486A RU2646345C1 (ru) 2011-06-24 2012-06-20 Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
RU2014102226A RU2613740C2 (ru) 2011-06-24 2012-06-20 Способ кодирования и декодирования изображений, устройство для кодирования и декодирования и соответствующие компьютерные программы
RU2018103979A RU2727171C2 (ru) 2011-06-24 2018-02-02 Устройство обработки изображений
RU2020121306A RU2739497C1 (ru) 2011-06-24 2020-06-26 Устройство кодирования и декодирования изображений
RU2020141931A RU2757543C1 (ru) 2011-06-24 2020-12-18 Способ кодирования и декодирования изображений, устройство для кодирования и декодирования и соответствующие компьютерные программы

Family Applications Before (1)

Application Number Title Priority Date Filing Date
RU2017103486A RU2646345C1 (ru) 2011-06-24 2012-06-20 Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы

Family Applications After (3)

Application Number Title Priority Date Filing Date
RU2018103979A RU2727171C2 (ru) 2011-06-24 2018-02-02 Устройство обработки изображений
RU2020121306A RU2739497C1 (ru) 2011-06-24 2020-06-26 Устройство кодирования и декодирования изображений
RU2020141931A RU2757543C1 (ru) 2011-06-24 2020-12-18 Способ кодирования и декодирования изображений, устройство для кодирования и декодирования и соответствующие компьютерные программы

Country Status (10)

Country Link
US (12) US9319692B2 (ru)
EP (2) EP2724536A1 (ru)
JP (5) JP2014520470A (ru)
KR (14) KR102095329B1 (ru)
CN (8) CN107094256B (ru)
BR (1) BR112013032956B1 (ru)
FR (1) FR2977111A1 (ru)
HK (6) HK1216058A1 (ru)
RU (5) RU2646345C1 (ru)
WO (1) WO2012175870A1 (ru)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US8879858B1 (en) * 2013-10-01 2014-11-04 Gopro, Inc. Multi-channel bit packing engine
US10212441B2 (en) * 2014-02-12 2019-02-19 Chips & Media, Inc. Method and apparatus for processing video
FR3029333A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US11233998B2 (en) 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
FR3046321B1 (fr) * 2015-12-29 2018-01-26 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
US10230948B2 (en) 2016-02-03 2019-03-12 Mediatek Inc. Video transmitting system with on-the-fly encoding and on-the-fly delivering and associated video receiving system
EP3244610A1 (en) 2016-05-12 2017-11-15 Thomson Licensing Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to video data
CN108664958A (zh) * 2017-04-02 2018-10-16 田雪松 数据解码方法和数据解码装置
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
EP3721624A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
US10827192B2 (en) 2018-11-02 2020-11-03 Fungible, Inc. Work allocation for JPEG accelerator
US10827191B2 (en) * 2018-11-02 2020-11-03 Fungible, Inc. Parallel coding of syntax elements for JPEG accelerator
US10931958B2 (en) 2018-11-02 2021-02-23 Fungible, Inc. JPEG accelerator using last-non-zero (LNZ) syntax element
US10848775B2 (en) 2018-11-02 2020-11-24 Fungible, Inc. Memory layout for JPEG accelerator
FR3092719A1 (fr) * 2019-02-07 2020-08-14 Orange Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.
WO2020242260A1 (ko) * 2019-05-31 2020-12-03 한국전자통신연구원 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
KR102595278B1 (ko) 2020-12-29 2023-10-27 부산대학교 산학협력단 표면결함검출 스캐너를 위한 이미지 데이터 저장 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480537B1 (en) * 1999-02-25 2002-11-12 Telcordia Technologies, Inc. Active techniques for video transmission and playback
US20050038837A1 (en) * 2003-07-17 2005-02-17 Detlev Marpe Method and apparatus for binarization and arithmetic coding of a data value
RU2330325C2 (ru) * 2002-10-03 2008-07-27 Нокиа Корпорейшн Основанное на контексте адаптивное неравномерное кодирование для адаптивных преобразований блоков
US20080246637A1 (en) * 2007-04-03 2008-10-09 National Tsing Hua University Cabac Decoding Method
US20100135416A1 (en) * 2008-12-03 2010-06-03 Yu-Wen Huang Method for performing parallel coding with ordered entropy slices, and associated apparatus

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1038278A (en) 1907-03-21 1912-09-10 Union Switch & Signal Co Semaphore-signal.
US1036231A (en) 1911-05-15 1912-08-20 William S Hazelton Wire-fence builder.
US1003399A (en) 1911-05-17 1911-09-12 Jerry C Burns Tie-remover.
JP3871348B2 (ja) 1993-03-05 2007-01-24 ソニー株式会社 画像信号復号化装置及び画像信号復号化方法
JPH08116534A (ja) 1994-10-18 1996-05-07 Seiko Epson Corp 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法
JP3225793B2 (ja) 1995-06-16 2001-11-05 東洋インキ製造株式会社 高親水性塗料
JP3943333B2 (ja) * 1998-03-05 2007-07-11 松下電器産業株式会社 画像符号化方法、画像符号化復号化方法、画像符号化装置、及び画像記録再生装置
JP3391251B2 (ja) 1998-03-25 2003-03-31 三菱電機株式会社 適応確率推定方法及び適応符号化方法並びに適応復号方法
GB2348064A (en) 1999-03-16 2000-09-20 Mitsubishi Electric Inf Tech Motion vector field encoding
US7221483B2 (en) 2000-09-05 2007-05-22 Ricoh Company, Ltd. Image encoding method and apparatus, image decoding method and apparatus, image processing apparatus, image formation apparatus, and computer-executable programs
EP1445956A4 (en) * 2001-11-16 2009-09-02 Ntt Docomo Inc IMAGE ENCODING METHOD, IMAGE DECODING METHOD, ENCODER AND IMAGE DECODER, PROGRAM, COMPUTER DATA SIGNAL, AND IMAGE TRANSMISSION SYSTEM
US7813431B2 (en) * 2002-05-20 2010-10-12 Broadcom Corporation System, method, and apparatus for decoding flexibility ordered macroblocks
WO2004075556A1 (ja) 2003-02-19 2004-09-02 Ishikawajima-Harima Heavy Industries Co., Ltd. 画像圧縮装置、画像圧縮方法、画像圧縮プログラム、及び圧縮符号化方法、圧縮符号化装置、圧縮符号化プログラム、並びに復合化方法、復合化装置、復合化プログラム
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
JP2005033336A (ja) 2003-07-08 2005-02-03 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
CN1214649C (zh) 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
US7463781B2 (en) 2004-04-14 2008-12-09 Lsi Corporation Low overhead context intializations for arithmetic video codecs
EP1617586B1 (fr) 2004-07-06 2008-09-03 Proton World International N.V. Chiffrement en continu du contenu d'une mémoire externe à un processeur
US20060048038A1 (en) * 2004-08-27 2006-03-02 Yedidia Jonathan S Compressing signals using serially-concatenated accumulate codes
JP2006101406A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 情報処理装置および同装置で用いられるプログラム
US7929776B2 (en) 2005-03-10 2011-04-19 Qualcomm, Incorporated Method and apparatus for error recovery using intra-slice resynchronization points
JP2006279574A (ja) * 2005-03-29 2006-10-12 Sanyo Electric Co Ltd 復号装置と方法
CN1703089A (zh) * 2005-06-09 2005-11-30 清华大学 一种数字信号的二值算术编码方法
US8750908B2 (en) 2005-06-16 2014-06-10 Qualcomm Incorporated Quick paging channel with reduced probability of missed page
RU2371881C1 (ru) 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
US7869660B2 (en) * 2005-10-31 2011-01-11 Intel Corporation Parallel entropy encoding of dependent image blocks
JP2006141037A (ja) * 2005-11-14 2006-06-01 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2007142637A (ja) * 2005-11-16 2007-06-07 Matsushita Electric Ind Co Ltd 画像情報符号化装置
JP2007166192A (ja) 2005-12-13 2007-06-28 Toshiba Corp 情報処理装置、制御方法およびプログラム
US7924925B2 (en) * 2006-02-24 2011-04-12 Freescale Semiconductor, Inc. Flexible macroblock ordering with reduced data traffic and power consumption
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
JP2007300455A (ja) 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
US7949054B2 (en) 2006-06-01 2011-05-24 Microsoft Corporation Flexible data organization for images
CN101491097B (zh) 2006-07-13 2011-12-14 高通股份有限公司 使用经循环对准的片段的具有细粒度可缩放性的视频编码
US8000388B2 (en) 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
US7912302B2 (en) 2006-09-21 2011-03-22 Analog Devices, Inc. Multiprocessor decoder system and method
CN101198051B (zh) 2006-12-07 2011-10-05 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
EP2124343A4 (en) * 2006-12-14 2012-01-11 Nec Corp METHOD, DEVICE AND VIDEO PROGRAMMING PROGRAM
US20080225947A1 (en) 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding
JP5162939B2 (ja) * 2007-03-30 2013-03-13 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8205140B2 (en) 2007-05-10 2012-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for the use of network coding in a wireless communication network
CN100493198C (zh) * 2007-05-31 2009-05-27 北京中星微电子有限公司 算术编码中的概率模型存储方法
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP2009027306A (ja) 2007-07-18 2009-02-05 Epson Toyocom Corp 弾性表面波デバイス
JP5100311B2 (ja) * 2007-10-29 2012-12-19 キヤノン株式会社 動画像データ送信方法、通信装置、及びプログラム
US8542727B2 (en) 2007-12-31 2013-09-24 Intel Corporation Systems and apparatuses for performing CABAC parallel encoding and decoding
US9008171B2 (en) 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
JP4915350B2 (ja) * 2008-01-16 2012-04-11 日本電気株式会社 エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム
US7551341B1 (en) 2008-01-28 2009-06-23 Dolby Laboratories Licensing Corporation Serial modulation display having binary light modulation stage
WO2009104417A1 (ja) * 2008-02-22 2009-08-27 パナソニック株式会社 撮像装置
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
JP4875024B2 (ja) 2008-05-09 2012-02-15 株式会社東芝 画像情報伝送装置
US9042457B2 (en) * 2008-06-10 2015-05-26 Panasonic Intellectual Property Management Co., Ltd. Image decoding apparatus and image coding apparatus wth parallel decoding
KR101456495B1 (ko) 2008-08-28 2014-10-31 삼성전자주식회사 무손실 부호화/복호화 장치 및 방법
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
WO2010063184A1 (en) 2008-12-03 2010-06-10 Mediatek Inc. Method for performing parallel cabac processing with ordered entropy slices, and associated apparatus
EP2357825A4 (en) * 2008-12-08 2012-06-20 Panasonic Corp APPARATUS AND METHOD FOR IMAGE DECODING
JP2010278519A (ja) * 2009-05-26 2010-12-09 Panasonic Corp 動きベクトル検出装置
JP5385736B2 (ja) * 2009-09-17 2014-01-08 Nttエレクトロニクス株式会社 ストリーム制御装置、ストリーム制御方法及びストリーム制御プログラム
EP2486659B1 (fr) * 2009-10-05 2020-11-25 Orange Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
KR100954141B1 (ko) 2009-10-12 2010-04-20 주식회사 이알에이와이어리스 궤환간섭신호를 제거하는 일체형 중계기 및 그것을 이용한 다단 중계시스템
EP2312854A1 (de) * 2009-10-15 2011-04-20 Siemens Aktiengesellschaft Verfahren zur Codierung von Symbolen aus einer Folge digitalisierter Bilder
FR2951896A1 (fr) 2009-10-23 2011-04-29 France Telecom Procede d'encapsulation de sous-flux de donnees, procede de desencapsulation et programmes d'ordinateur correspondants
JP5389187B2 (ja) * 2009-10-29 2014-01-15 パナソニック株式会社 画像符号化方法および画像符号化装置
JP5108857B2 (ja) 2009-11-05 2012-12-26 株式会社エヌ・ティ・ティ・ドコモ 表示制御装置及びプログラム
WO2011126277A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
US8319672B2 (en) 2010-04-09 2012-11-27 Korea Electronics Technology Institute Decoding device for context-based adaptive binary arithmetic coding (CABAC) technique
US20120014433A1 (en) * 2010-07-15 2012-01-19 Qualcomm Incorporated Entropy coding of bins across bin groups using variable length codewords
KR101482542B1 (ko) 2010-07-22 2015-01-14 돌비 레버러토리즈 라이쎈싱 코오포레이션 이미지 데이터와 디스플레이의 비디오 범위들 사이의 맵핑을 위한 시스템, 장치 및 방법들
US8520740B2 (en) 2010-09-02 2013-08-27 International Business Machines Corporation Arithmetic decoding acceleration
HUE039299T2 (hu) 2010-09-09 2018-12-28 Fraunhofer Ges Forschung Entrópia kódolási és dekódolási séma
US10349070B2 (en) * 2010-09-30 2019-07-09 Texas Instruments Incorporated Simplified binary arithmetic coding engine
US20120163448A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Coding the position of a last significant coefficient of a video block in video coding
US9300976B2 (en) 2011-01-14 2016-03-29 Cisco Technology, Inc. Video encoder/decoder, method and computer program product that process tiles of video data
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
CN102685503B (zh) * 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
TWI487295B (zh) 2011-05-17 2015-06-01 Univ Nat Cheng Kung 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法
US8891863B2 (en) 2011-06-13 2014-11-18 Dolby Laboratories Licensing Corporation High dynamic range, backwards-compatible, digital cinema
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
EP3425805B1 (en) 2011-07-15 2022-12-07 GE Video Compression, LLC Sample array coding for low-delay
US20130021350A1 (en) * 2011-07-19 2013-01-24 Advanced Micro Devices, Inc. Apparatus and method for decoding using coefficient compression
BR112014017915B1 (pt) * 2012-01-20 2021-03-16 Ge Video Compression, Llc conceito de codificação que permite o processamento parelelo, desmultiplexador de transporte e fluxo de bites de vídeo
MY173763A (en) 2012-04-13 2020-02-19 Ge Video Compression Llc Low delay picture coding
US9191671B2 (en) * 2012-04-19 2015-11-17 Vid Scale, Inc. System and method for error-resilient video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480537B1 (en) * 1999-02-25 2002-11-12 Telcordia Technologies, Inc. Active techniques for video transmission and playback
RU2330325C2 (ru) * 2002-10-03 2008-07-27 Нокиа Корпорейшн Основанное на контексте адаптивное неравномерное кодирование для адаптивных преобразований блоков
US20050038837A1 (en) * 2003-07-17 2005-02-17 Detlev Marpe Method and apparatus for binarization and arithmetic coding of a data value
US20080246637A1 (en) * 2007-04-03 2008-10-09 National Tsing Hua University Cabac Decoding Method
US20100135416A1 (en) * 2008-12-03 2010-06-03 Yu-Wen Huang Method for performing parallel coding with ordered entropy slices, and associated apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HEIKO SCHWARZ et al. статья "CABAC AND SLICES", опубликованная 21.07.2002, 17 стр. [он-лайн] [найдено 2016-01-25], найдено в Интернет: http://wftp3.itu.int/av-arch/jvt-site/2002_07_Klagenfurt/. *

Also Published As

Publication number Publication date
HK1244374A1 (zh) 2018-08-03
KR20180113634A (ko) 2018-10-16
US20150195537A1 (en) 2015-07-09
JP2014520470A (ja) 2014-08-21
US20160142720A1 (en) 2016-05-19
US20150195538A1 (en) 2015-07-09
US9661335B2 (en) 2017-05-23
US20230353740A1 (en) 2023-11-02
JP2018201220A (ja) 2018-12-20
CN103959787A (zh) 2014-07-30
HK1244373A1 (zh) 2018-08-03
US9654783B2 (en) 2017-05-16
CN107071446A (zh) 2017-08-18
KR20200035182A (ko) 2020-04-01
US20160150250A1 (en) 2016-05-26
KR20160086987A (ko) 2016-07-20
CN103959787B (zh) 2017-06-20
US9848196B2 (en) 2017-12-19
KR20160086984A (ko) 2016-07-20
US20190297323A1 (en) 2019-09-26
CN107094252A (zh) 2017-08-25
KR102344519B1 (ko) 2021-12-29
KR102240333B1 (ko) 2021-04-13
RU2739497C1 (ru) 2020-12-24
CN107094254B (zh) 2019-12-13
CN107071446B (zh) 2020-08-11
JP6875333B2 (ja) 2021-05-19
KR101851477B1 (ko) 2018-04-23
US20180302632A1 (en) 2018-10-18
HK1216058A1 (zh) 2016-10-07
US20140254665A1 (en) 2014-09-11
KR102437249B1 (ko) 2022-08-26
HK1244377A1 (zh) 2018-08-03
CN107094255A (zh) 2017-08-25
EP3700207A1 (fr) 2020-08-26
KR102185377B1 (ko) 2020-12-01
EP2724536A1 (fr) 2014-04-30
US9319694B2 (en) 2016-04-19
RU2018103979A3 (ru) 2020-05-28
KR20220000420A (ko) 2022-01-03
KR20200135580A (ko) 2020-12-02
KR20230067712A (ko) 2023-05-16
JP7280233B2 (ja) 2023-05-23
KR20190087671A (ko) 2019-07-24
US20150016524A1 (en) 2015-01-15
US9380308B2 (en) 2016-06-28
CN105120277A (zh) 2015-12-02
KR101708982B1 (ko) 2017-02-21
US20160234512A1 (en) 2016-08-11
KR20140056229A (ko) 2014-05-09
KR20210041123A (ko) 2021-04-14
HK1244375A1 (zh) 2018-08-03
RU2727171C2 (ru) 2020-07-21
RU2646345C1 (ru) 2018-03-02
US10694186B2 (en) 2020-06-23
CN107094256B (zh) 2020-02-07
US10362311B2 (en) 2019-07-23
US20170223353A1 (en) 2017-08-03
JP2017073806A (ja) 2017-04-13
RU2018103979A (ru) 2019-08-02
JP2023100970A (ja) 2023-07-19
HK1244376A1 (zh) 2018-08-03
US9319692B2 (en) 2016-04-19
KR102095329B1 (ko) 2020-03-31
US10033999B2 (en) 2018-07-24
CN107094256A (zh) 2017-08-25
CN107094253B (zh) 2020-11-10
US9319693B2 (en) 2016-04-19
KR20150046352A (ko) 2015-04-29
FR2977111A1 (fr) 2012-12-28
BR112013032956A2 (pt) 2017-01-24
KR102003549B1 (ko) 2019-07-25
KR20160086986A (ko) 2016-07-20
CN107094255B (zh) 2020-01-31
CN107094252B (zh) 2020-03-13
KR20220122797A (ko) 2022-09-02
CN107094253A (zh) 2017-08-25
KR101907043B1 (ko) 2018-10-11
KR20180004318A (ko) 2018-01-10
JP2021044831A (ja) 2021-03-18
RU2757543C1 (ru) 2021-10-18
RU2014102226A (ru) 2015-08-10
CN107094254A (zh) 2017-08-25
WO2012175870A1 (fr) 2012-12-27
BR112013032956B1 (pt) 2022-05-03
BR112013032956A8 (pt) 2017-07-11
US20200322609A1 (en) 2020-10-08

Similar Documents

Publication Publication Date Title
RU2739497C1 (ru) Устройство кодирования и декодирования изображений
RU2779843C1 (ru) Устройство для кодирования и декодирования изображений