RU2378790C1 - Scalability techniques based on content information - Google Patents
Scalability techniques based on content information Download PDFInfo
- Publication number
- RU2378790C1 RU2378790C1 RU2008116596/09A RU2008116596A RU2378790C1 RU 2378790 C1 RU2378790 C1 RU 2378790C1 RU 2008116596/09 A RU2008116596/09 A RU 2008116596/09A RU 2008116596 A RU2008116596 A RU 2008116596A RU 2378790 C1 RU2378790 C1 RU 2378790C1
- Authority
- RU
- Russia
- Prior art keywords
- data
- group
- encoding
- frame
- complexity
- Prior art date
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Заявление о преимуществе 35 U.S.C. §119Advantage Statement 35 U.S.C. §119
Настоящая Патентная заявка притязает на приоритет (a) Предварительной патентной заявки номер 60/721416, озаглавленной "A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS", зарегистрированной 27 сентября 2005 года, (b) Предварительной патентной заявки номер 60/789377, озаглавленной "A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS", зарегистрированной 4 апреля 2006 года, (c) Предварительной заявки номер 60/727643, озаглавленной "METHOD AND APPARATUS FOR SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD-BASED VIDEO", зарегистрированной 17 октября 2005 года, (d) Предварительной заявки номер 60/727644, озаглавленной "METHOD AND APPARATUS FOR SHOT DETECTION IN VIDEO STREAMING", зарегистрированной 17 октября 2005 года, (e) Предварительной заявки номер 60/727640, озаглавленной "A METHOD AND APPARATUS FOR USING AN ADAPTIVE GOP STRUCTURE IN VIDEO STREAMING", зарегистрированной 17 октября 2005 года, (f) Предварительной заявки номер 60/730145, озаглавленной "INVERSE TELECINE ALGORITHM BASED ON STATE MACHINE", зарегистрированной 24 октября 2005 года, и (g) Предварительной заявки номер 60/789048, озаглавленной "SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD-BASED MULTIMEDIA DATA", зарегистрированной 3 апреля 2006 года. Все семь этих предварительных патентных заявок назначены ее правопреемнику и тем самым полностью содержатся в данном документе по ссылке.This Patent Application claims priority (a) of Provisional Patent Application No. 60/721416, entitled “A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS”, registered on September 27, 2005, (b) of Provisional Patent Application No. 60/789377, entitled "A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS", registered April 4, 2006, (c)
Ссылка на находящиеся одновременно на рассмотрении Заявки на патентLink to pending patent applications
Настоящая заявка на патент связана с патентной заявкой (США) № 11/373577, озаглавленной "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING", зарегистрированной 10 марта 2006 года, назначенной правопреемнику этой заявки и таким образом явно содержащейся в данном документе по ссылке.This patent application is related to (U.S. Patent Application No. 11/373577, entitled "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING", registered March 10, 2006, assigned to the assignee of this application and thus expressly incorporated herein by reference.
Уровень техникиState of the art
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Настоящая заявка направлена на устройства и способы перекодирования видеоданных для потоковой передачи в реальном времени, а более конкретно к перекодированию видеоданных для потоковой передачи в реальном времени в мобильном широковещательном приложении.The present application is directed to devices and methods for transcoding video data for streaming in real time, and more specifically to transcoding video data for streaming in real time in a mobile broadcast application.
Уровень техникиState of the art
Эффективное видеосжатие используется во множестве мультимедийных приложений, таких как потоковая передача видео и видеотелефония, вследствие ограниченных ресурсов полосы пропускания и непостоянства доступной полосы пропускания. Конкретные стандарты кодирования видео, такие как MPEG-4 (ISO/IEC), H.264 (ITU) или аналогичное кодирование видео, предоставляют высокоэффективное кодирование, оптимально подходящее для таких приложений, как беспроводная широковещательная передача. Некоторые мультимедийные данные, например, цифровые телевизионные представления, как правило, кодируются согласно другим стандартам, таким как MPEG-2. Соответственно, транскодеры используются для того, чтобы перекодировать или преобразовывать мультимедийные данные, кодированные согласно одному стандарту (к примеру, MPEG-2), в другой стандарт (к примеру, H.264) до беспроводной широковещательной передачи.Efficient video compression is used in many multimedia applications, such as video streaming and video telephony, due to limited bandwidth resources and the variability of available bandwidth. Specific video encoding standards, such as MPEG-4 (ISO / IEC), H.264 (ITU), or similar video encoding, provide highly efficient encoding that is best suited for applications such as wireless broadcast. Some multimedia data, such as digital television presentations, are typically encoded according to other standards, such as MPEG-2. Accordingly, transcoders are used to transcode or convert multimedia data encoded according to one standard (for example, MPEG-2) to another standard (for example, H.264) before wireless broadcasting.
Усовершенствованные оптимизированные по скорости кодеки могут предоставлять преимущества по устойчивости к ошибкам, восстановлению после ошибок и масштабируемости. Более того, применение информации, определенной из самих мультимедийных данных, также может предоставлять дополнительные усовершенствования по кодированию, в том числе устойчивость к ошибкам, восстановление после ошибок и масштабируемость. Соответственно, существует потребность в транскодере, который предоставляет высокоэффективную обработку и сжатие мультимедийных данных, который использует информацию, определенную из самих мультимедийных данных, и является масштабируемым и устойчивым к ошибкам для применения во множестве приложений мультимедийных данных, в том числе мобильной широковещательной передаче потоковой мультимедийной информации.Enhanced speed-optimized codecs can provide benefits in error tolerance, error recovery, and scalability. Moreover, the application of information derived from the multimedia data itself may also provide additional coding enhancements, including error tolerance, error recovery, and scalability. Accordingly, there is a need for a transcoder that provides highly efficient processing and compression of multimedia data, which uses information determined from the multimedia data itself, and is scalable and error resistant for use in a variety of multimedia data applications, including mobile broadcast streaming multimedia information .
Сущность изобретенияSUMMARY OF THE INVENTION
Каждое из изобретаемых устройств и способов, основанных на содержимом перекодирования, описанных и проиллюстрированных, имеет несколько аспектов, ни один из которых не отвечает исключительно за требуемые атрибуты. Не ограничивая объем этого изобретения, далее будут кратко обсуждены его наиболее заметные признаки. После рассмотрения этого обсуждения, а более точно, после прочтения раздела, озаглавленного "Подробное описание изобретения", станет понятно, как признаки данного управляемого содержимым перекодирования предоставляют усовершенствования в устройства и способы обработки мультимедийных данных.Each of the inventive devices and methods based on the content of the transcoding described and illustrated has several aspects, none of which is solely responsible for the required attributes. Without limiting the scope of this invention, its most prominent features will be briefly discussed below. After considering this discussion, and more precisely, after reading the section entitled "Detailed Description of the Invention", it will become clear how the features of this content-driven transcoding provide improvements to devices and methods for processing multimedia data.
Изобретаемые аспекты, описанные в данном документе, относятся к использованию информации содержимого для различных способов кодирования мультимедийных данных и в различных модулях и компонентах кодера, например, кодера, используемого в транскодере. Транскодер может управлять перекодированием мультимедийных данных с помощью информации содержимого. Информация содержимого может приниматься из другого источника, например, метаданных, которые принимаются вместе с видео. Транскодер может быть сконфигурирован для того, чтобы формировать информацию содержимого с помощью множества различных операций обработки. В некоторых аспектах транскодер формирует классификацию содержимого мультимедийных данных, которая затем используется в одном или более процессов кодирования. В некоторых аспектах управляемый содержимым транскодер может определять пространственную и временную информацию содержимого мультимедийных данных и использовать информацию содержимого для кодирования с одинаковым качеством с учетом содержимого по каналам и основанного на классификации сжатия/назначения битов.The inventive aspects described herein relate to the use of content information for various methods of encoding multimedia data and in various modules and components of an encoder, for example, an encoder used in a transcoder. The transcoder can control the transcoding of multimedia data using content information. Content information may be received from another source, for example, metadata that is received along with the video. The transcoder may be configured to generate content information using a variety of different processing operations. In some aspects, the transcoder generates a classification of the contents of the multimedia data, which is then used in one or more encoding processes. In some aspects, the content-driven transcoder may determine spatial and temporal information content of the multimedia data and use the content information for encoding with the same quality based on the content over the channels and based on the classification of bit compression / assignment.
В некоторых аспектах информация содержимого (к примеру, метаданные, показатели содержимого и/или классификация содержимого) мультимедийных данных получается и вычисляется, а затем предоставляется компонентам транскодера для использования в обработке мультимедийных данных для кодирования. Например, препроцессор может использовать определенную информацию содержимого для обнаружения смены сцен, преобразования из видеоформата в фильм (IVTC), устранения чересстрочной развертки, компенсации движения и подавления шумов (к примеру, двумерного вейвлет-преобразования) и пространственно-временного ослабления шумов, к примеру, удаления дефектов изображения, подавления ревербераций, разблокирования и/или снижения шумности. В некоторых аспектах препроцессор также может использовать информацию содержимого для понижающей дискретизации пространственного разрешения, к примеру, определения соответствующих "защищенных" зон и зон "управления движущимися объектами" при понижающей дискретизации со стандартного разрешения (SD) до четверти логической матрицы видеографики (QVGA).In some aspects, content information (eg, metadata, content metrics, and / or content classification) of the multimedia data is obtained and computed, and then provided to transcoder components for use in encoding the multimedia data. For example, a preprocessor can use certain content information to detect scene changes, convert from video format to movie (IVTC), eliminate interlacing, compensate for motion and suppress noise (for example, two-dimensional wavelet transform) and spatio-temporal noise attenuation, for example, removing image defects, suppressing reverb, unlocking and / or reducing noise. In some aspects, the preprocessor can also use content information to downsample spatial resolution, for example, to determine the corresponding “protected” areas and “moving object control” zones in downsampling from standard resolution (SD) to a quarter of the video graphics logic matrix (QVGA).
В некоторых аспектах кодер включает в себя модуль классификации содержимого, который сконфигурирован так, чтобы вычислять информацию содержимого. Кодер может использовать классификацию содержимого для управления скоростью передачи в битах (к примеру, назначения битов) при определении параметров квантования для каждого MB, для оценки движения, например, выполнения цветовой оценки движения (ME), выполнения предсказания векторов движения (MV), масштабируемости при предоставлении базового уровня и уровня улучшения, а также для устойчивости к ошибкам посредством использования классификации содержимого так, чтобы влиять на схемы иерархии предсказания и устойчивости к ошибкам, в том числе, к примеру, процессы адаптивного внутреннего обновления, выравнивания границ и предоставление избыточных данных I-кадра в уровне улучшения. В некоторых аспектах транскодер использует классификацию содержимого во взаимодействии с мультиплексором данных для поддержания оптимального качества мультимедийных данных в каналах. В некоторых аспектах кодер может использовать информацию классификации содержимого для принудительного периодического появления I-кадров в кодированных данных, чтобы обеспечить быстрое переключение каналов. Эти реализации также могут применять I-блоки, которые могут требоваться в кодированных данных для устойчивости к ошибкам, с тем чтобы переключение с произвольным доступом и устойчивость к ошибкам (на основе, к примеру, классификации содержимого) могли эффективно комбинироваться посредством иерархии предсказания, чтобы повысить эффективность кодирования с увеличением запаса устойчивости по ошибкам.In some aspects, the encoder includes a content classification module that is configured to calculate content information. The encoder can use content classification to control the bit rate (for example, bit assignment) when determining the quantization parameters for each MB, for motion estimation, for example, performing color motion estimation (ME), performing motion vector prediction (MV), scalability when providing a baseline and improvement level, as well as error tolerance through the use of content classification so as to influence prediction hierarchy and error tolerance patterns, including for example, processes of adaptive internal updating, edge alignment and provision of redundant I-frame data at the improvement level. In some aspects, the transcoder uses content classification in conjunction with a data multiplexer to maintain optimal quality of multimedia data in the channels. In some aspects, the encoder may use content classification information to force I frames to periodically appear in the encoded data to allow fast channel switching. These implementations may also use I-blocks, which may be required in the encoded data for error tolerance, so that random access switching and error tolerance (based on, for example, content classification) can be effectively combined through a prediction hierarchy to increase coding efficiency with increasing margin of error stability.
В одном аспекте способ обработки мультимедийных данных содержит классификацию содержимого мультимедийных данных и кодирование мультимедийных данных в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Кодирование может включать в себя определение скорости передачи битов на основе классификации содержимого мультимедийных данных и кодирование мультимедийных данных на основе скорости передачи битов. Классификация содержимого может содержать определение сложности мультимедийных данных, и при этом выбранные мультимедийные данные кодируются на основе сложности мультимедийных данных. Сложность может содержать временную сложность или пространственную сложность либо временную сложность и пространственную сложность. Кодирование может включать в себя кодирование мультимедийных данных так, чтобы обеспечить декодирование только первой группы данных или первой группы данных и второй группы данных в одну комбинированную группу данных. Первое дифференциальное уточнение может указывать разность между выбранным видеокадром и данными кадра, вытекающими из декодирования первой группы данных. Первая группа данных может быть базовым уровнем, а вторая группа данных может быть уровнем улучшения. Помимо этого, способ может включать в себя выбор коэффициента из одного из коэффициента остаточной ошибки исходного базового уровня и коэффициента остаточной ошибки исходного уровня улучшения и вычисления первого дифференциального уточнения на основе коэффициента и коэффициента остаточной ошибки исходного уровня улучшения. Кодирование дополнительно может содержать кодирование информации заголовков макроблоков и информации вектора движения в первой группе данных. Кодирование дополнительно может содержать квантование первой группы данных с первым размером шага и квантование второй группы данных со вторым размером шага, при этом первый размер шага и второй размер шага соотносятся посредством коэффициента масштабирования. Кодирование дополнительно может включать в себя определение первого параметра квантования, имеющего первый размер шага квантования, для использования при кодировании первой группы данных и определение второго параметра квантования, имеющего второй размер шага квантования, для использования при кодировании второй группы данных, при этом первый и второй параметры квантования определяются на основе информации содержимого выбранных данных кадра и при этом упомянутый первый размер шага квантования более грубый, чем упомянутый второй размер шага квантования. В другом аспекте кодирование включает в себя кодирование первой группы данных с помощью I-кадров и P-кадров либо любой их комбинации и кодирование второй группы данных с помощью I-кадров, P-кадров и B-кадров либо любой их комбинации.In one aspect, a method for processing multimedia data comprises classifying the contents of the multimedia data and encoding the multimedia data in the first data group and in the second data group based on the content classification, the first data group containing a coefficient and the second data group containing a first differential refinement associated with the coefficient first group of data. Encoding may include determining a bit rate based on the classification of the contents of the multimedia data and encoding the multimedia data based on the bit rate. The content classification may include determining the complexity of the multimedia data, and wherein the selected multimedia data is encoded based on the complexity of the multimedia data. Complexity may include temporal complexity or spatial complexity or temporal complexity and spatial complexity. Encoding may include encoding multimedia data so as to enable decoding of only the first data group or the first data group and the second data group into one combined data group. The first differential refinement may indicate the difference between the selected video frame and the frame data resulting from decoding the first group of data. The first group of data may be the base level, and the second group of data may be the level of improvement. In addition, the method may include selecting a coefficient from one of the residual error coefficient of the initial base level and the residual error coefficient of the initial improvement level and calculating the first differential refinement based on the coefficient and residual error coefficient of the initial improvement level. The encoding may further comprise encoding macroblock header information and motion vector information in a first data group. The encoding may further comprise quantizing a first data group with a first step size and quantizing a second data group with a second step size, wherein the first step size and the second step size are correlated by a scaling factor. The encoding may further include determining a first quantization parameter having a first quantization step size for use in encoding the first data group, and determining a second quantization parameter having a second quantization step size for use in encoding the second data group, the first and second parameters quantizations are determined based on the content information of the selected frame data, and wherein said first quantization step size is coarser than said second dimension the quantization step measures. In another aspect, encoding includes encoding a first data group using I-frames and P-frames, or any combination thereof, and encoding a second data group using I-frames, P-frames and B-frames, or any combination thereof.
В другом аспекте устройство кодирования мультимедийных данных включает в себя средство классификации содержимого мультимедийных данных, средство кодирования мультимедийных данных в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Средство кодирования может содержать средство для определения скорости передачи битов на основе классификации содержимого мультимедийных данных и кодирования мультимедийных данных на основе скорости передачи битов. Средство классификации содержимого может включать в себя средство определения сложности мультимедийных данных, и при этом выбранные мультимедийные данные кодируются на основе сложности мультимедийных данных, причем сложность содержит временную сложность или пространственную сложность либо временную сложность и пространственную сложность. Средство кодирования может содержать средство для того, чтобы обеспечить декодирование только первой группы данных или первой группы данных и второй группы данных в одну комбинированную группу данных.In another aspect, the multimedia data encoding device includes means for classifying the contents of the multimedia data, means for encoding the multimedia data in the first data group and in the second data group based on the content classification, the first data group containing a coefficient and the second data group containing a first differential refinement, associated with the coefficient of the first data group. The encoding means may comprise means for determining a bit rate based on the classification of the contents of the multimedia data and encoding the multimedia data based on the bit rate. The content classification means may include means for determining the complexity of the multimedia data, and wherein the selected multimedia data is encoded based on the complexity of the multimedia data, the complexity comprising temporal complexity or spatial complexity or temporal complexity and spatial complexity. The encoding means may comprise means for decoding only the first data group or the first data group and the second data group into one combined data group.
В другом аспекте устройство включает в себя модуль классификации содержимого мультимедийных данных, сконфигурированный так, чтобы классифицировать содержимое мультимедийных данных и предоставлять данные классификации содержимого, и кодер, сконфигурированный так, чтобы кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Кодер может включать в себя компонент скорости передачи битов, сконфигурированный так, чтобы определять назначение битов на основе классификации содержимого, при этом компонент кодирования дополнительно сконфигурирован так, чтобы кодировать выбранные мультимедийные данные с помощью назначения битов.In another aspect, an apparatus includes a media content classification module configured to classify media content and provide content classification data, and an encoder configured to encode media in the first data group and in the second data group based on the content classification moreover, the first group of data contains a coefficient, and the second group of data contains a first differential refinement associated with the coefficient by the first data group. The encoder may include a bit rate component configured to determine a bit assignment based on the classification of the contents, wherein the encoding component is further configured to encode the selected multimedia data using the bit assignment.
В другом аспекте машиночитаемый носитель содержит инструкции, которые при исполнении инструктируют машине классифицировать содержимое мультимедийных данных и кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных.In another aspect, a computer-readable medium comprises instructions that, when executed, instruct the machine to classify the contents of multimedia data and encode multimedia data in a first data group and a second data group based on the content classification, the first data group containing a coefficient and the second data group containing a first differential refinement associated with the coefficient of the first data group.
В другом аспекте процессор сконфигурирован так, чтобы классифицировать содержимое мультимедийных данных и кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных.In another aspect, the processor is configured to classify the contents of the multimedia data and encode the multimedia data in the first data group and in the second data group based on the content classification, wherein the first data group contains a coefficient and the second data group contains a first differential refinement associated with the coefficient first group of data.
Краткое описание чертежейBrief Description of the Drawings
Фиг.1A - это блок-схема мультимедийной широковещательной системы, включающей в себя транскодер для перекодирования между различными видеоформатами.1A is a block diagram of a multimedia broadcast system including a transcoder for transcoding between different video formats.
Фиг.1B - это блок-схема кодера, сконфигурированного так, чтобы кодировать мультимедийные данные и предоставлять кодированную первую группу данных и кодированную вторую группу данных.1B is a block diagram of an encoder configured to encode multimedia data and provide an encoded first data group and an encoded second data group.
Фиг.1C - это блок-схема процессора, сконфигурированного так, чтобы кодировать мультимедийные данные.1C is a block diagram of a processor configured to encode multimedia data.
Фиг.2 - это блок-схема примера транскодера системы по фиг.1.FIG. 2 is a block diagram of an example transcoder of the system of FIG. 1.
Фиг.3 - это блок-схема последовательности операций способа, иллюстрирующая работу анализатора, используемого в транскодере по фиг.2.FIG. 3 is a flowchart illustrating the operation of an analyzer used in the transcoder of FIG. 2.
Фиг.4 - это блок-схема последовательности операций способа, иллюстрирующая работу декодера, используемого в транскодере по фиг.2.FIG. 4 is a flowchart illustrating the operation of the decoder used in the transcoder of FIG. 2.
Фиг.5 - это системная временная схема, иллюстрирующая последовательность операций, выполняемых посредством транскодера по фиг.2.FIG. 5 is a system timing diagram illustrating a flow of operations performed by the transcoder of FIG. 2.
Фиг.6 - это блок-схема, иллюстрирующая последовательность операций и функций препроцессора, которые могут быть использованы в транскодере по фиг.2.6 is a flowchart illustrating the sequence of operations and functions of the preprocessor that can be used in the transcoder of FIG. 2.
Фиг.7 - это блок-схема примерного двухпроходного кодера, который может быть использован в транскодере по фиг.2.FIG. 7 is a block diagram of an exemplary two-pass encoder that can be used in the transcoder of FIG. 2.
Фиг.8 иллюстрирует пример классификационной диаграммы, которая иллюстрирует один аспект того, как ассоциативно связывать значения текстуры и движения с классификацией содержимого.FIG. 8 illustrates an example of a classification diagram that illustrates one aspect of how to associate texture and motion values with content classification.
Фиг.9 - это блок-схема последовательности операций способа, иллюстрирующая примерную операцию классификации содержимого, например, для использования в кодере по фиг.7.FIG. 9 is a flowchart illustrating an example content classification operation, for example, for use in the encoder of FIG. 7.
Фиг.10 - это блок-схема последовательности операций способа, иллюстрирующая операцию управления скоростью, например, для использования в кодере по фиг.7.FIG. 10 is a flowchart illustrating a speed control operation, for example, for use in the encoder of FIG. 7.
Фиг.11 - это блок-схема последовательности операций способа, иллюстрирующая работу примерного блока оценки движения, например, для использования в кодере по фиг.7.11 is a flowchart illustrating the operation of an exemplary motion estimation unit, for example, for use in the encoder of FIG. 7.
Фиг.12 - это блок-схема последовательности операций способа, иллюстрирующая работу примерной функции кодера для определения режима, например, для использования в кодере по фиг.7.12 is a flowchart illustrating the operation of an exemplary function of an encoder for determining a mode, for example, for use in the encoder of FIG. 7.
Фиг.13 - это блок-схема последовательности операций способа, иллюстрирующая примерную операцию осуществления масштабируемости для использования в кодере по фиг.7.FIG. 13 is a flowchart illustrating an example scalability implementation operation for use in the encoder of FIG. 7.
Фиг.14 - это блок-схема последовательности операций способа, иллюстрирующая примерную операцию осуществления потока данных с искажением в зависимости от скорости, как происходит, к примеру, в кодере по фиг.7.Fig. 14 is a flowchart illustrating an example operation of performing a data stream with distortion depending on speed, as occurs, for example, in the encoder of Fig. 7.
Фиг.15 - это график, иллюстрирующий взаимосвязь между сложностью кодирования, назначенными битами и визуальным качеством человека.15 is a graph illustrating the relationship between coding complexity, assigned bits, and human visual quality.
Фиг.16 - это график, иллюстрирующий нелинейную схему обнаружения сцен.16 is a graph illustrating a non-linear scene detection circuit.
Фиг.17A - это блок-схема последовательности операций способа, иллюстрирующая обработку мультимедийных данных, которые получены, приняты или иным образом доступны.17A is a flowchart illustrating the processing of multimedia data that is received, received, or otherwise available.
Фиг.17B - это блок-схема системы кодирования мультимедиа.Figv is a block diagram of a multimedia encoding system.
Фиг.18 - это схема, иллюстрирующая процесс устранения чересстрочной развертки с помощью оценки/компенсации движения.FIG. 18 is a diagram illustrating a process for eliminating interlaced scanning using motion estimation / compensation.
Фиг.19 - это блок-схема мультимедийной системы связи.Fig. 19 is a block diagram of a multimedia communication system.
Фиг.20 - это схема, иллюстрирующая организацию видеопотока битов в уровне улучшения и базовом уровне.20 is a diagram illustrating the organization of a video bitstream in an enhancement layer and a base layer.
Фиг.21 - это схема, иллюстрирующая совмещение серий макроблоков с границами видеокадров.21 is a diagram illustrating the alignment of a series of macroblocks with the boundaries of video frames.
Фиг.22 - это блок-схема, иллюстрирующая иерархию предсказания.FIG. 22 is a block diagram illustrating a prediction hierarchy.
Фиг.23 - это блок-схема последовательности операций, иллюстрирующая способ кодирования мультимедийных данных на основе информации содержимого.23 is a flowchart illustrating a method of encoding multimedia data based on content information.
Фиг.24 - это блок-схема последовательности операций, иллюстрирующая способ кодирования мультимедийных данных, так чтобы совмещать границы данных на основе уровня информации содержимого.24 is a flowchart illustrating a method of encoding multimedia data so as to combine data boundaries based on the level of content information.
Фиг.25 - это график, иллюстрирующий защищенную область движущихся объектов и защищенную область тайтлов кадра данных.25 is a graph illustrating a protected area of moving objects and a protected area of titles of a data frame.
Фиг.26 - это график, иллюстрирующий защищенную область движущихся объектов кадра данных.26 is a graph illustrating a protected area of moving objects of a data frame.
Фиг.27 - это блок-схема последовательности операций, иллюстрирующая процесс кодирования мультимедийных данных с помощью адаптивного внутреннего обновления на основе информации мультимедийного содержимого.27 is a flowchart illustrating a process for encoding multimedia data using adaptive internal updating based on the multimedia content information.
Фиг.28 - это блок-схема последовательности операций, иллюстрирующая процесс кодирования мультимедийных данных с помощью избыточных I-кадров на основе информации мультимедийного содержимого.28 is a flowchart illustrating a process for encoding multimedia data using redundant I-frames based on multimedia content information.
Фиг.29 иллюстрирует векторы компенсации движения между текущим кадром и предыдущим кадром MVP и текущим кадром и следующим кадром MVN.29 illustrates motion compensation vectors between the current frame and the previous frame MV P and the current frame and the next frame MV N.
Фиг.30 - это блок-схема последовательности операций способа, иллюстрирующая обнаружение кадров.30 is a flowchart illustrating frame detection.
Фиг.31 - это блок-схема последовательности операций способа, иллюстрирующая кодирование базового уровня и уровня улучшения.31 is a flowchart illustrating encoding of a base layer and an enhancement layer.
Фиг.32 - это схематичное представление, иллюстрирующее кодирование макроблока.32 is a schematic diagram illustrating coding of a macroblock.
Фиг.33 - это схематичное представление, иллюстрирующее модули для кодирования базового уровня и уровня улучшения.33 is a schematic diagram illustrating modules for encoding a base layer and an enhancement layer.
Фиг.34 иллюстрирует пример процесса в блоке выбора коэффициентов базового уровня и уровня улучшения.Fig. 34 illustrates an example of a process in a coefficient selection block of a base level and an enhancement level.
Фиг.35 иллюстрирует еще один пример процесса в блоке выбора коэффициентов базового уровня и уровня улучшения.Fig illustrates another example of a process in the block selection of the coefficients of the base level and level of improvement.
Фиг.36 иллюстрирует еще один пример процесса в блоке выбора коэффициентов базового уровня и уровня улучшения.Fig illustrates another example of a process in the block selection of the coefficients of the base level and level of improvement.
Фиг.37 - это блок-схема последовательности операций способа, иллюстрирующая кодирование мультимедийных данных на основе информации содержимого.37 is a flowchart illustrating encoding of multimedia data based on content information.
Фиг.38 - это схема, иллюстрирующая возможные системные решения в процессе преобразования из видеоформата в фильм.Fig. 38 is a diagram illustrating possible system solutions in a conversion process from a video format to a film.
Фиг.39 иллюстрирует границы в макроблоке, которые должны быть отфильтрованы посредством процесса разблокирования.Fig. 39 illustrates boundaries in a macroblock that are to be filtered out by an unlocking process.
Фиг.40 - это схема, иллюстрирующая процесс пространственно-временного устранения чересстрочной развертки (деинтерлейсинга).40 is a diagram illustrating a process of spatio-temporal elimination of interlacing (deinterlacing).
Фиг.41 иллюстрирует пример одномерной монофазной повторной дискретизации.Fig. 41 illustrates an example of one-dimensional monophasic resampling.
Фиг.42 - это блок-схема последовательности операций способа, иллюстрирующая пример адаптивной GOP-структуры в потоковой передаче видео.42 is a flowchart illustrating an example of an adaptive GOP structure in video streaming.
Следует отметить, что аналогичные номера ссылок означают аналогичные детали по всем представлениям на чертежах соответствующим образом.It should be noted that similar reference numbers mean similar details across all representations in the drawings accordingly.
Подробное описание изобретенияDETAILED DESCRIPTION OF THE INVENTION
Последующее подробное описание направлено на определенные аспекты, описываемые в данной заявке. Тем не менее, изобретение может быть осуществлено большим количеством различных способов. Ссылка в этом подробном описании на "один аспект" или "аспект" означает, что конкретный признак, конструкция или характеристика, описываемые в связи с аспектом, включены, по меньшей мере, в один аспект. Вхождение фразы "в одном аспекте", "согласно одному аспекту" или "в некоторых аспектах" в разных местах данного подробного описания не обязательно все указывают на тот же аспект, а также не являются отдельными или альтернативными аспектами, взаимоисключающими другие аспекты. Более того, описаны различные признаки, которые могут быть продемонстрированы посредством некоторых аспектов, но не посредством других. Аналогично, описаны различные требования, которые могут быть требованиями для некоторых аспектов, но не для других аспектов.The following detailed description is directed to certain aspects described in this application. However, the invention can be practiced in a large number of different ways. Reference in this detailed description to “one aspect” or “aspect” means that a particular feature, design, or characteristic described in connection with an aspect is included in at least one aspect. The occurrence of the phrase “in one aspect”, “according to one aspect” or “in some aspects” in different places of this detailed description does not necessarily all refer to the same aspect, nor are they separate or alternative aspects mutually exclusive of other aspects. Moreover, various features are described that can be demonstrated by some aspects, but not by others. Similarly, various requirements are described, which may be requirements for some aspects, but not for other aspects.
Последующее описание включает в себя подробные сведения для того, чтобы предоставить полное понимание примеров. Тем не менее, специалистам в данной области техники следует понимать, что примеры могут быть использованы на практике, даже если все подробности процесса или устройства в примере или аспекте не пояснены или проиллюстрированы в данном документе. Например, на блок-схемах могут быть показаны электрические компоненты, которые не иллюстрируют все электрические соединения или все электрические элементы компонента, чтобы не отвлекать от понимания примеров ненужными подробностями. В других случаях такие компоненты, другие структуры и методики могут быть подробно показаны, чтобы дополнительно пояснить примеры.The following description includes details in order to provide a thorough understanding of the examples. However, those skilled in the art should understand that examples can be used in practice even if all the details of the process or device in the example or aspect are not explained or illustrated in this document. For example, block diagrams may show electrical components that do not illustrate all electrical connections or all electrical components, so as not to distract from the understanding of examples by unnecessary details. In other cases, such components, other structures and techniques may be shown in detail to further illustrate examples.
Настоящее устройство относится к устройствам и способам управления кодированием и перекодированием с помощью информации содержимого кодируемых мультимедийных данных. "Информация содержимого" или "содержимое" (мультимедийных данных) - это обширные термины, означающие информацию, связанную с содержимым мультимедийных данных, и могут включать в себя, например, метаданные, показатели, вычисленные из мультимедийных данных, и относящуюся к содержимому информацию, ассоциативно связанную с одним или более показателями, например, классификацию содержимого. Информация содержимого может быть предоставлена в кодер или определена посредством кодера в зависимости от конкретного варианта применения. Информация содержимого может быть использована для многих аспектов кодирования мультимедийных данных, в том числе обнаружения смены сцен, временной обработки, пространственно-временного понижения шумов, понижающей дискретизации, определения скоростей передачи битов для квантования, масштабирование устойчивости к ошибкам, сохранения оптимального качества мультимедиа в широковещательных каналах и быстрого переключения каналов. С помощью одного или более этих аспектов транскодер может управлять обработкой мультимедийных данных и формировать связанные с содержимым кодированные мультимедийные данные. Описания и чертежи в данном документе, которые описывают аспекты перекодирования, также могут быть применены к аспектам кодирования и аспектам декодирования.The present device relates to devices and methods for controlling encoding and transcoding using information content of encoded multimedia data. “Content information” or “content” (multimedia data) are broad terms referring to information related to the content of multimedia data, and may include, for example, metadata, metrics computed from multimedia data, and related information, associatively Associated with one or more metrics, such as content classification. Content information may be provided to the encoder or determined by the encoder, depending on the particular application. Content information can be used for many aspects of coding multimedia data, including detecting scene changes, temporal processing, spatio-temporal noise reduction, downsampling, determining bit rates for quantization, scaling error tolerance, maintaining optimal multimedia quality in broadcast channels and fast channel switching. Using one or more of these aspects, the transcoder can control the processing of multimedia data and generate encoded multimedia data associated with the content. The descriptions and drawings herein that describe transcoding aspects can also be applied to coding aspects and decoding aspects.
Устройства и способы транскодера связаны с перекодированием из одного формата в другой и подробно описываются в данном документе как связанные с перекодированием видео MPEG-2 в улучшенный масштабируемый формат H.264 для передачи по беспроводным каналам в мобильные устройства, иллюстрирующие некоторые аспекты. Тем не менее, описание перекодирования видео MPEG-2 в формат H.264 не выступает в качестве ограничения области применения изобретения, а является просто примером некоторых аспектов изобретения. Раскрытые устройства и способы предоставляют высокоэффективную архитектуру, которая поддерживает устойчивое к ошибкам кодирование с помощью возможностей произвольного доступа и разбиения на уровне и также может быть применена к перекодированию и/или кодированию видеоформатов, отличных от MPEG-2 и H.264.Transcoder devices and methods are associated with transcoding from one format to another and are described in detail herein as being related to transcoding MPEG-2 video into an enhanced scalable H.264 format for wireless transmission to mobile devices illustrating some aspects. However, the description of the transcoding of MPEG-2 video to H.264 is not intended to limit the scope of the invention, but is merely an example of some aspects of the invention. The disclosed devices and methods provide a highly efficient architecture that supports error-resistant coding with random access and leveling capabilities and can also be applied to transcoding and / or encoding of video formats other than MPEG-2 and H.264.
"Мультимедийные данные" или просто "мультимедиа" при использовании в данном документе являются обширным термином, который включает в себя видеоданные (которые могут включать в себя аудиоданные), аудиоданные или и видеоданные, и аудиоданные. "Видеоданные" или "видео" при использовании в данном документе является широким термином, относящимся к основанным на кадрах или основанным на полях данным, которые включают в себя одно или более изображений или связанных последовательностей изображений, содержащих текст, информацию изображений и/или аудиоданных, и могут быть использованы для того, чтобы означать мультимедийные данные (к примеру, термины могут быть использованы взаимозаменяемо), если не указано иное.“Multimedia data” or simply “multimedia” as used herein is an extensive term that includes video data (which may include audio data), audio data, or both video data and audio data. "Video data" or "video" as used herein is a broad term referring to frame-based or field-based data that includes one or more images or related image sequences containing text, image information and / or audio data, and can be used to mean multimedia data (for example, the terms can be used interchangeably), unless otherwise indicated.
Ниже описываются примеры различных компонентов транскодера и примеры процессов, которые могут использовать информацию содержимого для кодирования мультимедийных данных.The following describes examples of various components of the transcoder and examples of processes that can use content information to encode multimedia data.
Фиг.1A - это блок-схема, иллюстрирующая поток данных некоторых аспектов системы 100 широковещательной передачи мультимедийных данных. В системе 100 поставщик 106 мультимедийных данных передает кодированные мультимедийные данные 104 в транскодер 200. Кодированные мультимедийные данные 104 принимаются посредством транскодера 200, который обрабатывает мультимедийные данные 104 в "сырые" необработанные мультимедийные данные на этапе 110. Обработка на блоке 110 декодирует и разбирает кодированные мультимедийные данные 104 и дополнительно обрабатывает мультимедийные данные, чтобы подготовить их к кодированию в другой формат. Декодированные мультимедийные данные предоставляются на этап 112, где мультимедийные данные кодируются в предварительно определенный мультимедийный формат или стандарт. После того как мультимедийные данные кодированы, на этапе 114 они подготавливаются для передачи, например, посредством беспроводной широковещательной системы (к примеру, сотовой телефонной широковещательной сети или посредством другой сети связи). В некоторых аспектах принятые мультимедийные данные 104 кодированы согласно стандарту MPEG-2. После того как перекодированные мультимедийные данные 104 декодированы, транскодер 200 кодирует мультимедийные данные в стандарт H.264.1A is a flowchart illustrating a data stream of some aspects of a
Фиг.1B - это блок-схема транскодера 130, который может быть сконфигурирован так, чтобы выполнять обработку на этапах 110 и 112 фиг.1A. Транскодер 130 может быть сконфигурирован так, чтобы принимать мультимедийные данные, декодировать и разбирать мультимедийные данные на пакетированные элементарные потоки (к примеру, субтитры, аудио, метаданные, "необработанное" видео, CC-данные и временные метки представления), кодировать их в требуемый формат и предоставлять кодированные данные для дополнительной обработки или передачи. Транскодер 130 может быть сконфигурирован так, чтобы предоставлять кодированные данные в две или более группы данных, например, кодированную первую группу данных и кодированную вторую группу данных, что упоминается как многоуровневое кодирование. В некоторых примерах аспектов различные группы данных (или уровни) в схеме многоуровневого кодирования могут кодироваться на различных уровнях качества и форматироваться так, что данные, кодированные в первой группе данных, имеют худшее качество (к примеру, предоставляют меньший уровень визуального качества при отображении), чем данные, кодированные во второй группе данных.FIG. 1B is a block diagram of a
Фиг.1C - это блок-схема процессора 140, который может быть сконфигурирован так, чтобы перекодировать мультимедийные данные, и может быть сконфигурирован так, чтобы выполнять часть или всю обработку, проиллюстрированную на этапах 110 и 112 по фиг.1A. Процессор 140 может включать в себя модули 124a...n, выполнять один или более процессов перекодирования, описанных в данном документе, в том числе декодирование, разбор, предварительную обработку и кодирование, и использовать информацию содержимого для обработки. Процессор 140 также включает в себя внутреннее запоминающее устройство 122 и может быть сконфигурирован так, чтобы обмениваться данными с внешним запоминающим устройством 120 напрямую или косвенно посредством другого устройства. Процессор 140 также включает в себя модуль 126 связи, сконфигурированный так, чтобы обмениваться данными с одним или более устройствами, внешними для процессора 140, в том числе принимать мультимедийные данные и предоставлять кодированные данные, такие как данные, кодированные в первой группе данных, и данные, кодированные во второй группе данных. В некоторых примерах аспектов различные группы данных (или уровни) в схеме многоуровневого кодирования могут кодироваться на различных уровнях качества и форматироваться так, что данные, кодированные в первой группе данных, имеют худшее качество (к примеру, предоставляют меньший уровень визуального качества при отображении), чем данные, кодированные во второй группе данных.FIG. 1C is a block diagram of a
Транскодер 130 или его компоненты препроцессора 140 (сконфигурированные для перекодирования), а также процессы, содержащиеся в нем, могут быть реализованы посредством аппаратных средств, программного обеспечения, микропрограммного обеспечения, промежуточного программного обеспечения, микрокода или комбинации вышеозначенного. Например, анализатор, декодер, препроцессор или кодер могут быть автономными компонентами, включенными как аппаратные средства, микропрограммное обеспечение, промежуточное программное обеспечение в компонент другого устройства, или могут быть реализованы в микрокоде либо программном обеспечении, которое приводится в исполнение в процессоре, либо как комбинация вышеозначенного. Когда реализован в программном обеспечении, микропрограммном обеспечении, промежуточном программном обеспечении или микрокоде, программный код или сегменты кода, которые выполняют процессы компенсации движения, классификации кадров и кодирования, могут быть сохранены на машиночитаемом носителе, таком как носитель хранения. Сегмент кода может представлять процедуру, функцию, подпрограмму, программу, стандартную процедуру, вложенную процедуру, модуль, комплект программного обеспечения, класс или любое сочетание инструкций, структур данных или операторов программы. Сегмент кода может быть связан с другим сегментом кода или аппаратной схемой посредством передачи и/или приема информации, данных, аргументов, параметров или содержимого памяти.The
Иллюстративный пример архитектуры транскодераIllustrative Transcoder Architecture Example
Фиг.2 иллюстрирует блок-схему примера транскодера, который может быть использован для транскодера 200, проиллюстрированного в мультимедийной широковещательной системе 100 по фиг.1. Транскодер 200 содержит анализатор/декодер 202, препроцессор 226, кодер 228 и синхронизирующий уровень 240, дополнительно описанные ниже. Транскодер 200 сконфигурирован так, чтобы использовать информацию содержимого мультимедийных данных 104 для одного или более аспектов процесса перекодирования, как описано в данном документе. Информация содержимого может быть получена из источника, внешнего для транскодера 200, через мультимедийные метаданные или вычислена посредством транскодера, например, посредством препроцессора 226 или кодера 228. Компоненты, показанные на фиг.2, иллюстрируют компоненты, которые могут быть включены в транскодер, который использует информацию содержимого для одного или более процессов перекодирования. В конкретной реализации один или более компонентов транскодера 200 могут быть исключены либо могут быть включены дополнительные компоненты. Дополнительно, части транскодера и процессов перекодирования описаны для того, чтобы предоставить возможность специалистам в данной области техники использовать на практике изобретение, даже если все подробности процесса или устройства могут не описываться в данном документе.FIG. 2 illustrates a block diagram of an example transcoder that can be used for a
Фиг.5 иллюстрирует временную схему в качестве графической иллюстрации временной взаимосвязи работы различных компонентов и/или процессов транскодера 200. Как показано на фиг.5, кодированное потоковое видео 104 (кодированные мультимедийные данные), например, видео MPEG-2 сначала принимается в произвольный нулевой момент времени (0) посредством анализатора 205 (фиг.2). Далее видеопоток разбирается 501, демультиплексируется 502 и декодируется 503, например, посредством анализатора 205 в комбинации с декодером 214. Как проиллюстрировано, эти процессы могут выполняться параллельно с небольшим смещением по времени, чтобы предоставить потоковый вывод данных обработки в препроцессор 226 (фиг.2). В момент времени T1 504, после того как препроцессор 226 принял достаточно данных от декодера 214 для того, чтобы начать вывод результатов обработки, оставшиеся этапы обработки становятся последовательными по характеру, при этом кодирование 505 первого прохода, кодирование 506 второго прохода и повторное кодирование 507 выполняется последовательно после предварительной обработки до завершения повторного кодирования в момент времени Tf 508.FIG. 5 illustrates a timing diagram as a graphic illustration of the temporal relationship of the operation of various components and / or processes of
Транскодер 200, описанный в данном документе, может быть сконфигурирован так, чтобы перекодировать различные мультимедийные данные, и многие из процессов применяются к тому типу мультимедийных данных, который перекодируется. Хотя некоторые из примеров, предоставляемых в данном документе, относятся к перекодированию данных MPEG-2 в данные H.264, эти примеры не предназначены для того, чтобы ограничивать изобретение этими данными. Аспекты кодирования, описываемые ниже, могут быть применены к перекодированию любого соответствующего стандарта мультимедийных данных в другой соответствующий стандарт мультимедийных данных.The
Анализатор/декодерAnalyzer / decoder
Снова ссылаясь на фиг.2, анализатор/декодер 202 принимает мультимедийные данные 104. Анализатор/декодер 202 включает в себя анализатор транспортных потоков ("анализатор") 205, который принимает мультимедийные данные 104 и разбирает данные на элементарный поток (ES) видео 206, ES 208 аудио, временные метки представления (PTS) 210 и другие данные, такие как субтитры 212. ES переносит один тип данных (видео или аудио) из одного видео- или аудиокодера. Например, ES видео содержит видеоданные для последовательности данных, включающие в себя заголовок последовательности и все подчасти последовательности. Пакетированный элементарный поток, или PES, состоит из одного ES, который составлен в пакеты, каждый из которых в типичном варианте начинается с добавленного заголовка пакета. PES-поток содержит только один тип данных из одного источника, к примеру, из одного видео- или аудиокодера. PES-пакеты имеют переменную длину, не соответствующую фиксированной длине транспортных пакетов, и могут быть гораздо длиннее, чем транспортный пакет. Когда транспортные пакеты сформированы из PES-потока, PES-заголовок может быть помещен в начало рабочих данных транспортного пакета, сразу после заголовка транспортного пакета. Оставшееся содержимое PES-пакета заполняет рабочие данные последовательных транспортных пакетов, пока PES-пакет не будет полностью использован. Конечный транспортный пакет может быть заполнен до фиксированной длины, к примеру, посредством дополнения байтами, к примеру, байтами = 0xFF (все единицы).Referring again to FIG. 2, the analyzer / decoder 202 receives the
Анализатор 205 передает ES 206 видео в декодер 214, который является частью анализатора/декодера 202, показанной здесь. В других конфигурациях анализатор 205 и декодер 214 являются отдельными компонентами. PTS 210 отправляются в PTS-формирователь 215 транскодера, который может формировать отдельные временные метки представления, конкретные для транскодера 200, для использования при компоновке данных, которые должны быть отправлены из транскодера 200 в широковещательную систему. PTS-формирователь 215 транскодера может быть сконфигурирован так, чтобы предоставлять данные в синхронизирующий уровень 240 транскодера 200, чтобы координировать синхронизацию широковещательной передачи данных.Analyzer 205 transmits video ES 206 to decoder 214, which is part of analyzer / decoder 202, shown here. In other configurations, analyzer 205 and decoder 214 are separate components. PTS 210 are sent to transcoder PTS shaper 215, which can generate separate presentation timestamps specific to
Фиг.3 иллюстрирует блок-схему последовательности операций одного примера процесса 300, которому анализатор 205 может следовать при разборе различных пакетированных элементарных потоков, описанных выше. Процесс 300 начинается на этапе 302, когда мультимедийные данные 104 принимаются от поставщика 106 содержимого (фиг.1). Процесс 300 переходит к этапу 304, на котором выполняется инициализация анализатора 205. Инициализация может активироваться посредством независимо сформированной команды 306 сбора данных. Например, процесс, который независим от анализатора 205 и основан на внешне принимаемом ТВ-расписании и информации настройки каналов, может формировать команду 306 сбора данных. Дополнительно, могут быть введены дескрипторы 308 буфера транспортного потока (TS) реального времени, чтобы помогать в инициализации и для основной обработки.FIG. 3 illustrates a flowchart of one example of a
Как проиллюстрировано на этапе 304, инициализация может включать в себя запрос проверки синтаксиса команд, выполнение обработки PSI/PSIP/SI первого прохода (конкретная для программы информация/программа и протокол системной информации/системная информация), выполнение обработки, конкретно связанной либо с командой сбора данных, либо с проверкой согласованности PSI/PSIP/SI, назначение PES-буферов для каждого PES и задание распределения по времени (к примеру, для совмещения с требуемым моментом начала сбора данных). PES-буферы содержат разобранные ES-данные и передают все разобранные ES-данные в соответствующие аудиодекодер 216, тестовый декодер 220, декодер 214 или PTS-формирователь 215 транскодера.As illustrated in
После инициализации процесс 300 переходит к этапу 310 для основной обработки принимаемых мультимедийных данных 104. Обработка на этапе 310 может включать в себя фильтрацию целевых идентификаторов пакетов (PID), непрерывный мониторинг и обработку PSI/PSIP/SI и процесс распределения по времени (к примеру, для достижения требуемой продолжительности сбора данных), с тем чтобы поступающие мультимедийные данные передавались в соответствующие PES-буферы. Как результат обработки мультимедийных данных на этапе 310 формируются программный дескриптор и индикатор PES-буфера "read", которые взаимодействуют с декодером 214 (фиг.2) так, как описано ниже.After initialization, the
После этапа 310 процесс 300 переходит к этапу 314, на котором выполняется завершение операций разбора, формирование прерывания таймера и освобождение PES-буферов после их использования. Следует отметить, что PES-буферы имеются для всех релевантных элементарных потоков программы, упомянутых в дескрипторе, например, потоков аудио, видео и субтитров.After
Снова ссылаясь на фиг.2, анализатор 205 отправляет ES 208 аудио в аудиодекодер 216 для соответствия реализации транскодера и предоставляет кодированный текст 216 в синхронизирующий уровень 240 и декодирует аудиоинформацию. Информация 212 субтитров доставляется в текстовый декодер 220. Данные 218 кодированных субтитров между кадрами (CC) из декодера 214 также предоставляются в текстовый кодер 220, который кодирует информацию 212 субтитров и CC-данные 218 в формате, осуществляемом посредством транскодера 200.Referring again to FIG. 2, the analyzer 205 sends the audio ES 208 to the audio decoder 216 to match the transcoder implementation and provides encoded text 216 to the synchronization layer 240 and decodes the audio information. Subtitle information 212 is delivered to a text decoder 220. Inter-frame encoded subtitle (CC) data 218 from decoder 214 is also provided to a text encoder 220 that encodes subtitle information 212 and CC data 218 in a format implemented by
Анализатор/декодер 202 также включает в себя декодер 214, который принимает ES 206 видео. Декодер 214 может формировать метаданные, ассоциативно связанные с видеоданными, декодирует кодированный пакетированный элементарный видеопоток в необработанное видео 224 (например, в формате стандартного разрешения) и обрабатывает видеоданные кодированных субтитров между кадрами в ES-поток видео.The analyzer / decoder 202 also includes a decoder 214 that receives the ES 206 video. Decoder 214 may generate metadata associated with the video data, decodes the encoded packetized elementary video stream into raw video 224 (eg, in standard definition format), and processes the encoded subtitle video data between frames into an ES video stream.
Фиг.4 иллюстрирует блок-схему последовательности операций, показывающую один пример процесса 400 декодирования, который может быть выполнен посредством декодера 214. Процесс 400 начинается с ввода данных 206 элементарного видеопотока на этапе 402. Процесс 400 переходит к этапу 404, на котором декодер инициализируется. Инициализация может включать в себя ряд задач, в том числе обнаружение заголовка видеопоследовательности (VSH), выполнение VSH первого прохода, обработку видеопоследовательности (VS) и дисплейного расширения VS (включая видеоформат, составные цвета и матричные коэффициенты) и назначение буферов данных так, чтобы надлежащим образом буферизовать декодированное изображение, ассоциативно связанные метаданные и данные кодированных субтитров между кадрами (CC). Дополнительно, информация 406 "read" PES-буфера видео, предоставляемая посредством анализатора 205, вводится (к примеру, которая может быть сформирована посредством процесса 300 на этапе 310 по фиг.3).FIG. 4 illustrates a flowchart showing one example of a
После инициализации на этапе 404 процесс 400 переходит к этапу 408, на котором основная обработка ES видео выполняется посредством декодера 214. Основная обработка включает в себя запрашивание информации "read" PES-буфера видео или "интерфейса" для доступности новых данных, декодирование ES видео, восстановление и сохранение пиксельных данных при синхронизации границ изображений, метаданных формирования видео и аудио-видео и сохранение на границах изображений и сохранение CC-данных на границах изображений. Этап 410 результатов основной обработки 408 включает в себя формирование дескрипторов последовательности, дескрипторов буфера декодированных изображений, дескрипторов буферов метаданных и дескрипторов буферов CC-данных.After initialization in
После основной обработки 408 процесс 400 переходит к этапу 412, на котором он выполняет процесс завершения. Процесс завершения может включать в себя определение условий завершения, в том числе отсутствие новых данных, появляющихся в течение конкретного времени выше предварительно определенного порога, обнаружение конечного кода последовательности и/или обнаружение явного сигнала завершения. Процесс завершения дополнительно может включать в себя освобождение декодированного изображения, ассоциативно связанных метаданных и буферов CC-данных после их использования посредством препроцессора, который описывается ниже. Процесс 400 завершается на этапе 414, где он может перейти в состояние ожидания ES видео, который должен быть принят в качестве ввода.After the
ПрепроцессорPreprocessor
Фиг.2 и подробнее фиг.6 иллюстрируют примерный аспект препроцессора 226, который может использовать информацию содержимого для одной или более операций предварительной обработки. Препроцессор 226 принимает метаданные 222 и декодированные "необработанные" видеоданные 224 от анализатора/декодера 202. Препроцессор 226 сконфигурирован так, чтобы выполнять определенные типы обработки для видеоданных 224 и метаданных 222 и предоставлять обработанное мультимедиа (к примеру, опорные кадры базового уровня, опорные кадры уровня улучшения, информацию полосы пропускания, информацию содержимого) и видео в кодер 228. Такая предварительная обработка мультимедийных данных позволяет повышать визуальную четкость, подавление наложения спектра и эффективность сжатия данных. В общем, препроцессор 226 принимает видеопоследовательности, предоставляемые посредством декодера 214 в анализаторе/декодере 202, и преобразует видеопоследовательности в прогрессивные видеопоследовательности для дополнительной обработки (к примеру, кодирования) посредством кодера 228. В некоторых аспектах препроцессор 226 может быть сконфигурирован для множества операций, в том числе операций преобразования из видеоформата в фильм, устранения чересстрочной развертки, фильтрации (к примеру, удаления дефектов изображения, подавления ревербераций, разблокирования и снижения шумности), изменения размера (к примеру, понижающей дискретизации пространственного разрешения со стандартного разрешения до четверти логической матрицы видеографики (QVGA)) и формирования GOP-структуры (к примеру, вычисления формирования таблицы сложности, обнаружения смены сцен и обнаружения затенения/вспышки).FIG. 2 and FIG. 6 in more detail illustrate an exemplary aspect of a
Препроцессор 226 может использовать метаданные от декодера для того, чтобы затрагивать одну или более операций предварительной обработки. Метаданные могут включать в себя информацию, связанную, описывающую или классифицирующую содержимое мультимедийных данных ("информацию содержимого"); в частности, метаданные могут включать в себя классификацию содержимого. В некоторых аспектах метаданные не включают в себя информацию содержимого, требуемую для операций кодирования. В этих случаях препроцессор 226 может быть сконфигурирован так, чтобы определять информацию содержимого и использовать информацию содержимого для операций предварительной обработки и/или предоставлять информацию содержимого в другие компоненты транскодера 200, к примеру, декодер 228. В некоторых аспектах препроцессор 226 может использовать эту информацию содержимого для того, чтобы воздействовать на секционирование GOP, определять соответствующий тип фильтрации и/или определять параметры кодирования, которые передаются в кодер.
Фиг.6 показывает иллюстративный пример различных этапов обработки, которые могут быть включены в препроцессор 226, и иллюстрирует обработку, которая может быть выполнена посредством препроцессора 226. В этом примере препроцессор 226 принимает метаданные и видео 222, 224 и предоставляет выходные данные 614, содержащие (обработанные) метаданные и видео, в кодер 228. В типичном варианте предусмотрено три типа видео, которое может приниматься. Во-первых, принимаемое видео может быть прогрессивным видео, где не требуется устранение чересстрочной развертки. Во-вторых, видеоданные могут быть видео, преобразованным из фильма в видеоформат, чересстрочным видео, преобразованным из кинопоследовательностей в 24 кадра в секунду, в данном случае видео. В-третьих, видео может быть чересстрочным видео, не преобразованным из фильма в видеоформат. Препроцессор 226 может обрабатывать эти типы видео так, как описано ниже.6 shows an illustrative example of various processing steps that may be included in
На этапе 601 препроцессор 226 определяет то, являются ли принятые видеоданные 222, 224 прогрессивным видео. В некоторых случаях это может быть определено из метаданных, если метаданные содержат эту информацию, либо посредством обработки самих видеоданных. Например, процесс преобразования из видеоформата в фильм, описанный ниже, позволяет определять то, является ли принимаемое видео 222 прогрессивным видео. Если является, процесс переходит к этапу 607, на котором операции фильтрации (к примеру, снижения шумности) выполняются для видео, чтобы уменьшить шум, такой как белый гауссовый шум. Если видеоданные 222, 224 не являются прогрессивным видео, на этапе 601 процесс переходит к этапу 604 к модулю 604 обнаружения фаз.At step 601, the
Модуль 604 обнаружения фаз различает видео, которое изначально преобразовано из фильма в видеоформат и которое начиналось в стандартном широковещательном формате. Если принято решение о том, что видео преобразовано из фильма в видеоформат (путь решения "ДА", выходящий из модуля 604 обнаружения фаз), преобразованное из фильма в видеоформат видео возвращается в исходный формат при обратном преобразовании 606 из видеоформата в фильм. Избыточные кадры идентифицируются и устраняются, а поля, извлеченные из того же видеокадра, переплетаются в полное изображение. Поскольку последовательность восстановленных киноизображений фотографически записана с регулярными интервалами в 1/24 секунды, процесс оценки движения, выполняемый в модуле 612 секционирования GOP или декодере 228, является более точным при использовании преобразованных из видеоформата в фильм изображений, чем преобразованных из фильма в видеоформат данных, которые имеют нерегулярную временную базу.The
В одном аспекте модуль 604 обнаружения фаз принимает конкретные решения после приема видеокадра. Эти решения включают в себя: (i) является текущее видео из вывода преобразования из фильма в видеоформат, а фаза продвижения на шаг кадра 3:2 является одной из пяти фаз P0, P1, P2, P3 и P4, показанных на фиг.38, или нет; и (ii) видео сформировано как традиционное NTSC. Это решение обозначается как фаза P5. Данные решения отображаются как выводы модуля 604 обнаружения фаз, показанного на фиг.2. Путь из модуля 604 обнаружения фаз, помеченный "ДА", активирует преобразование 606 из видеоформата в фильм, указывая то, что оно предоставлено с корректной фазой продвижения на шаг кадра, с тем чтобы оно могло отсортировать поля, которые сформированы из одного фотографического изображения, и комбинировать их. Путь из модуля 604 обнаружения фаз, помеченный "НЕТ", аналогично активирует модуль 605 устранения чересстрочной развертки, чтобы разделить видимый NTSC-кадр на поля для оптимальной обработки. Модуль 604 обнаружения фаз может непрерывно анализировать видеокадры, поскольку различные типы видео могут приниматься в любое время. В качестве примера, видео, соответствующее NTSC-стандарту, может быть вставлено в видео в качестве рекламы. После преобразования из видеоформата в фильм результирующее прогрессивное видео отправляется в модуль снижения шумности (фильтр) 607, который может быть использован для того, чтобы понижать белый гауссов шум.In one aspect, the
Когда традиционное NTSC-видео распознается (путь "НЕТ" из модуля 601 обнаружения фаз), оно передается в модуль 605 устранения чересстрочной развертки для сжатия. Модуль 605 устранения чересстрочной развертки преобразует чересстрочные поля в прогрессивное видео, и операции понижения шумности затем могут быть выполнены для прогрессивного видео. Один иллюстративный пример обработки устранения чересстрочной развертки описан ниже.When the traditional NTSC video is recognized (path "NO" from the phase detection module 601), it is transmitted to the interlace
Традиционные аналоговые видеоустройства, такие как телевизоры, выполняют рендеринг видео чересстрочным способом, т.е. эти устройства передают строки развертки с четными номерами (четное поле) и строки развертки с нечетными номерами (нечетное поле). С точки зрения дискретизации сигналов, это эквивалентно пространственно-временной субдискретизации в шаблоне, описанном посредством:Traditional analog video devices, such as televisions, render video interlaced, i.e. these devices transmit scan lines with even numbers (even field) and scan lines with odd numbers (odd field). In terms of signal sampling, this is equivalent to spatio-temporal subsampling in a pattern described by:
где Θ означает изображение исходного кадра, F означает чересстрочное поле, а (x,y,n) представляет горизонтальную, вертикальную и временную позицию пиксела, соответственно.where Θ means the image of the original frame, F means the interlaced field, and (x, y, n) represents the horizontal, vertical and temporary position of the pixel, respectively.
Без потери общности можно предположить, что n=0 - это четное поле в данном описании, так что вышеприведенное уравнение 1 упрощается следующим образом:Without loss of generality, we can assume that n = 0 is an even field in this description, so that the
Поскольку прореживание не выполняется в горизонтальном направлении, шаблон субдискретизации может быть проиллюстрирован в следующей n-y координате.Since thinning is not performed in the horizontal direction, the downsampling pattern can be illustrated in the next ny coordinate.
Цель модуля устранения чересстрочной развертки заключается в том, чтобы преобразовывать чересстрочное видео (последовательность полей) в нечересстрочные прогрессивные кадры (последовательность кадров). Другими словами, интерполировать четные и нечетные поля так, чтобы "восстановить" или сформировать полнокадровые изображения. Это может быть представлено посредством уравнения 3:The purpose of the interlaced scan elimination module is to convert the interlaced video (field sequence) to non-interlaced progressive frames (frame sequence). In other words, interpolate even and odd fields so as to “restore” or form full-frame images. This can be represented by equation 3:
где F i представляет результаты устранения чересстрочной развертки для отсутствующих пикселов.where F i represents the interlacing elimination results for missing pixels.
Фиг.40 - это блок-схема, иллюстрирующая определенные аспекты модуля 605 устранения чересстрочной развертки, который использует Wmed-фильтрацию и оценку движения для того, чтобы формировать прогрессивный кадр из чересстрочных мультимедийных данных. Верхняя часть фиг.40 показывает таблицу 4002 интенсивности движения, которая может быть сформирована с помощью информации из текущего поля, двух предыдущих полей (поля PP и поля P) и двух последующих полей (поля Next и поля Next Next). Таблица 4002 интенсивности движения категоризирует или секционирует текущий кадр на два или более различных уровня движения и может быть сформирована посредством пространственно-временной фильтрации, описанной подробнее ниже. В некоторых аспектах таблица 4002 интенсивности движения сформирована так, чтобы идентифицировать статичные области, области медленного движения и области быстрого движения, как описано в ссылках к уравнениям 4-8 ниже. Пространственно-временной фильтр, к примеру, Wmed-фильтр 4004 фильтрует чересстрочные мультимедийные данные с помощью критериев на основе таблицы интенсивности движения и формирует пространственно-временной подготовленный кадр с устраненной чересстрочной разверткой. В некоторых аспектах процесс Wmed-фильтрация влечет за собой горизонтальное соседство в [-1, 1], вертикальное соседство в [-3, 3] и временное соседство в пять последующих полей, которые представлены посредством пяти полей (поле PP, поле P, поле Current, поле Next, поле Next Next), проиллюстрированных на фиг.40, где Z
-1 представляет задержку одного поля. Относительно поля Current поле Next и поле P являются полями без четности, а поле PP и поле Next Next являются полями с четностью. "Соседство", используемое для пространственно-временной фильтрации, означает пространственное и временное размещение полей и пикселов, фактически используемых в ходе операции фильтрации, и может быть проиллюстрировано как "апертура", как показано, например, на фиг.6 и 7.FIG. 40 is a block diagram illustrating certain aspects of an
Модуль 605 устранения чересстрочной развертки также может включать в себя модуль 4006 понижения шумности (фильтр понижения шумности), сконфигурированный так, чтобы отфильтровывать пространственно-временной подготовленный кадр с устраненной чересстрочной разверткой, сформированный посредством Wmed-фильтра 4004. Понижение шумности пространственно-временного подготовленного кадра с устраненной чересстрочной разверткой делает последующий процесс поиска движения более точным, особенно если исходная последовательность чересстрочных мультимедийных данных загрязнена белым шумом. Он также может удалять, по меньшей мере, частично помехи дискретизации между четными и нечетными строками в Wmed-изображении. Модуль 4006 понижения шумности может быть реализован как множество фильтров, включая модуль понижения шумности на основе вейвлет-сжатия и вейвлет-фильтра Винера. Модуль понижения шумности может быть использован для того, чтобы удалять шум из варианта Wmed-кадра, прежде чем он дополнительно обрабатывается с помощью информации компенсации движения, и может удалять шум, который присутствует в Wmed-кадре, и сохранять наличие сигнала вне зависимости от частотного содержимого сигнала. Различные типы фильтров понижения шумности могут быть использованы, в том числе вейвлет-фильтры. Вейвлеты - это класс функций, используемых для того, чтобы локализовать данный сигнал как в пространственной области, так и в области масштабирования. Фундаментальная идея относительно вейвлетов заключается в том, чтобы анализировать сигнал при различных масштабах или разрешениях, с тем чтобы незначительные изменения в вейвлет-представлении формировали соответствующие небольшие изменения в исходном сигнале.The interlacing
Вейвлет-сжатие или вейвлет-фильтр Винера также может быть применен как модуль понижения шумности. Вейвлет-сжатие состоит из вейвлет-преобразования сигнала шума, за которым следует сжатие небольших вейвлет-коэффициентов до нуля (или меньшего значения) при оставлении неизмененными больших коэффициентов. В завершение обратное преобразование выполняется для того, чтобы получить оцененный сигнал.Wiener wavelet compression or Wiener wavelet filter can also be used as a noise reduction module. Wavelet compression consists of a wavelet transform of a noise signal, followed by compression of small wavelet coefficients to zero (or a lower value) while leaving large coefficients unchanged. Finally, the inverse transform is performed in order to obtain an estimated signal.
Фильтрация с понижением шумности повышает точность компенсации движения в шумных окружениях. Понижение шумности с вейвлет-сжатием может влечь за собой сжатие в области вейвлет-преобразования и в типичном варианте содержит три этапа: линейное прямое вейвлет-преобразование, нелинейное понижение шумности со сжатием и линейное обратное вейвлет-преобразование. Фильтр Винера - это MSE-оптимальный линейный фильтр, который может быть использован для того, чтобы улучшать изображения, ухудшенные посредством аддитивного шума и размывания. Эти фильтры, в общем, известны в данной области техники и описываются, например, в работе "Ideal spatial adaptation by wavelet shrinkage", указанной выше, и в работе авторов S. P. Ghael, A. M. Sayeed и R. G. Baraniuk, "Improvement Wavelet denoising via empirical Wiener filtering", Proceedings of SPIE, том 3169, стр. 389-399, Сан-Диего, июль 1997 года, которые явно полностью содержатся в данном документе по ссылке.Noise reduction filtering improves the accuracy of motion compensation in noisy environments. Noise reduction with wavelet compression can entail compression in the wavelet transform domain and typically includes three stages: linear direct wavelet transform, nonlinear noise reduction with compression, and linear inverse wavelet transform. The Wiener filter is an MSE-optimal linear filter that can be used to enhance images that are degraded by additive noise and blur. These filters are generally known in the art and are described, for example, in the work “Ideal spatial adaptation by wavelet shrinkage” mentioned above and in the work of the authors SP Ghael, AM Sayeed and RG Baraniuk, “Improvement Wavelet denoising via empirical Wiener filtering ", Proceedings of SPIE , Volume 3169, pp. 389-399, San Diego, July 1997, which are hereby incorporated by reference in their entirety.
В некоторых аспектах фильтр понижения шумности основан на аспекте биортогонального кубического B-сплайнового вейвлет-фильтра (4, 2). Один такой фильтр может быть задан посредством выполнения прямого и обратного преобразования:In some aspects, the noise reduction filter is based on the aspect of the biorthogonal cubic B-spline wavelet filter (4, 2). One such filter can be specified by performing forward and reverse transforms:
иand
(обратное преобразование)
(inverse transformation)
Применение фильтра понижения шумности позволяет повысить точность компенсации движения в шумном окружении. Реализации таких фильтров дополнительно описаны в работе "Ideal spatial adaptation by wavelet shrinkage", авторы D.L. Donoho и I.M. Johnstone, Biometrika, том 8, стр.425-455, 1994 год, которые явно полностью содержатся в данном документе по ссылке.The use of a noise reduction filter improves the accuracy of motion compensation in noisy environments. Implementations of such filters are further described in "Ideal spatial adaptation by wavelet shrinkage," by DL Donoho and IM Johnstone, Biometrika, Volume 8, pp. 425-455, 1994, which are clearly incorporated herein by reference.
Нижняя часть фиг.40 иллюстрирует аспект для определения информации движения (к примеру, вариантов векторов движения, оценки движения, компенсации движения) чересстрочных мультимедийных данных. В частности, фиг.40 иллюстрирует схему оценки движения и компенсации движения, которая используется для того, чтобы сформировать предварительный прогрессивный кадр после компенсации движения из выбранного кадра, и затем комбинируется с предварительным Wmed-кадром, чтобы сформировать "конечный" прогрессивный кадр, показанный как текущий кадр 4014 с устраненной чересстрочной разверткой. В некоторых аспектах варианты (или оценки) векторов движения (MV) чересстрочных мультимедийных данных предоставляются в модуль устранения чересстрочной развертки из внешних модулей оценки движения и используются для того, чтобы предоставлять начальную точку для двунаправленного модуля оценки и компенсации движения (ME/MC) 4018. В некоторых аспектах модуль 4022 выбора MV-вариантов использует ранее определенные MV для соседних блоков для MV-вариантов обрабатываемых блоков, например, MV предыдущих обработанных блоков, к примеру, блоков в предыдущем кадре 4020 с устраненной чересстрочной разверткой. Компенсация движения может осуществляться двунаправленно на основе предыдущего кадра 70 с устраненной чересстрочной разверткой и следующего (к примеру, будущего) Wmed-кадра 4008. Текущий Wmed-кадр 4010 и текущий кадр 4016 после компенсации движения (MC) объединяются или комбинируются посредством модуля 4012 комбинирования. Результирующий текущий кадр 4014 с устраненной чересстрочной разверткой, теперь прогрессивный кадр, предоставляется обратно в ME/MC 4018, чтобы быть использованным как предыдущий кадр 4020 с устраненной чересстрочной разверткой, а также передается за пределы модуля 605 устранения чересстрочной развертки для последующей обработки.The bottom of FIG. 40 illustrates an aspect for determining motion information (e.g., motion vector options, motion estimation, motion compensation) of interlaced multimedia data. In particular, FIG. 40 illustrates a motion estimation and motion compensation scheme that is used to form a preliminary progressive frame after motion compensation from a selected frame, and then combined with a preliminary Wmed frame to form a “final” progressive frame, shown as current frame 4014 with interlaced eliminated. In some aspects, options (or estimates) of the motion vectors (MV) of the interlaced multimedia data are provided to the interlacing elimination unit from the external motion estimation modules and are used to provide a starting point for the bidirectional motion estimation and compensation module (ME / MC) 4018. In some aspects, the MV-option selection module 4022 uses the previously defined MVs for neighboring blocks for the MV-variants of the processed blocks, for example, the MVs of the previous processed blocks, for example, the blocks in the
Можно выделить схемы предсказания устранения чересстрочной развертки, содержащие межполевую интерполяцию, из внутриполевой интерполяции с помощью схемы устранения чересстрочной развертки Wmed+MC. Другими словами, пространственно-временная Wmed-фильтрация может быть использована, в первую очередь, для целей внутриполевой интерполяции, тогда как межполевая интерполяция может выполняться в ходе компенсации движения. Это снижает пиковое соотношение "сигнал-шум" результата Wmed, но визуальное качество после того, как применена компенсация движения, является более удовлетворительным, поскольку дефектные пикселы из неточных решений режима внутриполевого предсказания удаляются из процесса Wmed-фильтрации.It is possible to distinguish inter-field prediction prediction schemes containing interfield interpolation from intra-field interpolation using the Wmed + MC interlace interruption correction scheme. In other words, spatio-temporal Wmed filtering can be used primarily for the purpose of in-field interpolation, while the inter-field interpolation can be performed during motion compensation. This reduces the peak signal-to-noise ratio of the Wmed result, but the visual quality after the motion compensation is applied is more satisfactory since defective pixels from inaccurate in-field prediction mode solutions are removed from the Wmed filtering process.
После соответствующей обработки преобразования из видеоформата в фильм или устранения чересстрочной развертки на этапе 608 прогрессивное видео обрабатывается для подавления помех дискретизации и повторной дискретизации (к примеру, изменения размера). В некоторых аспектах повторной дискретизации модуль повторной дискретизации фазы реализован для изменения размера изображений. В одном примере понижающей дискретизации соотношение между исходным и измененным изображением может быть p/q, где p и q - это относительно простые числа. Общее число фаз равно p. Частота отсечки полифазного фильтра в некоторых аспектах равна 0,6 для коэффициентов изменения размера примерно в 0,5. Частота отсечки не совпадает точно с коэффициентом изменения размера, чтобы повысить высокочастотную характеристику последовательности измененного размера. Это неизбежно предоставляет определенные помехи дискретизации. Тем не менее, хорошо известно, что человеческий глаз предпочитает резкие, но с небольшими помехами изображения размытым и не содержащим помех изображениям.After appropriately processing the conversion from the video format to the film or eliminating interlacing at step 608, the progressive video is processed to suppress sampling noise and resampling (e.g., resizing). In some aspects of resampling, a phase resampling module is implemented for resizing images. In one downsampling example, the ratio between the original and the resized image may be p / q , where p and q are relatively prime numbers. The total number of phases is p. The cutoff frequency of the polyphase filter is, in some aspects, 0.6 for a coefficient of change of size of approximately 0.5. The cutoff frequency does not exactly match the resizing factor to enhance the high frequency response of the resized sequence. This inevitably provides certain sampling interference. However, it is well known that the human eye prefers sharp, but with little interference, images to blurry and interference-free images.
Фиг.41 иллюстрирует пример полифазной повторной дискретизации, показывающий фазы, если соотношение изменения размера составляет 3/4. Частота отсечки, проиллюстрированная на фиг.41, также составляет 3/4. Исходные пикселы проиллюстрированы на вышеуказанном чертеже с вертикальными осями. Синусоидальная функция также нарисована центрированной вокруг осей, чтобы представлять форму сигнала фильтра. Поскольку частота отсечки выбрана так, чтобы быть такой же, что и соотношение повторной дискретизации, нули синусоидальной функции перекрывают позицию пикселов после изменения размера, проиллюстрированного на фиг.41 с помощью пересечений. Чтобы найти значение пиксела после изменения размера, доля может быть просуммирована из исходных пикселов, как показано в следующем уравнении:Fig. 41 illustrates an example of polyphase resampling showing phases if the size change ratio is 3/4 . The cutoff frequency illustrated in FIG. 41 is also 3/4. The original pixels are illustrated in the above figure with vertical axes. A sinusoidal function is also drawn centered around the axes to represent the filter waveform. Since the cutoff frequency is selected to be the same as the resampling ratio, the zeros of the sinusoidal function overlap the position of the pixels after the resizing illustrated in FIG. 41 by intersections. To find the pixel value after resizing, the fraction can be summed from the original pixels, as shown in the following equation:
где f c - это частота отсечки. Вышеуказанный одномерный полифазный фильтр может быть применен к горизонтальному направлению и вертикальному направлению.where f c is the cutoff frequency. The above one-dimensional polyphase filter can be applied to the horizontal direction and the vertical direction.
Другой аспект повторной дискретизации (изменения размера) учитывает развертку за пределами экрана. В телевизионном сигнале NTSC изображение имеет 486 строк развертки, а в цифровом видео может иметь 720 пикселов для каждой строки развертки. Тем не менее, не все полное изображение видно на телевизоре вследствие несовпадений между размером и форматом экрана. Часть изображения, которая не видна, называется разверткой за пределами экрана.Another aspect of resampling (resizing) allows for off-screen scanning. In an NTSC television signal, the image has 486 scan lines, and in digital video, it can have 720 pixels for each scan line. However, not all of the full image is visible on the TV due to discrepancies between the size and screen format. The part of the image that is not visible is called the off-screen scan.
Чтобы помочь широковещательным станциям помещать полезную информацию в область, видимую как можно большим числом телевизоров. Общество инженеров кино и телевидения (SMPTE) задало конкретные размеры кадра движущихся объектов, называемые защищенной областью движущихся объектов и защищенной областью тайтлов. См. руководящие указания SMPTE RP 27.3-1989 "Specifications for Safe Action and Safe Title Areas Test Pattern for Television Systems". Защищенная область движущихся объектов задается посредством SMPTE как область, в которой должны находиться все существенные движущиеся объекты. Защищенная область тайтлов задается как область, в которой вся полезная информация может быть заключена, чтобы обеспечить видимость на большинстве домашних телевизионных приемников.To help broadcast stations put useful information in an area visible to as many TVs as possible. The Society of Film and Television Engineers (SMPTE) has set specific frame sizes for moving objects, called the protected area of moving objects and the protected area of titles. See SMPTE RP 27.3-1989 Guidelines " Specifications for Safe Action and Safe Title Areas Test Pattern for Television Systems ". The protected area of moving objects is defined by SMPTE as the area in which all significant moving objects should be located. A protected title area is defined as an area in which all useful information can be enclosed to provide visibility on most home television sets.
Например, ссылаясь на фиг.25, защищенная область 2510 движущихся объектов занимает по центру 90% экрана, давая 5% границу вокруг. Защищенная область 2505 тайтлов занимает по центру 80% экрана, давая 10% границы. Ссылаясь теперь на фиг.26, поскольку защищенная область тайтлов слишком мала, чтобы добавить дополнительное содержимое в изображение, некоторые станции помещают текст в защищенную область движущихся объектов, которая находится внутри белого прямоугольного окна 2615.For example, referring to FIG. 25, the protected area 2510 of moving objects occupies 90% of the screen in the center, giving a 5% border around. The protected area of 2505 titles occupies the center of 80% of the screen, giving 10% of the border. Referring now to FIG. 26, since the protected area of the titles is too small to add additional content to the image, some stations place text in the protected area of moving objects that is inside the white
Обычно черные границы могут быть видны в развертке за пределами экрана. Например, на фиг.26 черные границы отображаются в верхней стороне 2620 и нижней стороне 2625 изображения. Эти черные границы могут быть удалены в развертке за пределами экрана, поскольку видео H.264 применяет расширение границ при оценке движения. Расширенные черные границы позволяют увеличивать остаток. Консервативно, граница может быть обрезана на 2% и затем выполнено изменение размера. Фильтры для изменения размера могут быть сформированы соответствующим образом. Отсечение выполняется для того, чтобы удалить развертку за пределами экрана до полифазной понижающей дискретизации.Typically, black borders can be seen in the scan outside the screen. For example, in FIG. 26, black borders are displayed on the
Снова ссылаясь на фиг.6, прогрессивное видео затем переходит к этапу 610, где выполняются операции разблокирования и подавления ревербераций. Два типа помех, "блокировка" и "реверберации", как правило, возникают в приложениях видеосжатия. Помехи изображения возникают, поскольку алгоритмы сжатия делят каждый кадр на блоки (к примеру, блоки 8x8). Каждый блок восстанавливается с некоторыми небольшими ошибками, и ошибки по краям блока зачастую контрастируют с ошибками по краям соседних блоков, делая границы блоков видимыми. В отличие от этого помехи ревербераций появляются как искажения по краям элементов изображений. Помехи реверберации возникают, поскольку кодер отбрасывает слишком много информации при квантовании высокочастотных DCT-коэффициентов. В некоторых иллюстративных примерах деблокирование и подавление ревербераций может использовать фильтры нижних частот с FIR (конечной импульсной характеристикой), чтобы скрывать эти видимые помехи.Referring again to FIG. 6, the progressive video then proceeds to step 610, where the unlock and suppress reverb operations are performed. Two types of interference, “blocking” and “reverb,” typically occur in video compression applications. Image noise occurs because compression algorithms divide each frame into blocks (for example, 8x8 blocks). Each block is restored with some small errors, and errors at the edges of the block often contrast with errors at the edges of neighboring blocks, making the boundaries of the blocks visible. In contrast, reverb noise appears as distortion at the edges of image elements. Reverb noise occurs because the encoder discards too much information when quantizing high-frequency DCT coefficients. In some illustrative examples, releasing and suppressing reverbs can use low-pass filters with FIR (finite impulse response) to mask this visible interference.
В одном примере обработки деблокирования фильтр деблокирования может быть применен ко всем краям блоков 4x4 кадра, за исключением краев на границе кадра и всех краев, для которых процесс фильтра деблокирования отключен. Этот процесс фильтрации должен выполняться на основе макроблоков после завершения процесса составления кадров, причем все макроблоки в кадре обрабатываются в порядке увеличения адресов макроблоков. Для каждого макроблока вертикальные края фильтруются первыми, слева направо, а затем горизонтальные края фильтруются сверху вниз. Процесс фильтра деблокирования компоненты яркости выполняется по четырем краям из 16 выборок, и процесс фильтра деблокирования для каждой компоненты цветности выполняется по двум краям из 8 выборок для горизонтального направления и для вертикального направления, как показано на фиг.39. Значения выборки выше и слева от текущего макроблока, которые, возможно, уже модифицированы посредством операции процесса деблокирования для предыдущих макроблоков, должны быть использованы в качестве входных данных процесса фильтра деблокирования для текущего макроблока и могут быть дополнительно модифицированы в ходе фильтрации текущего макроблока. Значения выборки, модифицированные в ходе фильтрации вертикальных краев, могут быть использованы в качестве входных данных для фильтрации горизонтальных краев для того же макроблока. Процесс деблокирования может быть активирован для компонент яркости и цветности отдельно.In one example of release processing, a release filter can be applied to all edges of 4x4 blocks of a frame, except for edges at the frame boundary and all edges for which the release filter process is disabled. This filtering process should be performed on the basis of macroblocks after completion of the compilation process, and all macroblocks in the frame are processed in the order of increasing addresses of the macroblocks. For each macroblock, the vertical edges are filtered first, from left to right, and then the horizontal edges are filtered from top to bottom. The release filter process of the luminance component is performed at four edges of 16 samples, and the release filter process for each color component is performed at two edges of 8 samples for horizontal direction and for vertical direction, as shown in Fig. 39. The sample values above and to the left of the current macroblock, which may have already been modified by the release process operation for previous macroblocks, should be used as input to the release filter process for the current macroblock and can be further modified by filtering the current macroblock. Sample values modified by filtering vertical edges can be used as input to filter horizontal edges for the same macroblock. The release process can be activated separately for the luminance and chrominance components.
В примере обработки подавления ревербераций двумерный фильтр может быть адаптивно применен так, чтобы сглаживать области около краев. Краевые пикселы подвергаются небольшой фильтрации или не подвергаются фильтрации, чтобы избежать размывания.In an example of a reverb suppression processing, a two-dimensional filter can be adaptively applied so as to smooth out areas near the edges. Edge pixels are slightly filtered or not filtered to avoid blurring.
Модуль секционирования GOPGOP Partition Module
После деблокирования и подавления ревербераций прогрессивное видео обрабатывается посредством модуля 612 секционирования GOP. Размещение GOP может включать в себя обнаружение смены кадров, формирование таблиц сложности (к примеру, временных, пространственных таблиц полосы пропускания) и адаптивное секционирование GOP. Все вышеозначенное описывается далее.After the reverb is released and suppressed, the progressive video is processed by the
A. Обнаружение смены сценA. Scene change detection
Обнаружение кадров относится к определению того, когда кадр в группе изображений (GOP) предоставляет данные, которые указывают то, что произошла смена сцены. В общем, в GOP кадры могут не иметь существенной смены для любых двух или трех (или большего числа) соседних кадров либо могут быть медленные смены либо быстрые смены. Разумеется, эти классификации смены сцен при необходимости могут быть дополнительно разбиты до большего уровня смены в зависимости от варианта применения.Frame detection refers to determining when a frame in an image group (GOP) provides data that indicates that a scene change has occurred. In general, in a GOP, frames may not have a significant shift for any two or three (or more) adjacent frames, or there may be slow shifts or fast shifts. Of course, these classifications of scene changes, if necessary, can be further broken down to a higher level of change depending on the application.
Обнаружение смены кадров или сцен важно для эффективного кодирования видео. В типичном варианте, когда GOP не изменяется значительно, за I-кадром в начале GOP следует ряд предиктивных кадров, позволяет в значительной степени кодировать видео так, чтобы последующее декодирование и отображение видео было визуально приемлемым. Тем не менее, когда сцена сменяется, резко или медленно, дополнительные I-кадры и меньшее кодирование с предсказанием (P-кадры и B-кадры) может требоваться, чтобы предоставить впоследствии декодированные визуально приемлемые результаты.Detecting frame or scene changes is important for efficient video encoding. In a typical embodiment, when the GOP does not change significantly, the I-frame at the beginning of the GOP is followed by a series of predictive frames, it allows to encode the video to a large extent so that subsequent decoding and display of the video is visually acceptable. However, when a scene changes, abruptly or slowly, additional I-frames and less predictive coding (P-frames and B-frames) may be required to provide subsequently decoded, visually acceptable results.
Системы и способы обнаружения кадров и кодирования, которые повышают производительность существующих систем кодирования, описываются ниже. Эти аспекты могут быть реализованы в модуле 612 секционирования GOP препроцессора 226 (фиг.7) либо включены в устройство кодера, которое может работать с или без препроцессора. Данные аспекты используют статистику (или показатели), которые включают в себя статистические сравнения между соседними кадрами видеоданных, чтобы определять то, если возникла резкая смена сцен, сцена медленно сменяется или имеются вспышки камеры в сцене, которые могут особенно усложнять кодирование видео. Статистика может быть получена от препроцессора и затем отправлена в устройство кодирования, либо она может быть сформирована в устройстве кодирования (к примеру, посредством процессора, сконфигурированного так, чтобы выполнять компенсацию движения). Результирующая статистика помогает в принятии решения по обнаружению смены сцен. В системе, которая осуществляет перекодирование, зачастую имеется надлежащий препроцессор или конфигурируемый процессор. Если препроцессор выполняет устранение чересстрочной развертки с помощью компенсации движения, статистика компенсации движения доступна и готова к применению. В таких системах алгоритм обнаружения кадров может немного повысить сложность системы.Systems and methods for detecting frames and coding that enhance the performance of existing coding systems are described below. These aspects can be implemented in the
Иллюстративный пример модуля обнаружения кадров, описанный в данном документе, должен использовать только статистику из предыдущего кадра, текущего кадра и следующего кадра, а следовательно, имеет очень небольшую задержку. Модуль обнаружения кадров различает несколько различных типов событий кадров, в том числе резкую смену сцен, монтажный переход и другую медленную смену сцен, а также вспышку камеры. Посредством определения различных типов событий кадров с различными стратегиями в кодере эффективность кодирования и визуальное качество улучшается.The illustrative example of the frame detection module described in this document should only use statistics from the previous frame, the current frame, and the next frame, and therefore has a very small delay. The frame detection module distinguishes several different types of frame events, including a sharp change of scenes, editing transition and other slow change of scenes, as well as a camera flash. By defining various types of frame events with different strategies in the encoder, coding efficiency and visual quality are improved.
Обнаружение смены сцен может быть использовано для любой системы кодирования видео, чтобы она интеллектуально сохраняла биты посредством вставки I-кадра с фиксированным интервалом. В некоторых аспектах информация содержимого, полученная посредством препроцессора (к примеру, либо содержащаяся в метаданных, либо вычисленная посредством препроцессора 226), может быть использована для обнаружения смены сцен. Например, в зависимости от информации содержимого, пороговые значения и другие критерии, описанные ниже, могут динамически корректироваться для различных типов видеосодержимого.Scene change detection can be used for any video coding system so that it intelligently saves bits by inserting an I-frame at a fixed interval. In some aspects, content information obtained by a preprocessor (eg, either contained in metadata or computed by preprocessor 226) can be used to detect scene changes. For example, depending on the content information, thresholds and other criteria described below may be dynamically adjusted for various types of video content.
Кодирование видео обычно выполняется для структурированной группы изображений (GOP). GOP обычно начинается с внутренне кодированного кадра (I-кадра), за которым следует последовательность из P (прогнозирующих) или B (двунаправленных) кадров. В типичном варианте I-кадр может сохранять все данные, требуемые для того, чтобы отображать кадр, B-кадр базируется на данных в предшествующих и последующих кадрах (к примеру, содержащих только данные, измененные из предыдущего кадра или отличающиеся от данных в следующем кадре), а P-кадр содержит данные, которые изменены с предыдущего кадра. В большинстве случаев между I-кадрами вставляются P-кадры и B-кадры в кодированном видео. В отношении размера (к примеру, числа битов, используемых для того, чтобы кодировать кадр) I-кадры в типичном варианте гораздо больше P-кадров, которые, в свою очередь, больше B-кадров. Для эффективной обработки кодирования, передачи и декодирования длина GOP должна быть достаточно большой для того, чтобы снижать фактические потери из больших I-кадров, и достаточно маленькой для того, чтобы противостоять несовпадению между кодером и декодером или ухудшению качества канала. Помимо этого, макроблоки (MB) в P-кадрах могут быть внутренне кодированными по той же причине.Video encoding is usually performed for a structured image group (GOP). A GOP usually starts with an internally encoded frame (I-frame), followed by a sequence of P (predictive) or B (bidirectional) frames. In a typical embodiment, the I-frame can store all the data required to display the frame, the B-frame is based on the data in the previous and subsequent frames (for example, containing only data modified from the previous frame or different from the data in the next frame) , and the P-frame contains data that has been changed from the previous frame. In most cases, P-frames and B-frames in encoded video are inserted between I-frames. In terms of size (for example, the number of bits used to encode a frame), I-frames are typically much larger than P-frames, which, in turn, are larger than B-frames. For efficient encoding, transmission and decoding processing, the GOP length must be large enough to reduce the actual loss of large I-frames, and small enough to withstand the mismatch between the encoder and decoder or the degradation of channel quality. In addition, macroblocks (MBs) in P frames may be internally encoded for the same reason.
Обнаружение смены сцен может быть использовано видеокодером для того, чтобы определять соответствующую длину GOP и вставлять I-кадры на основе длины GOP вместо вставки зачастую ненужного I-кадра с фиксированным интервалом. В практической системе потоковой передачи видео качество канала связи обычно ухудшается посредством битовых ошибок или потерь пакетов. То, где размещаются I-кадры или I-MB, может существенно влиять на качество декодированного видео и удобство просмотра. Одна схема кодирования заключается в том, чтобы использовать внутренне кодированные кадры для изображений или частей изображений, которые имеют существенное отличие в сравнении с совместно размещенными предыдущими изображениями или частями изображений. Обычно эти зоны не могут эффективно и рационально предсказываться при оценке движения, и кодирование может выполняться более эффективно, если эти зоны исключены из методик межкадрового кодирования (к примеру, кодирования с помощью B-кадров и P-кадров). В контексте ухудшения качества канала эти зоны, вероятно, испытывают распространение ошибок, которое может быть уменьшено или исключено (либо практически исключено) посредством внутрикадрового кодирования.Scene change detection can be used by the video encoder to determine the corresponding GOP length and insert I-frames based on the GOP length instead of inserting the often unnecessary I-frame with a fixed interval. In a practical video streaming system, the quality of the communication channel is usually degraded by bit errors or packet loss. Where I-frames or I-MBs are placed can significantly affect decoded video quality and viewing comfort. One coding scheme is to use internally encoded frames for images or parts of images, which are significantly different than previous images or parts of images shared. Typically, these zones cannot be effectively and rationally predicted in motion estimation, and coding can be performed more efficiently if these zones are excluded from interframe coding techniques (for example, coding using B-frames and P-frames). In the context of channel quality degradation, these zones are likely to experience error propagation, which can be reduced or eliminated (or practically eliminated) by means of intraframe coding.
Части видео GOP могут быть классифицированы на две или более категорий, при этом каждая зона может иметь различные критерии внутрикадрового кодирования, которые могут зависеть от конкретной реализации. В качестве примера, видео может быть классифицировано на три категории: резкая смена сцен, монтажный переход и другие медленные смены сцен, а также вспышки камеры.Parts of a GOP video can be classified into two or more categories, with each zone having different in-frame coding criteria, which may depend on the particular implementation. As an example, a video can be classified into three categories: abrupt scene change, editing transition and other slow scene changes, as well as camera flashes.
Резкие смены сцен включают в себя кадры, которые значительно отличаются от предыдущего кадра, обычно вызываемые работой камеры. Поскольку содержимое этих кадров отличается от содержимого предыдущего кадра, кадры резкой смены сцен должны быть кодированы как I-кадры.Sudden scene changes include frames that are significantly different from the previous frame, usually caused by camera operation. Since the contents of these frames are different from the contents of the previous frame, the scene change frames must be encoded as I-frames.
Монтажный переход и другие медленные изменения сцен включают в себя медленное переключение сцен, обычно вызываемое посредством вычислительной обработки съемки камерой. Постепенное смешивание двух различных сцен может выглядеть более приятным для человеческих глаз, но налагает сложную задачу на кодирование видео. Компенсация движения не может эффективно уменьшить скорость передачи битов этих кадров, и большее число внутренних MB может быть обновлено для этих кадров.Flick transition and other slow scene changes include slow scene switching, usually caused by the computational processing of the camera shot. Gradually mixing two different scenes may look more pleasing to the human eye, but it poses a daunting task in coding a video. Motion compensation cannot effectively reduce the bit rate of these frames, and more internal MBs can be updated for these frames.
Вспышки камеры, или события вспышки камеры, возникают, когда содержимое кадра включает в себя вспышки камеры. Эти вспышки имеют относительно небольшую длительность (к примеру, один кадр) и являются очень яркими, так что пикселы в кадре, визуализирующем вспышки, демонстрируют очень высокую яркость относительно соответствующей области в соседнем кадре. Вспышки камеры сдвигают яркость изображения внезапно и быстро. Обычно продолжительность вспышки камеры меньше продолжительности временного маскирования зрительной системы человека (HVS), которая в типичном варианте задается равной 44 мс. Человеческие глаза не чувствительны к качеству этих коротких всплесков яркости, и поэтому они могут быть кодированы более грубо. Поскольку кадры вспышке не могут эффективно обрабатываться с помощью компенсации движения и они являются плохим вариантом предсказания для будущих кадров, грубое кодирование этих кадров не снижает эффективность кодирования будущих кадров. Сцены, классифицированные как вспышки, не должны быть использованы для того, чтобы предсказывать другие кадры вследствие "искусственной" высокой яркости, и другие кадры не могут быть эффективно использованы для того, чтобы предсказывать эти кадры, по той же причине. После идентификации эти кадры могут быть извлечены, поскольку они могут потребовать относительно высокого объема обработки. Один вариант состоит в том, чтобы удалять вспышки камеры и кодировать коэффициент DC на их месте; это решение является простым, вычислительно быстрым и экономит много битов.Camera flashes, or camera flash events, occur when the contents of a frame include camera flashes. These flashes have a relatively short duration (for example, one frame) and are very bright, so that the pixels in the frame rendering the flashes show a very high brightness relative to the corresponding area in the adjacent frame. Camera flashes shift image brightness suddenly and quickly. Typically, the duration of the camera flash is less than the duration of the temporary masking of the human visual system (HVS), which is typically set to 44 ms. Human eyes are not sensitive to the quality of these short bursts of brightness, and therefore they can be encoded more roughly. Since flash frames cannot be efficiently processed using motion compensation and they are a poor prediction option for future frames, rough coding of these frames does not reduce the coding efficiency of future frames. Scenes classified as flashes should not be used to predict other frames due to “artificial” high brightness, and other frames cannot be used effectively to predict these frames, for the same reason. Once identified, these frames can be retrieved since they may require a relatively high amount of processing. One option is to remove camera flashes and encode the DC factor in their place; this solution is simple, computationally fast and saves a lot of bits.
Когда любые из вышеприведенных категорий кадров обнаружены, объявляется событие кадра. Обнаружение кадров полезно не только для того, чтобы повышать эффективность кодирования, оно также может помочь в идентификации поиска и индексации видеосодержимого. Один иллюстративный аспект процесса обнаружения сцен описан ниже. В этом примере, процесс обнаружения кадров сначала вычисляет информацию, или показатели, для выбранного кадра, обрабатываемого для обнаружения кадров. Показатели могут включать в себя информацию из двумерной обработки оценки и компенсации движения для видео и других основанных на яркости показателей.When any of the above frame categories are detected, a frame event is declared. Frame detection is not only useful for improving coding efficiency, it can also help in identifying search and indexing video content. One illustrative aspect of the scene detection process is described below. In this example, the frame detection process first calculates information, or metrics, for the selected frame processed for frame detection. Indicators may include information from two-dimensional processing of estimation and motion compensation for video and other brightness-based indicators.
Чтобы выполнять двумерную оценку/компенсацию движения, видеопоследовательность должна быть предварительно обработана с помощью модуля двунаправленной компенсации движения, который сопоставляет каждый блок 8x8 текущего кадра с блоками в двух кадрах, наиболее близких к соседним кадрам, один в прошлом и один в будущем. Блок компенсации движения формирует векторы движения и разностные показатели для каждого блока. Фиг.29 - это иллюстрация, которая демонстрирует пример сопоставления пикселов текущего кадра C с прошлым кадром P и будущим (или следующим) кадром N и показывает векторы движения для сопоставленных пикселов (прошлый вектор движения MVP и будущий вектор движения MVN). Общее описание формирования двунаправленных векторов движения и связанного кодирования, в общем, приводится ниже со ссылкой на фиг.32.In order to perform two-dimensional motion estimation / compensation, the video sequence must be pre-processed using the bidirectional motion compensation module, which maps each 8x8 block of the current frame to the blocks in two frames closest to neighboring frames, one in the past and one in the future. The motion compensation unit generates motion vectors and differential indicators for each block. Fig. 29 is an illustration that shows an example of matching the pixels of the current frame C with the past frame P and the future (or next) frame N and shows the motion vectors for the matched pixels (past motion vector MV P and future motion vector MV N ). A general description of the formation of bidirectional motion vectors and associated coding, in General, is given below with reference to Fig.32.
После определения информации двунаправленного движения (к примеру, информации движения, которая идентифицирует MB (наиболее совпадающие) в соответствующих соседних кадрах, дополнительные показатели могут быть сформированы (к примеру, посредством модуля компенсации движения в модуле 612 секционирования GOP или другом соответствующем компоненте) посредством различных сравнений текущего кадра со следующим кадром и предыдущим кадром. Модуль компенсации движения может формировать разностный показатель для каждого блока. Разностным показателем может быть сумма квадратов разностей (SSD) или сумма абсолютной разности (SAD). Без потери общности здесь в качестве примера используется SAD.After determining the bi-directional motion information (for example, motion information that identifies the MBs (most matching) in the respective neighboring frames, additional metrics can be generated (for example, by the motion compensation module in the
Для каждого кадра соотношение SAD, также упоминаемое как "коэффициент контрастности", вычисляется следующим образом:For each frame, the SAD ratio, also referred to as the "contrast ratio", is calculated as follows:
где SAD P и SAD N - это сумма абсолютных разностей прямого и обратного разностного показателя соответственно. Следует отметить, что знаменатель содержит небольшое положительное число ε, чтобы не допустить ошибки деления на нуль. Числитель также содержит ε, чтобы компенсировать влияние единицы в знаменателе. Например, если предыдущий кадр, текущий кадр и следующий кадр идентичны, поиск движения должен давать SADP=SADN=0. В этом случае вышеуказанные формирователи вычисления γ=1 вместо 0 или бесконечности.where SAD P and SAD N are the sum of the absolute differences of the direct and inverse difference index, respectively. It should be noted that the denominator contains a small positive number ε in order to prevent division by zero errors. The numerator also contains ε to compensate for the influence of unity in the denominator. For example, if the previous frame, the current frame, and the next frame are identical, the motion search should yield SAD P = SAD N = 0. In this case, the above shapers compute γ = 1 instead of 0 or infinity.
Гистограмма яркости может быть вычислена для каждого кадра. В типичном варианте мультимедийные изображения имеют глубину яркости (к примеру, число "элементов разрешения") в восемь битов. Глубина яркости, используемая для вычисления гистограммы яркости согласно некоторым аспектам, может быть задана равной 16, чтобы получить гистограмму. В других аспектах глубина яркости может быть задана равной соответствующему числу, которое может зависеть от типа обрабатываемых данных, доступной вычислительной мощности или других предварительно определенных критериев. В некоторых аспектах глубина яркости может задаваться динамически на основе вычисленного или принятого показателя, например, содержимого данных.A luminance histogram can be calculated for each frame. In a typical embodiment, multimedia images have a depth of brightness (for example, the number of "resolution elements") of eight bits. The luminance depth used to calculate the luminance histogram according to some aspects may be set to 16 to obtain a histogram. In other aspects, the depth of brightness may be set equal to the corresponding number, which may depend on the type of data being processed, available processing power, or other predetermined criteria. In some aspects, the depth of luminance may be set dynamically based on a calculated or received metric, for example, data content.
Нижеприведенное уравнение иллюстрирует один пример вычисления разности гистограмм яркости (лямбды):The following equation illustrates one example of calculating the difference of luminance histograms (lambdas):
где NPi - это число блоков в i-том элементе разрешения для предыдущего кадра, NCi - это число блоков в i-том элементе разрешения для текущего кадра, а N - это общее число блоков в кадре. Если разность гистограмм яркости предыдущего и текущего кадра полностью непохожа (или непересекающаяся), то λ=2.where N Pi is the number of blocks in the i-th resolution element for the previous frame, N Ci is the number of blocks in the i-th resolution element for the current frame, and N is the total number of blocks in the frame. If the difference between the brightness histograms of the previous and the current frame is completely dissimilar (or disjoint), then λ = 2 .
Используя эта информацию, показатель разности кадров (D) вычисляется следующим образом:Using this information, the frame difference metric (D) is calculated as follows:
где A - это константа, выбранная посредством варианта применения, и where A is a constant selected through an application, and
Выбранный (текущий кадр) классифицируется как кадр резкой смены сцен, если разностный показатель кадров удовлетворяет критерию, показанному в уравнении 9:The selected (current frame) is classified as a frame of a sharp change of scenes if the difference indicator of the frames satisfies the criterion shown in equation 9:
где A - это константа, выбранная посредством варианта применения, а T 1 - это порог.where A is a constant selected through an application, and T 1 is a threshold.
В одном примере, который показывает моделирование, задание A=1 и T1=5 предоставляет хорошую производительность обнаружения. Если текущий кадр является кадром резкой смены сцен, то γc должно быть большим, а γp должно быть маленьким. Соотношение γc/γp может быть использовано вместо только γc, с тем чтобы показатель был нормализован к уровню активности.In one example that the simulation shows, setting A = 1 and T 1 = 5 provides good detection performance. If the current frame is a scene change frame, then γc should be large and γp should be small. The ratio γ c / γ p can be used instead of only γ c so that the indicator is normalized to the level of activity.
Следует отметить, что вышеприведенный критерий использует разность гистограмм яркости лямбду (λ) нелинейным способом. Фиг.16 иллюстрирует, что λ·(2λ+1) является выпуклой функцией. Когда λ небольшая (к примеру, около нуля), это просто предыскажение. Чем больше становится λ, тем больше предыскажение предоставляется посредством функции. С помощью этого предыскажения для любого λ больше 1,4, резкая смена сцен обнаруживается, если порог T1 задан равным 5.It should be noted that the above criterion uses the difference of the histograms of lambda brightness (λ) in a nonlinear way. Fig. 16 illustrates that λ · (2λ + 1) is a convex function. When λ is small (for example, near zero), this is just a predistortion. The more λ becomes, the more pre-emphasis is provided through the function. Using this pre-emphasis for any λ greater than 1.4, a sharp change of scene is detected if the threshold T 1 is set to 5.
Текущий кадр определяется как монтажный переход или медленная смена сцен, если показатель интенсивности сцены D удовлетворяет критерию, показанному в уравнении 5:The current frame is defined as a fader transition or a slow scene change if the scene intensity indicator D satisfies the criterion shown in equation 5:
для определенного числа непрерывных кадров, где T 1 - это такой же порог, что и используемый выше, а T 2 - это другое значение порога.for a certain number of continuous frames, where T 1 is the same threshold as used above, and T 2 is a different threshold value.
Событие вспышки обычно заставляет гистограмму яркости смещаться к более яркой стороне. В камере этого иллюстративного аспекта статистика гистограммы яркости используется для того, чтобы определять то, содержит ли текущий кадр вспышки камеры. Процесс обнаружения кадров может определять то, больше ли яркость текущего кадра, чем яркость предыдущего кадра, на определенный порог T 3 и больше яркость текущего кадра, чем яркость следующего кадра, на порог T 3, как показано в уравнениях 11 и 12:A flash event usually causes the luminance histogram to shift to the brighter side. In the camera of this illustrative aspect, luminance histogram statistics are used to determine if the current frame of the camera flash. The frame detection process can determine whether the brightness of the current frame is greater than the brightness of the previous frame by a certain threshold T 3 and the brightness of the current frame is greater than the brightness of the next frame by threshold T 3 , as shown in equations 11 and 12:
Если вышеуказанный критерий не удовлетворяется, текущий кадр не классифицируется как содержащий вспышки камеры. Если критерий удовлетворяется, процесс обнаружения кадров определяет то, больше ли обратный разностный показатель SAD P и прямой разностный показатель SAD N определенного порога T4, как проиллюстрировано в уравнениях ниже:If the above criterion is not satisfied, the current frame is not classified as containing camera flashes. If the criterion is met, the frame detection process determines whether the inverse difference indicator SAD P and the direct difference indicator SAD N are larger than a certain threshold T 4 , as illustrated in the equations below:
где - это средняя яркость текущего кадра, - это средняя яркость предыдущего кадра, - это средняя яркость следующего кадра, а SADP и SADN - это прямой и обратный разностные показатели, ассоциативно связанные с текущим кадром.Where is the average brightness of the current frame, is the average brightness of the previous frame, is the average brightness of the next frame, and SAD P and SAD N are the forward and backward difference metrics associated with the current frame.
Процесс обнаружения кадров определяет события вспышки камеры посредством определения сначала того, больше ли яркость текущего кадра яркости предыдущего кадра и яркости следующего кадра. Если нет, кадр не является событием вспышки камеры; но если да, то это может быть. Процесс обнаружения кадров в таком случае может определить то, больше ли обратный разностный показатель порога T3 и больше ли прямой разностный показатель порога T4; если оба этих условия удовлетворены, процесс обнаружения кадров классифицирует текущий кадр как имеющий вспышки камеры. Если критерий не удовлетворяется, кадр не классифицируется даже как любой тип кадра либо ему может быть присвоена классификация по умолчанию, которая идентифицирует кодирование, которое должно быть выполнено для кадра (к примеру, удалить кадр, кодировать как I-кадр).The frame detection process determines camera flash events by first determining whether the brightness of the current frame is greater than the brightness of the previous frame and the brightness of the next frame. If not, the frame is not a camera flash event; but if so, it could be. The frame detection process in this case can determine whether the inverse difference indicator of the threshold T 3 is greater and whether the forward difference indicator of the threshold T 4 is greater; if both of these conditions are met, the frame detection process classifies the current frame as having camera flashes. If the criterion is not satisfied, the frame is not even classified as any type of frame, or it may be assigned a default classification that identifies the encoding that must be performed for the frame (for example, delete a frame, encode as an I-frame).
Некоторые примерные значения T1, T2, T3 и T4 показаны выше. В типичном варианте эти пороговые значения выбираются посредством тестирования конкретной реализации обнаружения кадров. В некоторых аспектах одно или более пороговых значений T1, T2, T3 и T4 являются предварительно определенными, и эти значения включаются в классификатор кадров в устройстве кодирования. В некоторых аспектах одно или более пороговых значений T1, T2, T3 и T4 могут быть заданы в ходе обработки (к примеру, динамически) на основе использования информации (к примеру, метаданных), предоставляемой в классификатор кадров, или на основе информации, вычисленной самим классификатором кадров.Some exemplary values of T 1 , T 2 , T 3, and T 4 are shown above. Typically, these thresholds are selected by testing a particular implementation of frame detection. In some aspects, one or more of the threshold values T 1 , T 2 , T 3, and T 4 are predefined, and these values are included in the frame classifier in the encoding device. In some aspects, one or more threshold values T 1 , T 2 , T 3, and T 4 may be set during processing (eg, dynamically) based on the use of information (eg, metadata) provided in the frame classifier, or based on information calculated by the frame classifier itself.
Кодирование видео с помощью информации обнаружения кадров в типичном варианте выполняется в кодере, но описано здесь для полноты раскрытия обнаружения кадров. Ссылаясь на фиг.30, процесс 301 кодирования может использовать информацию обнаружения кадров для того, чтобы кодировать видео на основе обнаруженных кадров в последовательности кадров. Процесс 301 переходит к этапу 303 и проверяет, классифицирован ли текущий кадр как резкая смена сцены. Если да, на этапе 305 текущий кадр может быть кодирован как I-кадр, и граница GOP может быть определена. Если нет, процесс 301 переходит к этапу 307; если текущий кадр классифицирован как часть медленно изменяющейся сцены, на этапе 309 текущий кадр и другие кадры в медленно изменяющейся сцене могут быть кодированы как кадры с предсказанием (к примеру, P-кадр или B-кадр). Процесс 301 далее переходит к этапу 311, на котором он проверяет, классифицирован ли текущий кадр как сцена вспышки, содержащая вспышки камеры. Если да, на этапе 313 кадр может быть идентифицирован для специальной обработки, например, дл удаления или кодирования коэффициента DC для кадра; если нет, классификация текущего кадра не выполнена, и текущий кадр может быть кодирован в соответствии с другими критериями, кодирован как I-кадр или удален.The encoding of the video using the frame detection information is typically performed in an encoder, but is described here for completeness of disclosure of frame detection. Referring to FIG. 30, the
В вышеописанном аспекте величина разности между кадром, который должен быть сжат, и двумя соседними кадрами указывается посредством разностного показателя кадров D. Если значительная величина одностороннего изменения яркости обнаружена, это указывает эффект монтажного перехода в кадре. Чем более кратковременным является монтажный переход, тем большее усиление может быть достигнуто посредством использования B-кадров. В некоторых аспектах модифицированный разностный показатель кадров используется так, как показано в уравнении ниже:In the above aspect, the magnitude of the difference between the frame to be compressed and two adjacent frames is indicated by the frame difference indicator D. If a significant amount of one-sided brightness change is detected, this indicates the effect of a fader transition in the frame. The shorter the transition time, the greater the gain can be achieved by using B frames. In some aspects, a modified frame difference metric is used as shown in the equation below:
где d P=|YC-YP| и d N=|YC-YP| - это разность компоненты яркости между текущим кадром и предыдущим кадром и разность компоненты яркости между текущим кадром и следующим кадром соответственно, Δ представляет константу, которая может быть определена обычным опытным путем, поскольку она может зависеть от реализации, а α - это переменная взвешивания, имеющая значение от 0 до 1.where d P = | Y C -Y P | and d N = | Y C -Y P | - this is the difference of the brightness component between the current frame and the previous frame and the difference of the brightness component between the current frame and the next frame, respectively, Δ represents a constant that can be determined in the usual way, since it can be implementation dependent, and α is a weighting variable with a value from 0 to 1.
B. Формирование таблицы полосы пропусканияB. Bandwidth table generation
Препроцессор 226 (фиг.6) также может быть сконфигурирован так, чтобы формировать таблицу полосы пропускания, которая может быть использована для кодирования мультимедийных данных. В некоторых аспектах модуль 712 классификации содержимого в кодере 228 (фиг.7) вместо него формирует таблицу полосы пропускания.Preprocessor 226 (FIG. 6) may also be configured to form a bandwidth table that can be used to encode multimedia data. In some aspects,
Визуальное качество человека V может быть функцией от сложности кодирования C и назначенных битов B (также упоминаемых как полоса пропускания). Фиг.15 - это график, иллюстрирующий данную взаимосвязь. Следует отметить, что показатель сложности кодирования C рассматривает пространственные и временные частоты с точки зрения видения пользователя. Для искажений, более чувствительных к человеческим глазам, значение сложности соответственно выше. В типичном варианте можно допустить, что V монотонно уменьшается в C и монотонно увеличивается в B.The visual quality of human V can be a function of the coding complexity of C and the assigned bits of B (also referred to as bandwidth). 15 is a graph illustrating this relationship. It should be noted that the coding complexity index C considers spatial and temporal frequencies from the point of view of the user's vision. For distortions that are more sensitive to human eyes, the value of complexity is correspondingly higher. In a typical embodiment, it can be assumed that V monotonically decreases in C and monotonically increases in B.
Чтобы достичь постоянного зрительного качества, полоса пропускания (Bi) назначается i-тому объекту (кадру или MB), который должен быть кодирован, который удовлетворяет критериям, выраженным в нижеследующих двух уравнениях:In order to achieve constant visual quality, the bandwidth (B i ) is assigned to the i-th object (frame or MB), which must be encoded, which satisfies the criteria expressed in the following two equations:
В двух вышеприведенных уравнениях Ci - это сложность кодирования i-го объекта, B - это общая доступная полоса пропускания, а V - это достигнутое зрительное качество для объекта. Визуальное качество человека трудно сформулировать как уравнение. Следовательно, вышеуказанный набор уравнений не является точно заданным. Тем не менее, если предполагается, что трехмерная модель является непрерывной во всех переменных, соотношение полосы пропускания (B i /B) может трактоваться как неизменное с соседством пары (C, V). Соотношение полосы пропускания βi задается в уравнении, показанном ниже:In the two equations above, C i is the coding complexity of the ith object, B is the total available bandwidth, and V is the achieved visual quality for the object. The visual quality of a person is difficult to formulate as an equation. Therefore, the above set of equations is not precisely defined. Nevertheless, if it is assumed that the three-dimensional model is continuous in all variables, the bandwidth ratio ( B i / B ) can be interpreted as unchanged with the neighborhood of the pair (C, V). The bandwidth ratio β i is set in the equation shown below:
Назначение битов в таком случае может быть задано так, как выражено в следующих уравнениях:The assignment of bits in this case can be specified as expressed in the following equations:
для (C
i ,V) δ(C
0 ,V
0 ) β i = β (C i )
for ( C i , V ) δ ( C 0 , V 0 )
где δ указывает "соседство".where δ indicates "neighborhood".
На сложность кодирования влияет чувствительность зрительной системы человека, как пространственная, так и временная. Зрительная модель человека по Гироду является примером модели, которая может быть использована для того, чтобы задавать пространственную сложность. Эта модель учитывает локальную пространственную частоту и окружающее освещение. Результирующий показатель называется Dcsat. В точке предварительной обработки в процессе то, должно изображение быть внутренне кодированным или внешне кодированным, неизвестно, и соотношения полосы пропускания для обоих случаев формируются. Биты назначаются согласно соотношению между βINTRA различных видеообъектов. Для внутренне кодированных изображений соотношение полосы пропускания выражается в следующем уравнении:The coding complexity is affected by the sensitivity of the human visual system, both spatial and temporal. The gyro visual model of a person is an example of a model that can be used to specify spatial complexity. This model takes into account local spatial frequency and ambient lighting. The resulting metric is called D csat . At the pre-processing point in the process, whether the image should be internally encoded or externally encoded is unknown, and bandwidth ratios for both cases are formed. Bits are assigned according to the ratio between β INTRA of various video objects. For internally encoded images, the bandwidth ratio is expressed in the following equation:
В вышеприведенном уравнении Y - это компонента средней яркости макроблока,In the above equation, Y is the component of the average brightness of the macroblock,
αINTRA - это весовой коэффициент для квадрата яркости и члена D csat, идущего за ним,α INTRA is the weight coefficient for the square of brightness and the term D csat following it,
βINTRA - это коэффициент нормализации, чтобы гарантировать то, что . Например, значение αINTRA=4 достигает хорошего зрительного качества. Информация содержимого (к примеру, классификация содержимого) может быть использована для того, чтобы присваивать αINTRA значение, которое соответствует требуемому уровню хорошего зрительного качества для конкретного содержимого видео. В одном примере, если видеосодержимое содержит широковещательную передачу новостей с "говорящей головой", уровень зрительного качества может быть задан ниже, поскольку изображение информации или отображаемая часть экрана может считаться меньшей важности, чем аудиочасть, и меньше бит может быть выделено для того, чтобы кодировать данные. В другом примере, если видеосодержимое содержит спортивный сюжет, информация содержимого может быть использована так, чтобы присваивать α1NTRA значение, которое соответствует более высокому уровню зрительного качества, поскольку отображаемые изображения могут быть более важны зрителю, и, соответственно, большее число битов выделяется для того, чтобы кодировать данные.β INTRA is the normalization coefficient to ensure that . For example, α INTRA = 4 achieves good visual quality. Content information (for example, content classification) can be used to assign α INTRA a value that corresponds to the required level of good visual quality for a particular video content. In one example, if the video content contains broadcasting news with a talking head, the level of visual quality can be set lower, since the image of the information or the displayed part of the screen can be considered less important than the audio part, and fewer bits can be allocated in order to encode data. In another example, if the video content contains a sports plot, the content information can be used to assign an α 1NTRA value that corresponds to a higher level of visual quality, since the displayed images may be more important to the viewer, and accordingly, a larger number of bits are allocated to to encode data.
Чтобы понять это взаимоотношение, следует отметить то, что полоса пропускания назначается логарифмическим образом в соответствии со сложностью кодирования. Член квадрата яркости Y отражает тот факт, что коэффициенты с большим модулем используют больше битов для того, чтобы кодировать. Чтобы представить логарифм из получения отрицательных значений, единица добавляется к члену в скобках. Логарифмы с другими основаниями также могут быть использованы.To understand this relationship, it should be noted that the bandwidth is assigned in a logarithmic manner in accordance with the coding complexity. The member of the brightness square Y reflects the fact that coefficients with a large modulus use more bits in order to encode. To represent the logarithm of getting negative values, the unit is added to the term in brackets. Logarithms with other bases can also be used.
Временная сложность определяется посредством измерения разностного показателя кадров, который измеряет разность между двумя последовательными кадрами с учетом величины движения (к примеру, векторов движения) наряду с разностным показателем кадров, таким как сумма абсолютных разностей (SAD).The time complexity is determined by measuring the difference indicator of frames, which measures the difference between two consecutive frames taking into account the magnitude of the movement (for example, motion vectors) along with the difference indicator of frames, such as the sum of the absolute differences (SAD).
Назначение битов для внутренне кодированных изображений может учитывать как пространственную, так и временную сложность. Это выражено ниже:The assignment of bits for internally encoded images may take into account both spatial and temporal complexity. This is expressed below:
В вышеприведенном уравнении MVP и MVN - это прямой и обратный векторы движения для текущего MB (см. фиг.29). Следует отметить, что Y2 в формуле внутренне кодированной полосы пропускания заменено суммой квадратов разностей (SSD). Чтобы понять роль ||MV P +MV N || 2 в вышеприведенном уравнении, отметим следующие характеристики зрительной системы человека: области, подвергающиеся плавному предсказуемому движению (небольшое ||MV P +MV N || 2), привлекают внимание и могут быть отслежены глазом и в типичном варианте не могут допускать больше искажений, чем стационарные области. Тем не менее, области, подвергающиеся быстрому или непредсказуемому движению (большое ||MV P +MV N || 2), не могут отслеживать и могут допускать существенное квантование. Опыты показали, что αINTER=1, γ=0,001 достигает хорошего зрительного качества.In the above equation, MV P and MV N are the forward and reverse motion vectors for the current MB (see FIG. 29). It should be noted that Y 2 in the internally coded bandwidth formula is replaced by the sum of squared differences (SSD). To understand the role || MV P + MV N || 2 in the above equation, we note the following characteristics of the human visual system: areas subject to smooth predictable movement (small || MV P + MV N || 2 ) attract attention and can be tracked by the eye and, in a typical embodiment, cannot tolerate more distortions than stationary areas. However, areas subject to fast or unpredictable movement (large || MV P + MV N || 2 ) cannot be tracked and can admit significant quantization. The experiments showed that α INTER = 1, γ = 0.001 achieves good visual quality.
C. Адаптивное секционирование GOPC. Adaptive GOP Partitioning
В другом иллюстративном примере обработки, которая может быть выполнена посредством препроцессора 226, модуль 612 секционирования GOP по фиг.6 также может адаптивно изменять структуру группы изображений, кодированных вместе, и описывается со ссылкой на пример, использующий MPEG2. Некоторые более старые стандарты сжатия видео (к примеру, MPEG2) не требуют того, чтобы GOP имела регулярную структуру, хотя она может налагаться. Последовательность MPEG2 всегда начинается с I-кадра, т.е. кадра, закодированного без ссылки на предыдущие изображения. Формат MPEG2 GOP обычно заранее устанавливается в кодере посредством фиксирования разнесения в GOP P- или прогнозных изображений, которые следуют после I-кадра. P-кадры - это изображения, которые частично предсказаны из предыдущих I- или P-изображений. Кадры между начальным I-кадром и последующими P-кадрами кодируются как B-кадры. B-кадр (B означает двунаправленный) может использовать предыдущие и следующие I- или P-изображения отдельно или одновременно как ссылку. Число битов, требуемых для того, чтобы кодировать I-кадр, в среднем превышает число битов, требуемых для того, чтобы кодировать P-кадр; аналогично, число битов, требуемых для того, чтобы кодировать P-кадр, в среднем превышает число битов, требуемых для B-кадра. Пропущенный кадр, если он используется, не должен требовать битов для своего представления.In another illustrative example of processing that can be performed by
Концепция, лежащая в основе использования P- и B-кадров, и в более новых алгоритмах сжатия пропуск кадров для того, чтобы снизить скорость передачи данных, требуемых для того, чтобы представлять видео, является устранением временной избыточности. Когда временная избыточность высокая, т.е. есть незначительное изменение от изображения к изображению, использование P-, B- или пропущенных изображений эффективно представляет видеопоток, поскольку I- или P-изображения, декодированные ранее, используются в дальнейшем как ссылки для того, чтобы декодировать другие P- или B-изображения.The concept underlying the use of P- and B-frames, and in newer compression algorithms, frame skipping in order to reduce the data rate required to present the video is the elimination of temporary redundancy. When temporary redundancy is high, i.e. there is a slight change from image to image, the use of P-, B- or skipped images effectively represents the video stream, since I- or P-images decoded earlier are used hereinafter as links in order to decode other P- or B-images.
Адаптивное секционирование GOP основано на адаптивном использовании этой концепции. Разности между кадрами квантуются, и решение, чтобы представлять изображение посредством I, P, B или пропущенного кадра, автоматически принимается после того, как выполняются соответствующие тесты для квантованных разниц. Адаптивная структура имеет преимущества, недоступные в фиксированной GOP-структуре. Фиксированная структура должна игнорировать возможность того, что произошли небольшие изменения в содержимом; адаптивная процедура должна представлять гораздо больше B-кадров, которые должны быть вставлены между каждым I- и P- или двумя P-кадрами, тем самым уменьшая число битов, требуемых для того, чтобы адаптивно представлять последовательность кадров. Наоборот, когда изменение видеосодержимого существенно, эффективность P-кадров значительно снижается, поскольку разница между предсказанными и опорными кадрами слишком большая. При этих условиях совпадающие объекты могут выпадать из зон поиска движения или похожесть между совпадающими объектами снижается вследствие искажения, вызываемого за счет изменений угла камеры. В этой точке P-кадры или I- и ее соседний P-кадр должны быть выбраны так, чтобы быть ближе друг к другу, и должно быть вставлено меньшее число B-кадров. Фиксированная GOP может не выполнять эту корректировку.Adaptive GOP partitioning is based on the adaptive use of this concept. Differences between frames are quantized, and the decision to represent the image by I, P, B or a skipped frame is automatically taken after the corresponding tests for the quantized differences are performed. An adaptive structure has advantages not available in a fixed GOP structure. A fixed structure should ignore the possibility that small changes have occurred in the content; an adaptive procedure should represent much more B-frames that must be inserted between each I- and P- or two P-frames, thereby reducing the number of bits required to adaptively represent a sequence of frames. On the contrary, when the change in the video content is significant, the efficiency of the P-frames is significantly reduced, since the difference between the predicted and reference frames is too large. Under these conditions, matching objects may fall out of the motion search areas, or the similarity between matching objects is reduced due to distortion caused by changes in camera angle. At this point, P-frames or I- and its adjacent P-frame should be selected so that they are closer to each other, and fewer B-frames should be inserted. A fixed GOP may not perform this adjustment.
В системе, раскрытой здесь, эти условия автоматически измеряются. GOP-структура является гибкой и сделана так, чтобы приспосабливаться к этим изменениям в содержимом. Система оценивает разностный показатель кадров, который может рассматривать как меру расстояния между кадрами, с одинаковыми аддитивными способами расстояния. В концепции при условии кадров F1, F2 и F3, имеющих межкадровое расстояние d12 и d23, расстояние между F1 и F3 берется равным, по меньшей мере, d12+d23. Назначения кадров делаются на основе этого аналогичного расстоянию показателя.In the system disclosed here, these conditions are automatically measured. The GOP structure is flexible and tailored to accommodate these changes in content. The system evaluates the difference indicator of frames, which can be considered as a measure of the distance between frames, with the same additive methods of distance. In the concept, under the condition of frames F 1 , F 2 and F 3 having an interframe distance d 12 and d 23 , the distance between F 1 and F 3 is taken to be at least d 12 + d 23 . Frame assignments are made on the basis of this distance-like indicator.
Модуль секционирования GOP работает посредством назначения типов изображений кадрам по мере того, как они принимаются. Тип изображения указывает способ предсказания, который может требоваться при кодировании каждого блока.The GOP partitioning module works by assigning image types to frames as they are received. The image type indicates the prediction method that may be required when encoding each block.
I-изображения кодируются без ссылки на другие изображения. Поскольку они автономны, они предоставляют точки доступа в потоке данных, где декодирование может начинаться. Тип кодирования I назначается кадру, если расстояние до предшествующего кадра превышает порог смены сцен.I-images are encoded without reference to other images. Because they are autonomous, they provide access points in the data stream where decoding can begin. Encoding type I is assigned to a frame if the distance to the previous frame exceeds the scene change threshold.
P-изображения могут использовать предыдущие I- или P-изображения для предсказания с компенсацией движения. Они используют блоки в предыдущих полях или кадрах, которые могут быть смещены от предсказываемого блока как основа для кодирования. После того как опорный кадр вычитается из рассматриваемого блока, остаточный блок кодируется, в типичном варианте с помощью дискретного косинусного преобразования, для устранения пространственной избыточности. Типы кодирования P назначаются кадру, если расстояние между ним и последним кадром, назначенным так, чтобы быть P-кадром, превышает второй порог, который в типичном варианте меньше первого.P images can use previous I or P images for motion compensation prediction. They use blocks in previous fields or frames that can be offset from the predicted block as the basis for encoding. After the reference frame is subtracted from the block in question, the residual block is encoded, typically using a discrete cosine transform, to eliminate spatial redundancy. Encoding types P are assigned to a frame if the distance between it and the last frame assigned to be a P-frame exceeds a second threshold, which is typically less than the first.
Изображения B-кадров могут использовать предыдущие и следующие P- или I-изображения для компенсации движения, как описано ниже. Блок в B-изображении может быть спрогнозированным прямо, обратно или двунаправленно; либо он может быть внутренне кодирован без ссылки на другие кадры. В H.264 опорный блок может быть линейной комбинацией максимум 32 блоков из максимум стольких кадров. Если кадр не может быть назначен так, чтобы быть I- или P-типа, он назначается так, чтобы быть B-типа, если расстояние от него до промежуточного предшественника больше третьего порога, который в типичном варианте меньше второго порога.B frame images can use the previous and next P or I images to compensate for motion, as described below. The block in the B-image can be predicted directly, back, or bi-directionally; or it can be internally encoded without reference to other frames. In H.264, a reference block can be a linear combination of a maximum of 32 blocks out of a maximum of so many frames. If a frame cannot be assigned to be I- or P-type, it is assigned to be B-type if the distance from it to the intermediate predecessor is greater than the third threshold, which is typically less than the second threshold.
Если кадр не может быть назначен так, чтобы стать кодированным B-кадром, ему назначается состояние "пропуск кадра". Этот кадр может быть пропущен, поскольку он практически является копией предыдущего кадра.If a frame cannot be assigned to become an encoded B-frame, it is assigned a frame skip state. This frame may be skipped because it is practically a copy of the previous frame.
Оценка показателя, которая количественно представляет расстояние между соседними кадрами в порядке отображения, является первой частью этой обработки, которая выполняется. Данный показатель является расстоянием, ссылающимся на вышеуказанное; с его помощью каждый кадр может быть оценен для надлежащего типа. Таким образом, разнесение между I- и соседним P- или двумя последовательными P-кадрами может быть переменным. Вычисление расстояния начинается посредством обработки видеокадров с основанным на блоках модулем компенсации движения, причем блок является базовой единицей видеосжатия, состоящей обычно из 16х16 пикселов, хотя возможны другие размеры блоков, например, 8х8, 4х4 и 8х16. Для кадров, составляющих два поля с устраненной чересстрочной разверткой, компенсация движения может быть выполнена на основе поля, при этом поиск опорных блоков выполняется скорее в полях, а не в кадрах. Для блока в первом поле текущего кадра прямой опорный блок обнаруживается в полях кадра, который следует за ним; аналогично, обратный опорный кадр обнаруживается в полях, которые непосредственно предшествуют текущему полю. Текущие блоки собираются в сжатое поле. Процесс продолжается со вторым полем кадра. Два компенсированных поля комбинируются так, чтобы формировать прямой и обратный компенсированный кадр.The evaluation of the metric, which quantifies the distance between adjacent frames in the display order, is the first part of this processing that is performed. This indicator is the distance that refers to the above; with it, each frame can be evaluated for the proper type. Thus, the spacing between I and adjacent P or two consecutive P frames can be variable. The distance calculation starts by processing video frames with a block-based motion compensation module, the block being the basic unit of video compression, usually consisting of 16x16 pixels, although other block sizes are possible, for example, 8x4, 4x4 and 8x16. For frames that make up two fields with interlaced eliminated, motion compensation can be performed based on the field, and the search for support blocks is performed in the fields rather than in the frames. For a block in the first field of the current frame, a direct reference block is found in the fields of the frame that follows it; likewise, an inverse reference frame is detected in fields that immediately precede the current field. Current blocks are collected in a compressed field. The process continues with the second field of the frame. Two compensated fields are combined so as to form a direct and inverse compensated frame.
Для кадров, созданных при преобразовании 606 из видеоформата в фильм, поиск опорных блоков выполняется только на основе кадров, поскольку присутствуют только восстановленные кинокадры. Два опорных блока и две разности, прямая и обратная, находятся, приводя также к прямому и обратному компенсированному кадру. Итак, модуль компенсации движения формирует векторы движения и показатели разности для каждого блока; но блок является частью NTSC-поля в случае вывода обрабатываемого модуля 605 устранения чересстрочной разверткой и является частью кинокадра, если вывод преобразования из видеоформата в фильм обрабатывается. Отметим, что разности в показателе оцениваются между блоком в рассматриваемом поле или кадре и блоком, который совпадает с ним, либо в предшествующем поле или кадре, либо в поле или кадре, который следует сразу за ним, в зависимости от того, оценивается прямая или обратная разность. Только значения яркости попадают в это вычисление.For frames created by converting 606 from a video format to a movie, the search for reference blocks is performed only on the basis of frames, since only the restored movie frames are present. Two reference blocks and two differences, forward and reverse, are also found, leading also to the forward and reverse compensated frames. So, the motion compensation module generates motion vectors and difference indicators for each block; but the block is part of the NTSC field in the case of output of the processed interlaced
Таким образом, этап компенсации движения формирует два набора разностей.Thus, the motion compensation step forms two sets of differences.
Они находятся между блоками текущих значений яркости и значений яркости, взятых из кадров, которые находятся непосредственно впереди и непосредственно позади текущего кадра во времени. Абсолютное значение каждой прямой и каждой обратной разности определяется для каждого пиксела, и каждое отдельно суммируется по всему кадру. Оба поля включаются в два суммирования, когда обрабатываются NTSC-поля с устраненной чересстрочной разверткой, которые содержат кадр. Таким образом, SADP и SADN, суммированные абсолютные значения прямой и обратной разности, находятся.They are between blocks of current brightness values and brightness values taken from frames that are directly in front and directly behind the current frame in time. The absolute value of each direct and each inverse difference is determined for each pixel, and each is separately summed over the entire frame. Both fields are included in two summations when NTSC fields with interlaced scans that contain a frame are processed. Thus, SAD P and SAD N , the summed absolute values of the forward and reverse differences, are found.
Для каждого кадра соотношение SAD вычисляется с помощью взаимосвязи:For each frame, the SAD ratio is calculated using the relationship:
где SADP и SADN - это суммированные абсолютные значения прямых и обратных разностей соответственно. Небольшое положительное число добавляется в числитель ε, чтобы не допустить ошибки деления на нуль. Аналогичный член ε добавляется в знаменатель, уменьшая чувствительность γ, когда SADP или SADN близко к нулю.where SAD P and SAD N are the summed absolute values of the direct and inverse differences, respectively. A small positive number is added to the numerator ε to prevent a division by zero error. A similar term ε is added to the denominator, decreasing sensitivity γ when SAD P or SAD N is close to zero.
В альтернативном аспекте разностью может быть SSD, сумма квадратов разностей, и SAD, сумма абсолютных разностей, или SATD, в которой блоки значений пикселов преобразуются посредством применения дискретного косинусного преобразования к ним до того, как берутся разности в элементах блоков. Суммы оцениваются в области активного видео, хотя меньшая область может быть использована в других аспектах.In an alternative aspect, the difference may be SSD, the sum of the squared differences, and SAD, the sum of the absolute differences, or SATD, in which blocks of pixel values are converted by applying a discrete cosine transform to them before the differences in the block elements are taken. Amounts are estimated in the area of active video, although a smaller area can be used in other aspects.
Гистограмма яркости каждого кадра, как принимается (без компенсации движения), также вычисляется. Гистограмма работает для коэффициента DC, т.е. коэффициента (0,0) в матрице 16x16 коэффициентов, которая является результатом применения двумерного дискретного косинусного преобразования к блоку значений яркости, если доступны. Эквивалентно среднее значение из 256 значений яркости в блоке 16x16 может быть использовано на гистограмме. Для изображений, глубина яркости которых равна восьми битам, число элементов изображения задается равным 16. Следующий показатель оценивает разность гистограмм:A histogram of the brightness of each frame, as received (without motion compensation), is also calculated. The histogram works for the DC coefficient, i.e. coefficient (0,0) in the matrix of 16x16 coefficients, which is the result of applying a two-dimensional discrete cosine transform to a block of brightness values, if available. Equivalently, the average value of 256 brightness values in a 16x16 block can be used on a histogram. For images whose brightness depth is eight bits, the number of image elements is set to 16. The following indicator estimates the difference between the histograms:
В вышеприведенном NPi - это число блоков из предыдущего кадра в i-том элементе разрешения, NCi - это число блоков из текущего кадра, который принадлежит i-тому элементу разрешения, а N - это общее число блоков в кадре.In the above, N Pi is the number of blocks from the previous frame in the i-th resolution element, N Ci is the number of blocks from the current frame that belongs to the i-th resolution element, and N is the total number of blocks in the frame.
Эти промежуточные результаты собираются с тем, чтобы сформировать разностный показатель текущего кадра как:These intermediate results are collected in order to form a difference indicator of the current frame as:
где γC - это соотношение SAD на основе текущего кадра, а γP - это соотношение SAD на основе предыдущего кадра. Если сцена имеет плавное движение и ее гистограмма компоненты яркости практически не изменяется, то D~1. Если текущий кадр отображает резкую смену сцен, то γC должно иметь большое значение, а γP должно иметь небольшое значение. Соотношение γc/γp используется вместо только γc, с тем чтобы показатель был нормализован к уровню активности контекста.where γ C is the SAD ratio based on the current frame, and γ P is the SAD ratio based on the previous frame. If the scene has smooth motion and its histogram of the brightness components remains almost unchanged, then D ~ 1. If the current frame shows a sharp change of scenes, then γ C should be of great importance, and γ P should be of small value. The ratio γ c / γ p is used instead of only γ c so that the indicator is normalized to the level of context activity.
Фиг.42 иллюстрирует процесс назначения типов сжатия кадрам. D, текущая разность кадров, заданная в уравнении 19, является основой для решений, принимаемых в отношении назначений кадров. Как указывает этап 4202 принятия решений, если рассматриваемый кадр является первым в последовательности, путь решения, помеченный "ДА", идет к этапу 4206, тем самым объявляя то, что кадр является I-кадром. Накопленные разности кадров задаются равными нулю на этапе 4208, и процесс возвращается (на этапе 4210) к начальному этапу. Если рассматриваемый кадр не является первым кадром в последовательности, путь, помеченный "НЕТ", идет из этапа 4202, где принято решение, и на тестовом этапе 4204 текущая разность кадров тестируется относительно порога смены сцен. Если текущая разность кадров превышает этот порог, путь решения, помеченный "ДА", идет из этапа 4206, снова приводя к назначению I-кадра.Fig. 42 illustrates a process for assigning compression types to frames. D, the current frame difference specified in Equation 19, is the basis for decisions made regarding frame assignments. As
Если текущая разность кадров меньше порога смены сцен, путь "НЕТ" идет к этапу 4212, где текущая разность кадров прибавляется к накопленной разности кадров. Продолжая проходить блок-схему последовательности операций способа на этапе 4214 принятия решения, накопленная разность кадров сравнивается с порогом t, который, в общем, меньше порога смены сцен. Если накопленная разность кадров превышает t, управление переходит к этапу 4216, и кадр назначается так, чтобы быть P-кадром; накопленная разность кадров затем сбрасывается до нуля на этапе 4218. Если накопленная разность кадров меньше t, управление переходит от этапа 4214 к этапу 4220. Здесь накопленная разность кадров сравнивается с x, которое меньше t. Если текущая разность кадров меньше t, кадр назначается как пропущенный на этапе 4222, и затем процесс возвращается; если текущая разность кадров больше t, кадр назначается так, чтобы быть B-кадром, на этапе 4226.If the current frame difference is less than the scene change threshold, the NO path goes to step 4212, where the current frame difference is added to the accumulated frame difference. Continuing to go through the flowchart at
КодерCoder
Ссылаясь снова на фиг.2, транскодер 200 включает в себя кодер 228, который принимает обработанные метаданные и необработанное видео из препроцессора 226. Метаданные могут включать в себя любую информацию, изначально принятую в исходном видео 104, и любую информацию, вычисленную посредством препроцессора 226. Кодер 228 включает в себя кодер 230 первого прохода, кодер 232 второго прохода и повторный кодер 234. Кодер 228 также принимает входные данные из управления 231 транскодером, которое может предоставлять информацию (к примеру, метаданные, информацию устойчивости к ошибкам, информацию содержимого, информацию кодированной скорости передачи битов, информацию баланса базового уровня и уровня улучшения и информацию квантования) из кодера 232 второго прохода в кодер 230 первого прохода, повторный кодер 234, а также препроцессор 226. Кодер 228 кодирует принимаемое видео с помощью информации содержимого, принятой от препроцессора 226, и/или информации содержимого, которая формируется посредством самого кодера 228, например, посредством модуля 712 классификации содержимого (фиг.7).Referring again to FIG. 2,
Фиг.7 иллюстрирует блок-схему функциональных модулей, которые могут быть включены в примерный двухпроходный кодер, который может быть использован для кодера 228, проиллюстрированного на фиг.7, хотя фиг.7 и описание в данном документе не обязательно разрешает всю функциональность, которая может быть включена в кодер. Соответственно, определенные аспекты функциональных модулей описываются далее после нижеприведенного описания кодирования базового уровня и уровня улучшения.FIG. 7 illustrates a block diagram of functional modules that may be included in an exemplary two-pass encoder that may be used for the
Кодирование базового уровня и уровня улучшенияBasic and Enhancement Coding
Кодером 228 может быть масштабируемый SNR-кодер, который может кодировать необработанное видео и метаданные из препроцессора 226 в первую группу кодированных данных, также упоминаемую в данном документе как базовый уровень, и одну или более дополнительных групп кодированных данных, также упоминаемых в данном документе как уровни улучшения. Алгоритм кодирования формирует коэффициенты базового уровня и уровня улучшения, которые, когда декодированы, могут быть комбинированы в декодере, когда оба уровня доступны для декодирования. Когда оба уровня недоступны, кодирование базового уровня позволяет их декодировать как один уровень.
Один аспект такого процесса многоуровневого кодирования описан в ссылке к фиг.31. На этапе 321 I-кадр кодируется с полностью внутренне кодированными макроблоками (внутренне кодированными MB). В H.264 внутренне кодированные MB в I-кадрах кодируются с полностью используемым пространственным предсказанием, которое предоставляет значительную величину улучшения кодирования. Предусмотрено два подрежима: внутренний 4x4 и внутренний 16x16. Если базовый уровень должен использовать преимущество улучшения кодирования, предоставляемое посредством пространственного предсказания, то базовый уровень должен быть кодирован и декодирован перед кодированием и декодированием уровня улучшения. Используется двухпроходное кодирование и декодирование I-кадров. В базовом уровне параметр квантования базового уровня QPb предоставляет коэффициентам преобразования грубый размер шага квантования. Попиксельная разность между исходным кадром и восстановленным кадром базового уровня кодируется на уровне улучшения. Уровень улучшения использует параметр квантования QPe, который предоставляет более точный размер шага квантования. Средство кодирования, такое как кодер 228 по фиг.2, может выполнять кодирование на этапе 321.One aspect of such a layered coding process is described in reference to FIG. At 321, an I-frame is encoded with fully intra-coded macroblocks (intra-coded MB). In H.264, intra-coded MBs in I frames are encoded with fully exploited spatial prediction, which provides a significant amount of coding gain. There are two sub-modes: internal 4x4 and internal 16x16. If the base layer should take advantage of the coding enhancement provided by spatial prediction, then the base layer must be encoded and decoded before encoding and decoding the enhancement layer. Two-pass encoding and decoding of I-frames is used. At the basic level, the quantization parameter of the basic level QP b provides the transform coefficients with a rough quantization step size. The pixel-by-pixel difference between the original frame and the reconstructed base-level frame is encoded at the enhancement level. The enhancement level uses the quantization parameter QP e , which provides a more accurate quantization step size. An encoding means, such as the
На этапе 323 кодер кодирует данные базового уровня и данные уровня улучшения для P- и/или B-кадров в обрабатываемой GOP. Средство кодирование, такое как кодер 228, может выполнять кодирование на этапе 323. На этапе 325 процесс кодирования проверяет, есть ли еще P- или B-кадры, чтобы кодировать. Средство кодирования, такое как масштабируемый SNR-кодер 228, может выполнять этап 325. Если еще P- или B-кадры остаются, этап 323 повторяется до тех пор, пока не будет закончено кодирование всех кадров в GOP. P- и B-кадры состоят из внешне кодированных макроблоков (внешне кодированных MB), хотя могут быть внутренне кодированные MB в P- и B-кадрах, как описано ниже.At 323, the encoder encodes the base layer data and enhancement layer data for the P and / or B frames in the processed GOP. An encoding means, such as
Чтобы декодер различал между данными базового уровня и уровня улучшения, кодер 228 кодирует служебную информацию, этап 327. Типы служебной информации включают в себя, например, данные, идентифицирующие число уровней, данные, идентифицирующие уровень как базовый уровень, данные, идентифицирующие уровень как уровень улучшения, данные, идентифицирующие взаимосвязи между уровнями (например, уровень 2 является уровнем улучшения для базового уровня 1 или уровень 3 является уровнем улучшения для уровня улучшения 2), или данные, идентифицирующие уровень как конечный уровень улучшения в строке уровней улучшения. Служебная информация может содержаться в заголовках, связанных с данными базового и/или уровня улучшения, к которым она относится, либо содержаться в отдельных сообщениях данных. Средство кодирования, такое как кодер 228 по фиг.2, может выполнять процесс на этапе 327.In order for the decoder to distinguish between data of a base level and an enhancement level,
Чтобы иметь одноуровневое кодирование, коэффициенты двух уровней могут быть комбинированы до обратного квантования. Следовательно, коэффициенты двух уровней должны быть сформированы интерактивно, в противном случае это может вводить значительный объем служебной информации. Одна причина увеличения служебной информации заключается в том, что кодирование базового уровня и кодирование уровня улучшения может использовать различные временные ссылки. Требуется алгоритм для того, чтобы формировать коэффициенты базового уровня и уровня улучшения, которые могут быть комбинированы в декодере до деквантования, когда оба уровня доступны. В то же время алгоритм должен предоставлять приемлемое видео базового уровня, когда уровень улучшения недоступен, или декодер принимает решение декодировать уровень улучшения по таким причинам, как, например, экономия энергии. Подробности иллюстративного примера такого процесса дополнительно описаны ниже в контексте краткого пояснения стандартного кодирования с предсказанием непосредственно далее.In order to have single-level coding, the coefficients of two levels can be combined before inverse quantization. Therefore, the coefficients of the two levels must be generated interactively, otherwise it can introduce a significant amount of overhead information. One reason for increasing overhead is that base level coding and enhancement level coding may use various temporary references. An algorithm is required in order to generate the coefficients of the base level and the level of improvement, which can be combined in the decoder before dequantization, when both levels are available. At the same time, the algorithm should provide an acceptable base-level video when the enhancement level is not available, or the decoder decides to decode the enhancement level for reasons such as, for example, energy saving. The details of an illustrative example of such a process are further described below in the context of a brief explanation of standard predictive coding immediately below.
P-кадры (или внешне кодированные секции) могут использовать временную избыточность между зоной в текущем изображении и наиболее совпадающей зоной прогнозирования в опорном изображении. Местоположение наиболее совпадающей зоны прогнозирования в опорном изображении может быть кодировано в векторе движения. Разность между текущей зоной и наиболее совпадающей опорной зоной прогнозирования известна как остаточная ошибка (или ошибка предсказания).P frames (or externally coded sections) may use temporal redundancy between the area in the current image and the most matching prediction area in the reference image. The location of the most matching prediction zone in the reference image can be encoded in a motion vector. The difference between the current zone and the most matching prediction reference zone is known as residual error (or prediction error).
Фиг.32 - это иллюстрация примера процесса составления P-кадров, например, в MPEG-4. Процесс 331 является более подробной иллюстрацией примерного процесса, который может выполняться на этапе 323 по фиг.31. Процесс 331 включает в себя текущее изображение 333, составленное из 5x5 макроблоков, при этом число макроблоков в данном примере является произвольным. Макроблок составлен максимум из 16x16 пикселов. Пикселы могут быть заданы как 8-битовое значение компоненты яркости (Y) и два 8-битовых значения компоненты цветности (Cr и Cb). В MPEG компоненты Y, Cr и Cb могут быть сохранены в формате 4:2:0, при этом компоненты Cr и Cb подвергнуты понижающей дискретизации на 2 в направлениях X и Y. Следовательно, каждый макроблок должен состоять из 256 компонент Y, 64 компонент Cr и 64 компонент Cb. Макроблок 335 текущего изображения 333 предсказывается из опорного изображения 337 в точке времени, отличной от текущего изображения 333. В опорном изображении 337 выполняется поиск, чтобы найти наилучшим образом совпадающий макроблок 339, который является ближайшим в отношении значений Y, Cr и Cb к текущему кодируемому макроблоку 335. Размещение наилучшим образом совпадающего макроблока 339 в опорном изображении 337 кодируется в векторе 341 движения. Опорным изображением 337 может быть I-кадр или P-кадр, который декодер должен иметь восстановленным до составления текущего изображения 333. Наилучшим образом совпадающий макроблок 339 вычитается из текущего макроблока 335 (разность для каждой из компонент Y, Cr и Cb вычисляется), приводя к остаточной ошибке 343. Остаточная ошибка 343 кодируется с помощью двухмерного дискретного косинусного преобразования (DCT) 345 и затем квантуется 347. Квантование 347 может выполняться для того, чтобы предоставлять пространственное сжатие, например, посредством назначения меньшего числа битов высокочастотным компонентам, при этом назначая больше битов низкочастотным компонентам. Квантованные коэффициенты остаточной ошибки 343 наряду с идентифицирующей информацией вектора 341 движения и опорного изображения 333 являются кодированной информацией, представляющей текущий макроблок 335. Кодированная информация может быть сохранена в запоминающем устройстве для будущего использования или обработана, например, для целей коррекции ошибок либо улучшения изображения, или передана по сети 349.32 is an illustration of an example P-frame compilation process, for example, in MPEG-4.
Кодированные квантованные коэффициенты остаточной ошибки 343 наряду с кодированным вектором 341 движения могут быть использованы для того, чтобы восстанавливать текущий макроблок 335 в кодере для использования как части опорного кадра для последующей оценки и компенсации движения. Кодер может моделировать процедуры декодера для данного восстановления P-кадров. Моделирование в декодере приводит к тому, что кодер и декодер работают с одним опорным изображением. Процесс восстановления, выполняемый либо в кодере для последующего внешнего кодирования, либо в декодере, представлен здесь. Восстановление P-кадра может быть начато после того, как опорный кадр (или часть изображения либо кадра, который указывается ссылкой) восстановлен. Кодированные квантованные коэффициенты деквантуются 351, а затем выполняется двумерное обратное DCT, или IDCT, 353, приводя к декодированной или восстановленной остаточной ошибке 355. Кодированный вектор 341 движения декодируется и используется для того, чтобы находить уже восстановленный наиболее совпадающий макроблок 357 в уже восстановленном опорном изображении 337. Восстановленная остаточная ошибка 355 затем прибавляется к восстановленному наиболее совпадающему макроблоку 357, чтобы сформировать восстановленный макроблок 359. Восстановленный макроблок 359 может быть сохранен в запоминающем устройстве, отображен независимо или в изображении с другими восстановленными макроблоками либо обработан дополнительно для улучшения изображений.The encoded quantized
B-кадры (или любая секция, кодированная с двунаправленным предсказанием) могут использовать временную избыточность между зоной в текущем изображении и наиболее совпадающей зоной прогнозирования в предыдущей зоне наиболее совпадающей зоной прогнозирования в последующей зоне. Последующая наиболее совпадающая зона прогнозирования и предыдущая наиболее совпадающая зона прогнозирования комбинируются, чтобы сформировать двунаправленную прогнозную зону. Разность между зоной текущего изображения и наиболее совпадающей опорной зоной прогнозирования известна как остаточная ошибка (или ошибка предсказания). Размещения наиболее совпадающей зоны прогнозирования в последующем опорном изображении наиболее совпадающей зоны прогнозирования в предыдущем опорном изображении может быть кодировано в двух векторах движения.B-frames (or any section encoded with bidirectional prediction) may use temporal redundancy between the area in the current image and the most matching prediction zone in the previous zone, the most matching prediction zone in the subsequent zone. The next most matching prediction zone and the previous most matching prediction zone are combined to form a bidirectional forecast zone. The difference between the current image area and the most matching prediction reference area is known as residual error (or prediction error). The locations of the most coincident prediction zone in the subsequent reference image of the most coincident prediction zone in the previous reference image can be encoded in two motion vectors.
Фиг.33 иллюстрирует пример процесса кодера для кодирования коэффициентов базового уровня и уровня улучшения, которое может быть выполнено посредством кодера 228. Базовый уровень и уровень улучшения кодируются, чтобы предоставить масштабированный поток битов SNR. Фиг.33 иллюстрирует пример для кодирования коэффициентов остаточной ошибки между MB, как, например, должно быть выполнено на этапе 323 по фиг.31. Тем не менее, аналогичные способы могут быть использованы для того, чтобы также кодировать коэффициенты внутри MB. Средство кодирования, такое как компонент 228 кодера по фиг.2, может выполнять процесс, проиллюстрированный на фиг.33 и этапе 323 на фиг.32. Исходные (которые должны быть кодированы) видеоданные 406 (видеоданные содержат информацию компонентов яркости и цветности в этом примере) вводятся в контур 302 наиболее совпадающего макроблока базового уровня и контур 365 наиболее совпадающего макроблока уровня улучшения. Назначение обоих контуров 363 и 365 заключается в том, чтобы минимизировать остаточную ошибку, которая вычисляется в сумматорах 367 и 369 соответственно. Контуры 363 и 365 могут осуществляться параллельно, как показано, или последовательно. Контуры 363 и 365 включают в себя логику для выполнения поиска в буферах 371 и 373 соответственно, которые содержат опорные кадры, чтобы идентифицировать наиболее совпадающий макроблок, который минимизирует остаточную ошибку между наиболее совпадающим макроблоком и исходными данными 361 (буферы 371 и 373 могут быть одним и тем же буфером). Остаточные ошибки контура 363 и контура 365 отличаются, поскольку контур 363 базового уровня, в общем, использует более грубый размер шага квантования (более высокое значение QP), чем контур 365 уровня улучшения. Блоки 375 и 377 преобразования преобразуют остаточные ошибки каждого контура.FIG. 33 illustrates an example encoder process for encoding coefficients of a base layer and enhancement layer that can be performed by
Преобразованные коэффициенты затем разбираются на коэффициенты базового уровня и уровня улучшения в модуле 379 выбора. Разбор модуля 379 выбора может выполняться в нескольких формах, как описано ниже. Один общий признак методик разбора заключается в том, что коэффициент уровня улучшения, C'
enh, вычисляется так, что он является дифференциальным уточнением к коэффициенту базового уровня C'
base
. Вычисление уровня улучшения, чтобы быть уточнением к базовому уровню, дает возможность декодеру декодировать коэффициент базового уровня самостоятельно и иметь приемлемое представление изображения либо комбинировать коэффициенты базового уровня и уровня улучшения и иметь уточненное представление изображения. Коэффициенты, выбранные посредством модуля 379 выбора, затем квантуются посредством квантователей 381 и 383. Квантованные коэффициенты C'
base и C'
enh (вычисленные с помощью квантователей 381 и 383 соответственно) могут быть сохранены в запоминающем устройстве или переданы по сети в декодер.The converted coefficients are then parsed into coefficients of the base level and the level of improvement in the
Чтобы сопоставить восстановление макроблока в декодере, деквантователь 385 деквантует коэффициенты остаточной ошибки базового уровня. Деквантованные коэффициенты остаточной ошибки обратно преобразуются 387 и прибавляются 389 к наиболее совпадающему макроблоку, найденному в буфере 371, приводя к восстановленному макроблоку, который совпадает с тем, что должно быть восстановлено в декодере. Квантователь 383, деквантователь 391, обратный преобразователь 393, сумматор 397 и буфер 373 выполняют аналогичные вычисления в контуре 365 уровня улучшения тем, которые выполнялись в контуре 363 базового уровня. Кроме того, сумматор 393 используется для того, чтобы комбинировать обратно квантованные коэффициенты уровня улучшения и базового уровня, используемые при восстановлении уровня улучшения. Квантователь и деквантователь уровня улучшения, в общем, используют более точный размер шага квантователя (меньшее QP), чем базовый уровень.To correlate macroblock recovery in the decoder, the dequantizer 385 decantages the residual error coefficients of the base level. The dequantized residual error coefficients are inverted 387 and added 389 to the most matching macroblock found in
Фиг.34, 35 и 36 иллюстрируют примеры процессов модуля выбора коэффициентов базового уровня и уровня улучшения, которые могут использоваться в модуле 379 выбора по фиг.33. Средство выбора, такое как кодер 228 по фиг.2, может выполнять процессы, проиллюстрированные на фиг.34, 35 и 35. Используя фиг.34 в качестве примера, преобразованные коэффициенты разбираются на коэффициенты базового и уровня улучшения, как показано в следующих уравнениях:FIGS. 34, 35, and 36 illustrate examples of processes of a base level coefficient and enhancement level coefficient selection module that can be used in the
где функция min может быть либо математическим минимумом, либо минимальной величиной из двух аргументов. Уравнение 25 проиллюстрировано как этап 401, а уравнение 26 проиллюстрировано как сумматор 510 на фиг.34. В уравнении 26 Qb означает квантователь 381 базового уровня, а Qb-1 означает деквантователь 385 базового уровня. Уравнение 26 преобразует коэффициент уровня улучшения в дифференциальное уточнение коэффициента базового уровня, вычисленного с помощью уравнения 25.where the min function can be either a mathematical minimum or the minimum value of two arguments. Equation 25 is illustrated as
Фиг.35 - это иллюстрация еще одного примера модуля 379 выбора коэффициентов базового уровня и уровня улучшения. В этом примере уравнение (.), содержащееся на этапе 405, представляет следующее:Fig. 35 is an illustration of yet another example of a base level coefficient and enhancement layer
Сумматор 407 вычисляет коэффициент уровня улучшения, как показано в следующих двух уравнениях:The
где C base задается посредством уравнения 27.where C base is given by equation 27.
Фиг.36 - это иллюстрация еще одного примера модуля 379 выбора коэффициентов базового уровня и уровня улучшения. В этом примере коэффициент базового уровня остается неизменным, и уровень улучшения равен разности между квантованным/деквантованным коэффициентом базового уровня и исходным коэффициентом уровня улучшения.Fig. 36 is an illustration of yet another example of a base level coefficient and enhancement layer
Помимо коэффициентов остаточной ошибки базового уровня и уровня улучшения, декодеру требуется информация, идентифицирующая то, как кодированы MB. Средство кодирования, такое как компонент 228 кодера по фиг.2, может кодировать служебную информацию, которая может включать в себя таблицу внутренне кодированных и внешне кодированных частей, такую как, к примеру, таблица MB, в которой макроблоки (или субмакроблоки) идентифицируются как внутренне кодированные или внешне кодированные (также идентифицируя то, каков тип внешнего кодирования, в том числе, к примеру, прямое, обратное или двунаправленное), и на какие внешне кодированные части кадра(ов) содержатся ссылки. В примерном аспекте таблица MB и коэффициенты базового уровня кодируются а базовом уровне, а коэффициенты уровня улучшения кодируются в уровне улучшения.In addition to the residual error rates of the base layer and the enhancement layer, the decoder needs information that identifies how MBs are encoded. An encoding means, such as the
P-кадры и B-кадры могут содержать внутренне кодированные MB, а также меж-MB. Общераспространено для гибридных видеокодеров использовать оптимизацию соотношения "скорость передачи-искажение" (RD), чтобы принимать решение кодировать конкретные макроблоки в P- или B-кадрах как внутренне кодированные MB. Чтобы иметь одноуровневое кодирование, при котором внутренне кодированные MB не зависят от меж-MB уровня улучшения, все соседние меж-MB не используются для пространственного предсказания внутренне кодированных MB базового уровня. Чтобы сохранять вычислительную сложность неизменной для декодирования уровня улучшения, для внутренне кодированных MB в P- или B-кадре базового уровня уточнение на уровне улучшения может быть пропущено.P-frames and B-frames may contain intra-coded MB as well as inter-MB. It is common for hybrid video encoders to use bit-rate-distortion (RD) optimization to decide to encode specific macroblocks in P- or B-frames as internally encoded MBs. In order to have one-level coding in which the intra-coded MBs are independent of the inter-MB enhancement level, all adjacent inter-MBs are not used for spatial prediction of the intra-coded base layer MBs. In order to keep the computational complexity unchanged for decoding the enhancement layer, refinement at the enhancement layer may be omitted for internally encoded MBs in the P- or B-frame of the base layer.
Внутренне кодированные MB в P- или B-кадрах требуют гораздо больше битов, чем между MB. По этой причине внутренне кодированные MB в P- или B-кадрах могут кодироваться только с качеством базового уровня при более высоком QP. Это приводит к определенному ухудшению качества видео, но данное ухудшение должно быть незаметным, если оно устраняется в последующем кадре с помощью коэффициентов меж-MB в базовом уровне и уровне улучшения, как описано выше. Две причины делают это ухудшение незаметным. Первая - это признак зрительной системы человека (HVS), а вторая - это то, что меж-MB улучшают внутренние MB. С объектами, которые изменяют позицию с первого кадра на второй кадр, некоторые пикселы в первом кадре не видны во втором кадре (информация, которая должна быть скрыта), а некоторые пикселы во втором кадре видны для первого раза (нескрытая информация). Глаза человека нечувствительны к нескрытой и должной быть скрытой визуальной информации. Таким образом, для нескрытой информации, даже если она кодирована с более низким качеством, глаза могут не сообщить различие. Если та же информация остается в следующем P-кадре, имеется высокая вероятность того, что следующий P-кадр на уровне улучшения может улучшить ее, поскольку уровень улучшения имеет меньшее QP.Internally encoded MBs in P- or B-frames require much more bits than between MBs. For this reason, internally encoded MBs in P- or B-frames can only be encoded with basic layer quality at a higher QP. This leads to a certain deterioration in video quality, but this degradation should be imperceptible if it is eliminated in a subsequent frame using the inter-MB coefficients in the base level and the improvement level, as described above. Two reasons make this deterioration invisible. The first is a sign of the human visual system (HVS), and the second is that inter-MBs improve internal MBs. With objects that change position from the first frame to the second frame, some pixels in the first frame are not visible in the second frame (information that should be hidden), and some pixels in the second frame are visible for the first time (open information). The eyes of a person are insensitive to open and hidden visual information. Thus, for undisclosed information, even if it is encoded with lower quality, the eyes may not report the difference. If the same information remains in the next P-frame, there is a high probability that the next P-frame at the improvement level can improve it, since the improvement level has a lower QP.
Другая стандартная методика, которая вводит внутренне кодированные MB в P- или B-кадры, известна как внутреннее обновление. В этом случае некоторые MB кодируются как внутренне кодированные MB, даже если стандартная оптимизация R-DAnother standard technique that introduces intra-coded MBs into P- or B-frames is known as internal update. In this case, some MBs are encoded as internally coded MBs, even if standard R-D optimization
должна диктовать то, что они должны быть внешне кодированными MB. Эти внутренне кодированные MB, содержащиеся в базовом уровне, могут быть кодированы с помощью QPb или QPe. Если QPe используется для базового уровня, то уточнения не требуется на уровне улучшения. Если QPb используется для базового уровня, то уточнение может потребоваться, иначе на уровне улучшения будет заметным ухудшение качества. Поскольку внешнее кодирование более эффективно, чем внутреннее кодирование, в отношении эффективности кодирования, эти уточнения на уровне улучшения внутренне кодируются. Таким образом, коэффициенты базового уровня не используются для уровня улучшения. Следовательно, качество повышается на уровне улучшения без введения новых операций.should dictate that they must be externally encoded MB. These internally encoded MBs contained in the base layer can be encoded using QP b or QP e . If QP e is used for the baseline, then refinement is not required at the enhancement level. If QP b is used for the baseline, then refinement may be required; otherwise, quality degradation will be noticeable at the improvement level. Since external coding is more efficient than internal coding with respect to coding efficiency, these refinements at the enhancement level are internally encoded. Thus, base level coefficients are not used for the improvement level. Consequently, quality improves at the level of improvement without introducing new operations.
B-кадры, как правило, используются на уровне улучшения вследствие высокого качества сжатия, которое они предлагают. Тем не менее, B-кадры могут не иметь опорных внутренне кодированных MB P-кадра. Если пикселы B-кадра должны быть кодированы с качеством уровня улучшения, это может потребовать слишком большого числа битов вследствие более низкого качества внутренне кодированных MB P-кадра, как описано выше. Посредством использования преимущества качества HVS, как описано выше, MB B-кадра могут быть кодированы с более низким качеством при ссылке на внутренне кодированные MB P-кадров более низкого качества.B-frames are typically used at the enhancement level due to the high compression quality they offer. However, B frames may not have reference internally encoded P frame MBs. If the pixels of the B-frame must be encoded with the quality of the enhancement level, this may require too many bits due to the lower quality of the internally encoded MB of the P-frame, as described above. By taking advantage of the quality benefits of HVS, as described above, MB B-frames can be encoded with lower quality by reference to lower quality internally encoded MB P-frames.
Другой предельный случай внутренне кодированных MB в P- или B-кадрах - это когда все MB в P- или B-кадре кодированы во внутреннем режиме вследствие наличия смены сцен в кодируемом видео. В этом случае весь кадр может быть кодирован с качеством базового уровня и без уточнения на уровне улучшения. Если смена сцен происходит в B-кадре и при условии, что B-кадры кодируются только на уровне улучшения, то B-кадр может кодирован с качеством базового уровня или просто отброшен. Если смена сцен происходит в P-кадре, изменений может не потребоваться, но P-кадр может быть отброшен или кодирован с качеством базового уровня. Масштабированное уровневое кодирование дополнительно описано в находящейся одновременно на рассмотрении Патентной заявке (США) номер [Адвокатская выписка номер 050078], озаглавленной "Scalable Video Coding With Two Layer Encoding And Single Layer Decoding" и принадлежащей ее правопреемнику, которая полностью содержится по ссылке в данном документе.Another limiting case of internally encoded MBs in P- or B-frames is when all MBs in a P- or B-frame are internally encoded due to the presence of scene changes in the encoded video. In this case, the entire frame can be encoded with the quality of the basic level and without clarification at the level of improvement. If the scene change occurs in a B-frame and provided that B-frames are encoded only at the enhancement level, then the B-frame can be encoded with the quality of the basic level or simply discarded. If the scene change occurs in a P-frame, changes may not be required, but the P-frame may be dropped or encoded with basic quality. Scalable level coding is further described in the U.S. Patent Application, pending [Attorney No. 050078], entitled "Scalable Video Coding With Two Layer Encoding And Single Layer Decoding" and owned by its assignee, which is incorporated in its entirety by reference in this document .
Часть первого прохода кодераPart of the first pass of the encoder
Фиг.7 показывает иллюстративный пример кодера 228 по фиг.2. Показанные этапы иллюстрируют различную обработку в кодере, которая может быть включена в кодер 228. В этом примере кодер 228 включает в себя часть 706 первого прохода выше разделительной линии 704 и часть 706 второго прохода (включая функциональность кодера 232 второго прохода и повторного кодера 234 на фиг.2) под линией 704.FIG. 7 shows an illustrative example of the
Кодер 228 принимает метаданные и необработанное видео от препроцессора 226. Метаданные могут включать в себя любые метаданные, принятые или вычисленные посредством препроцессора 226, в том числе метаданные, связанные с информацией содержимого видео. Часть 702 первого прохода кодера 228 иллюстрирует примерные процессы, которые могут быть включены в кодирование 702 первого прохода, которое описывается ниже относительно функциональности. Специалисты в данной области техники должны знать, что эта функциональность может быть осуществлена в различных формах (к примеру, аппаратные средства, программное обеспечение, микропрограммное обеспечение или комбинация вышеуказанного).
Фиг.7 иллюстрирует модуль адаптивного внутреннего обновления (AIR). AIR-модуль 710 предоставляет входные данные в модуль 708 создания экземпляров I-кадров, который создает экземпляр I-кадра на основе метаданных. Часть 702 первого прохода также может включать в себя модуль 712 классификации содержимого, сконфигурированный так, чтобы принимать метаданные и видео и определять информацию содержимого, связанную с видео. Информация содержимого может быть предоставлена в модуль 714 назначения битов управления скоростью передачи, который также принимает метаданные и видео. Модуль 714 назначения битов управления определяет информацию управления назначением битов и предоставляет ее в модуль 715 определения режима. Информация содержимого и видео может предоставляться в модуль 716 внутренней модели (искажений), который предоставляет информацию искажений внутреннего кодирования в модуль 715 определения режима и модуль 718 масштабируемости соотношения "скорость передачи-искажение" для базового и уровня улучшения. Видео и метаданные предоставляются в модуль 720 оценки движения (искажений), который предоставляет информацию искажений внешнего кодирования в модуль 718 масштабируемости соотношения "скорость передачи-искажение" для базового уровня и уровня улучшения. Модуль 718 масштабируемости соотношения "скорость передачи-искажение" для базового уровня и уровня улучшения определяет информацию масштабируемости соотношения "скорость передачи-искажение" с помощью оценок искажения из модуля 720 оценки движения и модуля 716 искажений внутренней модели, которая предоставляется в модуль 715 определения режима. Модуль 715 определения режима также принимает входные данные из модуля 722 упорядочения серий макроблоков/MB. Модуль 722 упорядочения серий макроблоков/MB принимает входные данные из модуля 740 устойчивости к ошибкам (показанного в части 706 второго прохода) и предоставляет информацию по совмещению независимо кодируемых частей видео (серий макроблоков) с границами единиц доступа для устойчивости к ошибкам в модуль 715 определения режима. Модуль 715 определения режима определяет информацию режима кодирования на основе входных данных и предоставляет "оптимальный" режим кодирования в часть 706 второго прохода. Дополнительное иллюстративное пояснение некоторых примеров такого кодирования в части 702 первого прохода приводится далее.7 illustrates an adaptive internal update (AIR) module. The
Как указано выше, модуль 712 классификации содержимого принимает метаданные и необработанное видео, предоставляемое посредством препроцессора 226. В некоторых примерах препроцессор 226 вычисляет информацию содержимого из мультимедийных данных и предоставляет информацию содержимого в модуль 712 классификации содержимого (к примеру, в метаданных), который может использовать информацию содержимого для того, чтобы определять классификацию содержимого для мультимедийных данных. В некоторых других аспектах модуль 712 классификации содержимого сконфигурирован так, чтобы определять различную информацию содержимого из мультимедийных данных, и также может быть сконфигурирован так, чтобы определять классификацию содержимого.As indicated above,
Модуль 712 классификации содержимого может быть сконфигурирован так, чтобы определять различную классификацию содержимого для видео, имеющего различные типы содержимого. Различная классификация содержимого может приводить к различным параметрам, используемым в аспектах кодирования мультимедийных данных, например, определение скорости передачи битов (к примеру, назначения битов) для определения параметров квантования, оценка движения, масштабируемость, устойчивость к ошибкам, поддержание оптимального качества мультимедийных данных в каналах, а также для схем быстрого переключения каналов (к примеру, периодическая активация I-кадров, чтобы обеспечить быстрое переключение каналов). Согласно одному примеру кодер 228 сконфигурирован так, чтобы определять оптимизацию соотношения "скорость передачи-искажение" (R-D) и назначения скорости передачи битов на основе классификации содержимого. Определение классификации содержимого дает возможность мультимедийным данным быть сжимаемыми для заданного уровня качества согласно требуемой скорости передачи битов на основе классификации содержимого. Кроме того, посредством классификации содержимого мультимедийных данных (к примеру, определения классификации содержимого на основе зрительной системы человека) результирующее перцепционное качество передаваемых мультимедийных данных на дисплее приемного устройства зависит от видеосодержимого.The
В качестве примера процедуры, которую проходит модуль 712 классификации содержимого для того, чтобы классифицировать содержимое, фиг.9 иллюстрирует процесс 900, иллюстрирующий примерный процесс, посредством которого может работать модуль 712 классификации содержимого. Как показано, процесс 900 начинается на этапе 902 ввода, где модуль 712 классификации содержимого принимает необработанные мультимедийные данные и метаданные. Далее процесс 900 переходит к этапу 904, на котором модуль 712 классификации содержимого определяет пространственную информацию и временную информацию мультимедийных данных. В некоторых аспектах пространственная и временная информация определяется посредством пространственного и временного маскирования (к примеру, фильтрации). Пространственная и временная информация может быть определена на основе метаданных, которые включают в себя данные смены сцен и сглаживание векторов движения (MV). Процесс 900 далее переходит к этапу 912, который выполняет оценки пространственной сложности, временной сложности и чувствительности. Процесс 900 затем переходит к этапу 916, на котором содержимое мультимедийных данных классифицируется на основе результатов определенных пространственных, временных данных и данных чувствительности, на этапах 904 и 912. Кроме того, на этапе 916 конкретная кривая соотношения "скорость передачи-искажение" (R-D) может быть выбрана и/или данные кривой R-D могут быть обновлены. Процесс 900 далее переходит к этапу 918 вывода, при этом вывод может включать в себя таблицу сложности-искажения или значение, указывающее пространственную или временную деятельность (к примеру, классификацию содержимого) и/или выбранные кривые R-D. Ссылаясь снова на фиг.7, модуль 712 классификации содержимого предоставляет вывод в модуль 714 назначения битов управления скоростью передачи, модуль внутренней модели 716 (искажений), а также в модуль 708 создания экземпляров I-кадров, описанный выше.As an example of the procedure that a
Информация содержимогоContent Information
Модуль 712 классификации содержимого может быть сконфигурирован так, чтобы вычислять разнообразие информации содержимого из мультимедийных данных, в том числе разнообразие связанных с содержимым показателей, включая пространственную сложность, временную сложность, значения коэффициента контрастности, стандартные отклонения и разностные показатели кадров, дополнительно описанные ниже.The
Модуль 712 классификации содержимого может быть сконфигурирован так, чтобы определять пространственную сложность и временную сложность мультимедийных данных, а также ассоциативно связывать значение текстуры с пространственной сложностью и значение движения с временной сложностью. Модуль 712 классификации содержимого принимает заранее обработанную информацию содержимого, связанную с содержимым мультимедийных данных, кодируемых из препроцессора 226, либо альтернативно, препроцессор 226 может быть сконфигурирован так, чтобы вычислять информацию содержимого. Как описано выше, информация содержимого может включать в себя, например, одно или более значений Dcsat, значений коэффициента контрастности, векторы движения (MV) и сумму абсолютных разностей (SAD).The
В общем, мультимедийные данные включают в себя одну или более последовательностей изображений, или кадров. Каждый кадр может быть разбит на блоки пикселов для обработки. Пространственная сложность - это обширный термин, который, в общем, описывает меру уровня пространственных деталей в кадре. Сцены с преимущественно плоскими, или неизменяющимися, или мало изменяющимися областями компонента яркости и цветности имеют низкую пространственную сложность. Пространственная сложность ассоциативно связана с текстурой видеоданных. Пространственная сложность, в данном аспекте, основана на показателе зрительной чувствительности человека, называемом Dcsat, который вычисляется для каждого блока как функция от локальной пространственной частоты и окружающего освещения. Специалисты в данной области техники знают методики использования шаблонов пространственной частоты и характеристик освещения и контрастности визуальных изображений, чтобы использовать преимущество зрительной системы человека. Ряд показателей чувствительности известен для использования преимуществ перспективных ограничений зрительной системы человека и может быть использован со способом, описанным в данном документе.In general, multimedia data includes one or more sequences of images, or frames. Each frame can be divided into blocks of pixels for processing. Spatial complexity is an extensive term that, in general, describes a measure of the level of spatial detail in a frame. Scenes with predominantly flat, or unchanging, or slightly changing regions of the luminance and color component have low spatial complexity. Spatial complexity is associated with the texture of the video data. Spatial complexity, in this aspect, is based on a human visual sensitivity index called D csat , which is calculated for each block as a function of local spatial frequency and ambient lighting. Those skilled in the art will know how to use patterns of spatial frequency and lighting characteristics and the contrast of visual images to take advantage of the human visual system. A number of sensitivity indicators are known to take advantage of the promising limitations of the human visual system and can be used with the method described in this document.
Временная сложность - это обширный термин, который используется для того, чтобы, в общем, описывать меру уровня движения в мультимедийных данных, указываемых ссылкой между кадрами в последовательности кадров. Сцены (к примеру, последовательности кадров видеоданных) с незначительным движением или без движения имеют низкую временную сложность. Временная сложность может быть вычислена для каждого макроблока и может быть основана на значении Dcsat, векторах движения и сумме абсолютных пикселных разностей между одним кадром и другим кадром (к примеру, опорным кадром).Temporal complexity is an extensive term that is used to generally describe a measure of the level of movement in multimedia data referenced between frames in a sequence of frames. Scenes (for example, sequences of frames of video data) with little or no movement have low temporal complexity. The time complexity can be calculated for each macroblock and can be based on the value of D csat , motion vectors and the sum of the absolute pixel differences between one frame and another frame (for example, a reference frame).
Разностный показатель кадров предоставляет меру разности между двумя последовательными кадрами с учетом движения (например, вектора движения или MV)The frame difference indicator provides a measure of the difference between two consecutive frames taking into account the motion (for example, a motion vector or MV)
наряду с остаточной энергией, представленной как сумма абсолютной разности (SAD) между прогнозным параметром и текущим макроблоком. Разность кадров также предоставляет меру двунаправленной и однонаправленной эффективности предсказания.along with the residual energy, presented as the sum of the absolute difference (SAD) between the predicted parameter and the current macroblock. The frame difference also provides a measure of bidirectional and unidirectional prediction efficiency.
Один пример разностного показателя кадров, основанного на информации движения, принимаемой от препроцессора, потенциально выполняющего устранение чересстрочной развертки с компенсацией движения, следующий. Модуль устранения чересстрочной развертки выполняет двунаправленную оценку движения, и тем самым двунаправленный вектор движения, и информация SAD доступна. Разность кадров, представляемая посредством SAD_MV для каждого макроблока, может быть извлечена следующим образом:One example of a frame difference indicator based on motion information received from a preprocessor potentially performing motion compensation interlacing with motion compensation is as follows. The interlacing elimination module performs a bi-directional motion estimation, and thus a bi-directional motion vector, and SAD information is available. The frame difference represented by SAD_MV for each macroblock can be extracted as follows:
где MV=Square_root(MVx 2+MVy 2), SAD=min(SADN, SADP), где SADN - это SAD, вычисленная из обратного опорного кадра, а SADP - это SAD, вычисленная из прямого опорного кадра.where MV = Square_root (MV x 2 + MV y 2 ), SAD = min (SAD N , SAD P ), where SAD N is SAD calculated from the inverse reference frame, and SAD P is SAD calculated from the direct reference frame .
Другой подход оценки разности кадров описан выше со ссылкой на уравнения 6-8. Соотношение SAD (или коэффициент контрастности) γ может быть вычислено так, как описано выше в уравнении 6. Гистограмма яркости каждого кадра также может быть определена, при этом разность гистограммы λ вычисляется с помощью уравнения 7. Разностный показатель кадров D может быть вычислен так, как показано в уравнении 8.Another approach for estimating the frame difference is described above with reference to equations 6-8. The SAD ratio (or contrast ratio) γ can be calculated as described above in
В одном иллюстративном примере коэффициент контрастности и разностный показатель кадров используются следующим образом для того, чтобы получить классификацию видеосодержимого, которая позволяет надежно предсказывать признаки в данной видеопоследовательности. Хотя описывается в данном документе как выполняющееся в кодере 228, препроцессор 226 также может быть сконфигурирован для того, чтобы определять классификацию содержимого (или другую информацию содержимого) и передавать классификацию содержимого в кодер 228 посредством метаданных. Процесс, описанный в примере ниже, классифицирует содержимое на восемь возможных классов, аналогично классификации, полученной из анализа на основе кривых R-D. Процесс классификации выводит значение в диапазоне от 0 до 1 для каждого суперкадра на основе сложности сцены и числа событий смены сцен в этом суперкадре. Модуль классификации содержимого в препроцессоре может выполнять следующие этапы (1)-(5) для каждого суперкадра, чтобы получить показатель классификации содержимого из значений контрастности кадров и разности кадров.In one illustrative example, the contrast coefficient and the difference indicator of frames are used as follows in order to obtain a classification of video content that allows reliable prediction of features in a given video sequence. Although described herein as being executed in
1. Вычисление средней контрастности кадров и отклонения контрастности кадров из значений контрастности макроблоков.1. Calculation of the average contrast of frames and deviations of the contrast of frames from the contrast values of macroblocks.
2. Нормализация значений контрастности кадров и разности кадров с помощью значений, полученных из моделирования, т.е. 40 и 5 соответственно.2. Normalization of the values of the contrast of frames and the difference of frames using the values obtained from the simulation,
3. Вычисление показателя классификации содержимого с помощью, к примеру, обобщенного уравнения:3. The calculation of the classification indicator of the content using, for example, a generalized equation:
где CCW1, CCW2, CCW3 и CCW4 - это весовые коэффициенты. В этом примере значения выбираются равными 0,2 для CCW1, 0,9 для CCW2, 0,1 для CCW3 и -0,00009 для CCW4.where CCW1, CCW2, CCW3 and CCW4 are weights. In this example, the values are chosen to be 0.2 for CCW1, 0.9 for CCW2, 0.1 for CCW3, and -0.00009 for CCW4.
4. Определение числа смены сцен в суперкадре. В общем, суперкадр означает группу изображений или кадров, которая может быть отображена в конкретном периоде времени. В типичном варианте период времени составляет одну секунду. В некоторых аспектах суперкадр содержит 30 кадров (для видео 30 кадров в секунду). В других аспектах суперкадр содержит 24 кадра (для видео 24 кадра в секунду). В зависимости от числа смен сцен один из следующих случаев приводится в исполнение.4. Determining the number of scene changes in a superframe. In general, a superframe means a group of images or frames that can be displayed in a specific time period. Typically, the time period is one second. In some aspects, a superframe contains 30 frames (for a video, 30 frames per second). In other aspects, a superframe contains 24 frames (for video, 24 frames per second). Depending on the number of scene changes, one of the following cases is executed.
(a) Нет смены сцен. Когда нет смены сцен в суперкадре, показатель полностью зависит только от значений разности кадров, как показано в следующем уравнении:(a) No scene change. When there is no scene change in the superframe, the indicator completely depends only on the values of the frame difference, as shown in the following equation:
(b) Одна смена сцен. Когда имеется кадр с одной сменой сцен, наблюдаемый в суперкадре, уравнение по умолчанию должно быть использовано для того, чтобы вычислять показатель, как показано ниже:(b) One scene change. When there is a frame with one scene change observed in a superframe, the default equation should be used to calculate the metric, as shown below:
exp(CCW4*Frame_Difference_Deviation^2)exp (CCW4 * Frame_Difference_Deviation ^ 2)
(a) Две смены сцен. Когда наблюдается, что имеется самое большее 2 смены сцен в данном суперкадре, последнему суперкадру назначается больший весовой коэффициент, чем первому, поскольку первый в любом случае должен быть обновлен посредством второго быстро, как показано в следующем уравнении:(a) Two scene changes. When it is observed that there are at most 2 scene changes in a given superframe, the last superframe is assigned a larger weight coefficient than the first, since the first in any case must be updated by the second quickly, as shown in the following equation:
*Frame_Difference Mean-CCW3* I_Contrast_Deviationl^2*I_Contrast_Deviation2 2* exp(CCW4*Frame_Difference_Deviation^2)* Frame_Difference Mean-CCW3 * I_Contrast_Deviationl ^ 2 *
(d) Три или более смен сцен. Если в данном суперкадре наблюдается более 3 I-кадров (скажем, N), последнему I-кадру присваивается больший весовой коэффициент, а всем остальным I-кадрам присваивается весовой коэффициент 0,05, как показано в следующем уравнении:(d) Three or more scene changes. If more than 3 I-frames (say, N) are observed in a given superframe, the last I-frame is assigned a higher weight coefficient, and all other I-frames are assigned a weight coefficient of 0.05, as shown in the following equation:
5. Корректировка может быть использована для показателя в случае сцен с незначительным движением, когда средняя разность кадров меньше 0,05. Сдвиг (CCOFFSET) 0,33 должен быть добавлен в CCMetric.5. Correction can be used for the indicator in the case of scenes with slight movement, when the average frame difference is less than 0.05. Offset (CCOFFSET) 0.33 must be added to CCMetric.
Модуль 712 классификации содержимого использует значение Dcsat, векторы движения и сумму абсолютных разностей, чтобы определять значение, указывающее пространственную сложность для макроблока (или указанный объем видеоданных). Временная сложность определяется посредством измерения показателя разности кадров (разности между двумя последовательными кадрами с учетом объема движения, с векторами движения и суммой абсолютных разностей между кадрами).The
В некоторых аспектах модуль 712 классификации содержимого может быть сконфигурирован так, чтобы формировать таблицу полосы пропускания. Например, формирование таблицы полосы пропускания может выполняться посредством модуля 712 классификации содержимого, если препроцессор 226 не формирует таблицу полосы пропускания.In some aspects, the
Определение значений текстуры и движенияDefining texture and motion values
Для каждого макроблока в мультимедийных данных модуль 712 классификации содержимого ассоциативно связывает значение текстуры с пространственной сложностью и значение движения с временной сложностью. Значение текстуры относится к значениям свечения мультимедийных данных, при этом низкое значение текстуры указывает небольшие изменения в значениях свечения соседних пикселов данных, а высокое значение текстуры указывает значительные изменения в значениях свечения соседних пикселов данных. После того как значения текстуры и движения вычислены, модуль 712 классификации содержимого определяет классификацию содержимого посредством рассмотрения информации движения и текстуры. Модуль 712 классификации содержимого ассоциативно связывает текстуру для классифицируемых видеоданных с относительным значением текстуры, например, "низкая" текстура, "средняя" текстура или "высокая" текстура, которое, в общем, указывает сложность значений яркости макроблоков. Кроме того, модуль 712 классификации содержимого ассоциативно связывает значение движения, вычисленное для классифицируемых видеоданных, с относительным значением движения, например, "низкое" движение, "среднее" движение или "высокое" движение, которое, в общем, указывает объем движения макроблоков. В альтернативных аспектах большее или меньшее число категорий для движения и текстуры может быть использовано. Далее показатель классификации содержимого определяется с учетом ассоциативно связанных значений текстуры и движения.For each macroblock in multimedia data, a
Фиг.8 иллюстрирует пример классификационной диаграммы, которая иллюстрирует то, как значения текстуры и движения ассоциативно связываются с классификацией содержимого. Специалисты в данной области техники знакомы с множеством способов реализовывать такую классификационную диаграмму, например, таблицей поиска или базой данных. Классификационная диаграмма формируется на основе предварительно определенных оценок содержимого видеоданных. Чтобы определить классификацию видеоданных, значение текстуры "низкая", "средняя" или "высокая" (на оси x) перекрестно ссылается со значением движения "низкое", "среднее" или "высокое" (на оси y). Классификация содержимого, указанная в пересекающемся прямоугольнике, назначается видеоданным. Например, значение текстуры "высокая" и значение движения "среднее" приводит к классификации семь (7). Фиг.8 иллюстрирует различные комбинации относительных значений текстуры и движения, которые ассоциативно связаны с восемью различными классификациями содержимого в данном примере. В некоторых других аспектах большее или меньшее число классификаций может быть использовано. Дополнительное описание иллюстративного аспекта классификации содержимого раскрыто в находящейся одновременно на рассмотрении Патентной заявке (США) номер 11/373577, озаглавленной "Content Classification For Multimedia Processing", зарегистрированной 10 марта 2006 года, назначенной правопреемнику этой заявки и таким образом явно содержащейся в данном документе по ссылке.FIG. 8 illustrates an example of a classification diagram that illustrates how texture and motion values are associated with content classification. Those skilled in the art are familiar with a variety of ways to implement such a classification diagram, for example, a lookup table or a database. A classification chart is generated based on predefined estimates of the content of the video data. To determine the classification of the video data, the texture value “low”, “medium” or “high” (on the x-axis) is cross-referenced with the motion value “low”, “medium” or “high” (on the y-axis). The content classification indicated in the intersecting rectangle is assigned by the video data. For example, the value of the texture is “high” and the value of the motion is “average” leads to a classification of seven (7). FIG. 8 illustrates various combinations of relative texture and motion values that are associated with eight different classifications of content in this example. In some other aspects, more or fewer classifications may be used. A further description of an illustrative aspect of the classification of content is disclosed in U.S. Patent Application No. 11/373577, entitled "Content Classification For Multimedia Processing", filed March 10, 2006, assigned to the assignee of this application and thus explicitly contained herein link.
Назначение битов управления скоростью передачиBit Rate Control Assignment
Как описано в данном документе, классификация содержимого мультимедийных данных может быть использована в алгоритмах кодирования для того, чтобы эффективно улучшать битовое управление при сохранении постоянным воспринимаемого качества видео. Например, показатель классификации может быть использован в алгоритмах для обнаружения смены сцен, управления назначением скорости передачи битов при кодировании и повышающего преобразования скорости передачи кадров (FRUC). Системы компрессора/декомпрессора (кодек) и алгоритмы обработки цифровых сигналов, как правило, используются при обмене видеоданными и могут быть сконфигурированы так, чтобы экономить полосу пропускания, но имеется компромисс между качеством и экономией полосы пропускания. Наилучшие кодеки предоставляют наибольшую экономию полосы пропускания при создании наименьшего ухудшения качества видео.As described herein, the classification of multimedia content can be used in coding algorithms in order to effectively improve bit control while maintaining a constant perceived video quality. For example, a classification metric can be used in algorithms to detect scene changes, control the assignment of the bit rate for encoding, and up-transform the frame rate (FRUC). Compressor / decompressor systems (codec) and digital signal processing algorithms are typically used when exchanging video data and can be configured to save bandwidth, but there is a trade-off between quality and bandwidth savings. The best codecs offer the most bandwidth savings while creating the least degradation in video quality.
В одном иллюстративном примере модуль 714 назначения битов управления скоростью передачи использует классификацию содержимого для того, чтобы определять скорость передачи битов (к примеру, число битов, назначаемых для кодирования мультимедийных данных), и сохраняет скорость передачи битов в запоминающем устройстве для использования посредством других процессов и компонентов кодера 228. Скорость передачи битов, определенная из классификации видеоданных, помогает экономить полосу пропускная при предоставлении мультимедийных данных с согласованным уровнем качества. В одном аспекте различная скорость передачи битов может быть ассоциативно связана с каждой из восьми различных классификаций содержимого, и затем эта скорость передачи битов используется для того, чтобы кодировать мультимедийные данные. Результирующий эффект заключается в том, что хотя различным классификациям мультимедийных данных назначается различное число битов для кодирования, воспринимаемое качество аналогично или согласованно при просмотре на дисплее.In one illustrative example, the bit rate control bit assigning unit 714 uses content classification to determine the bit rate (for example, the number of bits assigned to encode multimedia data), and stores the bit rate in a memory for use by other processes and components of the
В общем, мультимедийные данные с более высокой классификацией содержимого указывают более высокий уровень движения и/или текстуры, и им назначается больше битов при кодировании. Мультимедийным данным с более низкой классификацией (указывающее меньше текстуры и движения) назначается меньшее число битов. Для мультимедийных данных конкретной классификации битов скорость передачи битов может быть определена на основе выбранного целевого воспринимаемого уровня качества для просмотра мультимедийных данных. Определение качества мультимедийных данных может быть определено посредством просмотра и упорядочения людьми мультимедийных данных. В некоторых альтернативных аспектах оценки качества мультимедийных данных могут выполняться посредством автоматических тестовых систем с помощью, например, алгоритмов соотношения сигнал-шум. В одном аспекте набор стандартных уровней качества (к примеру, пять) и соответствующая скорость передачи битов, требуемая для того, чтобы достичь каждого конкретного уровня качества, заранее определяется для мультимедийных данных каждой классификации содержимого. Чтобы определить набор уровней качества, мультимедийные данные конкретной классификации содержимого могут быть оценены посредством формирования средней экспертной оценки (MOS), которая предоставляет числовой индикатор визуально воспринимаемого качества мультимедийных данных, когда они кодируются с помощью конкретной скорости передачи битов. MOS может быть выражена как одно число в диапазоне от 1 до 5, где 1 - это наименьшее воспринимаемое качество, а 5 - это наибольшее воспринимаемое качество. В других аспектах MOS может иметь более пяти или менее пяти уровней качества, и различные описания каждого уровня качества могут быть использованы.In general, multimedia data with a higher classification of content indicates a higher level of motion and / or texture, and is assigned more bits during encoding. Lower-classified multimedia data (indicating less texture and movement) is assigned fewer bits. For multimedia data with a specific classification of bits, the bit rate can be determined based on the selected target perceived quality level for viewing multimedia data. Determining the quality of multimedia data can be determined by viewing and organizing people multimedia data. In some alternative aspects, multimedia quality assessments can be performed by automated test systems using, for example, signal to noise ratio algorithms. In one aspect, a set of standard quality levels (e.g., five) and the corresponding bit rate required to achieve each specific quality level are predetermined for the multimedia data of each content classification. To define a set of quality levels, the multimedia data of a specific content classification can be evaluated by generating an average expert judgment (MOS), which provides a numerical indicator of the visually perceived quality of the multimedia data when it is encoded using a specific bit rate. MOS can be expressed as a single number in the range from 1 to 5, where 1 is the lowest perceived quality and 5 is the highest perceived quality. In other aspects, a MOS may have more than five or less than five quality levels, and various descriptions of each quality level may be used.
Определение качества мультимедийных данных может быть определено посредством просмотра и упорядочения людьми мультимедийных данных. В некоторых альтернативных аспектах оценки качества мультимедийных данных могут выполняться посредством автоматических тестовых систем с помощью, например, алгоритмов соотношения сигнал-шум. В одном аспекте набор стандартных уровней качества (к примеру, пять) и соответствующая скорость передачи битов, требуемая для того, чтобы достичь каждого конкретного уровня качества, заранее определяется для мультимедийных данных каждой классификации содержимого.Determining the quality of multimedia data can be determined by viewing and organizing people multimedia data. In some alternative aspects, multimedia quality assessments can be performed by automated test systems using, for example, signal to noise ratio algorithms. In one aspect, a set of standard quality levels (e.g., five) and the corresponding bit rate required to achieve each specific quality level are predetermined for the multimedia data of each content classification.
Знание взаимосвязи между уровнем визуально воспринимаемого качества и скоростью передачи в битах мультимедийных данных определенной классификации содержимого может быть определено посредством вызова целевого (к примеру, требуемого) уровня качества. Целевой уровень качества, используемый для того, чтобы определять скорость передачи битов, может быть заранее выбран, выбран посредством пользователя, выбран посредством автоматического процесса или полуавтоматического процесса, требующего ввода от пользователя или из другого процесса, или выбран динамически посредством устройства или системы кодирования на основе предварительно определенных критериев. Целевой уровень качества может быть выбран, например, на основе типа приложений кодирования или типа клиентского устройства, которое принимает мультимедийные данные.Knowing the relationship between the level of visually perceived quality and the bit rate of the multimedia data of a certain classification of content can be determined by calling the target (for example, the desired) level of quality. The target quality level used to determine the bit rate may be pre-selected, selected by the user, selected by an automatic process or a semi-automatic process that requires input from the user or from another process, or selected dynamically by a device or coding system based on predefined criteria. The target quality level may be selected, for example, based on the type of encoding application or the type of client device that receives multimedia data.
В проиллюстрированном примере на фиг.7 модуль 714 назначения битов управления скоростью передачи принимает и данные из модуля 712 классификации содержимого, и метаданные непосредственно из препроцессора 226. Модуль 714 назначения битов управления скоростью передачи размещается в части первого прохода кодера 228, а модуль 738 точной настройки управления скоростью передачи размещается в части 706 второго прохода. Этот аспект двухпроходного управления скоростью передачи сконфигурирован так, что первый проход (модуль 714 назначения битов управления скоростью передачи) выполняет контекстно-адаптивное назначение битов с упреждающим просмотром на один суперкадр (к примеру, при цели долгосрочной средней скорости передачи битов в 256 кбит/с) и ограничивает пиковую скорость, а второй проход (модуль 738 точной настройки управления скоростью передачи) уточняет результаты первого прохода для двухуровневой масштабируемости и выполняет адаптацию скорости. Управление скоростью работает на четырех уровнях: (1) уровень GOP - управляет распределением битов I-, P-, B- и F-кадров так, чтобы сделать их неоднородными в рамках GOP; (2) уровень суперкадров - управляет жесткими пределами на максимальный размер суперкадра; (3) уровень кадров - управляет требованиями по битам согласно пространственной и временной сложности кадров мультимедийных данных, которая основана на информации содержимого (к примеру, классификации содержимого); и (4) уровень макроблоков - управляет назначением битов макроблоков на основе таблиц пространственной и временной сложности, которые основаны на информации содержимого (к примеру, классификации содержимого).In the illustrated example in Fig. 7, the bit rate control bit assignment module 714 receives both data from the
Примерная блок-схема последовательности операций работы модуля 714 управления скоростью передачи проиллюстрирована на фиг.10. Как показано на фиг.10, процесс 1000 начинается на этапе 1002 ввода. Модуль 714 управления скоростью передачи принимает различные входные данные, не все из которых обязательно проиллюстрированы на фиг.7. Например, входная информация может включать в себя метаданные из препроцессора 226, целевую скорость передачи битов, размер буфера кодера (или, в качестве эквивалента, максимальное время задержки для управления скоростью передачи), начальную задержку управления скоростью передачи и информацию частоты кадров. Дополнительная входная информация может включать в себя входные данные на уровне группы изображений (GOP), в том числе, например, максимальный размер суперкадра, длину и распределение P/B-кадров в GOP (включая информацию смены сцен), требуемая компоновка базового уровня и уровня улучшения, показатель искажения в зависимости от сложности для изображений в GOP для следующих 30 кадров. Другая входная информация включает в себя входные данные на уровне изображений, в том числе таблицу искажения в зависимости от сложности для текущего изображения (принятого из модуля 712 классификации содержимого), параметры квантования (QP) и разрыв битов за последние 30 кадров (попадание в окно передачи переменной длительности). Наконец, входная информация на уровне макроблоков (MB) включает в себя, например, среднюю абсолютную разность (MAD) совместно размещенных макроблоков (MB) в опорном изображении и шаблон кодированных блоков (CBP) макроблоков после квантования (независимо от того, пропущены или нет).An exemplary flow chart of a transmission rate control module 714 is illustrated in FIG. 10. As shown in FIG. 10, the
После ввода данных на этапе 1002 процесс 1000 переходит к этапу 1004 для инициализации кодирования потока битов. Параллельно выполняется инициализация 1006 буфера. Затем инициализируется GOP, как показано на этапе 1008, при этом назначение 1010 битов GOP принимается как часть инициализации. После инициализации GOP последовательность операций переходит к этапу 1012, где инициализируется серия макроблоков. Эта инициализация включает в себя обновление битов заголовков, как показано посредством этапа 1014. После того, как инициализация на этапах 1004, 1008 и 1012 выполнена, управление скоростью (RC) для базовой единицы или макроблока (MB) выполняется так, как показано посредством этапа 1016. Как часть определения при управлении скоростью макроблока на этапе 1016 принимаются входные данные посредством интерфейсов в кодере 228. Эти входные данные могут включать в себя назначение 1018 битов макроблока (MB), обновление параметров 1020 квадратической модели и обновление параметров 1022 медианного абсолютного отклонения от медианы (MAD, устойчивая оценка дисперсии). Затем процесс 1000 переходит к этапу 1024 для приведения в исполнение операций после кодирования одного изображения 1024. Эта процедура включает в себя прием обновления параметров буфера, как показано посредством этапа 1026. После этого процесс 1000 переходит к этапу 1028 вывода, где модуль 714 управления скоростью передачи выводит параметры квантования QP для каждого макроблока MB, которые должны быть использованы посредством модуля 715 определения режима, как показано на фиг.7.After entering the data in
Оценка движенияMotion estimation
Модуль 720 оценки движения принимает входные данные из метаданных и необработанного видео из препроцессора 226 и предоставляет выходные данные, которые могут включать в себя размер блока, показатели искажения векторов движения и идентификаторы опорных кадров, в модуль 715 определения режима. Фиг.11 иллюстрирует примерную работу модуля 720 оценки движения. Как показано, процесс 1100 начинается с ввода 1102. На уровне кадров модуль 720 принимает ввод идентификатора опорного кадра и векторов движения. На уровне макроблоков ввод 1102 включает в себя входные пикселы и пикселы опорных кадров. Процесс 1100 переходит к этапу 1104, на котором выполняется цветовая оценка движения (ME) и предсказание векторов движения. Чтобы выполнить этот процесс, принимаются различные входные данные, в том числе векторы движения MPEG-2 и векторы движения компоненты яркости MV 1106, сглаживание 1108 векторов движения и непричинные векторы 1110 движения. Затем процесс 1100 переходит к этапу 1112, на котором выполняется алгоритм или методология поиска векторов движения, например, способы шестиугольного или ромбовидного поиска. Входные данные в процесс на этапе 1112 могут включать в себя сумму абсолютных разностей (SAD), сумму квадратов разностей (SSD) и/или другие показатели, как показано посредством этапа 1114. После того как поиск векторов движения выполнен, процесс 1100 переходит к этапу 1116 завершения, на котором выполняется обработка завершения. После этого процесс 100 завершается на этапе 1118 вывода, который предоставляет вывод размера блока, вектора движения (MV), показателей искажения и идентификаторов опорных кадров.
Масштабируемость R-D для базового уровня и уровня улучшенияR-D scalability for baseline and enhancement level
Фиг.13 иллюстрирует примерную блок-схему последовательности операций процесса 1300 масштабируемости, который может быть выполнен посредством модуля 718 масштабируемости R-D. Процесс 1300 начинается на начальном этапе 1302 и переходит к этапу 1304, на котором модуль 718 масштабируемости R-D принимает входные данные из модуля 720 оценки движения и выполняет оценку движения. Оценка движения базируется на вводе опорных кадров базового уровня, опорных кадров уровня улучшения и исходного кадра, который должен быть кодирован, как указано, посредством этапа 1306. Эта информация может быть вычислена посредством модуля 612 секционирования GOP и передана в модуль 718 масштабируемости R-D посредством, к примеру, метаданных. Процесс 1300 переходит к этапу 1308, чтобы определить информацию масштабируемости данных базового уровня и уровня улучшения. Кодирование базового уровня затем выполняется, как показано на этапе 1310, за которым следует кодирование уровня улучшения на этапе 1312. Кодирование уровня улучшения может использовать результаты кодирования базового уровня для межуровневого предсказания в качестве входных данных, как проиллюстрировано посредством этапа l314, таким образом, по времени оно выполняется после кодирования базового уровня. Это дополнительно описано в находящейся одновременно на рассмотрении Патентной заявке (США) номер [Адвокатская выписка номер 050078], озаглавленной "Scalable Video Coding With Two Layer Encoding And Single Layer Decoding". После того как кодирование завершено, процесс 1300 завершается на этапе 1316.FIG. 13 illustrates an example flowchart of a
Упорядочение серий макроблоков/макроблоковSorting macroblock / macroblock series
Часть 702 первого прохода также включает в себя модуль 722 упорядочения серий макроблоков/макроблоков, который принимает входные данные из модуля 740 устойчивости к ошибкам в части второго прохода и предоставляет информацию совмещения серий макроблоков в модуль 715 определения режима. Серии макроблоков - это участки независимо декодируемых (декодируемых по энтропии) кодированных видеоданных. Единицы доступа (AU) - это кодированные видеокадры, каждый из которых содержит набор NAL-единиц, всегда содержащих ровно одно первично кодированное изображение. Помимо первично кодированного изображения единица доступа также может содержать одну или более избыточно кодированных изображений или других NAL-единиц, не содержащих серии макроблоков или сегменты данных серий макроблоков в кодированном изображении. Декодирование единицы доступа всегда приводит к декодированному изображению.The
Кадры могут быть мультиплексированными с временным разделением каналов блоками пакетов физического уровня (называемыми TDM-капсулой), которые предоставляют наибольшее временное разнесение. Суперкадр соответствует одной единице времени (к примеру, 1 секунде) и содержит четыре кадра. Совмещение границ серий макроблоков и AU с границами кадров во временной области приводит к наиболее эффективному разделению и локализации поврежденных данных. В ходе глубокого затухания большая часть смежных данных в TDM-капсуле затрагивается посредством ошибок. Вследствие временного разнесения оставшиеся TDM-капсулы имеют высокую вероятность быть неповрежденными. Неповрежденные данные могут быть использованы для того, чтобы восстанавливать и скрывать потерянные данные от затронутой TDM-капсулы. Аналогичная логика применяется к мультиплексированию в частотной области (FDM), где частотное разнесение достигается посредством разделения в частотных поднесущих, которые модулируют символы данных. Кроме того, аналогичная логика применяется к пространственному (посредством разделения в антеннах передающих и приемных устройств) и другим формам разнесения, часто применяемым в беспроводных сетях.Frames can be time division multiplexed blocks of physical layer packets (called TDM capsules) that provide the greatest time diversity. A superframe corresponds to one unit of time (for example, 1 second) and contains four frames. Combining the boundaries of a series of macroblocks and AUs with the boundaries of frames in the time domain leads to the most efficient separation and localization of damaged data. During deep attenuation, most of the adjacent data in the TDM capsule is affected by errors. Due to temporary spacing, the remaining TDM capsules are highly likely to be intact. Intact data can be used to recover and hide lost data from the affected TDM capsule. Similar logic applies to frequency domain multiplexing (FDM), where frequency diversity is achieved by dividing in frequency subcarriers that modulate data symbols. In addition, similar logic applies to spatial (through separation of transmitting and receiving devices in antennas) and other forms of diversity, often used in wireless networks.
Чтобы совмещать серии макроблоков и AU с кадрами, создание кодовых блоков внешнего кода (FEC) и инкапсуляция MAC-уровня должны также совмещаться. Фиг.20 иллюстрирует организацию кодированных видеоданных или потока битов видео в серии макроблоков и AU. Кодированное видео может составляться в одном или более потоков битов, к примеру, в потоке битов базового уровня и потоке битов уровня улучшения, где применяется многоуровневое видеокодирование.In order to combine a series of macroblocks and AUs with frames, the creation of code blocks of an external code (FEC) and the encapsulation of the MAC layer must also be combined. 20 illustrates the organization of encoded video data or a video bitstream in a series of macroblocks and AUs. The encoded video may be composed in one or more bit streams, for example, in a base layer bit stream and an enhancement layer bit stream, where multi-level video coding is used.
Поток битов видео содержит AU, как проиллюстрировано на фиг.20 посредством кадра 1' 2005, кадра 3' 2010 и кадра M' 2015. AU содержат серии макроблоков данных, как проиллюстрировано посредством серии макроблоков 1 2020, серии макроблоков 2 2025 и серии макроблоков N 2030. Каждое начало серии макроблоков идентифицируется посредством начального кода и предоставляется в сетевую адаптацию. В общем, I-кадры или внутренне кодированные AU являются крупными, а за ними следуют P-кадры или кадры с прямым предсказанием, за которыми следует B-кадры. Кодирование AU на несколько серий макроблоков налагает существенные дополнительные расходы в отношении кодированной скорости передачи битов, поскольку пространственное предсказание в сериях макроблоков ограничено, и заголовки макроблоков также способствуют дополнительным расходам. Поскольку границы серий макроблоков являются точками повторной синхронизации, ограничение смежных пакетов физического уровня сериями макроблоков управляет ошибками, поскольку когда PLP поврежден, ошибка ограничивается серией макроблоков в PLP, тогда как если PLP содержал несколько серий макроблоков или части нескольких серий макроблоков, ошибка должна повлиять на все серии макроблоков или части серий макроблоков в PLP.The video bitstream contains the AU, as illustrated in FIG. 20 by
Поскольку I-кадры в типичном варианте являются крупными, например, порядка десятков кбит/с, дополнительная служебная информация, обусловленная несколькими сериями макроблоков, не является значительной частью общего размера I-кадра или общей скорости передачи битов. Кроме того, наличие большего числа серий макроблоков во внутренне кодированном AU обеспечивает более оптимальную и более частую повторную синхронизацию и более эффективное маскирование пространственных ошибок. Помимо этого, I-кадры переносят наиболее важную информацию в потоке битов видео, поскольку P- и B-кадры предсказываются из I-кадров. I-кадры также выступают в качестве точек произвольного доступа для обнаружения канала.Since I-frames are typically large, for example, of the order of tens of kbit / s, the additional overhead due to several series of macroblocks is not a significant part of the total size of the I-frame or the total bit rate. In addition, the presence of a larger number of macroblock series in an internally encoded AU provides more optimal and more frequent resynchronization and more efficient masking of spatial errors. In addition, I-frames carry the most important information in the video bitstream, since P- and B-frames are predicted from I-frames. I-frames also act as random access points for channel detection.
Ссылаясь теперь на фиг.21, тщательное совмещение I-кадров с границами кадров и также серий макроблоков с I AU с границами кадров предоставляет наиболее эффективное управление ошибками, защиту от ошибок (поскольку если одна серия макроблоков, которая принадлежала кадру 1 2105, потеряна, серии макроблоков, которые принадлежат кадру 2 2110, имеют высокую вероятность быть неповрежденными, поскольку кадр 2 2110 имеет значительное временное разделение от кадра 1 2105, восстановление после ошибок может выполняться посредством повторной синхронизации и маскирования ошибок.Referring now to FIG. 21, a careful combination of I-frames with frame boundaries and also a series of macroblocks with I AU with frame borders provides the most efficient error management, error protection (since if one series of macroblocks that belonged to frame 1 2105 is lost, series macroblocks that belong to frame 2110 have a high probability of being intact, since
Поскольку P-кадры в типичном варианте имеют размер порядка нескольких кбит/с, совмещение серий макроблоков P-кадра и целого числа P-кадров с границами кадров предоставляет устойчивость к ошибкам без нежелательной потери эффективности (по аналогичным причинам, что и для I-кадров). Временное маскирование ошибок может использоваться в таких аспектах. Альтернативно, рассредоточение последовательных P-кадров так, чтобы они поступали в различных кадрах, предоставляет добавленное временное разнесение в P-кадрах, которое может быть обусловлено тем, что временное маскирование основано на векторах движения и данных из ранее восстановленных I- или P-кадров. B-кадры могут быть от чрезвычайно малых (сотни битов) до умеренно крупных (несколько тысяч битов). Следовательно, совмещение целого числа B-кадров с границами кадров требуется для того, чтобы достигать устойчивости к ошибкам без нежелательной потери эффективности.Since P-frames typically have a size of the order of several kbps, combining a series of macroblocks of a P-frame and an integer number of P-frames with frame boundaries provides error tolerance without undesired performance loss (for similar reasons as for I-frames) . Temporary error concealment can be used in such aspects. Alternatively, dispersing consecutive P frames so that they arrive in different frames provides added temporal diversity in P frames, which may be due to the fact that temporal masking is based on motion vectors and data from previously reconstructed I or P frames. B-frames can range from extremely small (hundreds of bits) to moderately large (several thousand bits). Therefore, combining an integer number of B frames with frame boundaries is required in order to achieve error tolerance without undesired loss of efficiency.
Модуль определения режимаMode Definition Module
Фиг.12 иллюстрирует некоторые примеры работы модуля 715 определения режима. Как показано, процесс 1200 начинается на этапе 1202 ввода. В одном иллюстративном примере различная информация, вводимая в модуль 715 определения режима, включает в себя тип серии макроблоков, режим Intra 4x4cost, режим Intra 16xl6cost, режим IntraUV 8x8cost, режим IntraY 16x16, режим IntraUV, данные векторов движения (MVD), параметры квантования (QP), SpPredMB4x4Y, SpPredMB16xl6Y, SpPredMB8x8U, SpPredMB8x8V, флаг "скорость передачи-искажение", необработанные YMB-пикселы, необработанные UMB-пикселы и необработанные VMB-пикселы. Далее процесс 1200 переходит к этапу 1204 инициализации кодирования, которая может быть инициирована посредством входного сигнала или интерфейса, направляющего инициализацию кодера, как указано, посредством этапа 1206. Инициализация может включать в себя задание разрешенных режимов (включая пропуск, направление), задание весовых коэффициентов режима (при необходимости по умолчанию все весовые коэффициенты равны для всех режимов) и задание буферов. После инициализации процесс 1200 переходит к этапу 1208, где выполняется основная обработка для определения режима, включающая в себя: вычисление затрат режима макроблоков (MB) для каждого разрешенного режима, взвешивание затрат каждого режима макроблоков MB12 illustrates some examples of the operation of the
с помощью весового коэффициента и выбор режима минимальных затрат режима MB. Входные данные, вовлеченные в эти операции, включают в себя оценку движения (к примеру, MVD и предсказания) и пространственное предсказание (к примеру, внутренние затраты и предсказания), как показано, посредством этапов 1210 и 1212. С модулем 715 определения режима взаимодействует кодирование по энтропии на этапе 1214, которое, помимо прочего, повышает степень сжатия. Процесс 1200 переходит к этапу 1216, где буферы обновляются так, чтобы передавать информацию в часть 706 второго прохода кодера. В завершение процесс 1200 переходит к этапу 1218, на котором "оптимальный" режим кодирования может быть сообщен в часть 706 второго прохода кодера.using the weight coefficient and the choice of the minimum cost mode of the MB mode. The input involved in these operations includes motion estimation (eg, MVD and predictions) and spatial prediction (eg, internal costs and predictions), as shown by
Часть второго прохода кодераPart of the second pass of the encoder
Ссылаясь снова на фиг.7, часть 706 второго прохода кодера 228 включает в себя модуль 232 кодера второго прохода для выполнения второго прохода кодирования. Кодер 232 второго прохода принимает вывод из модуля 715 определения режима. Кодер 232 второго прохода включает в себя модуль 726 MC/квантования с преобразованием и зигзагообразный кодер (ZZ)/кодер 728 по энтропии. Результаты кодера 232 второго прохода выводятся в модуль 730 масштабирования и модуль 731 упаковки пакета битов, который выводит кодированный базовый и уровень улучшения для передачи посредством транскодера 200 посредством синхронизирующего уровня 240 (проиллюстрированного на фиг.2). Как показано на фиг.2, следует отметить, что базовый и уровень улучшения из кодера 232 второго прохода и повторного кодера 234 ассемблируются посредством синхронизирующего уровня 240 в пакетированные PES 242, включающие в себя базовый уровень и уровни улучшения, PES 244 данных (к примеру, CC и других текстовых данных) и PES 246 аудио. Следует отметить, что аудиодекодер 236 принимает декодированную аудиоинформацию 218 и, в свою очередь, кодирует информацию и выводит информацию 238 в синхронизирующий уровень 240.Referring again to FIG. 7, a
Повторный кодерRe encoder
Ссылаясь снова на фиг.7, часть 706 второго прохода кодера также включает в себя повторный кодер 234, который соответствует повторному кодеру 234 на фиг.2. Повторный кодер 234 также принимает вывод части 702 первого прохода и включает в себя части MC/квантования 726 с преобразованием и ZZ/кодирования 728 по энтропии. Дополнительно, модуль 730 масштабируемости выполняет вывод в повторный кодер 234. Повторный кодер 234 выводит результирующий базовый и уровень улучшения из повторного кодирования в модуль 731 упаковки пакета битов для передачи в модуль синхронизации (к примеру, синхронизирующий уровень 240, показанный на фиг.2). Пример кодера 228 на фиг.7 также включает в себя модуль 738 точной настройки управления скоростью передачи, который предоставляет обратную связь по упаковке потока битов в модуль 234 MC/квантования с преобразованием в кодере 232 второго прохода и модуль 736 ZZ/кодирования по энтропии в повторном кодере 234, чтобы помочь точно настроить кодирование второго прохода (к примеру, повысить эффективность сжатия).Referring again to FIG. 7, the second pass portion of the
Модуль устойчивости к ошибкамError tolerance module
Пример кодера 228, проиллюстрированный на фиг.7, также включает в себя модуль 740 устойчивости к ошибкам в части 706 второго прохода. Модуль 740 устойчивости к ошибкам обменивается данными с модулем 731 упаковки потока битов и модулем 722 упорядочивания серий макроблоков/MB. Модуль 740 устойчивости к ошибкам принимает метаданные от препроцессора 228 и выбирает схему устойчивости к ошибкам, например, совмещение серий макроблоков и единиц доступа с границами кадров, иерархия с предсказанием и адаптивное внутреннее обновление. Выбор схемы устойчивости к ошибкам может быть основан на информации, принимаемой в метаданных, или из информации, передаваемой в модуль устойчивости к ошибкам, из модуля 731 упаковки потока битов и модуля 722 упорядочивания серий макроблоков/MB. Модуль 740 устойчивости к ошибкам предоставляет информацию в модуль упорядочивания серий макроблоков/макроблоков (MB) в части 702 первого прохода, чтобы реализовать выбранные процессы устойчивости к ошибкам. Передача видео в отказоустойчивых окружениях может использовать устойчивые к ошибкам стратегии и алгоритмы, которые могут приводить к представлению более четких и менее наполненных ошибками данных зрителю. Нижеприведенное описание устойчивости к ошибкам может применяться к любым отдельным или комбинации существующего или будущего варианта применения, транспортного и физического уровня и другим технологиям. Эффективные алгоритмы устойчивости к ошибкам интегрируют понимание свойств восприимчивости к ошибкам и возможностей защиты от ошибок для OSI-уровней в сочетании с требуемыми свойствами системы связи, такой как низкая задержка и высокая пропускная способность. Обработка устойчивости к ошибкам может быть основана на информации содержимого мультимедийных данных, например, классификации содержимого мультимедийных данных. Одно из основных преимуществ - это восстанавливаемость после ошибок затухания и многолучевого канала. Подходы устойчивости к ошибкам, описанные ниже, относятся, в частности, к процессам, которые могут содержаться в кодере 228 (к примеру, в частности, в модуле 740 устойчивости к ошибкам и модуле 722 упорядочивания серий макроблоков/MB), и могут быть расширены, в общем, до обмена данными в отказоустойчивых окружениях.An example of
Устойчивость к ошибкамError tolerance
Для основанной на предсказании гибридной системы сжатия внутренне кодируемые кадры независимо кодируются без какого-либо временного предсказания. Внешне кодированные кадры могут быть предсказаны во времени из предшествующих кадров (P-кадров) и будущих кадров (B-кадров). Оптимальный предиктор может быть идентифицирован посредством процесса поиска в опорном кадре (одном или более), и измерение искажений, например, SAD, используется для того, чтобы определить наилучшее совпадение. Кодированная с предсказанием зона текущего кадра может быть блоком переменной длины и формы (16×16, 32×32, 8×4 и т.д.) или группой пикселов, идентифицированных как объект посредством, к примеру, сегментации.For a prediction-based hybrid compression system, internally encoded frames are independently encoded without any temporal prediction. Externally coded frames can be predicted in time from previous frames (P-frames) and future frames (B-frames). An optimal predictor can be identified by a search process in a reference frame (one or more), and a distortion measurement, such as SAD, is used to determine the best match. The predicted coded region of the current frame may be a block of variable length and shape (16 × 16, 32 × 32, 8 × 4, etc.) or a group of pixels identified as an object by, for example, segmentation.
Временное предсказание в типичном варианте растягивается на множество кадров (к примеру, десять или десятки кадров) и завершается, когда кадр кодирован как I-кадр, причем GOP в типичном варианте задается посредством частоты I-кадров. Для максимальной эффективности кодирования GOP - это сцена, например, границы GOP совмещены с границами сцены, и кадры смены сцен кодируются как I-кадры. При небольшом движении последовательности содержат относительно статичный фон, и движение, в общем, ограничено объектом на переднем плане. Примеры содержимого таких последовательностей с небольшим движением включают в себя программы новостей и прогноза погоды, где более 30% самого просматриваемого содержимого имеет такой характер. В последовательностях с небольшим движением большинство зон являются внешне кодированными, и спрогнозированные кадры ссылаются обратно на I-кадр посредством промежуточных спрогнозированных кадров.The temporal prediction typically stretches to many frames (for example, ten or tens of frames) and ends when the frame is encoded as an I-frame, and the GOP is typically specified by the frequency of I-frames. For maximum coding efficiency, the GOP is a scene, for example, the boundaries of the GOP are aligned with the boundaries of the scene, and scene change frames are encoded as I-frames. With little movement, the sequences contain a relatively static background, and the movement is generally limited to an object in the foreground. Examples of the contents of such low-motion sequences include news and weather forecasting programs, where more than 30% of the most viewed content is of this nature. In sequences with little movement, most of the zones are externally encoded, and the predicted frames are referenced back to the I-frame through intermediate predicted frames.
Ссылаясь на фиг.22, внутренне кодированный блок 2205 в I-кадре является предиктором для внешне кодированного блока 2210 в кодированном кадре (или AU) PI. В этом примере зона данных блоков является стационарной частью фона. Посредством последовательного временного предсказания чувствительность внутренне кодированного блока 2205 к ошибкам возрастает, поскольку это "хороший" предиктор, что также подразумевает, что его "важность" выше. Дополнительно, внутренне кодированный блок 2205 в силу этой цепочки временного предсказания, называемой цепочкой предсказания, остается дольше на дисплее (в течение сцены в примере на чертеже).Referring to FIG. 22, an internally coded block 2205 in an I-frame is a predictor for an externally coded
Иерархия предсказания задается как дерево блоков, создаваемое на основе этого уровня важности, или измерение сохраняемости с родителем наверху (внутренне кодированный блок 2205) и дочерними элементами внизу. Отметим, что внешне кодированный блок 2215 на P1 находится на втором уровне иерархии и т.д. Листья - это блоки, которые завершают цепочку предсказания.The prediction hierarchy is defined as a block tree created on the basis of this level of importance, or a measure of persistence with a parent at the top (internally encoded block 2205) and children at the bottom. Note that the externally encoded block 2215 on P1 is at the second level of the hierarchy, etc. Leaves are blocks that complete the prediction chain.
Иерархия предсказания может быть создана для видеопоследовательностей независимо от типа содержимого (например, также музыки и спорта, а не только новостей) и применима к сжатию основанного на предсказании видео (и данных) в общем (это применяется ко всем изобретениям, описанным в этой заявке). После того как иерархия предсказания установлена, алгоритмы устойчивости к ошибкам, такие как адаптивное внутреннее обновление, описанное ниже, могут быть применены более эффективно. Измерение важности может быть основано на восстанавливаемости данного блока после ошибок, например, посредством операций маскировки и применения адаптивного внутреннего обновления для того, чтобы повышать устойчивость кодированного потока битов к ошибкам. Оценка измерения важности может быть основана на количестве раз, когда блок используется в качестве прогнозного параметра, также упоминаемого как показатель сохраняемости. Показатель сохраняемости также используется для того, чтобы повышать эффективность кодирования за счет приостановки распространения ошибок предсказания. Показатель сохраняемости также увеличивает назначение битов для блоков с более высокой важностью.A prediction hierarchy can be created for video sequences regardless of the type of content (for example, also music and sports, and not just news) and is applicable to the compression of prediction-based video (and data) in general (this applies to all inventions described in this application) . Once the prediction hierarchy is established, error tolerance algorithms such as adaptive internal updating, described below, can be applied more efficiently. The importance measurement can be based on the recoverability of a given block after errors, for example, through masking operations and the use of adaptive internal updates in order to increase the error resistance of the encoded bit stream. The importance measurement score may be based on the number of times a block is used as a predictor, also referred to as a measure of persistence. A retention metric is also used to improve coding efficiency by stopping the propagation of prediction errors. Retention also increases bit assignment for blocks of higher importance.
Адаптивное внутреннее обновлениеAdaptive Internal Update
Адаптивное внутреннее обновление используется в методике устойчивости к ошибкам, которая может быть основана на информации содержимого мультимедийных данных. В процессе внутреннего обновления некоторые MB кодируются внутренне, даже если стандартная оптимизация R-D должна диктовать то, что они должны быть внешне кодированными MB. AIR использует внутреннее обновление с взвешиванием движения для того, чтобы ввести внутренне кодированные MB в P- или B-кадры. Эти внутренне кодированные MB, содержащиеся в базовом уровне, могут быть кодированы с помощью QPb или QPe. Если QPe используется для базового уровня, не требуется выполнять уточнение на уровне улучшения. Если QPb используется для базового уровня, то уточнение может потребоваться, иначе на уровне улучшения ухудшение качества будет заметным. Поскольку внешнее кодирование более эффективно, чем внутреннее кодирование, в отношении эффективности кодирования, эти уточнения на уровне улучшения внутренне кодируются. Таким образом, коэффициенты базового уровня не используются для уровня улучшения, и качество повышается на уровне улучшения без введения новых операций.Adaptive internal updating is used in the error tolerance technique, which can be based on the content information of multimedia data. During the internal upgrade process, some MBs are coded internally, even if the standard RD optimization should dictate that they must be externally coded MBs. AIR uses motion-weighted internal updating to introduce internally coded MBs into P- or B-frames. These internally encoded MBs contained in the base layer can be encoded using QP b or QP e . If QP e is used for the base level, refinement at the enhancement level is not required. If QP b is used for the baseline, then refinement may be required; otherwise, at the improvement level, degradation will be noticeable. Since external coding is more efficient than internal coding with respect to coding efficiency, these refinements at the enhancement level are internally encoded. Thus, baseline coefficients are not used for the improvement level, and the quality is improved at the improvement level without introducing new operations.
В некоторых аспектах адаптивное внутреннее обновление может быть основано на информации содержимого мультимедийных данных (к примеру, классификации содержимого) вместо или помимо основы взвешенного движения. Например, если классификация содержимого относительно высокая (к примеру, сцены, имеющие высокую пространственную и временную сложность), адаптивное внутреннее обновление может вводить относительно большее число внутренне кодированных MB в P- или B-кадры. Альтернативно, если классификация содержимого относительно низкая (указывая менее динамичную сцену с низкой пространственной и/или временной сложностью), то адаптивное внутреннее обновление может вводить меньшее число внутренне кодированных MB в P- и B-кадры. Эти показатели и способы повышения устойчивости к ошибкам могут быть применены не только в контексте беспроводной мультимедийной связи, но также к сжатию данных и мультимедийной обработке, в общем (к примеру, при рендеринге графики).In some aspects, adaptive internal updating may be based on multimedia content information (eg, content classification) instead of or in addition to the basis of weighted movement. For example, if the content classification is relatively high (for example, scenes having high spatial and temporal complexity), adaptive internal updating may introduce a relatively larger number of internally encoded MBs in P- or B-frames. Alternatively, if the content classification is relatively low (indicating a less dynamic scene with low spatial and / or temporal complexity), then adaptive intra-update may introduce fewer internally encoded MBs in P- and B-frames. These indicators and methods for improving error tolerance can be applied not only in the context of wireless multimedia communications, but also to data compression and multimedia processing, in general (for example, when rendering graphics).
Кадр переключения каналовChannel Switch Frame
Кадр переключения каналов (CSF), задаваемый в данном документе, является обширным термином, описывающим кадр произвольного доступа, вставляемый в соответствующее место широковещательного потока для быстрого обнаружения канала и тем самым быстрой смены каналов между потоками при широковещательной мультиплексной передаче. Кадры переключения каналов также повышают устойчивость к ошибкам, поскольку они предоставляют избыточные данные, которые могут быть использованы в том случае, если первичный кадр передан с ошибкой. I-кадры или прогрессивный I-кадр, такой как прогрессивный кадр обновления декодера, в H.264 в типичном варианте выступает в качестве точки произвольного доступа. Тем не менее, частые I-кадры (или короткие GOP, короче длительности сцен) приводят к значительному снижению эффективности сжатия. Поскольку внутренне кодированные блоки могут быть использованы для устойчивости к ошибкам, произвольный доступ и устойчивость к ошибкам может быть эффективно комбинирована посредством эффективности предсказания, чтобы повышать эффективность кодирования при увеличении устойчивости к ошибкам.The Channel Switching Frame (CSF) defined herein is an extensive term for describing a random access frame inserted at an appropriate location in a broadcast stream to quickly detect a channel and thereby quickly change channels between streams during broadcast multiplex transmission. Channel switching frames also increase error tolerance because they provide redundant data that can be used if the primary frame is transmitted in error. I-frames or a progressive I-frame, such as a progressive decoder update frame, in H.264 typically acts as a random access point. However, frequent I-frames (or short GOPs, shorter than scene lengths) lead to a significant reduction in compression efficiency. Because internally coded blocks can be used for error tolerance, random access and error tolerance can be effectively combined through prediction efficiency to increase coding efficiency while increasing error tolerance.
Усовершенствование переключения с произвольным доступом и устойчивости к ошибкам может быть достигнуто во взаимодействии и может быть основано на информации содержимого, такой как классификация содержимого. Для последовательностей с небольшим движением цепочки прогнозирования являются длинными, и значительная часть информации, требуемой для того, чтобы восстанавливать суперкадр или сцену, содержится в I-кадре, который был в начале сцены. Ошибки каналов зачастую являются пульсирующими, и когда затухание возникает, и FEC и канальное кодирование завершается сбоем, имеется серьезная остаточная ошибка того, что маскирование сбоит. Это особенно серьезно для последовательностей с небольшим движением (и, следовательно, низкой скоростью передачи битов), поскольку объем кодированных данных недостаточной большой для того, чтобы предоставлять хорошее временное разнесение в потоке битов видео, и поскольку это последовательности с высокой степенью сжатия, что делает каждый бит пригодным для восстановления. Последовательности с большим движением более устойчивы к ошибкам вследствие характера содержимого - больше новой информации в каждом кадре увеличивает число внутренне кодированных блоков, которые являются независимо декодируемыми и более устойчивыми к ошибкам по природе. Адаптивное внутреннее обновление на основе иерархии предсказания предоставляет высокую производительность для последовательностей с большим движением, и повышение производительности незначительно для последовательностей с небольшим движением. Следовательно, кадр переключения каналов, содержащий большую часть I-кадра, является хорошим источником разнесения для последовательностей с небольшим движением. Когда ошибка возникает в суперкадре, декодирование в последовательном кадре начинается с CSF, который восстанавливает потерянную информацию благодаря предсказанию, и достигается устойчивость к ошибкам.The improvement of random access switching and error tolerance can be achieved in collaboration and can be based on content information, such as classification of content. For sequences with little movement, the prediction chains are long, and a significant portion of the information required to reconstruct a superframe or scene is contained in the I-frame that was at the beginning of the scene. Channel errors are often pulsating, and when attenuation occurs and both FEC and channel coding fail, there is a serious residual error that masking fails. This is especially serious for sequences with little movement (and therefore low bit rate), because the amount of encoded data is not large enough to provide good temporal diversity in the video bitstream, and since these are sequences with a high compression ratio, which each does bit suitable for recovery. Sequences with greater movement are more error-resistant due to the nature of the content - more new information in each frame increases the number of internally encoded blocks that are independently decoded and more error-resistant in nature. Adaptive internal updating based on the prediction hierarchy provides high performance for high motion sequences, and performance improvements are negligible for small motion sequences. Therefore, a channel switching frame containing most of the I-frame is a good source of diversity for sequences with little movement. When an error occurs in a superframe, decoding in a sequential frame begins with a CSF, which recovers the lost information due to prediction, and error tolerance is achieved.
В случае последовательностей с большим движением, таких как последовательности, имеющие относительно высокую классификацию содержимого (к примеру, 6-8), CSF может состоять из блоков, которые содержатся в SF, т.е. тех, которые являются хорошими предикторами. Все остальные зоны CSF не должны кодироваться, поскольку они являются блоками, которые имеют короткие цепочки предсказания, что подразумевает то, что они завершаются внутренними блоками. Следовательно, CSF по-прежнему служит для того, чтобы выполнять восстановление потерянной информации благодаря предсказанию, когда возникает ошибка. CSF для последовательностей с небольшим движением совпадают с размером I-кадров, и они могут кодироваться при меньшей скорости передачи битов за счет более сильного квантования, тогда как CSF для последовательностей с большим движением гораздо меньше соответствующих I-кадров.In the case of sequences with a large movement, such as sequences having a relatively high classification of contents (for example, 6-8), the CSF may consist of blocks that are contained in the SF, i.e. those that are good predictors. All other CSF zones should not be encoded, since they are blocks that have short prediction chains, which implies that they terminate with internal blocks. Therefore, the CSF still serves to perform recovery of the lost information by predicting when an error occurs. CSFs for sequences with small motion are the same as the size of I-frames, and they can be encoded at a lower bit rate due to stronger quantization, while CSFs for sequences with large movement are much smaller than the corresponding I-frames.
Устойчивость к ошибкам на основе иерархии предсказания может хорошо работать с масштабируемостью и позволяет достигать высокоэффективного многоуровневого кодирования. Масштабируемость для того, чтобы поддерживать иерархическую модуляцию в технологиях физического уровня может требовать секционирования данных потока битов видео с конкретными коэффициентами полосы пропускания. Это не всегда могут быть идеальные коэффициенты для оптимальной масштабируемости (например, с небольшой дополнительной служебной информацией). В некоторых аспектах используется двухуровневая масштабируемость с коэффициентом полосы пропускания 1:1. Секционирование потока битов видео на два уровня одинакового размера может быть не так эффективно для последовательностей с небольшим движением. Для последовательностей с небольшим движением базовый уровень, содержащий всю информацию заголовков и метаданных, больше уровня улучшения. Тем не менее, поскольку CSF для последовательностей с небольшим движением больше, они точно вписываются в оставшуюся полосу пропускания уровня улучшения.Error tolerance based on the prediction hierarchy can work well with scalability and allows for highly efficient multi-level coding. Scalability in order to support hierarchical modulation in physical layer technologies may require partitioning of video bitstream data with specific bandwidth coefficients. These may not always be ideal coefficients for optimal scalability (for example, with a little extra overhead). In some aspects, bi-level scalability with a 1: 1 bandwidth ratio is used. Partitioning a video bitstream into two layers of the same size may not be as effective for sequences with little movement. For sequences with little movement, the base level, containing all header and metadata information, is greater than the improvement level. However, since CSFs for sequences with little movement are larger, they fit exactly into the remaining bandwidth of the enhancement level.
Последовательности с большим движением имеют достаточно остаточной информации для того, чтобы секционирование данных 1:1 могло быть выполнено с наименьшей служебной информацией. Дополнительно, кадр переключения каналов для таких последовательностей гораздо меньше для последовательностей с большим движением. Следовательно, устойчивость к ошибкам на основе иерархии предсказания также может хорошо работать с масштабируемостью для последовательностей с большим движением. Расширение концепций, описанных выше, до клипов с умеренным движением возможно на основе описаний этих алгоритмов, и предлагаемые концепции применяются к кодированию видео в целом.High-motion sequences have enough residual information so that 1: 1 data partitioning can be performed with the least overhead information. Additionally, the channel switching frame for such sequences is much smaller for sequences with greater movement. Therefore, error tolerance based on the prediction hierarchy can also work well with scalability for high-motion sequences. The extension of the concepts described above to clips with moderate motion is possible based on the descriptions of these algorithms, and the proposed concepts are applied to video encoding in general.
МультиплексорMultiplexer
В некоторых аспектах кодера мультиплексор может быть использован для кодирования нескольких мультимедийных потоков, сформированных посредством кодера, и использован для того, чтобы подготавливать кодированные биты для широковещательной передачи. Например, в иллюстративном аспекте кодера 228, показанном на фиг.2, синхронизирующий уровень 240 содержит мультиплексор. Мультиплексор может быть реализован так, чтобы предоставлять управление назначением скорости передачи битов. Оцененная сложность может предоставляться в мультиплексор, который затем может назначать доступную полосу пропускания для набора мультиплексированных видеоканалов согласно сложности кодирования, предполагаемой для этих видеоканалов, что в таком случае дает возможность качеству конкретного канала оставаться относительно постоянным, даже если полоса пропускания для набора мультиплексированных видеопотоков относительно постоянна. Это дает возможность каналу в рамках набора каналов иметь переменную скорость передачи битов и относительно постоянное визуальное качество вместо относительно постоянной скорости передачи битов и переменного визуального качества.In some aspects of the encoder, a multiplexer may be used to encode multiple multimedia streams generated by the encoder and used to prepare encoded bits for broadcast transmission. For example, in the illustrative aspect of the
Фиг.18 - это блок-схема, иллюстрирующая систему кодирования нескольких мультимедийных потоков или каналов 1802. Мультимедийные потоки 1802 кодируются посредством соответствующих кодеров 1804, которые поддерживают обмен данными с мультиплексором (MUX) 1806, который, в свою очередь, поддерживает обмен данными со средой 1808 передачи. Например, мультимедийные потоки 1802 могут соответствовать различным каналам содержимого, таким как новостные каналы, спортивные каналы, каналы с фильмами и т.п. Кодеры 1804 кодируют мультимедийные потоки 1802 в формат кодирования, указанный для системы. Хотя описываются в контексте кодирования видеопотоков, принципы и преимущества раскрытых методик, в общем, применимы к мультимедийным потокам, включающим в себя, например, аудиопотоки. Кодированные мультимедийные потоки предоставляются в мультиплексор 1806, который комбинирует различные кодированные мультимедийные потоки и отправляет комбинированный поток в среду 1808 передачи для передачи.FIG. 18 is a block diagram illustrating a coding system for multiple multimedia streams or channels 1802. The multimedia streams 1802 are encoded by respective encoders 1804 that support communication with a multiplexer (MUX) 1806, which, in turn, supports communication with the medium 1808 transmission. For example, multimedia streams 1802 may correspond to various content channels, such as news channels, sports channels, movie channels, and the like. Encoders 1804 encode multimedia streams 1802 into the encoding format specified for the system. Although described in the context of encoding video streams, the principles and advantages of the disclosed techniques are generally applicable to multimedia streams including, for example, audio streams. Encoded multimedia streams are provided to a multiplexer 1806, which combines various encoded multimedia streams and sends the combined stream to transmission medium 1808 for transmission.
Среда 1808 передачи может соответствовать множеству сред, таких как, но не только, цифровые спутниковые каналы связи, к примеру, DirecTV®, цифровые кабельные, проводные и беспроводные Интернет-каналы связи, оптические сети, сотовые телефонные сети и т.п. Среда 1808 передачи может включать в себя, например, модуляцию до радиочастоты (RF). В типичном варианте вследствие спектральных ограничений и т.п. среда передачи имеет ограниченную полосу пропускания, и данные из мультиплексора 1806 в среду передачи поддерживаются с относительно постоянной скоростью передачи битов (CBR).A transmission medium 1808 can correspond to a variety of media, such as, but not limited to, digital satellite communications channels, for example, DirecTV®, digital cable, wired and wireless Internet communications channels, optical networks, cellular telephone networks, and the like. Transmission medium 1808 may include, for example, modulation to radio frequency (RF). Typically due to spectral limitations, etc. the transmission medium has a limited bandwidth, and data from the multiplexer 1806 to the transmission medium is supported with a relatively constant bit rate (CBR).
В традиционных системах применение постоянной скорости передачи битов (CBR) при выводе из мультиплексора 1806 может требовать того, чтобы кодированное мультимедиа или видеопотоки, которые поступают в мультиплексор 1806, также были CBR. Как описано в уровне техники, применение CBR при кодировании видеосодержимого может приводить к переменному визуальному качеству, что в типичном варианте нежелательно.In conventional systems, the use of a constant bit rate (CBR) when output from the 1806 multiplexer may require that the encoded media or video streams that enter the 1806 multiplexer also be CBR. As described in the prior art, the use of CBR in coding video content can lead to variable visual quality, which is typically undesirable.
В проиллюстрированной системе два или более кодера 1804 передают предполагаемую сложность кодирования входных данных. Один или более кодеров 1804 может принимать адаптивное управление скоростью передачи битов от мультиплексора 1806 в ответ. Это позволяет кодеру 1804, который, как ожидается, кодирует относительно сложное видео, принимать более высокую скорость передачи битов или более высокую полосу пропускания (больше битов на кадр) для этих кадров видеоспособом квазипеременной скорости передачи битов. Это дает возможность мультимедийному потоку 1802 быть кодированным при согласованном визуальном качестве. Дополнительная полоса пропускания, которая используется посредством конкретного кодера 1804, кодирующего относительно сложное видео, поступает от битов, которые в противном случае были бы использованы для кодирования других видеопотоков 1804, если бы кодеры были реализованы так, чтобы работать при постоянных скоростях передачи битов. Это поддерживает вывод мультиплексора 1806 на постоянной скорости передачи битов (CBR).In the illustrated system, two or more encoders 1804 transmit the estimated coding complexity of the input. One or more encoders 1804 may receive adaptive bit rate control from multiplexer 1806 in response. This allows the encoder 1804, which is expected to encode a relatively complex video, to receive a higher bit rate or a higher bandwidth (more bits per frame) for these frames by a video capable of a quasi-variable bit rate. This allows the multimedia stream 1802 to be encoded with consistent visual quality. The additional bandwidth that is used by a particular encoder 1804 encoding a relatively complex video comes from bits that would otherwise be used to encode other video streams 1804 if the encoders were implemented to operate at constant bit rates. This supports the output of the 1806 multiplexer at a constant bit rate (CBR).
Хотя отдельный мультимедийный поток 1802 может быть относительно "пульсирующим", т.е. варьировать используемую полосу пропускания, кумулятивная сумма из нескольких мультимедийных потоков может быть менее пульсирующей. Скорость передачи битов от каналов, которые кодируют менее сложное видео, может быть заново выделена, например, посредством мультиплексора 1806, каналам, которые кодируют относительно сложное видео, и это позволяет повышать визуальное качество комбинированных видеопотоков в целом.Although a separate multimedia stream 1802 may be relatively "pulsating", i.e. vary the bandwidth used, the cumulative sum of several multimedia streams may be less pulsating. The bit rate from channels that encode a less complex video can be re-allocated, for example, by a multiplexer 1806, to channels that encode a relatively complex video, and this improves the visual quality of the combined video streams as a whole.
Кодеры 1804 предоставляют в мультиплексор 1806 индикатор сложности набора видеокадров, которые должны быть кодированы и мультиплексированы вместе. Вывод мультиплексора 1806 должен предоставлять вывод, который не выше скорости передачи битов, заданной для среды 1808 передачи. Индикаторы сложности могут быть основаны на классификации содержимого, как описано выше, чтобы предоставлять выбранный уровень качества. Мультиплексор 1006 анализирует индикаторы сложности и предоставляет в различные кодеры 1004 назначенное число битов полосы пропускания, и кодеры 1804 используют эту информацию для того, чтобы кодировать видеокадры в наборе. Это дает возможность набору видеокадров индивидуально иметь переменную скорость передачи битов и при этом достигать постоянной скорости передачи битов как группе.Encoders 1804 provide, in multiplexer 1806, an indicator of the complexity of the set of video frames that must be encoded and multiplexed together. The output of multiplexer 1806 should provide an output that is not higher than the bit rate specified for the transmission medium 1808. Difficulty indicators can be based on the classification of content, as described above, to provide a selected level of quality. A
Классификация содержимого также может быть использована для обеспечения основанного на качестве сжатия мультимедиа, в общем, для любого обобщенного модуля сжатия. Классификация содержимого и способы и устройства, описанные в данном документе, могут быть использованы в основанной на качестве и/или основанной на содержимом мультимедийной обработке любых мультимедийных данных. Один пример - это ее использование при сжатии мультимедиа, в общем, для любого обобщенного модуля сжатия. Другой пример состоит в распаковке или декодировании в любом модуле распаковки или декодере либо постпроцессоре, например, операции интерполяции, повторной дискретизации, улучшения, восстановления и представления.Content classification can also be used to provide quality-based compression of multimedia, in general, for any generalized compression module. Content classification and methods and devices described herein can be used in quality-based and / or content-based multimedia processing of any multimedia data. One example is its use in multimedia compression, in general, for any generalized compression module. Another example is to decompress or decode in any decompression unit or decoder or post processor, for example, interpolation, resampling, enhancement, reconstruction, and presentation operations.
Ссылаясь теперь на фиг.19, типичная система видеосвязи включает в себя систему видеосжатия, состоящую из видеокодера и видеодекодера, соединенных посредством сети связи. Беспроводные сети являются одним классом отказоустойчивых сетей, где канал связи предоставляет логарифмически-нормальное затухание или коррекцию и многолучевое затухание в мобильных сценариях помимо потерь в каналах. Чтобы противостоять канальным ошибкам и предоставлять надежную связь для данных прикладного уровня, RF-модулятор включает в себя прямую коррекцию ошибок, включающую в себя модули перемежения, и канальное кодирование, такое как сверточное или турбокодирование.Referring now to FIG. 19, a typical video communication system includes a video compression system consisting of a video encoder and a video decoder connected via a communication network. Wireless networks are one class of fault tolerant networks where the communication channel provides log-normal attenuation or correction and multipath attenuation in mobile scenarios in addition to channel losses. To counter channel errors and provide reliable communications for application layer data, the RF modulator includes direct error correction, including interleaver modules, and channel coding, such as convolutional or turbo coding.
Видеокодирование снижает избыточность в исходном видео и увеличивает объем информации, переносимой в каждом бите кодированных видеоданных. Это повышает влияние на качество, когда даже небольшая часть кодированного видео потеряна. Пространственное и временное кодирование, присущее системам сжатия видео, усугубляет потери и заставляет ошибки распространяться, приводя к видимым помехам в восстановленном видео. Алгоритмы устойчивости к ошибкам в видеокодере и алгоритмы восстановления после ошибок в видеодекодере повышают отказоустойчивость системы сжатия видео.Video coding reduces redundancy in the original video and increases the amount of information carried in each bit of encoded video data. This increases the impact on quality when even a small portion of the encoded video is lost. The spatial and temporal coding inherent in video compression systems exacerbates losses and causes errors to propagate, resulting in visible interference in the restored video. Error tolerance algorithms in the video encoder and error recovery algorithms in the video decoder increase the resiliency of the video compression system.
В типичном варианте система сжатия видео знает о базовой сети. Тем не менее, в отказоустойчивых сетях интеграция или совмещение алгоритмов защиты от ошибок в прикладном уровне с FEC и канальным кодированием в канальном/физическом уровне очень желательно и предоставляет наибольшую эффективность для повышения производительности по ошибкам системы.In a typical embodiment, the video compression system is aware of the core network. Nevertheless, in fault-tolerant networks, the integration or combination of error protection algorithms in the application layer with FEC and channel coding in the channel / physical layer is very desirable and provides the greatest efficiency for increasing system error performance.
Фиг.14 иллюстрирует один пример потока данных искажений в зависимости от скорости передачи, который возникает в кодере 228, чтобы кодировать кадры. Процесс начинается 1400 с начала 1402 и переходит к этапу 1404 принятия решения, где он принимает ввод 1410 модуля обнаружения смены сцен из препроцессора 226 (к примеру, посредством метаданных), и устойчивый к ошибкам ввод 1406 получается. Если информация указывает, что выбранный кадр является I-кадром, процесс внутренне кодирует кадр. Если информация указывает то, что выбранный кадр - это P-FIG. 14 illustrates one example of a distortion data stream depending on a transmission rate that occurs in
или B-кадр, процесс использует внутреннее кодирование и (внутреннее) кодирование с оценкой движения для того, чтобы кодировать кадр.or a B-frame, a process uses internal coding and (internal) motion estimation coding in order to encode the frame.
После того как утвердительный режим возникает для режимов этапа 1404, процесс 1400 переходит к этапу 1414 подготовки, на котором скорость R задается равной значению R=Rqual, требуемому целевому качеству на основе кривых R-D. Эта настройка принимается из этапа 1416 данных, содержащего кривые R-D. Процесс 1400 далее переходит к этапу 1418, на котором выполняется назначение битов управления скоростью передачи (Qpi) на основе информации действий изображений/видео (к примеру, классификации содержимого) из процесса классификации содержимого на этапе 1420.After the affirmative mode arises for the modes of
Этап 1418 назначения битов управления скоростью передачи используется, в свою очередь, для оценки движения на этапе 1422. Оценка 1422 движения также может принимать ввод метаданных из препроцессора 1412, сглаживания векторов движения (MPEG-2+предыстория) из этапа 1424 и нескольких опорных кадров (причинные + непричинные макроблоки MB) из этапа 1426. Процесс 1400 далее переходит к этапу 1428, на котором вычисление внутренне кодированных режимов определяется для назначения битов управления скоростью передачи (Qpi). Затем процесс 1400 переходит к этапу 1430, на котором определяются параметры режима и квантования. Определение режима на этапе 1430 выполняется на основе оценки ввода этапа 1422, ввода устойчивости 1406 к ошибкам и масштабируемости R-D, которая определяется на этапе 1432. После того как режим определен, последовательность операций переходит к этапу 1432. Следует отметить, что последовательность операций из этапа 1430 к этапу 1432 осуществляется, когда данные передаются из первого прохода в часть второго прохода кодера.The bit rate control
На этапе 1432 преобразование и квантование выполняется посредством второго прохода кодера 228. Процесс преобразования/квантования корректируется или точно настраивается так, как указано с помощью этапа 1444. На этот процесс преобразования/квантования может оказывать влияние модуль точной настройки управления скоростью передачи (фиг.7). Процесс 1400 далее переходит к этапу 1434 для зигзагообразной сортировки и кодирования по энтропии, чтобы предоставить кодированный базовый уровень. Зигзагообразная сортировка подготавливает данные в эффективном формате для кодирования. Кодирование по энтропии - это методика сжатия, которая использует последовательности битовых кодов для того, чтобы представлять наборы возможных символов. Результат этапа 1432 преобразования/квантования уровня улучшения также отправляется в сумматор 1436, который вычитает базовый уровень и отправляет результат в кодер 1438 ZZ/по энтропии для уровня улучшения, как ранее описано со ссылкой на фиг.31-36. Дополнительно заметим, что уровень улучшения отправляется обратно (см. строку 1440 обновление истинной скорости) для обновления классификации 1420 содержимого истинной скорости и операции определения долгосрочной и краткосрочной предыстории скоростей передачи битов, используемых посредством управления скоростью передачи.At
Фиг.17A - это блок-схема последовательности операций способа, иллюстрирующая обработку мультимедийных данных, которые получены, приняты или иным образом доступны. Процесс 1700 начинается на этапе 1702, где он классифицирует содержимое мультимедийных данных. В одном иллюстративном аспекте классификация содержимого может быть выполнена посредством средства классификации, например, модуля 712 классификации содержимого на фиг.7. Процесс 1700 переходит к этапу 1704, где он кодирует мультимедийные данные в первой группе данных и второй группе данных на основе классификации содержимого. Это кодирование выполняется так, что первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Это может быть выполнено посредством средства кодирования, описанного в данном документе, например, кодера 228 на фиг.7.17A is a flowchart illustrating the processing of multimedia data that is received, received, or otherwise available.
Фиг.17B - это блок-схема системы 1710 кодирования мультимедиа, которая может выполнять процесс, проиллюстрированный на фиг.17A. В некоторых аспектах системой 1710 кодирования мультимедиа может быть транскодер, к примеру, транскодер 200. В других аспектах система 1710 кодирования может содержать часть транскодера. Система 1710 кодирования мультимедиа включает в себя средство классификации содержимого мультимедийных данных, модуль классификации содержимого мультимедийных данных 1712. Средством классификации содержимого может быть, к примеру, модуль классификации в препроцессоре (к примеру, препроцессоре 226) или кодере (к примеру, кодере 228). Система 1710 кодирования также включает в себя средство кодирования мультимедийных данных, модуль кодирования мультимедийных данных 1714, который может быть сконфигурирован так, чтобы кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем это кодирование выполняется таким образом, что первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Другие компоненты транскодера, такие как описанные в данном документе, также могут быть включены в систему 1710 кодирования.FIG. 17B is a block diagram of a
Фиг.23, 24, 27 и 28 - это блок-схемы последовательности операций, иллюстрирующие примеры кодирования мультимедийных данных, которые осуществляют аспекты, описанные в данном документе. Фиг.23 - это блок-схема последовательности операций, иллюстрирующая процесс 2300 кодирования мультимедийных данных на основе информации содержимого. На этапе 2305 процесс 2300 принимает кодированные мультимедийные данные, а на этапе 2310 процесс 2300 декодирует мультимедийные данные. На этапе 2315 процесс 2300 определяет информацию содержимого, ассоциативно связанную с декодированными мультимедийными данными. На этапе 2320 процесс 2300 кодирует мультимедийные данные на основе информации содержимого.23, 24, 27, and 28 are flowcharts illustrating examples of encoding multimedia data that implement the aspects described herein. 23 is a flowchart illustrating a
Фиг.24 - это блок-схема последовательности операций способа, иллюстрирующая процесс 2400 способ кодирования мультимедийных данных, так чтобы совмещать границы данных на основе уровня информации содержимого. На этапе 2405 процесс 2400 получает информацию содержимого, ассоциативно связанную с мультимедийными данными, что может быть выполнено, к примеру, посредством препроцессора 226 или модуля 712 классификации содержимого, показанного на фиг.7. На этапе 2410 процесс 2400 кодирует мультимедийные данные, так чтобы совмещать границы данных на основе информации содержимого. Например, границы серий макроблоков и границы единиц доступа совмещаются с границами кадров на основе классификации содержимого кодируемых мультимедийных данных. Кодированные данные затем доступны для последующей обработки и/или передачи в мобильное устройство, и процесс 2400 завершается.24 is a flowchart illustrating a
Фиг.27 - это блок-схема последовательности операций способа, иллюстрирующая процесс 2700 кодирования данных с помощью адаптивного внутреннего обновления на основе информации содержимого. Когда процесс 2700 начинается, мультимедийные данные были получены. На этапе 2705 процесс 2700 получает информацию содержимого мультимедийных данных. Получение информации содержимого может быть выполнено, например, посредством препроцессора 226 или модуля 712 классификации содержимого, как описано выше. Процесс 2700 переходит к этапу 2710, на котором он кодирует мультимедийные данные с помощью схемы устойчивости к ошибкам на основе адаптивного внутреннего обновления, причем схема устойчивости к ошибкам на основе адаптивного внутреннего обновления основана на информации содержимого. Функциональность этапа 2710 может быть осуществлена посредством кодера 228. Кодированные данные становятся доступными для последующей обработки и передачи, и процесс 2700 затем завершается.27 is a flowchart illustrating a
Фиг.28 - это блок-схема последовательности операций способа, иллюстрирующая процесс кодирования мультимедийных данных с помощью избыточных I-кадров на основе информации мультимедийного содержимого. Когда процесс 2800 начинается, мультимедийные данные доступны для обработки. На этапе 2805 процесс 2800 получает информацию содержимого мультимедийных данных. Как описано выше, это может быть выполнено, например, посредством препроцессора 226 и/или кодера 228. На этапе 2810 процесс 2800 кодирует мультимедийные данные, так чтобы вставить один или более дополнительных I-кадров в кодированные данные на основе информации содержимого. Это может быть сделано посредством кодера 228, как описано выше в связи со схемой устойчивости к ошибкам, вставки I-кадров в базовый уровень или уровень улучшения в зависимости от используемой схемы устойчивости к ошибкам. После этапа 2810 кодированные данные доступны для последующей обработки и/или передачи в мобильное устройство.28 is a flowchart illustrating a process for encoding multimedia data using redundant I-frames based on multimedia content information. When
Следует отметить, что способы, описанные в данном документе, могут быть реализованы для множества аппаратных средств, процессоров и систем связи, известных специалистам в данной области техники. Например, общее требование к клиенту работать так, как описано в данном документе, заключается в том, что клиент имеет дисплей для того, чтобы отображать содержимое и информацию, процессор, чтобы управлять работой клиента, и запоминающее устройство для сохранения данных и программ, связанных с работой клиента. В одном аспекте клиентом является сотовый телефон. В другом аспекте клиентом является карманный компьютер, имеющий средства связи. В еще одном другом аспекте клиентом является персональный компьютер, имеющий средства связи. Помимо этого, такие аппаратные средства, как приемное GPS-устройство, могут содержаться в клиенте для того, чтобы реализовывать различные аспекты. Различные иллюстративные логические узлы, логические блоки, модули и схемы, описанные в связи с раскрытыми в данном документе вариантами осуществления, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем матричной БИС (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторной логики, дискретных компонентов аппаратных средств либо любой их комбинации, предназначенной для того, чтобы выполнять описанные в данном документе функции. Процессором общего назначения может быть микропроцессор, но в альтернативном варианте, процессором может быть любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован как сочетание вычислительных устройств, к примеру, сочетание DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP либо любая другая подобная конфигурация.It should be noted that the methods described herein can be implemented for a variety of hardware, processors, and communication systems known to those skilled in the art. For example, a general requirement for a client to work as described in this document is that the client has a display to display content and information, a processor to control the operation of the client, and a memory device for storing data and programs related to customer work. In one aspect, the client is a cell phone. In another aspect, the client is a handheld computer having communications. In yet another aspect, the client is a personal computer having communication means. In addition, hardware such as a GPS receiving device may be contained in a client in order to implement various aspects. The various illustrative logical nodes, logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or implemented using a general purpose processor, digital signal processor (DSP), custom programmable integrated circuit (ASIC) matrix LSI (FPGA) or other programmable logic device, discrete logic element or transistor logic, discrete hardware components, or any combination thereof, etc. designed to perform the functions described in this document. 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 can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors together with a DSP core, or any other similar configuration.
Различные иллюстративные логические узлы, логические блоки, модули и схемы, описанные в связи с раскрытыми в данном документе вариантами осуществления, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем матричной БИС (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторной логики, дискретных компонентов аппаратных средств либо любой их комбинации, предназначенной для того, чтобы выполнять описанные в данном документе функции. Процессором общего назначения может быть микропроцессор, но в альтернативном варианте процессором может быть любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован как сочетание вычислительных устройств, к примеру, сочетание DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP либо любая другая подобная конфигурация.The various illustrative logical nodes, logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or implemented using a general purpose processor, digital signal processor (DSP), custom programmable integrated circuit (ASIC) matrix LSI (FPGA) or other programmable logic device, discrete logic element or transistor logic, discrete hardware components, or any combination thereof, etc. designed to perform the functions described in this document. 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 can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors together with a DSP core, or any other similar configuration.
Раскрытые способы и устройства предоставляют перекодирование видеоданных, кодированных в одном формате, в видеоданные, кодированные в другом формате, причем кодирование основано на содержимом видеоданных и кодирование является устойчивым к ошибкам. Способы или алгоритмы, описанные в связи с раскрытыми в данном документе примерами, могут быть реализованы непосредственно в аппаратных средствах, в программном модуле, приводимом в исполнение процессором, микропрограммном обеспечении или в сочетании двух или более из этих элементов. Программный модуль может постоянно размещаться в памяти типа RAM, флэш-памяти, памяти типа ROM, памяти типа EEPROM, регистрах, на жестком диске, сменном диске, компакт-диске или любой другой форме носителя хранения данных, известной в данной области техники. Примерный носитель хранения данных подключен к процессору таким образом, чтобы процессор мог считывать информацию и записывать информацию на носитель хранения данных. В альтернативном варианте носитель хранения может быть встроен в процессор. Процессор и носитель хранения данных могут постоянно размещаться в ASIC. ASIC может постоянно размещаться в пользовательском терминале. В альтернативном варианте процессор и носитель хранения данных могут постоянно размещаться как дискретные компоненты в пользовательском терминале.The disclosed methods and devices provide transcoding of video data encoded in one format to video data encoded in another format, the encoding being based on the contents of the video data and the encoding is error resistant. The methods or algorithms described in connection with the examples disclosed herein may be implemented directly in hardware, in a software module executed by a processor, in firmware, or in a combination of two or more of these elements. A software module may reside in RAM memory, flash memory, ROM memory, EEPROM memory, registers, on a hard disk, a removable disk, a CD, or any other form of storage medium known in the art. An exemplary storage medium is connected to the processor so that the processor can read information and write information to the storage medium. Alternatively, the storage medium may be integrated in the processor. The processor and storage medium may reside in an ASIC. ASIC can reside in a user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
Примеры, описанные выше, являются просто иллюстративными, и специалисты в данной области техники теперь могут выполнять различные применения и отступления от вышеописанных примеров без отклонения от раскрытых в данном документе понятий изобретения. Различные модификации в этих примерах могут быть очевидными для специалистов в данной области техники, а описанные в данном документе общие принципы могут быть применены к другим примерам, к примеру, к службе обмена мгновенными сообщениями или любым общим приложениям обмена беспроводными данными, без отступления от духа и области применения описываемых в этом документе новых аспектов. Таким образом, область применения изобретения не предназначена, чтобы быть ограниченной показанными в данном документе примерами, а должна удовлетворять самой широкой области применения, согласованной с принципами и новыми признаками, раскрытыми в данном документе. Слово "примерный" используется в данном документе исключительно для того, чтобы обозначать "служащий в качестве примера, отдельного случая или иллюстрации". Любой пример, описанный в данном документе как "примерный", не обязательно должен быть истолкован как предпочтительный или выгодный по сравнению с другими примерами. Соответственно, новые признаки, описываемые в данном документе, должны задаваться исключительно посредством области применения нижеприведенной формулы изобретения.The examples described above are merely illustrative, and those skilled in the art can now perform various applications and departures from the above examples without deviating from the concepts of the invention disclosed herein. Various modifications to these examples may be apparent to those skilled in the art, and the general principles described herein can be applied to other examples, such as an instant messaging service or any general wireless data exchange application, without departing from the spirit and the scope of the new aspects described in this document. Thus, the scope of the invention is not intended to be limited by the examples shown in this document, but should satisfy the widest scope, consistent with the principles and new features disclosed in this document. The word “exemplary” is used herein solely to mean “serving as an example, individual case, or illustration”. Any example described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other examples. Accordingly, the new features described herein should be defined solely by means of the scope of the claims below.
Claims (49)
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72141605P | 2005-09-27 | 2005-09-27 | |
US60/721,416 | 2005-09-27 | ||
US72764305P | 2005-10-17 | 2005-10-17 | |
US72764005P | 2005-10-17 | 2005-10-17 | |
US60/727,644 | 2005-10-17 | ||
US60/727,643 | 2005-10-17 | ||
US60/727,640 | 2005-10-17 | ||
US60/730,145 | 2005-10-24 | ||
US78904806P | 2006-04-03 | 2006-04-03 | |
US60/789,048 | 2006-04-03 | ||
US60/789,377 | 2006-04-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2008116596A RU2008116596A (en) | 2009-11-10 |
RU2378790C1 true RU2378790C1 (en) | 2010-01-10 |
Family
ID=41354194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2008116596/09A RU2378790C1 (en) | 2005-09-27 | 2006-09-27 | Scalability techniques based on content information |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2378790C1 (en) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2474873C2 (en) * | 2010-12-29 | 2013-02-10 | Алексей Сергеевич Кашик | Method for analysing and predicting development of complex-structure system and apparatus for realising said method |
RU2475853C2 (en) * | 2007-02-08 | 2013-02-20 | Бихейвиэрл Рикогнишн Системз, Инк. | Behaviour recognition system |
RU2527198C2 (en) * | 2010-03-26 | 2014-08-27 | Кэнон Кабусики Кайся | Image processing device and image processing device control method |
RU2530351C2 (en) * | 2012-04-20 | 2014-10-10 | Открытое акционерное общество "Информационные спутниковые системы" имени академика М.Ф. Решетнёва" | Method of context creation for measurement data compression and measurement method |
RU2556396C2 (en) * | 2010-09-03 | 2015-07-10 | Долби Лабораторис Лайсэнзин Корпорейшн | Method and system for illumination compensation and transition for video coding and processing |
RU2570355C1 (en) * | 2012-02-22 | 2015-12-10 | Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед | Method and terminal for coding of video data at exchange between multiple participants |
RU2582579C2 (en) * | 2011-11-07 | 2016-04-27 | Квэлкомм Инкорпорейтед | Signalling quantisation matrices for video coding |
RU2586572C2 (en) * | 2011-11-04 | 2016-06-10 | Долби Лабораторис Лайсэнзин Корпорейшн | Layer decomposition in hierarchical vdr coding |
RU173336U1 (en) * | 2016-06-24 | 2017-08-22 | Акционерное общество "МЦСТ" | SLink scalable universal communications interface |
RU2648571C2 (en) * | 2012-07-09 | 2018-03-26 | Оранж | Method of video coding by prediction of partitioning of current block, method of decoding, coding and decoding devices and computer programs corresponding thereto |
RU2667627C1 (en) * | 2013-12-27 | 2018-09-21 | Сони Корпорейшн | Decoding device, method, and program |
RU2667605C2 (en) * | 2013-05-10 | 2018-09-21 | Конинклейке Филипс Н.В. | Method for coding video data signal for use with multidimensional visualization device |
RU2676876C2 (en) * | 2013-10-23 | 2019-01-11 | Квэлкомм Инкорпорейтед | Multi-layer video file format designs |
RU2678477C2 (en) * | 2013-09-24 | 2019-01-29 | Сони Корпорейшн | Coding device, coding method, transmitting device and receiving device |
RU2678495C2 (en) * | 2013-08-27 | 2019-01-29 | Сони Корпорейшн | Transmission device, transmission method, receiving device and receiving method |
RU2720648C1 (en) * | 2013-04-05 | 2020-05-12 | Кэнон Кабусики Кайся | Method and device for encoding or decoding an image with prediction of motion information between levels in accordance with a motion information compression circuit |
US10666963B2 (en) | 2013-07-09 | 2020-05-26 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method and program |
-
2006
- 2006-09-27 RU RU2008116596/09A patent/RU2378790C1/en not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
MIHAELA VAN DER SCHAAR et al. A Hybrid Temporal-SNR Fine-Granular Scalability for Internet Video, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, vol.11, no.3, March 2001, c.318-331. * |
RUSERT T. et al. Enhanced interframe wavelet video coding considering the interrelation of spatio-temporal transform and motion compensation, SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, vol.19, no.7, August 2004, c.617-635. * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2475853C2 (en) * | 2007-02-08 | 2013-02-20 | Бихейвиэрл Рикогнишн Системз, Инк. | Behaviour recognition system |
RU2527198C2 (en) * | 2010-03-26 | 2014-08-27 | Кэнон Кабусики Кайся | Image processing device and image processing device control method |
RU2556396C2 (en) * | 2010-09-03 | 2015-07-10 | Долби Лабораторис Лайсэнзин Корпорейшн | Method and system for illumination compensation and transition for video coding and processing |
RU2474873C2 (en) * | 2010-12-29 | 2013-02-10 | Алексей Сергеевич Кашик | Method for analysing and predicting development of complex-structure system and apparatus for realising said method |
RU2644065C9 (en) * | 2011-11-04 | 2018-04-04 | Долби Лабораторис Лайсэнзин Корпорейшн | Decomposition of levels in hierarchical vdr encoding |
US9924171B2 (en) | 2011-11-04 | 2018-03-20 | Dolby Laboratories Licensing Corporation | Layer decomposition in hierarchical VDR coding |
RU2644065C1 (en) * | 2011-11-04 | 2018-02-07 | Долби Лабораторис Лайсэнзин Корпорейшн | Decomposition of levels in hierarchical vdr encoding |
RU2586572C2 (en) * | 2011-11-04 | 2016-06-10 | Долби Лабораторис Лайсэнзин Корпорейшн | Layer decomposition in hierarchical vdr coding |
US9497456B2 (en) | 2011-11-04 | 2016-11-15 | Dolby Laboratories Licensing Corporation | Layer decomposition in hierarchical VDR coding |
US10277915B2 (en) | 2011-11-07 | 2019-04-30 | Qualcomm Incorporated | Signaling quantization matrices for video coding |
RU2582579C2 (en) * | 2011-11-07 | 2016-04-27 | Квэлкомм Инкорпорейтед | Signalling quantisation matrices for video coding |
RU2570355C1 (en) * | 2012-02-22 | 2015-12-10 | Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед | Method and terminal for coding of video data at exchange between multiple participants |
RU2530351C2 (en) * | 2012-04-20 | 2014-10-10 | Открытое акционерное общество "Информационные спутниковые системы" имени академика М.Ф. Решетнёва" | Method of context creation for measurement data compression and measurement method |
RU2648571C2 (en) * | 2012-07-09 | 2018-03-26 | Оранж | Method of video coding by prediction of partitioning of current block, method of decoding, coding and decoding devices and computer programs corresponding thereto |
RU2720648C1 (en) * | 2013-04-05 | 2020-05-12 | Кэнон Кабусики Кайся | Method and device for encoding or decoding an image with prediction of motion information between levels in accordance with a motion information compression circuit |
US11089324B2 (en) | 2013-04-05 | 2021-08-10 | Canon Kabushiki Kaisha | Method and apparatus for encoding and decoding an image with inter layer motion information prediction according to motion information compression scheme |
RU2667605C2 (en) * | 2013-05-10 | 2018-09-21 | Конинклейке Филипс Н.В. | Method for coding video data signal for use with multidimensional visualization device |
US10666963B2 (en) | 2013-07-09 | 2020-05-26 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method and program |
RU2678495C2 (en) * | 2013-08-27 | 2019-01-29 | Сони Корпорейшн | Transmission device, transmission method, receiving device and receiving method |
RU2678477C2 (en) * | 2013-09-24 | 2019-01-29 | Сони Корпорейшн | Coding device, coding method, transmitting device and receiving device |
RU2676876C2 (en) * | 2013-10-23 | 2019-01-11 | Квэлкомм Инкорпорейтед | Multi-layer video file format designs |
RU2678517C2 (en) * | 2013-10-23 | 2019-01-29 | Квэлкомм Инкорпорейтед | Multi-layer video file format designs |
RU2667627C1 (en) * | 2013-12-27 | 2018-09-21 | Сони Корпорейшн | Decoding device, method, and program |
RU173336U1 (en) * | 2016-06-24 | 2017-08-22 | Акционерное общество "МЦСТ" | SLink scalable universal communications interface |
Also Published As
Publication number | Publication date |
---|---|
RU2008116596A (en) | 2009-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2378790C1 (en) | Scalability techniques based on content information | |
EP1929784B1 (en) | Content driven transcoder that orchestrates multimedia transcoding using content information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20180928 |