[go: up one dir, main page]

RU2406259C2 - Methods and systems for coding of clarification coefficients in video data compression - Google Patents

Methods and systems for coding of clarification coefficients in video data compression Download PDF

Info

Publication number
RU2406259C2
RU2406259C2 RU2008142382/09A RU2008142382A RU2406259C2 RU 2406259 C2 RU2406259 C2 RU 2406259C2 RU 2008142382/09 A RU2008142382/09 A RU 2008142382/09A RU 2008142382 A RU2008142382 A RU 2008142382A RU 2406259 C2 RU2406259 C2 RU 2406259C2
Authority
RU
Russia
Prior art keywords
refinement
coefficients
coding
sequence
signal
Prior art date
Application number
RU2008142382/09A
Other languages
Russian (ru)
Other versions
RU2008142382A (en
Inventor
Янь Е (US)
Янь Е
Илян БАО (US)
Илян БАО
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2008142382A publication Critical patent/RU2008142382A/en
Application granted granted Critical
Publication of RU2406259C2 publication Critical patent/RU2406259C2/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

FIELD: information technologies.
SUBSTANCE: method is proposed for coding of clarification coefficients in layer of scalable increase of signal-noise ratio (SNR) quality in compressed sequence of video frames. Sequence of video frames is received. Forecasting of initial video signal is composed of video sequence in current frame. Differential signal is generated by subtraction of initial video signal forecast from initial video signal in current frame. Conversion is applied to differential signal. Multiple conversion ratios are quantised. Clarification coefficient is displayed into ternary clarification symbol. Clarification symbols are grouped in a certain sequence of coding. Groups of clarification symbols are coded using codes of alternate length.
EFFECT: improved efficiency of video data coding.
30 cl, 15 dwg

Description

Родственные заявкиRelated Applications

Эта заявка испрашивает приоритет принадлежащей тому же правопреемнику предварительной патентной заявки США с порядковым номером 60/786800, зарегистрированной 27 марта 2006 г., под названием "Кодирование уточняющих коэффициентов для мелкозернистой масштабируемости", и предварительной патентной заявки США с порядковым номером 60/830199, зарегистрированной 11 июля 2006 г., под названием "Способы и системы для кодирования уточняющих коэффициентов при сжатии видеоданных", которые включены здесь путем ссылки.This application claims the priority of the provisional US patent application serial number 60/786800, registered March 27, 2006, entitled "Encoding refinement coefficients for fine-grained scalability," and the US provisional patent application serial number 60/830199, registered July 11, 2006, entitled "Methods and Systems for Encoding Clarification Factors for Compressing Video Data", which are incorporated herein by reference.

Область техникиTechnical field

Настоящее раскрытие относится, в общем, к обработке видеоданных. Более конкретно, настоящее раскрытие относится к способам и системам, предназначенным для кодирования и декодирования информации, относящимся к методам сжатия видеоданных.The present disclosure relates generally to video processing. More specifically, the present disclosure relates to methods and systems for encoding and decoding information related to video compression methods.

Уровень техникиState of the art

Компьютерные технологии продолжают развиваться в методах сжатия видеоданных. Сжатие видеоданных относится к сжатию цифровых видеоданных. Сжатие видеоданных является желательным для эффективного кодирования видеоданных в форматах файлов видеоданных и потоковой передачи и широковещательной рассылки форматов видеоданных. Сжатие представляет собой преобразование данных в формат, который требует меньшего количества битов, и обычно выполняется таким образом, чтобы данные можно было сохранять или передавать более эффективно. Разуплотнение, которое является противоположностью сжатию, производит точную копию исходных данных.Computer technology continues to evolve in video compression techniques. Video compression refers to digital video compression. Video compression is desirable for efficiently encoding video data in video file formats and streaming and broadcasting video data formats. Compression is the conversion of data to a format that requires fewer bits, and is usually performed so that data can be stored or transmitted more efficiently. The decompression, which is the opposite of compression, produces an exact copy of the source data.

В настоящее время для множества способов сжатия видеоданных применяется определенный тип дискретного преобразования, такой как дискретное косинусное преобразование (DCT), чтобы снижать остающуюся пространственную избыточность в остаточной части прогнозирования, которое производится с использованием либо временных, либо пространственных методик прогнозирования. Множество методов сжатия видеоданных также включает в себя квантование, которое может быть либо скалярным квантованием, либо векторным квантованием. После квантования квантованные коэффициенты могут быть статистически закодированы и помещены в сжатый поток битов видеоданных. Затем сжатый поток битов посылается в декодер, который разуплотняет поток битов и восстанавливает хорошую аппроксимацию исходных видеоданных.Currently, for a variety of video compression methods, a certain type of discrete transform, such as discrete cosine transform (DCT), is used to reduce the remaining spatial redundancy in the residual part of the prediction, which is performed using either temporal or spatial prediction techniques. Many video compression methods also include quantization, which can be either scalar quantization or vector quantization. After quantization, the quantized coefficients can be statistically encoded and placed in a compressed video bitstream. Then the compressed bit stream is sent to a decoder, which decompresses the bit stream and restores a good approximation of the original video data.

Методы сжатия видеоданных могут приносить выгоду пользователям различных форм мультимедиа. Например, в технике широковещательной передачи цифровое телевидение на практике осуществляется посредством сжатия видеоданных. Телевизионные станции могут выполнять широковещательную рассылку не только для HDTV (телевидение высокой четкости), но также и по множеству виртуальных каналов на одном и том же физическом канале. Широковещательная рассылка цифровых видеоданных может использовать формат сжатия видеоданных стандарта MPEG-2. H.264/MPEG-4 и VC-1 начинают проявляться как новые стандарты в области сжатия видеоданных.Video compression methods can benefit users of various forms of multimedia. For example, in the broadcast technique, digital television is in practice implemented by compressing video data. Television stations can broadcast not only for HDTV (High Definition Television), but also over multiple virtual channels on the same physical channel. Broadcasting digital video can use the MPEG-2 video compression format. H.264 / MPEG-4 and VC-1 are starting to emerge as new standards in the field of video compression.

К сожалению, известные системы и способы, предназначенные для кодирования информации при сжатии видеоданных, страдают от различных недостатков. Соответственно, посредством улучшения систем и способов кодирования информации в отношении сжатия видеоданных могут быть получены выгоды. В данном описании описаны некоторые системы и способы, предназначенные для кодирования информации при сжатии видеоданных.Unfortunately, known systems and methods for encoding information in video compression suffer from various disadvantages. Accordingly, by improving systems and methods for encoding information regarding video compression, benefits can be obtained. This description describes some systems and methods for encoding information in video compression.

Краткое описание чертежейBrief Description of the Drawings

Фиг.1 иллюстрирует один вариант осуществления масштабируемой структуры потока битов кодирования видеоданных;1 illustrates one embodiment of a scalable structure of a video encoding bit stream;

фиг.2 иллюстрирует один вариант осуществления основного слоя и множества слоев повышения качества, посылаемых из кодера в декодер через сеть;FIG. 2 illustrates one embodiment of a base layer and a plurality of quality improvement layers sent from an encoder to a decoder through a network; FIG.

фиг.3 иллюстрирует способ кодирования информации;figure 3 illustrates a method of encoding information;

фиг.4 иллюстрирует один вариант осуществления способа декодирования закодированной последовательности видеокадров;4 illustrates one embodiment of a method for decoding an encoded sequence of video frames;

фиг.5 иллюстрирует один вариант осуществления кадра изображения, разделенного на множество макроблоков;5 illustrates one embodiment of an image frame divided into a plurality of macroblocks;

фиг.6 иллюстрирует один вариант осуществления классификации значимых и уточняющих коэффициентов;6 illustrates one embodiment of the classification of significant and refinement coefficients;

фиг.7 иллюстрирует недостаток одной схемы уточняющего кодирования в кодировании с переменной длиной (VLC);7 illustrates the disadvantage of one refinement coding scheme in variable length coding (VLC);

фиг.8 иллюстрирует один вариант осуществления порядка кодирования, основанного на поддиапазонах;FIG. 8 illustrates one embodiment of a subband based coding order;

фиг.9 иллюстрирует один вариант осуществления уточняющих символов, которые могут быть связаны с синтаксисами, используемыми в уточняющем кодировании;FIG. 9 illustrates one embodiment of qualifier characters that may be associated with syntaxes used in qualifier encoding; FIG.

фиг.10 иллюстрирует один вариант осуществления таблицы кодирования кодом переменной длины (VLC);10 illustrates one embodiment of a variable length code (VLC) codebook;

фиг.11 иллюстрирует один вариант осуществления множества слоев мелкозернистой масштабируемости (FGS);11 illustrates one embodiment of a plurality of fine grain scalability (FGS) layers;

фиг.12 иллюстрирует один вариант осуществления решения проблемы, обусловленной группированием уточняющих коэффициентов, когда значимое и уточняющее кодирование перемежаются;12 illustrates one embodiment of a solution to a problem caused by a grouping of refinement coefficients when the meaningful and refinement coding are interleaved;

фиг.13 иллюстрирует другой вариант осуществления, где значимое кодирование и уточняющее кодирование могут перемежаться и используется порядок кодирования FGS поддиапазонов;FIG. 13 illustrates another embodiment where meaningful coding and refinement coding can be interleaved and the FGS coding order of the subbands is used;

фиг.14 иллюстрирует один вариант осуществления способа решения на основе декодера;Fig. 14 illustrates one embodiment of a decoder based decision method;

фиг.15 иллюстрирует один вариант осуществления способа решения на основе кодера;15 illustrates one embodiment of an encoder based decision method;

фиг.16 иллюстрирует блок-схему, иллюстрирующую основные компоненты аппаратных средств, обычно используемые для обработки цифровых изображений и/или цифровых видеоданных.16 illustrates a block diagram illustrating the main hardware components commonly used for processing digital images and / or digital video data.

Подробное описаниеDetailed description

Раскрыт способ кодирования уточняющих коэффициентов в слое масштабируемого повышения качества отношения сигнал-шум ("ОСШ") сжатой последовательности видеокадров. Принимают последовательность видеокадров. Из последовательности видеокадров составляют прогнозирование исходного видеосигнала в текущем кадре. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины.A method for encoding refinement coefficients in a layer of scalable enhancement of the signal-to-noise ratio ("SNR") quality of a compressed sequence of video frames is disclosed. Accept a sequence of video frames. From the sequence of video frames make up the prediction of the original video signal in the current frame. A difference signal is generated by subtracting the prediction of the original video signal from the original video signal in the current frame. A conversion is applied to the difference signal. Quantize the set of transform coefficients. The refinement coefficient is mapped to a ternary refinement symbol. The qualifying characters are grouped in a specific coding order. Groups of qualifying characters are encoded using variable length codes.

Для различных слоев повышения качества адаптивно выбирают таблицу кодирования кодом переменной длины. В варианте осуществления таблицу кодирования кодом переменной длины адаптивно выбирают на основании вероятностной оценки уточняющих символов. Выбор определенной таблицы кодирования кодом переменной длины может быть основан на уровне слоя повышения качества. В варианте осуществления выбор определенной таблицы кодирования кодом переменной длины основан на том, уточняют ли коэффициент впервые или этот коэффициент уточнялся в предыдущем слое.For different quality improvement layers, an encoding table is adaptively selected with a variable length code. In an embodiment, a coding table with a variable-length code is adaptively selected based on a probabilistic estimate of the refinement symbols. The selection of a particular coding table with a variable length code can be based on the level of the quality improvement layer. In an embodiment, the selection of a particular coding table by a variable-length code is based on whether the coefficient is refined for the first time or whether this coefficient was refined in the previous layer.

В варианте осуществления способ перемежает значимые коэффициенты и уточняющие коэффициенты. Идентифицируют вырезку, которая включает в себя множество блоков. Множество блоков может просматриваться перед группированием уточняющих коэффициентов. Определяют порядок, с которым уточняющие коэффициенты будут кодироваться. Уточняющие коэффициенты могут сохраняться в очереди в соответствии с порядком, который был определен.In an embodiment, the method interleaves significant coefficients and refinement coefficients. A clipping that includes many blocks is identified. Many blocks can be viewed before grouping refinement coefficients. The order in which the refinement coefficients will be encoded is determined. The refinement coefficients may be stored in the queue in accordance with the order that has been determined.

В варианте осуществления каждое фиксированное количество последовательных уточняющих коэффициентов кодируют вместе с использованием таблицы кодирования кодом переменной длины. В варианте осуществления, уточняющие коэффициенты вырезки группируют вместе. Может выполняться операция смещения. Таблица кодирования кодом переменной длины включает в себя таблицу кодирования кодом переменной длины с 27 элементами, где длина группы равна трем. В слое повышения качества используется порядок кодирования, основанный на поддиапазонах.In an embodiment, each fixed number of consecutive refinement coefficients is encoded together using a variable length code table. In an embodiment, the refinement clipping coefficients are grouped together. An offset operation may be performed. The variable length code coding table includes a variable length code coding table with 27 elements, where the group length is three. In the enhancement layer, a subband based coding order is used.

Также раскрыто электронное устройство, реализующее способ кодирования уточняющих коэффициентов в слое масштабируемого повышения качества ОСШ сжатой последовательности видеокадров. Электронное устройство включает в себя процессор и запоминающее устройство, находящееся в электронной связи с процессором. Содержатся команды, хранящиеся в запоминающем устройстве. Принимают последовательность видеокадров. Прогнозирование исходного видеосигнала в текущем кадре составляют из последовательности видеокадров. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины.An electronic device is also disclosed that implements a method for encoding refinement coefficients in a layer of scalable quality improvement of the SNR of a compressed sequence of video frames. The electronic device includes a processor and a storage device in electronic communication with the processor. Commands stored in the storage device are contained. Accept a sequence of video frames. Prediction of the original video signal in the current frame is made up of a sequence of video frames. A difference signal is generated by subtracting the prediction of the original video signal from the original video signal in the current frame. A conversion is applied to the difference signal. Quantize the set of transform coefficients. The refinement coefficient is mapped to a ternary refinement symbol. The qualifying characters are grouped in a specific coding order. Groups of qualifying characters are encoded using variable length codes.

Также раскрыт компьютерочитаемый носитель, включающий в себя команды для реализации способа кодирования уточняющих коэффициентов в слое масштабируемого повышения качества ОСШ сжатой последовательности видеокадров. Принимают последовательность видеокадров. Из последовательности видеокадров составляют прогнозирование исходного видеосигнала в текущем кадре. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины.A computer-readable medium is also disclosed, including instructions for implementing a method for encoding refinement coefficients in a layer of scalable SNR quality improvement of a compressed sequence of video frames. Accept a sequence of video frames. From the sequence of video frames make up the prediction of the original video signal in the current frame. A difference signal is generated by subtracting the prediction of the original video signal from the original video signal in the current frame. A conversion is applied to the difference signal. Quantize the set of transform coefficients. The refinement coefficient is mapped to a ternary refinement symbol. The qualifying characters are grouped in a specific coding order. Groups of qualifying characters are encoded using variable length codes.

Также раскрыт способ декодирования уточняющих коэффициентов в закодированной последовательности видеокадров. Принимают закодированную последовательность видеокадров. Уточняющие символы декодируют с использованием таблицы кодирования кодом переменной длины. Уточняющие коэффициенты декодируют с использованием уточняющих символов, при этом уточняющие коэффициенты группируют в определенном порядке кодирования. Множество коэффициентов преобразования подвергают обратному квантованию. К уточняющему сигналу применяют обратное преобразование. Составляют последовательность видеокадров.A method for decoding refinement coefficients in an encoded sequence of video frames is also disclosed. An encoded sequence of video frames is received. The refinement symbols are decoded using a variable length coding table. The refinement coefficients are decoded using the refinement symbols, while the refinement coefficients are grouped in a specific coding order. Many transform coefficients are inverse quantized. An inverse transform is applied to the refinement signal. Compose a sequence of video frames.

В варианте осуществления закодированный поток видеокадров включает в себя перемежающиеся значимые символы и уточняющие символы. Местоположение запрашиваемых уточняющих коэффициентов сохраняют. Знак соответствующего коэффициента основного слоя сохраняют. Счетчик, который относится к числу сделанных запросов, увеличивается. В варианте осуществления определяют, когда счетчик достигает предварительно определенной величины счета. Запускают операцию считывания, вызывая нормальное декодирование с таблицей кодирования кодом переменной длины. Составляют группу уточняющих символов.In an embodiment, the encoded video frame stream includes interleaved significant symbols and refinement symbols. The location of the requested refinement coefficients is stored. The sign of the corresponding coefficient of the base layer is maintained. The counter, which is the number of requests made, is incremented. In an embodiment, it is determined when the counter reaches a predetermined count value. The read operation is started, causing normal decoding with a code table of variable length code. Compose a group of qualifying characters.

Теперь будут описаны различные варианты осуществления раскрытия со ссылкой на чертежи, на которых подобные ссылочные позиции обозначают идентичные или функционально подобные элементы. Варианты осуществления настоящего раскрытия, как в общем описывается в данном описании и иллюстрируется на чертежах, могут быть выполнены и сконструированы в виде большого разнообразия различных конфигураций. Таким образом, последующее более детальное описание нескольких вариантов осуществления настоящего раскрытия, как представлено на чертежах, не предназначено для ограничения объема раскрытия, как оно заявлено, а просто отражает репрезентативные варианты осуществления раскрытия.Various embodiments of the disclosure will now be described with reference to the drawings, in which like reference numerals indicate identical or functionally similar elements. Embodiments of the present disclosure, as generally described herein and illustrated in the drawings, may be embodied and constructed in a wide variety of different configurations. Thus, the following more detailed description of several embodiments of the present disclosure, as presented in the drawings, is not intended to limit the scope of the disclosure as claimed, but merely reflects representative embodiments of the disclosure.

Многие признаки вариантов осуществления, раскрытых в данном описании, могут быть реализованы как программное обеспечение для компьютеров, электронное оборудование или комбинации и того и другого. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные компоненты будут описаны в общем в терминах их функциональных возможностей. Реализованы ли такие функциональные возможности в виде аппаратного обеспечения или программного обеспечения, может зависеть от конкретного применения и конструктивных ограничений, накладываемых на всю систему. Специалисты в данной области техники могут реализовывать описанные функциональные возможности различными способами для каждого конкретного применения, но такие решения реализации не должны интерпретироваться как приводящие к выходу за рамки объема настоящего раскрытия.Many features of the embodiments disclosed herein may be implemented as computer software, electronic equipment, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various components will be described generally in terms of their functionality. Whether such functionality is implemented in the form of hardware or software may depend on the particular application and design constraints imposed on the entire system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

Там, где описываемые функциональные возможности реализованы как программное обеспечение, такое программное обеспечение может включать в себя любой тип машинной команды или выполняемого компьютером кода, хранящегося в запоминающем устройстве и/или передаваемого в виде электронных сигналов через системную шину или сеть. Программное обеспечение, которое реализует функциональные возможности, связанные с описываемыми в данном описании компонентами, может содержать единственную команду или множество команд и может распределяться через несколько различных сегментов кода, среди различных программ, и через несколько запоминающих устройств.Where the described functionality is implemented as software, such software may include any type of machine instruction or computer-executable code stored in a memory device and / or transmitted as electronic signals via a system bus or network. Software that implements the functionality associated with the components described in this description may contain a single command or multiple commands and may be distributed through several different code segments, among various programs, and through several memory devices.

После выполнения общих методов сжатия видеоданных, таких как прогнозирование, преобразование и квантование, следующий этап выполняет статистическое кодирование на элементах синтаксиса и квантованных коэффициентах, чтобы сформировать поток битов. В декодере видеоданных выполняется обратный процесс. Элементы синтаксиса и квантованные коэффициенты декодируются из потока битов. Затем выполняются этапы обратного квантования и обратного преобразования. Наконец, к прогнозированию добавляется реконструированный остаток, чтобы реконструировать видеоданные.After performing general video compression methods, such as prediction, conversion, and quantization, the next step performs statistical coding on the syntax elements and quantized coefficients to form a bit stream. A reverse process is performed in the video decoder. Syntax elements and quantized coefficients are decoded from the bitstream. Then, the steps of inverse quantization and inverse transformation are performed. Finally, a reconstructed remainder is added to the prediction to reconstruct the video data.

Объединенная группа по вопросам видеоизображений (JVT), которая состоит из экспертов по кодированию видеоданных из ISO/IEC MPEG и ITU-T VCEG, работает над расширением масштабируемого кодирования видеоданных (SVC) для Н.264/AVC. Участниками используется стандартное программное обеспечение, называемое JSVM (объединенная масштабируемая модель видеоданных). JSVM поддерживает различные особенности масштабируемости. Поток битов SVC может иметь мелкозернистую масштабируемость, пространственную масштабируемость, временную масштабируемость или любые комбинации из этих трех видов масштабируемости.The Joint Video Imaging Group (JVT), which consists of video encoding experts from ISO / IEC MPEG and ITU-T VCEG, is working on expanding scalable video encoding (SVC) for H.264 / AVC. Participants use standard software called JSVM (Integrated Scalable Video Data Model). JSVM supports various scalability features. The SVC bitstream can have fine-grained scalability, spatial scalability, temporal scalability, or any combination of these three types of scalability.

Мелкозернистая масштабируемость, далее упоминаемая как FGS, является важной и весьма желательной особенностью для кодирования видеоданных. Эта особенность позволяет почти произвольно укорачивать сжатый поток битов видеокадров, в то же самое время обеспечивая конечного пользователя постепенным ухудшением качества декодированного видеосигнала. Поскольку декодер видеоданных принимает и декодирует большее количество битов в этом слое, это будет производить лучшее качество видеоданных. Кроме того, FGS в JSVM была разработана таким образом, что улучшение качества видеоданных равномерно распространяется по всему видеокадру, в противоположность концентрированию в пределах только определенной пространственной области кадра, поскольку последний случай является визуально нежелательным для конечного зрителя.Fine-grained scalability, hereinafter referred to as FGS, is an important and highly desirable feature for encoding video data. This feature allows you to almost arbitrarily shorten the compressed bitstream of video frames, while at the same time providing the end user with a gradual deterioration in the quality of the decoded video signal. Since the video decoder receives and decodes a larger number of bits in this layer, this will produce better video quality. In addition, FGS in JSVM was designed in such a way that the improvement in video quality is evenly distributed throughout the video frame, as opposed to being concentrated within only a certain spatial area of the frame, since the latter case is visually undesirable for the final viewer.

FGS достигает постепенного улучшения качества видеоданных при использовании кодирования битовой плоскости. Если видеокадр основного или предыдущего слоя квантуют с использованием параметра квантования ПК, то видеоданные текущего слоя повышения качества квантуют с использованием параметра квантования, обычно примерно ПК-6, который эффективно сокращает вдвое величину этапа квантования. В результате меньшего размера этапа квантования в слое повышения качества большее количество коэффициентов преобразования становится ненулевым. Все ненулевые коэффициенты в слое повышения качества могут быть классифицированы на три типа: незначимые коэффициенты, значимые коэффициенты и уточняющие коэффициенты. Термин "незначимые" коэффициенты относится к тем коэффициентам, которые равны нулю в слое повышения качества, а соответствующие коэффициенты в основном или предыдущем слое являются нулевыми. Термин "значимые" коэффициенты относится к тем коэффициентам, которые стали ненулевыми в слое повышения качества, а соответствующие коэффициенты в основном или предыдущем слое являются нулевыми. Термин "уточняющие" коэффициенты относится к тем коэффициентам, которые уже отличаются от нуля (то есть являются значимыми) в основном или предыдущем слое. Их значения будут уточняться в текущем слое повышения качества.FGS achieves a gradual improvement in video quality using bit-plane coding. If the video frame of the main or previous layer is quantized using the quantization parameter of the PC, then the video data of the current quality improvement layer is quantized using the quantization parameter, usually approximately PC-6, which effectively halves the quantization step. As a result of the smaller size of the quantization step in the quality improvement layer, a larger number of transform coefficients becomes nonzero. All nonzero coefficients in the quality improvement layer can be classified into three types: insignificant coefficients, significant coefficients, and refinement coefficients. The term “non-significant” coefficients refers to those coefficients that are zero in the quality improvement layer, and the corresponding coefficients in the main or previous layer are zero. The term “significant” coefficients refers to those coefficients that become non-zero in the quality improvement layer, and the corresponding coefficients in the main or previous layer are zero. The term “refinement” coefficients refers to those coefficients that already differ from zero (that is, are significant) in the main or previous layer. Their values will be specified in the current layer of quality improvement.

Поскольку уточняющие коэффициенты имеют отличающиеся статистические данные от других коэффициентов, они отдельно кодируются в слое FGS. Подобно Н.264/AVC, рекомендация проекта SVC также поддерживает два режима статистического кодирования: режим основанного на контексте адаптивного двоичного арифметического кодирования (CABAC) и режим основанного на контексте адаптивного кодирования с переменной длиной (CAVLC). Обеспечены подробности для схемы улучшенного кодирования уточняющих коэффициентов в режиме CAVLC, которые, как показано, не только улучшают эффективность кодирования, но также и значительно уменьшают сложность реализации и кодера и декодера.Since the refinement coefficients have different statistics from other coefficients, they are separately encoded in the FGS layer. Like H.264 / AVC, the SVC draft recommendation also supports two statistical coding modes: context-based adaptive binary arithmetic coding (CABAC) mode and context-based adaptive variable-length coding (CAVLC) mode. Details are provided for a scheme for improved coding of refinement coefficients in the CAVLC mode, which, as shown, not only improves coding efficiency, but also significantly reduces the complexity of the implementation of both the encoder and decoder.

В слое FGS уточняющие коэффициенты посылаются с использованием двух элементов синтаксиса: coeff_refinement_flag и coeff_refinement_direction_flag. Первый элемент синтаксиса, coeff_refinement_flag, определяет, действительно ли уровень уточняющего коэффициента равен 0. Не нарушая общности, предполагается, что, если coeff_refinement_flag равен 0, значение уровня уточняющего коэффициента равно 0, в то время как coeff_refinement_flag, равный 1, определяет, что значение уровня уточняющего коэффициента является либо равным -1, либо равным 1. Второй элемент, coeff_refinement_direction_flag, определяет, является ли знак уточняющего уровня коэффициента преобразования таким же или отличающимся от знака его представления основного или предыдущего слоя. Не нарушая общности, предполагается, что, если coeff_refinement_direction_flag равен 0, знак уточняющего уровня коэффициента преобразования равен знаку соответствующего коэффициента в основном слое; иначе, уточняющий уровень имеет противоположный знак.In the FGS layer, refinement coefficients are sent using two syntax elements: coeff_refinement_flag and coeff_refinement_direction_flag. The first syntax element, coeff_refinement_flag, determines whether the level of the refinement coefficient is really 0. Without loss of generality, it is assumed that if coeff_refinement_flag is 0, the value of the level of the refinement coefficient is 0, while coeff_refinement_flag equal to 1 determines that the level value of the refinement coefficient is either equal to -1 or equal to 1. The second element, coeff_refinement_direction_flag, determines whether the sign of the refinement level of the conversion coefficient is the same or different from the sign of its representation of the main or previous layer. Without loss of generality, it is assumed that if coeff_refinement_direction_flag is 0, the sign of the refinement level of the transform coefficient is equal to the sign of the corresponding coefficient in the main layer; otherwise, the qualifying level has the opposite sign.

В режиме CAVLC один способ кодирования уточняющих коэффициентов в слое FGS состоит в том, чтобы обрабатывать уточняющие коэффициенты блок за блоком. Как только кодер видеоданных начинает кодировать уточняющие коэффициенты в блоке, все уточняющие коэффициенты в текущем блоке кодируются прежде, чем кодер видеоданных начинает кодировать другие коэффициенты. Такая схема когда-то была принята в одной версии JSVM.In CAVLC mode, one way of encoding the refinement coefficients in the FGS layer is to process the refinement coefficients block by block. As soon as the video encoder starts to encode the refinement coefficients in a block, all the refinement coefficients in the current block are encoded before the video encoder starts to encode other coefficients. Such a scheme was once adopted in one version of JSVM.

Таблица обеспечивает такой процесс уточняющего кодирования на основе блоков, суммируемый в следующем псевдокоде.The table provides such a block-based refinement coding process, summarized in the following pseudo-code.

//кодирование уточняющего уровня
//vlcTab1 представляет собой таблицу VLC, подлежащую использованию для кодирования уточняющего уровня до тех пор,
пока (уточняющий коэффициент все еще остается в текущем блоке) {
получить следующий уточняющий коэффициент в зигзагообразном порядке
пусть m = уровень коэффициента
кодировать уровень m, используя текущую vlcTab1
обновить статистические данные уточняющего уровня
обновить значение vlcTab1
}
сдвинуть биты уточняющего уровня, оставшиеся в буфере битов
//кодирование признака уточняющего направления
//VlcTab2 представляет собой таблицу VLC, подлежащую использованию для кодирования уточняющего направления до тех пор,
пока (уточняющий коэффициент все еще остается в текущем блоке) {
получить следующий уточняющий коэффициент в зигзагообразном порядке
если (текущий уточняющий уровень является ненулевым)
{
если (уровень имеет такой же знак, как основной коэффициент)
пусть уточняющее направление s = 0
иначе
пусть уточняющее направление s = 1
кодировать направление s, используя текущую vlcTab2
обновить статистические данные уточняющего направления
обновить значение vlcTab2
}
}
сдвинуть биты уточняющего направления, оставшиеся в буфере битов
// coding of the refinement level
// vlcTab1 is a VLC table to be used to encode the refinement layer until
while (the refinement coefficient still remains in the current block) {
get the following refinement coefficient in a zigzag fashion
let m = coefficient level
encode level m using current vlcTab1
update refinement level statistics
update vlcTab1 value
}
shift bits of the qualifier level remaining in the bit buffer
// coding of the attribute of the qualifying direction
// VlcTab2 is a VLC table to be used to encode the refinement direction until
while (the refinement coefficient still remains in the current block) {
get the following refinement coefficient in a zigzag fashion
if (the current qualification level is nonzero)
{
if (the level has the same sign as the main coefficient)
let the refinement direction s = 0
otherwise
let the refinement direction s = 1
encode s direction using current vlcTab2
update refinement statistics
update vlcTab2 value
}
}
shift bits of the refinement direction remaining in the bit buffer

Процесс уточняющего декодирования выполняется в обратном порядке для того, чтобы восстановить coeff_refinement_flag и coeff_refinement_direction_flag синтаксиса. С этими двумя признаками, вместе с коэффициентами основного или предыдущего слоя, декодер может реконструировать уточняющие коэффициенты. Декодер также поддерживает и обновляет статистическую информацию в буферах таким образом, чтобы оставаться в синхронизации с кодером.The refinement decoding process is performed in the reverse order in order to restore the coeff_refinement_flag and syntax coeff_refinement_direction_flag. With these two features, together with the coefficients of the main or previous layer, the decoder can reconstruct the refinement coefficients. The decoder also maintains and updates statistical information in buffers so as to remain in sync with the encoder.

В таблице, vlcTab (vlcTab1 или vlcTab2) может принимать одно из трех значений, указывающих разные способы выполнения кодирования VLC на синтаксисах уточняющих признаков. Если vlcTab = 0, уточняющие синтаксисы посылаются бит за битом (кодирование признаков). Если vlcTab = 1, уточняющие синтаксисы посылаются в группах из трех битов. Если vlcTab = 2, уточняющие синтаксисы посылаются в группах из четырех битов. Значение vlcTab адаптивно определяется в соответствии с накопленными статистическими данными уточняющих коэффициентов в вырезке текущих видеоданных. Также и кодер и декодер следят за значением наиболее вероятного символа (БВС) и переводят в другое состояние фактический символ, подлежащий кодированию, если БВС изменяется с 0 на 1 или наоборот.In the table, vlcTab (vlcTab1 or vlcTab2) can take one of three values indicating different ways of performing VLC encoding on the syntax of qualifying features. If vlcTab = 0, refinement syntaxes are sent bit by bit (attribute coding). If vlcTab = 1, refinement syntaxes are sent in groups of three bits. If vlcTab = 2, refinement syntaxes are sent in groups of four bits. The value of vlcTab is adaptively determined in accordance with the accumulated statistical data of refinement coefficients in the clipping of the current video data. Also, the encoder and decoder monitor the value of the most probable symbol (BVS) and translate into another state the actual symbol to be encoded if the BVS changes from 0 to 1 or vice versa.

Способ уточняющего кодирования текущего CAVLC может иметь относительно высокую вычислительную сложность. Например, для широко распространенного способа может быть необходимо поддерживать и обновлять накопленные статистические данные обоих уточняющих синтаксисов (синтаксиса уровня и синтаксиса направления). Для широко распространенного способа может быть необходимо обновлять значения vlcTab и БВС. Для широко распространенного способа может требоваться гарантировать, что величины счета вероятности для 0 и 1 не будут выходить за пределы при их обратном масштабировании, когда это необходимо. Адаптивное изменение длины группы также может усложнять реализацию.The refinement coding method of the current CAVLC may have relatively high computational complexity. For example, for a widespread method, it may be necessary to maintain and update the accumulated statistics of both qualifying syntaxes (level syntax and direction syntax). For the widespread method, it may be necessary to update the vlcTab and BVS values. For the widespread method, it may be necessary to ensure that the probability account values for 0 and 1 will not go beyond when they are scaled back when necessary. Adaptively changing group lengths can also complicate implementation.

Даже при его относительно высокой сложности широко распространенное уточняющее кодирование может быть неэффективным. Моделирования показывают, что для некоторых последовательностей уточняющее кодирование CAVLC может принимать до удвоенного количества битов (ухудшение 100%) по сравнению с уточняющим кодированием CABAC, тогда как полное ухудшение скорости передачи данных использования режима CAVLC вместо CABAC обычно составляет только примерно 15% или меньше. Эта неэффективность в значительной степени происходит вследствие того, что уточняющее кодирование CAVLC выполняет два цикла операций смещения битов в конце каждого блока (один для синтаксиса уровня, а другой для синтаксиса направления). Если блок содержит очень мало уточняющих коэффициентов (например, только 1 или 2 коэффициента), то частые операции смещения могут делать невозможным группирование 3 или 4 битов вместе, следовательно, неся большие потери битов, потому что в соответствии с этой схемой кодирование с переменной длиной использоваться не может.Even with its relatively high complexity, widespread precoding can be inefficient. The simulations show that, for some sequences, CAVLC refinement coding can take up to twice the number of bits (100% degradation) compared to CABAC refinement coding, while the total degradation in the data rate of using CAVLC mode instead of CABAC is usually only about 15% or less. This inefficiency is largely due to the fact that the CAVLC refinement coding performs two cycles of bit shifting operations at the end of each block (one for the level syntax and the other for the direction syntax). If a block contains very few refinement coefficients (for example, only 1 or 2 coefficients), then frequent offset operations may make it impossible to group 3 or 4 bits together, therefore, causing large loss of bits, because in accordance with this scheme, variable-length coding is used can not.

Как используется в данном описании, термины "один вариант осуществления", "вариант осуществления", "варианты осуществления", "этот вариант осуществления", "эти варианты осуществления", "один или больше вариантов осуществления", "некоторые варианты осуществления", "определенные варианты осуществления", "один вариант осуществления, "другой вариант осуществления" и т.п. означают "один или больше (но не обязательно все) варианты осуществления описанного раскрытия (раскрытий)", если явно не определено иначе.As used herein, the terms “one embodiment”, “embodiment”, “embodiments”, “this embodiment”, “these embodiments”, “one or more embodiments”, “some embodiments”, “ certain embodiments "," one embodiment, "another embodiment" and the like mean "one or more (but not necessarily all) embodiments of the disclosure (s) disclosed" unless explicitly stated otherwise.

Термин "определяющий" (и его грамматические варианты) используется в самом широком смысле. Термин "определяющий" охватывает большое разнообразие действий, и поэтому термин "определяющий" может включать в себя вычисление, работу с применением компьютера, обработку, выведение, исследование, поиск (например, поиск в таблице, базе данных или другой структуре данных), установление и т.п. Также термин "определяющий" может включать в себя прием (например, прием информации), обращение (например, обращение к данным в запоминающем устройстве) и т.п. Кроме того, термин "определяющий" может включать в себя разрешение, выбор, отбор, установление и т.п.The term “defining” (and its grammatical variations) is used in the broadest sense. The term “defining” covers a wide variety of actions, and therefore the term “defining” can include computing, working with a computer, processing, deriving, researching, searching (for example, searching in a table, database or other data structure), establishing and etc. Also, the term “determining” may include receiving (eg, receiving information), accessing (eg, accessing data in a storage device), and the like. In addition, the term “determining” may include resolution, selection, selection, establishment, and the like.

Фраза "основанный на" не означает "основанный только на", если явно не определено иначе. Другими словами, фраза "основанный на" описывает и "основанный только на" и "основанный по меньшей мере на".The phrase “based on” does not mean “based only on”, unless expressly defined otherwise. In other words, the phrase “based on” describes both “based only on” and “based at least on”.

Фиг.1 иллюстрирует один вариант 100 осуществления масштабируемой структуры потока битов кодирования видеоданных, далее упоминаемой как мелкозернистая масштабируемость (FGS). В FGS последовательность видеокадров сжимается в единственный поток видеокадров по меньшей мере с двумя слоями: основным слоем 106 и слоем 104 повышения качества. Как иллюстрируется, FGS может дополнительно включать в себя N слоев 102 повышения качества.FIG. 1 illustrates one embodiment 100 of implementing a scalable video coding bitstream structure, hereinafter referred to as fine grain scalability (FGS). In the FGS, a sequence of video frames is compressed into a single stream of video frames with at least two layers: a base layer 106 and a quality enhancement layer 104. As illustrated, the FGS may further include N quality enhancement layers 102.

В одном варианте осуществления основной слой 106 представляет собой немасштабируемое кодирование последовательности видеокадров и обычно имеет самое низкое качество последовательности видеокадров. Слой 104 повышения качества и N слоев 102 повышения качества имеют изменяющиеся уровни качества, которые выше уровня качества основного слоя 106. Декодирование каждого дополнительного слоя повышения качества, кодируемого после основного слоя 106, приводит к повышающемуся качеству последовательности видеокадров. Кроме того, поток битов FGS имеет одно существенное преимущество, заключающееся в том, что во время или после кодирования биты, относящиеся к слою 104 повышения качества и N слоям 102 повышения качества, могут быть укорочены (снижая скорость передачи битов и таким образом качество декодированного изображения) в реальном времени. Это обеспечивает гибкий контроль над скоростью передачи передаваемых битов и позволяет регулировать слой 104 повышения качества и N слоев 102 повышения качества так, чтобы они соответствовали располагаемой скорости передачи битов.In one embodiment, the core layer 106 is a non-scalable encoding of a sequence of video frames and typically has the lowest quality of the sequence of video frames. The quality enhancement layer 104 and N quality enhancement layers 102 have varying quality levels that are higher than the quality level of the base layer 106. Decoding of each additional quality enhancement layer encoded after the base layer 106 results in an increasing quality of the sequence of video frames. In addition, the FGS bit stream has one significant advantage in that, during or after encoding, the bits relating to the enhancement layer 104 and N enhancement layers 102 can be shortened (reducing the bit rate and thus the quality of the decoded image ) in real time. This provides flexible control over the transmission rate of the transmitted bits and allows you to adjust the layer 104 enhance the quality and N layers 102 enhance the quality so that they match the available bit rate.

Фиг.2 представляет блок-схему 200 сети, иллюстрирующую основной слой 202 и N слоев 204 повышения качества, посылаемые из кодера 208 через сеть 210 в декодер 212. Декодер 212 может декодировать и использовать основной слой 202 и все или части одного или больше слоев 204 повышения качества. Декодер 212 создает оптимальную аппроксимацию 214 исходной последовательности 206 видеокадров. В одном варианте осуществления оптимальная аппроксимация 214 отображается на дисплее 216, таком как компьютерный монитор, телевизионный приемник, PDA (персональный цифровой ассистент), кинопроектор и т.д. Последовательность 206 видеокадров кодируется как основной слой 202 и один или больше слоев 204 повышения качества. Основной слой 202 с более низким качеством представляет минимальный стандарт качества, а каждый из слоев 204 повышения качества является уточнением относительно качества изображения основного слоя 202. В одном варианте осуществления последовательность 206 видеокадров кодируется с использованием формата кодирования видеоданных FGS, как объясняется на фиг.1. Формат кодирования FGS может быть особенно полезен для приложений потоковой передачи и широковещательной рассылки видеоданных, где располагаемая ширина полосы передачи заранее может быть неизвестна. Во время или после кодирования слои 204 повышения качества могут быть произвольно укорочены так, чтобы соответствовать располагаемой скорости передачи битов. Когда доступная скорость передачи битов изменяется, слои 204 повышения качества могут быть укорочены соответствующим образом в реальном времени, чтобы обеспечивать декодированную последовательность видеокадров оптимального качества относительно текущей ширины полосы. Например, сеть 200 может укорачивать слои 204 повышения качества и затем посылать потоки битов разным адресатам с различными скоростями передачи битов.FIG. 2 is a block diagram 200 of a network illustrating a base layer 202 and N quality enhancement layers 204 sent from an encoder 208 through a network 210 to a decoder 212. Decoder 212 may decode and use the base layer 202 and all or parts of one or more layers 204 quality improvement. The decoder 212 creates an optimal approximation 214 of the original sequence 206 of video frames. In one embodiment, the optimal approximation 214 is displayed on the display 216, such as a computer monitor, television receiver, PDA (personal digital assistant), movie projector, etc. The sequence of video frames 206 is encoded as a base layer 202 and one or more quality enhancement layers 204. The lower quality base layer 202 represents a minimum quality standard, and each of the quality enhancement layers 204 is a refinement regarding the image quality of the base layer 202. In one embodiment, the video frame sequence 206 is encoded using the FGS video encoding format, as explained in FIG. 1. The FGS encoding format can be particularly useful for streaming and broadcast video applications where the available transmission bandwidth may not be known in advance. During or after coding, the quality improvement layers 204 may be arbitrarily shortened to match the available bit rate. When the available bit rate changes, the enhancement layers 204 can be shortened accordingly in real time to provide a decoded sequence of optimal quality video frames relative to the current bandwidth. For example, network 200 may shorten the quality improvement layers 204 and then send bit streams to different destinations with different bit rates.

Фиг.3 иллюстрирует способ 300 кодирования информации. В одном варианте осуществления подлежащая кодированию информация содержит последовательность видеокадров. Способ 300 может выполняться в кодере видеоданных, а инверсия способа 300 может выполняться с помощью декодера видеоданных. Кодер представляет собой устройство, используемое для изменения сигнала или данных в код. Затем декодер может производить исходный сигнал или аппроксимацию исходного сигнала из этого кода. Кодер и декодер могут вместе упоминаться как кодек видеоданных, который кодирует исходное изображение или последовательность видеокадров в сжатую форму и декодирует ее, чтобы производить копию или аппроксимацию исходной последовательности.3 illustrates a method 300 for encoding information. In one embodiment, the information to be encoded comprises a sequence of video frames. The method 300 may be performed in a video encoder, and the inversion of a method 300 may be performed using a video decoder. An encoder is a device used to change a signal or data into a code. Then the decoder can produce the original signal or approximation of the original signal from this code. The encoder and decoder may together be referred to as a video codec, which encodes the original image or sequence of video frames into a compressed form and decodes it to produce a copy or approximation of the original sequence.

Способ 300 начинается 302 с приема 304 кодером последовательности видеокадров. В одном варианте осуществления последовательность видеокадров представляет собой разуплотненный видеосигнал. Кодер начинает сжимать последовательность видеокадров, используя подобия между соседними кадрами видеоданных и составляя 306 прогнозирование текущего видеосигнала. Прогнозирование образуется из одного или больше предыдущих или будущих кадров и улучшается посредством компенсирования различий между кадрами. Затем формируется 308 разностный сигнал посредством вычитания прогнозируемого кадра из фактического текущего кадра. Кодер использует подобия между соседними выборками остаточной части прогнозирования для снижения пространственной избыточности.The method 300 begins 302 with the receipt by the encoder 304 of a sequence of video frames. In one embodiment, the sequence of video frames is a decompressed video signal. The encoder begins to compress the sequence of video frames, using the similarities between adjacent frames of video data and making 306 prediction of the current video signal. Prediction is formed from one or more previous or future frames and is improved by compensating for differences between frames. Then, a difference signal 308 is generated by subtracting the predicted frame from the actual current frame. The encoder uses similarities between adjacent samples of the residual prediction part to reduce spatial redundancy.

Способ 300 продолжается посредством применения 310 преобразования к разностному сигналу, чтобы снизить остающуюся пространственную избыточность. Преобразование обращает сигналы остаточной части прогнозирования в другую область, в которой они представлены коэффициентами преобразования. Коэффициенты квантуются 312, чтобы удалить незначимые значения, оставляя небольшое количество значимых коэффициентов, которые обеспечивают более компактное представление остаточных выборок. В одном варианте осуществления коэффициенты квантуются с использованием ПК-6, который эффективно уменьшает размер этапа квантования вдвое. В результате уменьшенного размера этапа квантования в текущем кадре отличными от нуля становятся больше коэффициентов преобразования. Например, остаток прогнозирования, кодируемый с использованием способа 300, может быть в слое повышения качества. Если предыдущий слой кадра видеоданных или основного слоя кадра видеоданных квантовался 312 с использованием параметра квантования ПК, то текущий слой повышения качества квантуется 312 с использованием ПК-6.The method 300 continues by applying 310 transforms to the difference signal to reduce the remaining spatial redundancy. The transformation converts the signals of the residual part of the prediction to another region in which they are represented by the conversion coefficients. The coefficients are quantized 312 to remove insignificant values, leaving a small number of significant coefficients that provide a more compact representation of the residual samples. In one embodiment, the coefficients are quantized using PC-6, which effectively halves the size of the quantization step. As a result of the reduced size of the quantization step in the current frame, more than the transform coefficients become nonzero. For example, the prediction residual encoded using method 300 may be in a quality improvement layer. If the previous layer of the video data frame or the main layer of the video data frame was quantized 312 using the PC quantization parameter, then the current quality improvement layer is quantized 312 using PC-6.

В одном варианте осуществления ненулевые квантованные коэффициенты в слое повышения качества могут быть классифицированы как незначимые, значимые или уточняющие коэффициенты. Термин "незначимые" коэффициенты относится к тем коэффициентам, которые являются нулевыми в основном или предыдущем слое и остаются нулевыми в текущем слое повышения качества. Термин "значимые" коэффициенты относится к тем коэффициентам, которые являются нулевыми в основном или предыдущем слое, но становятся ненулевыми коэффициентами в текущем слое повышения качества. Термин "уточняющие" коэффициенты относится к тем коэффициентам, которые уже являются ненулевыми в основном или предыдущем слое. В одном варианте осуществления каждый уточняющий коэффициент отображается 313 в троичный уточняющий символ. Троичный уточняющий символ может иметь одно из трех значений. Кодер просматривает текущий слой повышения качества и группирует 314 уточняющие символы в определенном порядке кодирования. В одном варианте осуществления кодер группирует 314 последовательные уточняющие символы в порядке кодирования, основанном на поддиапазонах. Каждая группа уточняющих символов упоминается как "группа уточняющих символов". Затем кодер кодирует 316 группы уточняющих символов и добавляет эти коды к потоку битов. В одном варианте осуществления кодер кодирует 316 группу уточняющих символов с использованием кода переменной длины (VLC) из таблицы VLC. В другом варианте осуществления таблица VLC, используемая для кодирования одной группы уточняющих символов, может динамически выбираться из набора таблиц VLC на основании текущей оценки статистического распределения уточняющих коэффициентов.In one embodiment, nonzero quantized coefficients in the enhancement layer may be classified as insignificant, significant, or refinement coefficients. The term “non-significant” coefficients refers to those coefficients that are zero in the main or previous layer and remain zero in the current quality improvement layer. The term “significant” coefficients refers to those coefficients that are zero in the main or previous layer, but become non-zero coefficients in the current quality improvement layer. The term “refinement” coefficients refers to those coefficients that are already non-zero in the main or previous layer. In one embodiment, each refinement coefficient is mapped 313 to a ternary refinement symbol. The trinity qualifier can have one of three meanings. The encoder scans the current quality improvement layer and groups 314 refinement symbols in a specific coding order. In one embodiment, the encoder groups 314 consecutive qualifying symbols in a coding order based on subbands. Each group of qualifying characters is referred to as a "group of qualifying characters". The encoder then encodes the 316 refinement symbol groups and adds these codes to the bitstream. In one embodiment, an encoder encodes a 316 group of qualifier symbols using a variable length code (VLC) from a VLC table. In another embodiment, the VLC table used to encode one group of refinement symbols may be dynamically selected from the set of VLC tables based on the current estimate of the statistical distribution of the refinement coefficients.

В дополнительном варианте осуществления кодер может кодировать уточняющие символы из множества слоев повышения качества. Например, кодер может кодировать множество слоев повышения качества в формате кодирования FGS. В одном варианте осуществления группы уточняющих символов из множества слоев повышения качества FGS кодируются с использованием адаптивного выбора таблицы VLC. В другом варианте осуществления таблица VLC фиксируется для одного слоя FGS, но может отличаться от таблицы VLC, используемой в другом слое FGS.In a further embodiment, the encoder may encode qualifying symbols from a plurality of enhancement layers. For example, an encoder may encode multiple enhancement layers in an FGS encoding format. In one embodiment, refinement symbol groups from a plurality of FGS enhancement layers are encoded using adaptive VLC table selection. In another embodiment, the VLC table is fixed for one FGS layer, but may be different from the VLC table used in another FGS layer.

Фиг.4 иллюстрирует один вариант осуществления способа 400 декодирования закодированной последовательности видеокадров. Способ 400 декодирования может быть инверсией способа 300 кодирования, показанного на фиг.3. Способ 400 декодирования начинается 402, когда декодер принимает 404 закодированную последовательность видеокадров. Закодированная последовательность видеокадров также может упоминаться как поток битов. Декодер декодирует 406 группы уточняющих символов с использованием таблицы VLC. Если группы уточняющих символов закодированы с использованием адаптивных таблиц VLC на основании статистического распределения уточняющих коэффициентов, та же самая статистическая информация используется в декодере для выбора правильной таблицы VLC. Если декодером принимаются закодированные уточняющие символы из множества слоев повышения качества, декодер может адаптировать таблицу VLC, используемую для декодирования уточняющих символов, в соответствии с их соответственными слоями повышения качества.FIG. 4 illustrates one embodiment of a method 400 for decoding an encoded sequence of video frames. The decoding method 400 may be an inverse of the encoding method 300 shown in FIG. Decoding method 400 starts 402 when the decoder receives 404 an encoded sequence of video frames. An encoded sequence of video frames may also be referred to as a bitstream. The decoder decodes 406 groups of qualifying symbols using the VLC table. If the refinement symbol groups are encoded using adaptive VLC tables based on the statistical distribution of the refinement coefficients, the same statistical information is used in the decoder to select the correct VLC table. If the decoder receives encoded refinement symbols from a plurality of enhancement layers, the decoder may adapt the VLC table used to decode the refinement symbols in accordance with their respective enhancement layers.

Способ 400 продолжается, и декодер декодирует 408 уточняющие коэффициенты, используя недавно декодированные уточняющие символы. Затем декодер переходит к обратному квантованию 410 декодированных уточняющих коэффициентов прежде, чем их добавлять обратно к подвергнутым обратному квантованию коэффициентам основного или предыдущего слоя. Способ 400 продолжается посредством применения 412 обратного преобразования к подвергнутым обратному квантованию коэффициентам. В одном варианте осуществления обратное преобразование может включать в себя обратное дискретное косинусное преобразование. После того как декодер применяет 412 обратное преобразование к уточняющим коэффициентам, декодер создает 414 аппроксимацию исходной последовательности видеокадров, как она существовала перед способом 300 кодирования на фиг.3.The method 400 continues, and the decoder decodes the refinement coefficients 408 using newly decoded refinement symbols. The decoder then proceeds to inverse quantization 410 of the decoded refinement coefficients before adding them back to the inverse quantized coefficients of the base or previous layer. Method 400 continues by applying inverse transform 412 to the inverse quantized coefficients. In one embodiment, the inverse transform may include an inverse discrete cosine transform. After the decoder applies 412 inverse transform to the refinement coefficients, the decoder creates 414 an approximation of the original sequence of video frames as it existed before the encoding method 300 of FIG. 3.

Фиг.5 иллюстрирует один вариант осуществления кадра 500 видеоданных, разделенного на множество макроблоков. Макроблоки представляют собой базовые элементы данных в процессе декодирования. Как иллюстрируется, кадр 500 видеоданных может быть разделен на множество макроблоков установленного размера, каждый из которых включает в себя выборку из кадра 500 видеоданных. В одном варианте осуществления каждый макроблок включает в себя выборку из 16×16 пикселей (минимальных элементов изображения). В дополнительном варианте осуществления каждый макроблок включает в себя компонент яркости (яркость) и два компонента хроматических данных (цветность). Компонент яркости относится к яркости конкретной выборки, в то время как компоненты цветности относятся к характеристикам цвета выборки. В одном варианте осуществления кадр 500 видеоданных дополнительно разбит на множество вырезок, вырезку А 502, вырезку В 504 и вырезку C 506. Вырезка представляет собой последовательность макроблоков, которые обрабатываются последовательно в определенном порядке кодирования. Например, вырезка А 502 и макроблоки, содержащиеся в вырезке А 502, могут кодироваться и посылаться в декодер перед вырезкой В 504 и вырезкой C 506. В дополнительном варианте осуществления порядок кодирования различных вырезок 502, 504 и 506 и отправки их в декодер могут быть произвольными. Например, вырезка В 504 может кодироваться и посылаться в декодер перед другими вырезками. Точно так же вырезка C 506 может кодироваться и посылаться в декодер перед другими двумя вырезками. Каждый макроблок в N слоях повышения качества соответствует макроблоку в каждом из N-1 слоев повышения качества и основного слоя.FIG. 5 illustrates one embodiment of a video frame 500 divided into multiple macroblocks. Macroblocks are the basic data elements in the decoding process. As illustrated, the video frame 500 may be divided into a plurality of macroblocks of a fixed size, each of which includes a sample of the video frame 500. In one embodiment, each macroblock includes a sample of 16 × 16 pixels (minimum image elements). In a further embodiment, each macroblock includes a luminance component (luminance) and two components of chromatic data (chrominance). The luminance component refers to the brightness of a particular sample, while the chroma components relate to the color characteristics of the sample. In one embodiment, the video frame 500 is further divided into a plurality of cuttings, cut A 502, cut B 504 and cut C 506. A cut is a sequence of macroblocks that are processed sequentially in a specific coding order. For example, clipping A 502 and macroblocks contained in clipping A 502 can be encoded and sent to a decoder before clipping B 504 and clipping C 506. In a further embodiment, the order of encoding various clippings 502, 504 and 506 can be arbitrary . For example, cut B 504 may be encoded and sent to a decoder before other cuts. Similarly, a C 506 notch can be encoded and sent to a decoder before the other two notches. Each macroblock in N quality improvement layers corresponds to a macroblock in each of the N-1 quality improvement layers and a base layer.

Фиг.6 иллюстрирует пример того, как классифицировать коэффициенты. Обеспечены блок 602 коэффициентов основного слоя и блок 604 коэффициентов слоя повышения качества. Пустые пространства в основном слое 602 и слое 604 повышения качества представляют коэффициенты, равные нулю. Эти коэффициенты упоминаются как незначимые коэффициенты. Каждое из остающихся пространств, 606, 608, 608a и 608b, представляет коэффициент, который может иметь ненулевое значение. В одном варианте осуществления элемент 602 коэффициента основного слоя находится в предыдущем слое повышения качества при использовании формата кодирования видеоданных FGS. Как предварительно объяснялось, во время кодирования по способу 300, показанному на фиг.3, коэффициенты преобразования квантуются. После квантования ненулевые коэффициенты в блоке 604 коэффициентов слоя повышения качества, у которых соответствующие коэффициенты в блоке 602 коэффициентов основного слоя являются нулевыми, далее упоминаются как значимые коэффициенты 606. Те коэффициенты, у которых соответствующие коэффициенты в основном слое являются ненулевыми, далее упоминаются как уточняющие коэффициенты 608. Поскольку значимые коэффициенты 606 и уточняющие коэффициенты 608 имеют отличающиеся статистические данные, они кодируются отдельно в слое повышения качества 604, следуя формату кодирования FGS.6 illustrates an example of how to classify coefficients. A base layer coefficient block 602 and a quality improvement layer coefficient block 604 are provided. The empty spaces in the main layer 602 and the quality improvement layer 604 represent coefficients of zero. These ratios are referred to as insignificant ratios. Each of the remaining spaces, 606, 608, 608a, and 608b, represents a coefficient that may have a nonzero value. In one embodiment, the base layer coefficient element 602 is in a previous quality improvement layer using the FGS video encoding format. As previously explained, during encoding according to the method 300 shown in FIG. 3, the transform coefficients are quantized. After quantization, nonzero coefficients in block 604 of the coefficients of the enhancement layer, for which the corresponding coefficients in block 602 of coefficients of the base layer are zero, are referred to as significant coefficients 606. Those coefficients for which the corresponding coefficients in the main layer are nonzero are hereinafter referred to as refinement coefficients 608. Since the significant coefficients 606 and the refinement coefficients 608 have different statistical data, they are encoded separately in the quality improvement layer 604, researching the FGS coding format.

В одном варианте осуществления значимые коэффициенты 606 являются теми коэффициентами, у которых соответствующие коэффициенты 606a и 606b (коэффициент, представляющий тот же самый поддиапазон) в основном или предыдущем слое являются нулевыми. Уточняющие коэффициенты 608 являются теми коэффициентами, у которых соответствующие коэффициенты 608a и 608b в основном или предыдущем слое являются ненулевыми.In one embodiment, the significant coefficients 606 are those coefficients for which the corresponding coefficients 606a and 606b (a coefficient representing the same subband) in the main or previous layer are zero. The refinement coefficients 608 are those coefficients for which the corresponding coefficients 608a and 608b in the main or previous layer are nonzero.

Фиг.7 иллюстрирует недостаток 700 широко распространенной схемы уточняющего кодирования CAVLC, в которой используется поблочный порядок кодирования. Поблочный порядок, по существу, генерирует в пространственном отношении неравномерное улучшение качества в пределах кадра 710 видеоданных. Как показано на фиг.7, когда поток 708 битов укорочен, все блоки видеоданных, представленные в потоке 708 битов до укорачивания 704 (блоки 0, 1,... n-1), будут иметь лучшее качество 712 видеоданных по сравнению с блоками 706 видеоданных (блоки n и on), у которых уточняющие коэффициенты теряются во время укорачивания 714. Лучший порядок для кодирования этих уточняющих коэффициентов заключается в использовании порядка кодирования, основанного на поддиапазонах, который подробно показан на следующем чертеже.7 illustrates a drawback 700 of the widespread CAVLC refinement coding scheme that uses block coding order. Block order essentially generates a spatially uneven quality improvement within the frame 710 of the video data. As shown in FIG. 7, when the 708 bit stream is shortened, all video blocks presented in the 708 bit stream before shortening 704 (blocks 0, 1, ... n-1) will have better quality 712 video data compared to blocks 706 video data (blocks n and on) in which the refinement coefficients are lost during shortening 714. The best order for encoding these refinement coefficients is to use a subband-based coding order, which is shown in detail in the following drawing.

Фиг.8 иллюстрирует один вариант осуществления основанного на поддиапазонах порядка 800 кодирования. В одном варианте осуществления первый блок 802, второй блок 804 и третий блок 806 представляют собой три блока коэффициентов в одном и том же слое повышения качества. В одном варианте осуществления блоки 802, 804 и 806 являются блоками в первом слое повышения качества FGS, так что основанный на поддиапазонах порядок 800 кодирования FGS может быть распространен на первый слой FGS и может использоваться в нем. По сравнению с порядком, основанным на блоках, основанный на поддиапазонах порядок 800 кодирования посылает уточняющие коэффициенты в соответствии с поддиапазоном области преобразования, которому они принадлежат. В одном варианте осуществления система обозначений Вx, y, иллюстрируемая в блоках 802, 804 и 806, может представлять коэффициент в поддиапазоне y и в блоке x. Например, B0,0 представляет коэффициент в первом поддиапазоне (поддиапазон 0) и в первом блоке 802.FIG. 8 illustrates one embodiment of subband-based order 800 coding. In one embodiment, the first block 802, the second block 804, and the third block 806 are three coefficient blocks in the same quality improvement layer. In one embodiment, blocks 802, 804, and 806 are blocks in a first FGS enhancement layer, so that subband-based FGS encoding order 800 can be extended to and used in the first FGS layer. Compared to the block-based order, the subband-based coding order 800 sends refinement coefficients in accordance with the sub-band of the transform domain to which they belong. In one embodiment, the Bx, y notation illustrated in blocks 802, 804, and 806 may represent a coefficient in the subband y and in block x. For example, B0.0 represents a coefficient in a first subband (subband 0) and in a first block 802.

В одном варианте осуществления кодер сначала кодирует любые уточняющие коэффициенты, присутствующие в позициях B0,0, B1,0 и B2,0. Затем кодер кодирует любые уточняющие коэффициенты, присутствующие в позициях B0,1, B1,1 и B2,1 и т.д. Порядок 800 кодирования поддиапазонов облегчает кодирование и отправку уточняющих коэффициентов в соответствии с поддиапазоном области преобразования, которому они принадлежат. Использование порядка 800 кодирования поддиапазонов приводит к более равномерному улучшению качества в пространственном отношении, поскольку принимается большее количество уточняющих битов.In one embodiment, the encoder first encodes any refinement coefficients present at positions B0.0, B1.0, and B2.0. The encoder then encodes any refinement coefficients present at positions B0.1, B1.1 and B2.1, etc. The subband coding order 800 facilitates the coding and sending of refinement coefficients according to the subband of the transform domain to which they belong. Using the order of 800 coding of the subbands results in a more uniform spatial improvement in quality, since more refinement bits are received.

Фиг.9 иллюстрирует один вариант 900 осуществления уточняющих символов (ref_symbol) 906, которые могут быть связаны с двумя синтаксисами, используемыми в уточняющем кодировании, coeff_refinement_flag 902 и coeff_refinement_dir_flag 904. Как предварительно объяснялось, если уточняющий коэффициент имеет значение 0, элементу синтаксиса coeff_refinement_flag 902 задается значение 0. Соответственно, ref_symbol 906 также задается значение 0. Если уточняющий коэффициент имеет ненулевое значение, coeff_ref_flag 902 задается значение 1. Если уточняющий коэффициент имеет тот же самый знак, что и соответствующий уточняющий коэффициент в основном слое или предыдущем слое повышения качества, coeff_ref_dir_flag 904 задается значение 0. Если знак уточняющего коэффициента в основном слое или предыдущем слое повышения качества противоположен знаку уточняющего коэффициента в текущем слое, подлежащем кодированию, coeff_ref_dir_flag 904 задается значение 1. В другом варианте осуществления параметры, определяющие значение coeff_ref_dir_flag 904, являются противоположными.FIG. 9 illustrates one embodiment 900 of refinement symbols (ref_symbol) 906 that may be associated with two syntaxes used in the refinement coding, coeff_refinement_flag 902 and coeff_refinement_dir_flag 904. As previously explained, if the refinement coefficient is 0, the syntax element coeff_refinementfl a value of 0. Accordingly, ref_symbol 906 is also set to 0. If the refinement coefficient has a non-zero value, coeff_ref_flag 902 is set to 1. If the refinement coefficient has the same sign as the corresponding the first refinement coefficient in the main layer or the previous enhancement layer, coeff_ref_dir_flag 904 is set to 0. If the sign of the refinement coefficient in the main layer or the previous enhancement layer is opposite to the sign of the refinement coefficient in the current layer to be encoded, coeff_ref_dir_flag 904 is set to 1. In another embodiment the implementation of the parameters that determine the value of coeff_ref_dir_flag 904 are opposite.

Если coeff_ref_dir_flag 904 задается значение 0, ref_symbol 906 задается значение 1, а если coeff_ref_dir_flag 904 задается значение 1, ref_symbol 906 задается значение 2. Затем значения ref_symbol 906 кодируются и включаются в поток битов. Ниже обеспечен один вариант осуществления кодирования значений ref_symbol 906.If coeff_ref_dir_flag 904 is set to 0, ref_symbol 906 is set to 1, and if coeff_ref_dir_flag 904 is set to 1, ref_symbol 906 is set to 2. Then the values of ref_symbol 906 are encoded and included in the bit stream. One embodiment of encoding ref_symbol 906 values is provided below.

Фиг.10 иллюстрирует один вариант осуществления таблицы 1000 кодирования с переменной длиной (VLC), используемой для кодирования значений опорных символов, как пояснялось на фиг.9. При порядке кодирования поддиапазонов последовательные уточняющие символы могут группироваться вместе и группа 1002 уточняющих символов кодируется с использованием таблицы 1000 VLC. Таблица 1000 включает в себя множество элементов. Каждый элемент имеет значение группы 1002 уточняющих символов, как пояснялось на фиг.9, длину 1004 кода для кода переменной длины, предназначенного для кодирования группы 1002 уточняющих символов конкретного значения, и кодовое слово 1006 кода переменной длины для кодирования группы 1002 уточняющих символов конкретного значения. Затем кодовое слово 1006 включается в поток битов и посылается в декодер.FIG. 10 illustrates one embodiment of a variable length coding table (VLC) 1000 used to encode reference symbol values, as explained in FIG. 9. In the coding order of the subbands, consecutive qualifier symbols may be grouped together and the qualifier symbol group 1002 is encoded using the VLC table 1000. Table 1000 includes many elements. Each element has the value of a qualifier group 1002, as explained in FIG. 9, a code length 1004 for a variable length code for encoding a particular character group 1002 and a variable code codeword 1006 for encoding a specific character group 1002. Then, the codeword 1006 is included in the bitstream and sent to the decoder.

В одном варианте осуществления в уточняющем кодировании используется единственная таблица VLC, подобная таблице 1000; для кодера и декодера не является необходимым постоянно накапливать и обновлять статистические данные уточняющего символа, таким образом вычислительная сложность может быть значительно снижена. В другом варианте осуществления таблица VLC выбирается из множества таблиц на основании оценки статистического распределения уточняющих коэффициентов, эффективность может быть улучшена с дополнительной сложностью вероятностной оценки и выбора таблицы.In one embodiment, a refinement coding uses a single VLC table similar to table 1000; it is not necessary for the encoder and decoder to constantly accumulate and update statistics of the refinement symbol, thus the computational complexity can be significantly reduced. In another embodiment, the VLC table is selected from a plurality of tables based on an estimate of the statistical distribution of refinement coefficients, efficiency can be improved with the added complexity of probabilistic estimation and table selection.

Обращаясь теперь к фиг.11, отметим, что современные стандарты SVC обеспечивают возможность для множества слоев на вершине дискретного основного слоя 1102. Когда имеется больше, чем один слой 1104 и 1106 FGS, начиная со второго слоя 1106 FGS и выше, все уточняющие коэффициенты принадлежат одному из двух классов: "старые" уточняющие коэффициенты представляют собой коэффициенты, которые уже имеют уточняющие коэффициенты в предыдущем слое 1104 FGS, а "новые" уточняющие коэффициенты представляют собой коэффициенты, которые стали значимыми только в предыдущем слое 1104 FGS и только входят в уточняющую стадию в текущем слое 1106. Фиг.11 обеспечивает пример наличия двух слоев 1104 и 1106 FGS. Первый слой 1104 FGS содержит значимые коэффициенты 1108 так же, как уточняющие коэффициенты 1110. Второй слой 1106 FGS включает в себя "старые" уточняющие коэффициенты 1112, а также "новые" уточняющие коэффициенты 1114. Коэффициент 1116 представляет собой новый значимый коэффициент во втором слое 1106 FGS. Остающиеся незаполненные позиции представляют собой незначимые коэффициенты, которые не имеют ненулевых значений.Turning now to FIG. 11, it is noted that current SVC standards allow for multiple layers on top of a discrete base layer 1102. When there are more than one FGS layer 1104 and 1106, starting from the second FGS layer 1106 and above, all refinement coefficients belong one of two classes: “old” refinement coefficients are coefficients that already have refinement coefficients in the previous layer 1104 FGS, and “new” refinement coefficients are coefficients that became significant only in the previous layer The second FGS 1104 and only enter the refinement stage in the current layer 1106. FIG. 11 provides an example of the presence of two FGS layers 1104 and 1106. The first FGS layer 1104 contains significant coefficients 1108 as well as the refinement coefficients 1110. The second FGS layer 1106 includes the "old" refinement coefficients 1112, as well as the "new" refinement coefficients 1114. The coefficient 1116 represents a new significant coefficient in the second layer 1106 FGS. The remaining unfilled positions are insignificant coefficients that do not have non-zero values.

Два типа уточняющих коэффициентов 1112 и 1114 имеют различные вероятностные распределения символов. Поэтому в одном варианте осуществления для их кодирования лучше использовать различные таблицы VLC. Кроме того, в зависимости от уровня текущего слоя FGS могут использоваться различные таблицы кодирования VLC. Например, для кодирования уточняющих коэффициентов, включенных во второй слой 1106 FGS, может использоваться другая таблица VLC, чем таблица, используемая для применения уточняющих коэффициентов, включенных в первый слой 1104 FGS. Следовательно, чтобы улучшить эффективность, должна использоваться таблица кодирования, лучше приспособленная для такого вероятностного распределения. Такая адаптация таблицы VLC имеет очень низкую сложность, поскольку она основана исключительно на классе уточняющих коэффициентов и уровне слоя FGS, а не на том, чтобы полагаться на сбор и обновление статистических данных символов. В другом варианте осуществления таблица VLC может выбираться динамически на основании оценки статистического распределения уточняющих коэффициентов для текущего слоя FGS.Two types of refinement coefficients 1112 and 1114 have different probability distributions of symbols. Therefore, in one embodiment, it is better to use different VLC tables to encode them. In addition, depending on the level of the current FGS layer, different VLC coding tables may be used. For example, to code the refinement coefficients included in the second FGS layer 1106, a different VLC table may be used than the table used to apply the refinement coefficients included in the first FGS layer 1104. Therefore, in order to improve efficiency, a coding table better suited for such a probability distribution should be used. This adaptation of the VLC table has very low complexity because it is based solely on the class of refinement coefficients and the level of the FGS layer, and not on relying on the collection and updating of symbol statistics. In another embodiment, the VLC table may be dynamically selected based on an estimate of the statistical distribution of refinement coefficients for the current FGS layer.

Фиг.12 иллюстрирует один вариант 1200 осуществления решения проблемы, обусловленной группированием уточняющих символов, когда перемежаются значимое и уточняющее кодирование. В кодировании FGS проход значимого кодирования и проход уточняющего кодирования для различных блоков обычно перемежаются вместе. Одна причина для этого заключается в том, что один блок может содержать меньшее количество значимых коэффициентов, чем другой блок. Когда проход значимого кодирования определенного блока закончен, вслед за этим начинается уточняющий проход для этого блока, в то время как блок рядом с ним до сих пор проходит свой проход значимого кодирования. В одном варианте осуществления значимое кодирование (S0,0, а затем КБЛ (конец блока)) для блока A 1202 заканчивается после двух циклов. Затем начнется уточняющее кодирование R0,0 (и позже R0,1). Но в это время значимое кодирование блока В 1204 (коэффициенты S1,2 и КБЛ) все еще продолжается.12 illustrates one embodiment 1200 of solving a problem caused by a grouping of refinement symbols when meaningful and refinement coding is interleaved. In FGS coding, the significant coding pass and the refinement coding pass for different blocks are usually interleaved. One reason for this is that one block may contain fewer significant coefficients than another block. When the significant coding pass of a certain block is completed, after that, the qualifying pass for this block begins, while the block next to it still passes its significant coding pass. In one embodiment, meaningful coding (S0.0 and then CBL (end of block)) for block A 1202 ends after two cycles. Then, refinement coding R0.0 (and later R0.1) will begin. But at this time, significant coding of block B 1204 (coefficients S1,2 and KBL) is still ongoing.

Другая причина для перемежаемого значимого и уточняющего кодирования заключается в использовании порядка кодирования поддиапазонов. Фиг.13 иллюстрирует другой вариант 1300 осуществления, где значимое кодирование и уточняющее кодирование могут перемежаться. В одном варианте осуществления коэффициенты просматриваются в поддиапазонах. Например, при просматривании 0-го поддиапазона 1306 блок A 1302 содержит значимый коэффициент S0,0. Следовательно, выполняется значимое кодирование S0,0. Точно так же, когда просматривается 0-й поддиапазон 1306 блока В 1304, выполняется уточняющее кодирование уточняющего коэффициента R1,0.Another reason for interleaved significant and refinement coding is to use the coding order of the subbands. 13 illustrates another embodiment 1300 where meaningful coding and refinement coding may be interleaved. In one embodiment, coefficients are scanned in subbands. For example, when viewing the 0th subband 1306, block A 1302 contains a significant coefficient S0.0. Therefore, significant coding of S0.0 is performed. Similarly, when the 0th subband 1306 of block B 1304 is scanned, refinement coding of the refinement coefficient R1.0 is performed.

Это поведение перемежаемого значимого и уточняющего кодирования производит проблему, когда уточняющее кодирование выполняется посредством группирования множества (например, трех) уточняющих коэффициентов. На стороне кодера три уточняющих символа буферизируются прежде, чем посылается кодовое слово VLC. Но на стороне декодера всякий раз, когда сталкиваются с декодированием уточняющего коэффициента, декодер будет пытаться считывать из потока битов кодовое слово VLC, представляющее группу из трех уточняющих символов. Но это кодовое слово все еще буферизировано в буфере кодирования кодера и еще не было отправлено. Потеря синхронизации между кодером и декодером означает, что такая схема кодирования (группирование уточняющих символов, когда значимый и уточняющий проходы перемежаются) будет приводить к сбою. Чтобы решить эту проблему, обеспечены и представлены ниже два решения.This behavior of the interleaved significant and refinement coding produces a problem when the refinement coding is performed by grouping a plurality of (e.g., three) refinement coefficients. On the encoder side, three qualifier symbols are buffered before the VLC codeword is sent. But on the decoder side, whenever faced with decoding of the refinement coefficient, the decoder will try to read the VLC code word from the bitstream, which represents a group of three refinement symbols. But this codeword is still buffered in the encoder encoding buffer and has not yet been sent. Loss of synchronization between the encoder and the decoder means that such a coding scheme (grouping of qualifying symbols when the significant and qualifying passes are interspersed) will lead to a failure. To solve this problem, two solutions are provided and presented below.

Фиг.14 иллюстрирует способ решения 1400 на основе декодера, которое не требует никакого изменения на стороне кодера. Кодер всегда может пытаться группировать вместе каждые три уточняющих символа перед отправкой ключевого слова. На стороне декодирования, когда требуется уточняющий коэффициент, выполняются следующие операции. Способ 1400 начинается установлением 1402 счетчика в исходное состояние на нуль. Сохраняется 1404 местоположение запрашиваемого уточняющего коэффициента, сохраняется 1406 знак соответствующего коэффициента основного слоя, счетчик (инициализированный на нуль в начале декодирования вырезки) увеличивается, чтобы отслеживать, сколько таких запросов было сделано 1408, если этот счетчик достигает трех 1410, активизируется 1412 операция "считывания" и выполняется нормальное декодирование VLC. Возвращается группа из трех уточняющих символов, которые затем распределяются обратно в соответствующие местоположения коэффициентов, как они предварительно сохранялись, 1414, и счетчик возвращается в исходное положение на нуль 1416. Если счетчик еще не достиг трех 1410, способ 1400 возвращается к этапу 1402 и продолжается его выполнение.FIG. 14 illustrates a decoder based decision method 1400 that does not require any change on the encoder side. The encoder can always try to group together every three qualifying characters before sending the keyword. On the decoding side, when a refinement coefficient is required, the following operations are performed. Method 1400 begins by setting the counter 1402 to its initial state of zero. 1404 the location of the requested refinement coefficient is stored, 1406 the sign of the corresponding coefficient of the base layer is stored, the counter (initialized to zero at the beginning of clipping decoding) is increased to track how many such requests were made 1408, if this counter reaches three 1410, the “read” operation is activated 1412 and normal VLC decoding is performed. A group of three qualifying symbols is returned, which are then distributed back to the corresponding locations of the coefficients, as they were previously stored, 1414, and the counter returns to its original position at zero 1416. If the counter has not yet reached three 1410, method 1400 returns to step 1402 and continues performance.

В то время как решение на стороне декодера накладывает большую нагрузку на декодер, решение на стороне кодера имеет минимальное воздействие сложности на декодер. Основная концепция заключается в том, что кодер всегда отправляет множество (например, три) уточняющих коэффициентов, декодер гарантированно имеет достаточно уточняющих символов, находящихся в буфере, когда требуются уточняющие коэффициенты. Фиг.15 иллюстрирует способ 1500 одного типа решения на основе кодера. Кодер предварительно просматривает 1502 определенное количество блоков в вырезке и определяет порядок 1504, с которым все уточняющие коэффициенты будут посылаться во время фактической стадии кодирования. По этому способу уточняющие коэффициенты сохраняются 1506 в очереди в соответствии с этим порядком кодирования. На стадии кодирования, когда нужно посылать уточняющий коэффициент, определяется 1508, был ли он сгруппирован вместе с предыдущим коэффициентом (коэффициентами) и уже отправлен. Если так, то никакое действие не предпринимается 1510; иначе, этот уточняющий коэффициент посылается 1512 вместе с двумя коэффициентами, находящимися непосредственно рядом с ним в очереди. Способ 1500 продолжается до тех пор, пока проход кодирования не будет закончен.While the decision on the decoder side places a heavy burden on the decoder, the decision on the encoder side has minimal complexity impact on the decoder. The basic concept is that the encoder always sends a plurality (for example, three) of refinement coefficients, the decoder is guaranteed to have enough refinement characters in the buffer when refinement coefficients are required. FIG. 15 illustrates a method 1500 of one type of encoder based decision. The encoder previews 1502 a certain number of blocks in the slice and determines the order 1504 with which all refinement coefficients will be sent during the actual encoding stage. In this method, the refinement coefficients are stored 1506 in the queue in accordance with this encoding order. At the coding stage, when it is necessary to send a refinement coefficient, it is determined 1508 whether it has been grouped together with the previous coefficient (s) and has already been sent. If so, then no action is taken 1510; otherwise, this refinement coefficient is sent 1512 along with two coefficients located immediately next to it in the queue. Method 1500 continues until the encoding pass is completed.

Отметим, что решения и на основе кодера, и на основе декодера применяются к любому типу перемежения значимого прохода и уточняющего прохода из различных блоков, включая, но не ограничиваясь этим, два порядка кодирования, поддерживаемые в настоящее время в рекомендации проекта SVC. Эти два решения также применяются к группированию любого количества уточняющих символов, а не ограничены только группированием трех символов.Note that decisions based on both the encoder and the decoder are applied to any type of interleaving of a significant pass and a refinement pass from various blocks, including, but not limited to, the two coding orders currently supported in the SVC draft recommendation. These two solutions also apply to grouping any number of qualifying characters, and are not limited to only grouping three characters.

Также должно быть отмечено, что и решения на основе кодера, и решения на основе декодера можно применять к уточняющему кодированию на основе блоков, как определено в 5-м Объединенном проекте (JD5) SVC, таким образом делая ненужным смещение уточняющих остающихся битов, хранящихся в буфере, в конце каждого блока. Для решения на основе декодера дополнительное изменение на стороне кодера может гарантировать синхронизацию кодера и декодера. Поскольку схема уточняющего кодирования на основе блоков в JD5 адаптирует таблицу VLC, количество сгруппированных уточняющих символов может изменяться между 1, 3 и 4. В конце блока кодер должен приостанавливать адаптацию таблицы VLC до тех пор, пока он не столкнется с достаточным количеством уточняющих коэффициентов (это случится несколько позже, поскольку кодер выполняет уточняющее кодирование последовательных блоков). Когда он столкнется с достаточным количеством уточняющих коэффициентов, чтобы вызвать операцию записи кодового слова VLC, кодер может возобновить нормальную адаптацию таблицы VLC. В соответствии с этой схемой частая операция смещения (выполняемая один раз для каждого блока), как используется в широко распространенном уточняющем кодировании, может быть сведена к минимуму, и эффективность кодирования может быть значительно улучшена.It should also be noted that both encoder-based and decoder-based solutions can be applied to block-based refinement coding as defined in the 5th Joint Project (JD5) SVC, thereby making it unnecessary to offset the remaining refinement bits stored in buffer at the end of each block. For a decoder based solution, an additional change on the encoder side can guarantee the synchronization of the encoder and decoder. Since the block-based refinement coding scheme in JD5 adapts the VLC table, the number of grouped update symbols can vary between 1, 3, and 4. At the end of the block, the encoder must pause the adaptation of the VLC table until it encounters a sufficient number of refinement factors (this will happen a little later, since the encoder performs refinement coding of consecutive blocks). When it encounters enough refinement coefficients to trigger a VLC codeword write operation, the encoder can resume normal adaptation of the VLC table. According to this scheme, the frequent offset operation (performed once for each block), as used in the widespread refinement coding, can be minimized, and coding efficiency can be significantly improved.

В конце кодирования определенного количества уточняющих коэффициентов может использоваться операция смещения, если количество остающихся уточняющих коэффициентов является ненулевым и составляет меньше, чем размер группы, используемой в обычном процессе кодирования. Один способ выполнения операции смещения состоит в добавлении наиболее вероятных символов, чтобы сделать полную группу и кодировать последнюю группу так же, как другие группы. Например, предположим, что обычный размер группы принимается равным 3, и что в операции смещения имеется один остающийся коэффициент, подлежащий кодированию, и что символом является 2. Будет кодироваться группа (2, 0, 0), предполагая, что символ "0" является наиболее вероятным символом в троичном наборе символов. На стороне декодера эти заполняющие символы отбрасываются. Операции смещения также можно выполнять более часто, чтобы снизить сложность реализации. Группа уточняющих коэффициентов, которые кодируются вместе, формируется из различных местоположений. Ограничение расстояния между коэффициентами в одной и той же группе приведет к нескольким разгруппированным символам, которые должны быть обработаны с помощью операций сдвигания. В другом варианте осуществления вместо формирования полной группы посредством прибавления наиболее вероятных символов, которые будут отбрасываться декодером, используются таблицы VLC, разработанные для кодирования меньших групп. Это может использоваться, когда количество уточняющих коэффициентов, подлежащих сдвиганию, будет точно известно декодеру. Предположим, что размер группы составляет 3 и имеется только один коэффициент "R", подлежащий сдвиганию. Вместо кодирования группы (R, 0, 0) с использованием таблиц VLC для кодирования группы из 3 символов более эффективно использовать специальную таблицу VLC. Например, уточняющий символ со значением "0" кодируется как "1", уточняющий символ со значением "1" кодируется как "01", а уточняющий символ со значением "2" кодируется как "00". Точно так же, если размер группы составляет 3, и имеются два коэффициента, "R1" и "R2", подлежащие сдвиганию. Вместо кодирования группы (R1, R2, 0) могут использоваться другие таблицы VLC, чтобы кодировать меньшую группу (R1, R2). В одном варианте осуществления используется код Exponential-Golomb, чтобы кодировать индекс группы, который вычисляется как R1*3 + R2. Следует отметить, что эквивалентным образом индекс кодируемой группы также может быть сформирован как R1 + R2*3.At the end of the encoding of a certain number of refinement coefficients, an offset operation may be used if the number of remaining refinement coefficients is nonzero and less than the size of the group used in the normal encoding process. One way to perform the offset operation is to add the most likely characters to make a complete group and encode the last group in the same way as other groups. For example, suppose that the normal group size is taken to be 3, and that there is one remaining coefficient to be encoded in the offset operation, and that the symbol is 2. The group (2, 0, 0) will be encoded, assuming that the symbol “0” is the most likely character in the ternary character set. On the decoder side, these padding symbols are discarded. Offsets can also be performed more frequently to reduce implementation complexity. A group of refinement coefficients that are encoded together is formed from various locations. Limiting the distance between the coefficients in the same group will result in several ungrouped characters that must be processed using shift operations. In another embodiment, instead of forming a complete group by adding the most probable characters that will be discarded by the decoder, VLC tables designed to encode smaller groups are used. This can be used when the number of refinement factors to be shifted is known to the decoder. Suppose the group size is 3 and there is only one “R” coefficient to be shifted. Instead of encoding a group (R, 0, 0) using VLC tables, it is more efficient to use a special VLC table to encode a group of 3 characters. For example, a qualifier with a value of "0" is encoded as "1", a qualifier with a value of "1" is encoded as "01", and a qualifier with a value of "2" is encoded as "00". Similarly, if the group size is 3, and there are two coefficients, “R1” and “R2”, to be shifted. Instead of encoding a group (R1, R2, 0), other VLC tables can be used to encode a smaller group (R1, R2). In one embodiment, Exponential-Golomb code is used to encode the group index, which is computed as R1 * 3 + R2. It should be noted that in an equivalent way, the index of the encoded group can also be formed as R1 + R2 * 3.

Фиг.16 иллюстрирует устройство 1600, сконфигурированное для обрабатывания цифровых изображений и/или цифровых видеоданных. Устройство 1600 может представлять собой или может быть реализовано в цифровом телевизионном приемнике, цифровой системе непосредственного вещания, устройстве беспроводной связи, персональном цифровом ассистенте (ПЦА), компактном портативном компьютере, настольном компьютере, цифровой фотокамере, устройстве цифровой записи, цифровом телевизионном приемнике с поддержкой работы в сети, радиотелефоне сотовой или спутниковой связи или в любом телекоммуникационном устройстве с возможностями видеотелефонной связи (ВТС).FIG. 16 illustrates an apparatus 1600 configured to process digital images and / or digital video data. The device 1600 may be or may be implemented in a digital television receiver, digital direct broadcast system, wireless communication device, personal digital assistant (PDA), compact portable computer, desktop computer, digital camera, digital recording device, digital television receiver with support for work in a network, radiotelephone of cellular or satellite communication, or in any telecommunication device with video telephony (PTS) capabilities.

Устройство 1600 может обрабатывать, кодировать, декодировать, передавать и/или принимать данные изображений и/или видеоданные. Видеоданные могут быть захвачены видеокамерой, такой как модуль захвата видеоизображений (или датчик изображения) 1612, извлечены из архива видеоданных или быть получены другим способом. Модуль 1610 кодирования видеоданных в устройстве 1600 может использовать стандарт кодирования видеоданных, такой как MPEG-4, ITU-T H.263, ITU-T H.264, или любой другой стандарт кодирования видеоданных. Модуль 1610 кодирования видеоданных может поддерживать методы межкадрового кодирования, такие как оценка движения и компенсация движения, и методы внутрикадрового кодирования, такие как методы кодирования с пространственной оценкой и внутрикадровым прогнозированием.The device 1600 may process, encode, decode, transmit, and / or receive image data and / or video data. Video data may be captured by a video camera, such as a video capture module (or image sensor) 1612, extracted from a video archive, or otherwise obtained. The video encoding module 1610 in the device 1600 may use a video encoding standard, such as MPEG-4, ITU-T H.263, ITU-T H.264, or any other video encoding standard. Video encoding module 1610 may support inter-frame coding techniques, such as motion estimation and motion compensation, and intraframe coding techniques, such as spatial estimation and intra-frame prediction coding methods.

Устройство 1600 может включать в себя устройство 1612 захвата изображений/видеоданных, такое как фотокамера или видеокамера, чтобы захватывать изображения или последовательности видеокадров и сохранять захваченные изображения или последовательности в запоминающем устройстве 1614. Модуль 1602 обработки изображений/видеоданных может обрабатывать изображения и/или последовательности видеокадров. Запоминающее устройство 1604 может сохранять изображения и/или последовательности видеокадров перед и после такой обработки.The device 1600 may include an image / video capture device 1612, such as a camera or video camera, to capture images or sequences of video frames and store the captured images or sequences in memory 1614. The image / video processing module 1602 may process images and / or sequences of video frames . A storage device 1604 may store images and / or sequences of video frames before and after such processing.

Приемопередатчик 1616 может принимать и/или передавать кодированные последовательности видеокадров в другое устройство. Приемопередатчик 1616 может использовать стандарт беспроводной связи, такой как множественный доступ с кодовым разделением каналов (CDMA). Примеры стандартов CDMA включают в себя CDMA 1xEV-DO, WCDMA (широкополосный множественный доступ с кодовым разделением каналов) и т.д.The transceiver 1616 may receive and / or transmit encoded sequences of video frames to another device. The transceiver 1616 may use a wireless standard, such as code division multiple access (CDMA). Examples of CDMA standards include CDMA 1xEV-DO, WCDMA (Wideband Code Division Multiple Access), etc.

Один или больше элементов устройства 1600 могут быть коммуникационным образом соединены через шину 1618 связи. В дополнение к элементам, показанным на фиг.16, или вместо них, в устройство 1600 могут быть включены другие элементы. Архитектура, иллюстрируемая на фиг.16, представляет собой просто пример. Методы, описанные в данном описании, могут быть реализованы с помощью ряда других архитектур.One or more elements of device 1600 may be communicatively coupled via communication bus 1618. In addition to, or instead of, the elements shown in FIG. 16, other elements may be included in device 1600. The architecture illustrated in FIG. 16 is merely an example. The methods described herein can be implemented using a number of other architectures.

Запоминающее устройство 1614 может иметь относительно большое пространство памяти. Запоминающее устройство 1614 может содержать динамическое оперативное запоминающее устройство (ДОЗУ) или флэш-память. Запоминающее устройство 1614 может содержать технологию памяти логического элемента "НЕ - ИЛИ" или "НЕ - И", или любую другую технологию хранения данных. В других примерах запоминающее устройство 1614 может содержать энергонезависимое запоминающее устройство или любой другой тип устройства хранения данных.The storage device 1614 may have a relatively large memory space. Storage device 1614 may comprise dynamic random access memory (DOS) or flash memory. The storage device 1614 may comprise a NOR or NAND logic element memory technology, or any other data storage technology. In other examples, the storage device 1614 may comprise a non-volatile storage device or any other type of storage device.

Модуль 1602 обработки изображений/видеоданных может содержать набор микросхем для мобильного радиотелефона, который может включать в себя аппаратное обеспечение, программное обеспечение, встроенное программное обеспечение и/или один или больше микропроцессоров, цифровые процессоры сигналов (ЦПС), интегральные схемы прикладной ориентации (ИСПО), программируемые пользователем вентильные матрицы (ППВМ) или их различные комбинации. Модуль 1602 обработки может включать в себя локальное запоминающее устройство 1604, подсоединенное к модулю 1608 предварительной обработки изображений/видеоданных и к модулю 1610 кодирования изображений/видеоданных. Модуль 1610 кодирования может содержать кодер/декодер (кодек) для кодирования (или сжатия) и декодирования (или разуплотнения) цифровых видеоданных.The image / video processing module 1602 may comprise a chipset for a mobile radiotelephone, which may include hardware, software, firmware, and / or one or more microprocessors, digital signal processors (DSPs), application oriented integrated circuits (ISPS) , user-programmable gate arrays (PPVM) or their various combinations. Processing module 1602 may include a local storage device 1604 connected to image / video pre-processing module 1608 and to image / video data encoding module 1610. Encoding module 1610 may comprise an encoder / decoder (codec) for encoding (or compressing) and decoding (or decompressing) digital video data.

Локальное запоминающее устройство 1604 может содержать пространство менее и более быстродействующего запоминающего устройства относительно запоминающего устройства 1614. Например, локальное запоминающее устройство 1604 может содержать синхронное динамическое ОЗУ (СДОЗУ). Локальное запоминающее устройство 1604 может содержать внутрикристальную память, объединенную с другими компонентами модуля 1602 обработки, чтобы обеспечивать быстрый доступ к данным во время процесса кодирования, требующего интенсивной работы процессора. Однако запоминающие устройства 1614 и 1604 могут быть объединены в одно запоминающее устройство или могут быть реализованы в ряде других конфигураций. Контроллер 1606 запоминающего устройства может управлять выбором и обратной записью запоминающего устройства в локальном запоминающем устройстве 1604.The local storage device 1604 may comprise a less and faster memory space relative to the storage device 1614. For example, the local storage device 1604 may include synchronous dynamic RAM (DLC). The local storage device 1604 may comprise an on-chip memory integrated with other components of the processing module 1602 to provide quick access to data during an encoding process requiring intensive processor operation. However, storage devices 1614 and 1604 can be combined into one storage device or can be implemented in a number of other configurations. A storage controller 1606 can control the selection and writeback of a storage device to local storage 1604.

Модуль 1608 предварительной обработки изображений/видеоданных может выполнять один или больше методов обработки изображений на кадрах последовательности видеокадров, чтобы улучшать качество изображения и таким образом улучшать качество последовательности видеокадров. Например, модуль 1608 предварительной обработки изображений/видеоданных может выполнять такие методы, как коррекция спада характеристики линзы, масштабирование, коррекция цвета, преобразование цвета и пространственная фильтрация. Модуль 1608 предварительной обработки изображений/видеоданных также может выполнять другие методы. В общем, методы, выполняемые модулем 1608, дальше упоминаются как методы "предварительной обработки" изображений, поскольку эти методы предшествуют кодированию, выполняемому модулем 1610 кодирования изображений/видеоданных.The image / video pre-processing module 1608 may perform one or more image processing techniques on frames of a sequence of video frames to improve image quality and thus improve the quality of the sequence of video frames. For example, image / video pre-processing module 1608 may perform techniques such as correction of a decline in lens performance, scaling, color correction, color conversion, and spatial filtering. The image / video pre-processing module 1608 may also perform other methods. In general, the methods performed by module 1608 are hereinafter referred to as “image pre-processing” methods, since these methods precede the encoding performed by the image / video encoding module 1610.

Модуль 1612 захвата изображений/видеоданных может содержать датчики изображения, которые включают в себя группы цветных светофильтров (ГЦСФ), выполненные на поверхности датчиков. Предварительная обработка изображений, выполняемая модулем 1608, может улучшать качество последовательности видеокадров, захваченных модулем 1612 захвата. Например, модуль 1608 предварительной обработки и/или модуль 1610 кодирования может содержать ЦПС, запрограммированный для обработки изображений, захваченных модулем 1612 захвата. Та же самая область запоминающего устройства 1604 (или запоминающего устройства 1614) может использоваться и для целей предварительной обработки изображений, и для других целей сохранения.The image / video capture module 1612 may include image sensors that include color filter groups (GSCFs) made on the surface of the sensors. Image pre-processing by module 1608 can improve the quality of the sequence of video frames captured by capture module 1612. For example, preprocessing module 1608 and / or encoding module 1610 may comprise a DSP programmed to process images captured by capture module 1612. The same area of the storage device 1604 (or storage device 1614) can be used for the purposes of image pre-processing, and for other storage purposes.

Модуль 1610 кодирования изображений/видеоданных может выполнять кодирование изображений и/или видеоданных, которое может включать в себя один или больше методов сжатия видеоданных, таких как межкадровое сжатие и/или внутрикадровое сжатие. Например, модуль 1610 кодирования может реализовывать оценку движения и способы компенсации движения, чтобы использовать временную или межкадровую корреляцию данных для обеспечения межкадрового сжатия. В качестве альтернативы или дополнения, модуль 1610 кодирования может выполнять методы пространственной оценки и внутрикадрового прогнозирования, чтобы использовать пространственную или внутрикадровую корреляцию данных для обеспечения внутрикадрового сжатия. Результаты компенсации движения (или внутрикадрового прогнозирования) упоминаются как "остаток" и могут содержать блок данных, показательный для различий между текущим блоком видеоданных, подлежащим кодированию, и прогнозируемым блоком, идентифицированным по оценке движения или пространственной оценке.The image / video encoding module 1610 may perform encoding of images and / or video data, which may include one or more video compression methods, such as inter-frame compression and / or intra-frame compression. For example, coding module 1610 may implement motion estimation and motion compensation methods to use temporal or inter-frame data correlation to provide inter-frame compression. Alternatively or in addition, coding module 1610 may perform spatial estimation and intra-frame prediction techniques to use spatial or intra-frame data correlation to provide intra-frame compression. The results of motion compensation (or intra-frame prediction) are referred to as “remainder” and may contain a data block indicative of the differences between the current video data block to be encoded and the predicted block identified by motion estimation or spatial estimation.

После того как модуль 1610 кодирования выполнит компенсацию движения (или внутрикадровое прогнозирование) для образования остатка, может быть выполнена серия дополнительных этапов, чтобы дополнительно закодировать остаток и дополнительно сжать данные. Дополнительные этапы могут зависеть от используемого стандарта кодирования, но в общем упоминаются как "остаточное кодирование". Модуль 1610 кодирования может выполнять один или больше из этих методов сжатия видеоданных, чтобы снижать количество данных, необходимых для сообщения последовательности видеокадров через приемопередатчик 1616 другому устройству.After the coding module 1610 performs motion compensation (or intra-frame prediction) to form a remainder, a series of additional steps can be performed to further encode the remainder and further compress the data. Additional steps may depend on the coding standard used, but are generally referred to as “residual coding”. Encoding module 1610 may perform one or more of these video compression methods to reduce the amount of data needed to communicate a sequence of video frames through transceiver 1616 to another device.

Информация и сигналы могут быть представлены с использованием любых из множества различных технологий и методов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и кодовые элементы, которые могут упоминаться по всему приведенному выше описанию, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или любой их комбинацией.Information and signals may be represented using any of a variety of different technologies and methods. For example, data, instructions, commands, information, signals, bits, symbols and code elements that may be referred to throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any their combination.

Различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с вариантами осуществления, раскрытыми в данном описании, могут быть реализованы как электронное оборудование, программное обеспечение или их комбинации. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше в общем на основе их функциональных возможностей. Реализованы ли такие функциональные возможности, как аппаратное обеспечение или программное обеспечение, зависит от конкретного применения и конструктивных ограничений, накладываемых на всю систему. Специалисты в данной области техники могут реализовывать описанные функциональные возможности различными способами для каждого конкретного применения, но такие решения выполнения не должны интерпретироваться как вызывающие отклонения от объема настоящего раскрытия.The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, software, or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally based on their functionality. Whether functionality such as hardware or software is implemented depends on the particular application and design constraints imposed on the entire system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытыми в данном описании вариантами осуществления, могут быть реализованы или выполнены с помощью процессора общего назначения, цифрового процессора сигналов (ЦПС), интегральной схемы прикладной ориентации (ИСПО), программируемой пользователем вентильной матрицы (ППВМ) или другого программируемого логического устройства, дискретного логического элемента или транзисторных логических схем, дискретных компонентов аппаратного обеспечения или любой их комбинации, предназначенной для выполнения функций, описанных в данном описании. Процессором общего назначения может быть микропроцессор, но в качестве альтернативы, процессором может быть любой общепринятый процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован в виде вычислительных устройств, например в виде комбинации ЦПС и микропроцессора, множества микропроцессоров, одного или больше микропроцессоров вместе с ядром ЦПС, или любой другой такой конфигурации.The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed using a general purpose processor, digital signal processor (DSP), application-oriented integrated circuit (ISPS), user programmable gate array (PPVM) or other programmable logic device, discrete logic element or transistor logic circuits, discrete hardware components, or any of their components bination, designed to perform the functions described in this description. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as computing devices, for example, as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors together with a DSP core, or any other such configuration.

Этапы способа или алгоритма, описанные в связи с раскрытыми в данном описании вариантами осуществления, могут быть воплощены непосредственно в аппаратном обеспечении, в программном модуле, выполняемом процессором, или в комбинации и того и другого. Программный модуль может постоянно находиться в памяти ОЗУ, флэш-памяти, памяти ПЗУ, памяти ППЗУ, памяти ЭСППЗУ (электрически стираемого ППЗУ), регистрах, жестком диске, съемном диске, CD-ROM или любой другой форме носителя записи, известной в технике. Носитель записи подсоединен к процессору так, что процессор может считывать с носителя записи и записывать на него информацию. В качестве альтернативы, носитель записи может быть объединен с процессором. Процессор и носитель записи могут постоянно находиться в ИСПО. ИСПО может постоянно находиться в терминале пользователя. В качестве альтернативы, процессор и носитель записи могут постоянно находиться как дискретные компоненты в терминале пользователя.The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in RAM memory, flash memory, ROM memory, EEPROM memory, EEPROM (electrically erasable EEPROM) memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of recording medium known in the art. The recording medium is connected to the processor so that the processor can read and write information from the recording medium. Alternatively, the recording medium may be combined with a processor. The processor and the recording medium may reside in the ISPO. ISPI can reside in a user terminal. Alternatively, the processor and the recording medium may reside as discrete components in a user terminal.

Раскрытые в данном описании способы содержат один или больше этапов или действий, предназначенных для достижения описанного способа. Этапы и/или действия способа могут быть взаимозаменяемыми друг с другом не выходя при этом за рамки объема настоящего раскрытия. Другими словами, если определенный порядок этапов или действий не требуется для надлежащего функционирования варианта осуществления, порядок и/или использование определенных этапов и/или действий можно изменять, не отступая при этом от объема настоящего раскрытия.The methods disclosed herein comprise one or more steps or actions for achieving the described method. The steps and / or actions of the method may be interchangeable with each other without departing from the scope of the present disclosure. In other words, if a specific order of steps or actions is not required for the functioning of the embodiment to function properly, the order and / or use of certain steps and / or actions can be changed without departing from the scope of the present disclosure.

Хотя были проиллюстрированы и описаны определенные варианты осуществления и применения настоящего раскрытия, должно быть понятно, что раскрытие не ограничено точной конфигурацией и компонентами, раскрытыми в данном описании. Различные модификации, видоизменения и вариации, которые специалистам в данной области техники будут очевидны, могут быть сделаны в размещении, функционировании и деталях способов и систем настоящего раскрытия, раскрытых в данном описании не выходя при этом за рамки сущности и объема раскрытия.Although certain embodiments and applications of the present disclosure have been illustrated and described, it should be understood that the disclosure is not limited to the exact configuration and components disclosed herein. Various modifications, alterations and variations that will be apparent to those skilled in the art can be made in the placement, operation and details of the methods and systems of the present disclosure disclosed herein without departing from the scope and scope of the disclosure.

Claims (30)

1. Способ кодирования уточняющих коэффициентов в слое масштабируемого повышения отношения сигнал-шум (ОСШ) сжатой последовательности видеокадров, содержащий
прием последовательности видеокадров,
составление прогнозирования исходного видеосигнала в текущем кадре из последовательности видеокадров,
формирование разностного сигнала посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре,
применение преобразования к разностному сигналу, что обращает разностный сигнал в область, в которой разностный сигнал представлен множеством коэффициентов преобразования,
квантование множества коэффициентов преобразования для формирования множества ненулевых коэффициентов преобразования, причем каждый из ненулевых коэффициентов преобразования имеет ненулевое значение, и по меньшей мере некоторые из ненулевых коэффициентов преобразования являются уточняющими коэффициентами, причем каждый из уточняющих коэффициентов имеет ненулевое значение до квантования,
отображение каждого уточняющего коэффициента в троичный уточняющий символ для формирования множества уточняющих символов, причем троичный уточняющий символ имеет три значения, и каждый уточняющий символ имеет одно из трех значений,
группирование уточняющих символов в определенном порядке кодирования для формирования множества групп уточняющих символов, и
кодирование групп уточняющих символов с использованием кодов переменной длины.
1. A method of encoding refinement coefficients in a layer of scalable increase in signal-to-noise ratio (SNR) of a compressed sequence of video frames, comprising
receiving a sequence of video frames,
predicting the original video signal in the current frame from a sequence of video frames,
generating a differential signal by subtracting the prediction of the original video signal from the original video signal in the current frame,
applying a transform to a difference signal, which draws the difference signal to a region in which the difference signal is represented by a plurality of transform coefficients,
quantizing a plurality of transform coefficients to form a plurality of non-zero transform coefficients, each of the non-zero transform coefficients having a non-zero value, and at least some of the non-zero transform coefficients are refinement coefficients, each of the refinement coefficients having a non-zero value before quantization,
mapping each refinement coefficient into a ternary refinement symbol to form a plurality of refinement symbols, moreover, the ternary refinement symbol has three values, and each refinement symbol has one of three values,
grouping the qualifying characters in a specific coding order to form a plurality of groups of qualifying characters, and
coding of qualifying character groups using variable length codes.
2. Способ по п.1, дополнительно содержащий использование таблицы кодирования кодом переменной длины, адаптивно выбираемой для различных слоев повышения качества.2. The method according to claim 1, further comprising using a coding table with a variable-length code adaptively selected for various quality improvement layers. 3. Способ по п.1, дополнительно содержащий использование таблицы кодирования кодом переменной длины, адаптивно выбираемой на основании вероятностной оценки уточняющих символов.3. The method according to claim 1, further comprising using a coding table with a variable-length code adaptively selected based on a probabilistic assessment of the refinement characters. 4. Способ по п.2, в котором выбор определенной таблицы кодирования кодом переменной длины основан на уровне слоя повышения качества.4. The method according to claim 2, in which the selection of a particular coding table with a variable length code is based on the level of the quality improvement layer. 5. Способ по п.4, в котором выбор определенной таблицы кодирования кодом переменной длины основан на том, уточняют ли коэффициент впервые или коэффициент уточнялся в предыдущем слое.5. The method according to claim 4, in which the selection of a specific coding table with a variable-length code is based on whether the coefficient is refined for the first time or the coefficient was specified in the previous layer. 6. Способ по п.1, в котором перемежают значимые коэффициенты и уточняющие коэффициенты, при этом способ дополнительно содержит идентификацию вырезки видеоданных, которая включает в себя множество блоков, просматривание множества блоков перед группированием уточняющих коэффициентов, определение порядка, с которым уточняющие коэффициенты будут кодироваться, и сохранение уточняющих коэффициентов в очереди в соответствии с порядком, который был определен.6. The method according to claim 1, in which significant coefficients and refinement coefficients are interleaved, the method further comprising identifying a video data clipping that includes a plurality of blocks, viewing a plurality of blocks before grouping the refinement coefficients, determining the order in which the refinement coefficients will be encoded , and storing the refinement coefficients in the queue in accordance with the order that was determined. 7. Способ по п.1, дополнительно содержащий идентификацию вырезки видеоданных, которая включает в себя множество блоков.7. The method according to claim 1, further comprising identifying a clipping of video data that includes a plurality of blocks. 8. Способ по п.7, дополнительно содержащий просматривание множества блоков перед группированием уточняющих коэффициентов.8. The method according to claim 7, further comprising scanning a plurality of blocks before grouping the refinement coefficients. 9. Способ по п.1, дополнительно содержащий определение порядка, с которым уточняющие коэффициенты будут кодироваться.9. The method according to claim 1, further comprising determining the order in which the refinement coefficients will be encoded. 10. Способ по п.9, дополнительно содержащий сохранение уточняющих коэффициентов в очереди в соответствии с порядком, который был определен.10. The method according to claim 9, further comprising storing the refinement coefficients in the queue in accordance with the order that has been determined. 11. Способ по п.1, в котором каждое фиксированное количество последовательных уточняющих коэффициентов кодируют вместе с использованием таблицы кодирования кодом переменной длины.11. The method according to claim 1, in which each fixed number of consecutive refinement coefficients is encoded together using a coding table with a variable length code. 12. Способ по п.7, дополнительно содержащий группирование уточняющих коэффициентов вырезки видеоданных вместе.12. The method according to claim 7, further containing a grouping of refinement coefficients for cutting video data together. 13. Способ по п.1, дополнительно содержащий выполнение операции смещения битов.13. The method according to claim 1, further comprising performing a bit shifting operation. 14. Способ по п.13, в котором операция смещения битов включает в себя добавление одного или более наиболее вероятных символов к одному или более уточняющим символам, чтобы сделать полную группу.14. The method according to item 13, in which the operation of the bit offset includes adding one or more most probable characters to one or more qualifying characters to make a complete group. 15. Способ по п.13, в котором операция смещения битов включает в себя использование таблицы кодирования кодом переменной длины, которую выбирают на основании количества уточняющих коэффициентов, подлежащих обработке в операции смещения битов.15. The method of claim 13, wherein the bit shifting operation includes using a coding table with a variable length code that is selected based on the number of refinement coefficients to be processed in the bit shifting operation. 16. Способ по п.2, в котором таблица кодирования кодом переменной длины содержит таблицу кодирования кодом переменной длины с 27 элементами, причем длина группы равняется трем.16. The method according to claim 2, in which the coding table with a variable-length code contains a coding table with a variable-length code with 27 elements, the length of the group being three. 17. Способ по п.1, дополнительно содержащий использование основанного на под диапазонах порядка кодирования в слое повышения качества.17. The method according to claim 1, further comprising using subband-based coding order in the quality improvement layer. 18. Электронное устройство для кодирования уточняющих коэффициентов в слое масштабируемого повышения отношения сигнал-шум (ОСШ) сжатой последовательности видеокадров, причем электронное устройство содержит
процессор,
запоминающее устройство, находящееся в электронной связи с процессором,
команды, хранящиеся в запоминающем устройстве, причем команды подлежат выполнению процессором для приема последовательности видеокадров,
составления прогнозирования исходного видеосигнала в текущем кадре из последовательности видеокадров,
формирования разностного сигнала посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре,
применения преобразования к разностному сигналу, что обращает разностный сигнал в область, в которой разностный сигнал представлен множеством коэффициентов преобразования,
квантования множества коэффициентов преобразования для формирования множества ненулевых коэффициентов преобразования, причем каждый из ненулевых коэффициентов преобразования имеет ненулевое значение, и по меньшей мере некоторые из ненулевых коэффициентов преобразования являются уточняющими коэффициентами, причем каждый из уточняющих коэффициентов имеет ненулевое значение до квантования,
отображения каждого уточняющего коэффициента в троичный уточняющий символ для формирования множества уточняющих символов, причем троичный уточняющий символ имеет три значения, и каждый уточняющий символ имеет одно из трех значений,
группирования уточняющих символов в определенном порядке кодирования для формирования множества групп уточняющих символов, и
кодирования групп уточняющих символов с использованием кодов переменной длины.
18. An electronic device for encoding refinement coefficients in a layer of scalable increase in signal-to-noise ratio (SNR) of a compressed sequence of video frames, the electronic device comprising
CPU,
a storage device in electronic communication with the processor,
instructions stored in a storage device, the instructions being executed by the processor to receive a sequence of video frames,
making forecasts of the original video signal in the current frame from a sequence of video frames,
generating a differential signal by subtracting the prediction of the original video signal from the original video signal in the current frame,
applying the transform to the difference signal, which draws the difference signal into a region in which the difference signal is represented by a plurality of transform coefficients,
quantizing a plurality of transform coefficients to form a plurality of non-zero transform coefficients, each of the non-zero transform coefficients having a non-zero value, and at least some of the non-zero transform coefficients are refinement coefficients, each of the refinement coefficients having a non-zero value before quantization,
mapping each refinement coefficient into a ternary refinement symbol to form a plurality of refinement symbols, moreover, the ternary refinement symbol has three values, and each refinement symbol has one of three values,
grouping the qualifying characters in a specific coding order to form a plurality of groups of qualifying characters, and
encoding groups of qualifying characters using variable length codes.
19. Электронное устройство по п.18, в котором команды являются дополнительно выполняемыми для использования таблицы кодирования кодом переменной длины, адаптивно выбираемой для различных слоев повышения качества.19. The electronic device according to claim 18, wherein the instructions are further executed to use a coding table with a variable length code adaptively selected for various quality improvement layers. 20. Электронное устройство по п.18, в котором электронное устройство сконфигурировано с возможностью перемежения значимых коэффициентов и уточняющих коэффициентов, и в котором команды являются дополнительно выполняемыми для идентификации вырезки видеоданных, включающей в себя множество блоков, просмотра множества блоков перед группированием уточняющих коэффициентов, определения порядка, с которым уточняющие коэффициенты будут кодироваться, и сохранения уточняющих коэффициентов в очереди в соответствии с порядком, который был определен.20. The electronic device according to p. 18, in which the electronic device is configured to interleave significant coefficients and refinement coefficients, and in which the commands are additionally executed to identify the clipping of video data, which includes many blocks, view multiple blocks before grouping the refinement coefficients, determining the order in which the refinement coefficients will be encoded, and storing the refinement coefficients in the queue in accordance with the order that was determined en. 21. Компьютерочитаемый носитель, содержащий выполняемые процессором команды для кодирования уточняющих коэффициентов в слое масштабируемого повышения отношения сигнал-шум (ОСШ) сжатой последовательности видеокадров, причем команды содержат прием последовательности видеокадров,
составление прогнозирования исходного видеосигнала в текущем кадре из последовательности видеокадров,
формирование разностного сигнала посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре,
применение преобразования к разностному сигналу, что обращает разностный сигнал в область, в которой разностный сигнал представлен множеством коэффициентов преобразования,
квантование множества коэффициентов преобразования для формирования множества ненулевых коэффициентов преобразования, причем каждый из ненулевых коэффициентов преобразования имеет ненулевое значение, и по меньшей мере некоторые из ненулевых коэффициентов преобразования являются уточняющими коэффициентами, причем каждый из уточняющих коэффициентов имеет ненулевое значение до квантования,
отображение каждого уточняющего коэффициента в троичный уточняющий символ для формирования множества уточняющих символов, причем троичный уточняющий символ имеет три значения, и каждый уточняющий символ имеет одно из трех значений,
группирование уточняющих символов в определенном порядке кодирования для формирования множества групп уточняющих символов, и
кодирование групп уточняющих символов с использованием кодов переменной длины.
21. A computer-readable medium containing processor-executable instructions for encoding refinement coefficients in a scalable signal-to-noise ratio (SNR) layer of a compressed sequence of video frames, the commands comprising receiving a sequence of video frames,
predicting the original video signal in the current frame from a sequence of video frames,
generating a differential signal by subtracting the prediction of the original video signal from the original video signal in the current frame,
applying a transform to a difference signal, which draws the difference signal to a region in which the difference signal is represented by a plurality of transform coefficients,
quantizing a plurality of transform coefficients to form a plurality of non-zero transform coefficients, each of the non-zero transform coefficients having a non-zero value, and at least some of the non-zero transform coefficients are refinement coefficients, each of the refinement coefficients having a non-zero value before quantization,
mapping each refinement coefficient into a ternary refinement symbol to form a plurality of refinement symbols, moreover, the ternary refinement symbol has three values, and each refinement symbol has one of three values,
grouping the qualifying characters in a specific coding order to form a plurality of groups of qualifying characters, and
coding of qualifying character groups using variable length codes.
22. Способ декодирования уточняющих коэффициентов в закодированной последовательности видеокадров, содержащий
прием закодированной последовательности видеокадров, декодирование уточняющих символов последовательности видеокадров с использованием таблицы кодирования кодом переменной длины, причем уточняющие символы были кодированы с использованием множества уточняющих коэффициентов, причем каждый уточняющий коэффициент отображают в троичный уточняющий символ для формирования уточняющих символов, и при этом троичный уточняющий символ имеет три значения, и каждый уточняющий символ имеет одно из трех значений,
декодирование уточняющих коэффициентов с использованием уточняющих символов, причем уточняющие коэффициенты были сгруппированы в определенном порядке кодирования, и причем уточняющие коэффициенты содержатся во множестве коэффициентов преобразования,
деквантование множества коэффициентов преобразования для формирования уточняющего сигнала,
применение обратного преобразования к уточняющему сигналу, и составление последовательности видеокадров с использованием обратного преобразования уточняющего сигнала.
22. A method for decoding refinement coefficients in an encoded sequence of video frames, comprising
receiving an encoded sequence of video frames, decoding the refinement symbols of the sequence of video frames using a coding table with a variable length code, the refinement symbols being encoded using a plurality of refinement coefficients, each refinement coefficient being mapped to a ternary refinement symbol to form refinement symbols, and the ternary refinement symbol has three values, and each qualifying character has one of three values,
decoding the refinement coefficients using the refinement symbols, the refinement coefficients being grouped in a specific coding order, and the refinement coefficients being contained in a plurality of transform coefficients,
dequantizing a plurality of transform coefficients to form a refinement signal,
applying the inverse transform to the refinement signal, and compiling a sequence of video frames using the inverse transform of the refinement signal.
23. Способ по п.22, дополнительно содержащий использование различных таблиц кодирования кодом переменной длины, адаптивно выбираемых для различных слоев повышения качества.23. The method according to item 22, additionally containing the use of various coding tables with variable-length code, adaptively selected for various layers of improving quality. 24. Способ по п.22, в котором закодированная последовательность видеокадров включает в себя перемежаемые значимые символы и уточняющие символы, дополнительно содержащий сохранение местоположения запрашиваемого уточняющего коэффициента, сохранение знака соответствующего коэффициента основного слоя, и увеличение счетчика, который относится к количеству сделанных запросов.24. The method according to item 22, in which the encoded sequence of video frames includes alternating significant characters and refinement characters, further comprising storing the location of the requested refinement coefficient, preserving the sign of the corresponding coefficient of the base layer, and increasing the counter, which refers to the number of requests made. 25. Способ по п.24, дополнительно содержащий определение, когда счетчик достигает предварительно определенного счета, и активизирование операции считывания и вызов декодирования нормальной таблицы кодирования кодом переменной длины для получения группы уточняющих символов.25. The method according to paragraph 24, further comprising determining when the counter reaches a predetermined count, and activating a read operation and invoking the decoding of the normal coding table with a variable-length code to obtain a group of qualifying characters. 26. Способ по п.25, дополнительно содержащий сохранение группы уточняющих символов в соответствующих местоположениях, как они были предварительно сохранены.26. The method of claim 25, further comprising storing a group of qualifying symbols at appropriate locations as they were previously stored. 27. Способ по п.22, дополнительно содержащий выполнение операции смещения битов.27. The method according to item 22, further comprising performing a bit offset operation. 28. Способ по п.27, в котором операция смещения битов включает в себя отбрасывание заполняющих символов.28. The method of claim 27, wherein the bit shifting operation includes discarding padding symbols. 29. Способ по п.27, в котором операция смещения битов включает в себя использование таблицы кодирования кодом переменной длины, которую выбирают на основании количества уточняющих коэффициентов, подлежащих обработке в операции смещения битов.29. The method of claim 27, wherein the bit shifting operation includes using a coding table with a variable length code that is selected based on the number of refinement coefficients to be processed in the bit shifting operation. 30. Электронное устройство для кодирования уточняющих коэффициентов в слое масштабируемого повышения отношения сигнал-шум (ОСШ) сжатой последовательности видеокадров, причем электронное устройство содержит
средство для приема последовательности видеокадров,
средство для составления прогнозирования исходного видеосигнала в текущем кадре из последовательности видеокадров,
средство для формирования разностного сигнала посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре,
средство для применения преобразования к разностному сигналу, что обращает разностный сигнал в область, в которой разностный сигнал представлен множеством коэффициентов преобразования,
средство для квантования множества коэффициентов преобразования, для формирования множества ненулевых коэффициентов преобразования, причем каждый из ненулевых коэффициентов преобразования имеет ненулевое значение, и по меньшей мере некоторые из ненулевых коэффициентов преобразования являются уточняющими коэффициентами, причем каждый из уточняющих коэффициентов имеет ненулевое значение до квантования,
средство для отображения каждого уточняющего коэффициента в троичный уточняющий символ для формирования множества уточняющих символов, причем троичный уточняющий символ имеет три значения, и каждый уточняющий символ имеет одно из трех значений,
средство для группирования уточняющих символов в определенном порядке кодирования для формирования множества групп уточняющих символов, и
средство для кодирования групп уточняющих символов с использованием кодов переменной длины.
30. An electronic device for encoding refinement coefficients in a layer of scalable increase in signal-to-noise ratio (SNR) of a compressed sequence of video frames, the electronic device comprising
means for receiving a sequence of video frames,
means for predicting the original video signal in the current frame from a sequence of video frames,
means for generating a difference signal by subtracting the prediction of the original video signal from the original video signal in the current frame,
means for applying the conversion to the difference signal, which draws the difference signal into a region in which the difference signal is represented by a plurality of conversion coefficients,
means for quantizing a plurality of transform coefficients, for generating a plurality of non-zero transform coefficients, each of the non-zero transform coefficients having a non-zero value, and at least some of the non-zero transform coefficients are refinement coefficients, each of the refinement coefficients having a non-zero value before quantization,
means for mapping each refinement coefficient into a ternary refinement symbol for generating a plurality of refinement symbols, wherein the ternary refinement symbol has three values, and each refinement symbol has one of three values,
means for grouping the qualifying characters in a specific coding order to form a plurality of groups of qualifying characters, and
means for encoding groups of qualifying characters using variable length codes.
RU2008142382/09A 2006-03-27 2007-03-26 Methods and systems for coding of clarification coefficients in video data compression RU2406259C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US78680006P 2006-03-27 2006-03-27
US60/786,800 2006-03-27
US83019906P 2006-07-11 2006-07-11
US60/830,199 2006-07-11
US11/502,883 2006-08-10

Publications (2)

Publication Number Publication Date
RU2008142382A RU2008142382A (en) 2010-08-20
RU2406259C2 true RU2406259C2 (en) 2010-12-10

Family

ID=46305103

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008142382/09A RU2406259C2 (en) 2006-03-27 2007-03-26 Methods and systems for coding of clarification coefficients in video data compression

Country Status (1)

Country Link
RU (1) RU2406259C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553085C2 (en) * 2011-03-09 2015-06-10 Ниппон Телеграф Энд Телефон Корпорейшн Video encoding/decoding methods, video encoding/decoding devices and programmes therefor
US9363515B2 (en) 2011-03-09 2016-06-07 Nippon Telegraph And Telephone Corporation Image processing method, image processing apparatus, video encoding/decoding methods, video encoding/decoding apparatuses, and non-transitory computer-readable media therefor that perform denoising by means of template matching using search shape that is set in accordance with edge direction of image
RU2586862C2 (en) * 2011-11-07 2016-06-10 Кэнон Кабусики Кайся Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, Complexity reduction for adaptive VLC, 18th Meeting: Bangkok, JVT-R021, 14-20 January, 2006. Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, CE7 Report, Multiple FGS layer coding for low-delay applications, JVT 18TH MEETING, JVT-R077, 14 January 2006, Bangkok. *
Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-Q040, Variable length codes for SVC, JVT 17TH MEETING, 14-21 October 2005, NICE, FRANCE. *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553085C2 (en) * 2011-03-09 2015-06-10 Ниппон Телеграф Энд Телефон Корпорейшн Video encoding/decoding methods, video encoding/decoding devices and programmes therefor
US9363515B2 (en) 2011-03-09 2016-06-07 Nippon Telegraph And Telephone Corporation Image processing method, image processing apparatus, video encoding/decoding methods, video encoding/decoding apparatuses, and non-transitory computer-readable media therefor that perform denoising by means of template matching using search shape that is set in accordance with edge direction of image
US9438912B2 (en) 2011-03-09 2016-09-06 Nippon Telegraph And Telephone Corporation Video encoding/decoding methods, video encoding/decoding apparatuses, and programs therefor
RU2586862C2 (en) * 2011-11-07 2016-06-10 Кэнон Кабусики Кайся Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
US9774886B2 (en) 2011-11-07 2017-09-26 Canon Kabushiki Kaisha Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9794596B2 (en) 2011-11-07 2017-10-17 Canon Kabushiki Kaisha Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
US9848208B2 (en) 2011-11-07 2017-12-19 Canon Kabushiki Kaisha Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
US10085042B2 (en) 2011-11-07 2018-09-25 Canon Kabushiki Kaisha Method, device and program for encoding and decoding a sequence of images using area-by-area loop filtering

Also Published As

Publication number Publication date
RU2008142382A (en) 2010-08-20

Similar Documents

Publication Publication Date Title
US8401082B2 (en) Methods and systems for refinement coefficient coding in video compression
JP5139416B2 (en) Method and system for importance coefficient coding in video compression
KR101003320B1 (en) Video compression with adaptive variable length code
US8848789B2 (en) Method and system for coding and decoding information associated with video compression
US7262721B2 (en) Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
JP2009531992A5 (en)
CA2673883C (en) Cavlc enhancements for svc cgs enhancement layer coding
RU2406259C2 (en) Methods and systems for coding of clarification coefficients in video data compression

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190327