System and method for processing an encoded audio bitstream, computer readable medium

By designing a transcoder that efficiently transcoding metadata using descriptors, the problem of high complexity in the transcoding of audio content metadata in the prior art is solved, and efficient inter-system conversion of audio codecs is realized.

CN117219100BActive Publication Date: 2025-02-25DOLBY LABORATORIES LICENSING CORP +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202311104445.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2013-01-21
Filing Date
2014-01-15
Publication Date
2025-02-25
Estimated Expiration
2034-01-15

AI Technical Summary

Technical Problem

The prior art requires transcoding of the associated metadata when converting audio content from one audio codec system to another, resulting in high computational complexity.

Method used

A transcoder was designed to decode the inbound bit stream into PCM samples and metadata through the decoder, and re-encode it into outbound bit stream using an encoder. In the process, descriptors are used to efficiently transcode the metadata. Reduce calculation complexity.

Benefits of technology

It realizes transcoding of metadata to reduce computational complexity, improves transcoding efficiency, and can effectively support conversion between different audio codec systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117219100B_ABST
    Figure CN117219100B_ABST
Patent Text Reader

Abstract

The present application discloses a system and method for processing a coded audio bitstream, and a non-transitory computer-readable medium. The system includes: a memory for storing a coded audio bitstream, wherein the coded audio bitstream includes a content frame and a metadata frame, the content frame includes coded audio content and metadata associated with the coded audio content, and the metadata frame includes a metadata container having additional metadata different from the metadata of the content frame; an audio decoder for decoding the content frame or the metadata frame; and an extractor for extracting the content frame or the metadata frame, wherein the metadata container includes a key identifier, one or more metadata payloads and protection data, and wherein, for each of the one or more metadata payloads, the metadata container also includes a payload identifier, a metadata payload configuration and a size.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese patent application with application number 201810949078.6, filing date of divisional application on August 20, 2018, and invention name “Encoding device and method, transcoding method and transcoder, non-transient medium”. The Chinese patent application No. 201810949078.6 is a divisional application of the invention patent application No. 201480005287.5 with application date of January 15, 2014 and entering the Chinese national phase on July 17, 2015, and invention name “Metadata transcoding”.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims priority to U.S. Provisional Patent Application No. 61 / 754,893, filed on January 21, 2013, the entire contents of which are incorporated herein by reference. Technical Field

[0004] The present document relates to transcoding metadata. In particular, the present document relates to a method and system for transcoding metadata with reduced computational complexity. Background Art

[0005] Currently, various single-channel and / or multi-channel audio rendering systems such as 5.1 multi-channel audio rendering systems, 7.1 multi-channel audio rendering systems or 9.1 multi-channel audio rendering systems are used. The audio rendering system enables, for example, the generation of surround sound originating from 5+1 speaker positions, 7+1 speaker positions or 9+1 speaker positions, respectively. For efficient transmission or for efficient storage of corresponding single-channel audio signals or multi-channel audio signals, audio codec (encoder / decoder) systems such as Dolby Digital (DD) or Dolby Digital Plus (DD+) are used.

[0006] There may be a significant installed base of audio rendering devices that are configured to decode encoded audio signals using a specific audio codec system (e.g., Dolby Digital). The specific audio codec system may, for example, be referred to as a second audio codec. On the other hand, the evolution of an audio codec system may produce a newer audio codec system (e.g., Dolby Digital Plus), which may, for example, be referred to as a first audio codec system. The newer audio codec system may provide additional features (e.g., an increased number of channels) and / or improved encoding quality. Like this, content providers may tend to provide their content based on the newer audio codec system.

[0007] Nevertheless, a user of an audio rendering device having a decoder employing the second audio codec system should still be able to render audio content that has been encoded according to the first audio codec system. This can be achieved by a so-called transcoder or converter that is configured to convert audio content encoded according to the first audio codec system into modified audio content encoded according to the second audio codec system.

[0008] Along the distribution chain of audio content, additional needs for transcoding may arise. The content provider may encode the audio content using an audio codec that is well suited for production and broadcasting of audio content, such as the Dolby E audio codec. The audio content may be distributed using this production-oriented audio codec, and the audio content may be transcoded according to a second audio codec, such as the lossless codec Dolby TrueHD or such as Dolby Digital Plus or Dolby Digital codec.

[0009] Typically, audio content is associated with metadata representing the audio content encoded in a bitstream. Typically, the audio content is separated into a sequence of frames, wherein each frame of the audio content includes a predetermined number of samples (e.g., 1024 samples). The frames in the sequence of frames can be associated with corresponding metadata containers or metadata frames. The metadata container can represent information describing the frames of the audio content associated with the container. Examples of such information describing the frame can be loudness data about some or all samples of the frame. Alternatively or additionally, the metadata container can be used to transmit auxiliary data that may not be directly associated with the frames of the corresponding audio content. Such auxiliary data can, for example, be used to provide a decoder of an audio codec system with a firmware upgrade.

[0010] In addition to transcoding audio content from the first audio codec system to the second audio codec system, the transcoder usually also needs to transcode the associated metadata. In order to reduce the cost of the transcoder / converter (which is for example implemented in a set-top box), the computational complexity of the conversion between the first audio codec system and the second audio codec system should be lower. In the case where the metadata is transcoded, the computational complexity of the conversion between the first audio codec system and the second audio codec system should also be lower. In this document, a method and system for transcoding are described, which can enable metadata to be transcoded with reduced computational complexity. Summary of the invention

[0011] According to one aspect, a transcoder is described that is configured to transcode an inbound bitstream into an outbound bitstream. The inbound bitstream may include an inbound content frame and an associated inbound metadata frame. The associated inbound metadata frame may be included in the inbound bitstream immediately following the inbound content frame or immediately preceding the inbound content frame. In this way, the term "associated" may represent the temporal relationship between the content frame and the metadata frame (e.g., the term may represent that the content frame is immediately preceding the metadata frame or vice versa). It should be noted that in some embodiments, the associated inbound metadata frame may be included in the inbound content frame. Typically, the content frame includes a first element (e.g., a synchronization field) and a last element (e.g., an error correction field such as a CRC field). The associated metadata frame may be located in the following field of the content frame, which is arranged after the first element of the content frame and before the last element of the content frame (e.g., in the auxiliary data field of the content frame).

[0012] The metadata frame may be a so-called evolving frame. Typically, an inbound bitstream comprises a sequence of inbound content frames and a sequence of associated inbound metadata frames. Typically, the inbound metadata frames alternate with the inbound content frames so that the associated metadata frame of a particular inbound content frame directly follows the particular inbound content frame. In a manner similar to the inbound bitstream (also referred to as an encoded inbound bitstream), the outbound bitstream (or encoded outbound bitstream) may comprise outbound content frames and associated outbound metadata frames. Specifically, the outbound bitstream may comprise an alternating sequence of outbound content frames and a sequence of outbound metadata frames.

[0013] The content frame may represent a signal encoded according to a specific codec scheme. Specifically, an inbound content frame may represent a signal encoded according to a first codec system, and an outbound content frame may represent a signal encoded according to a second codec system. The first audio codec system and the second audio codec system may be the same (in this case, the transcoder may be configured to provide bit rate conversion) or the first audio codec system and the second audio codec system may be different (in this case, the transcoder may be configured to provide codec conversion). The signal may include an audio signal. Examples of the first codec system and the second codec system include Dolby E, Dolby Digital Plus, Dolby Digital, Dolby TrueHD, Dolby Pulse, AAC (Advanced Audio Coding) and / or HE-AAC (High Efficiency AAC). In the case where the first codec system and the second codec system are different, the transcoder may be configured to: transcode the signal content from the first codec system to the second codec system. Alternatively or additionally, the bitrate of the outbound bitstream may be different from the bitrate of the inbound bitstream, and the transcoder may be configured to perform transcoding of the encoded signal content from a first bitrate to a second (different) bitrate.

[0014] Typically, the signal is represented as a sequence of frames comprising a predetermined number of samples of the signal (e.g., 512 or 1024 samples of the signal). Thus, an inbound content frame may represent some or all samples of a frame of the signal. An outbound content frame may represent some or all samples of the same frame of the signal. Thus, the transcoder may be configured to generate an outbound content frame that represents at least some samples of a corresponding inbound content frame.

[0015] In order to transcode the inbound bitstream into an outbound bitstream, the transcoder may include a decoder configured to decode the inbound bitstream according to a first codec system. As a result of the decoding, the decoder may provide a set of PCM samples for each content frame. In addition, the decoder may be configured to extract metadata from the metadata frame. The decoded inbound bitstream (e.g., a set of PCM samples and extracted metadata) may be provided to an encoder configured to encode the signal according to a second codec system, thereby providing an outbound bitstream. In this way, the transcoder may be configured to generate an outbound content frame based on the inbound content frame using a decoder of the first codec system and an encoder of the second codec system. The transcoder may include a so-called PCM-connected transcoder, in which the decoder transmits the PCM sample group to the encoder of the transcoder. In this way, the transcoder described herein may include the features described in the context of a PCM-connected transcoder.

[0016] It should be noted that a content frame may also represent metadata according to an implicit codec system. In other words, a content frame may include metadata associated with a signal included in the content frame, wherein the metadata included in the content frame is defined by the implicit codec system (i.e., the first codec system or the second codec system). In contrast, a metadata frame enables the transmission of additional metadata (in addition to the metadata specified by the codec system). Examples of such metadata are loudness or dialogue normalization parameters or auxiliary data such as firmware upgrades for decoders in the audio content distribution chain.

[0017] The metadata frame may follow a predetermined syntax. Specifically, the inbound metadata frame and the outbound metadata frame may follow a common syntax. The syntax of the metadata frame may enable the metadata frame to include zero metadata blocks, one or more metadata blocks. Each metadata block may include metadata of a specific type. In this way, the metadata frame may be of a specific variable size, depending on the amount of metadata included in the metadata frame and / or the number of metadata blocks. Each metadata block may represent (or may include) a corresponding descriptor that represents one or more attributes of the metadata included in the corresponding metadata block. Specifically, the descriptor may describe an attribute that represents how the metadata block can or should be manipulated. In this way, a transcoder may use the descriptor of the block to transcode the block included in the inbound metadata frame in a computationally efficient manner.

[0018] To transcode the metadata frame, the transcoder may be configured to identify an inbound block of metadata from the inbound metadata frame. The inbound block may be identified using a block identifier. As an example, each block of the metadata frame may be identified using a block identifier. In addition, the metadata frame may include a specific block identifier that indicates the fact that the metadata frame does not include any additional blocks (e.g., referred to as an end identifier). The transcoder may use the end identifier to determine that the metadata frame does not include any additional metadata blocks.

[0019] As described above, the metadata inbound block may be associated with a descriptor referred to as an inbound descriptor. The inbound descriptor may represent one or more attributes of the metadata included in the metadata inbound block. The descriptor may be written into the data field of the metadata block. An example attribute included in the descriptor is a timestamp parameter representing a sample of the signal. Specifically, the timestamp parameter may represent that the metadata of the inbound block is associated with (e.g., is to be applied to) a sample of the signal identified by the timestamp parameter. The timestamp parameter may identify a sample by representing the position of the sample in the content frame relative to the end of the content frame or relative to the beginning of the content frame. Another example is a duration parameter representing several samples of the signal. The duration parameter may represent that the metadata of the inbound block is associated with several samples of the signal represented by the duration parameter (starting from the sample represented by the timestamp parameter). Specifically, the duration parameter may represent that the metadata is to be applied to several samples after the sample represented by the timestamp parameter, wherein the several samples are represented by the duration parameter. The timestamp parameter and / or the duration parameter may be used, for example, to indicate which samples of the signal encoded in the associated inbound content frame the metadata (e.g., loudness value) of the inbound block may apply to. As an example, the inbound metadata frame may include a plurality of inbound blocks representing different loudness values ​​for different groups of signal samples encoded in the inbound content frame.

[0020] Another example of an attribute represented (or included) within a descriptor is a transcoder parameter that represents whether an inbound block is to be transcoded into an outbound bitstream. As an example, a transcoder parameter can be used to represent that metadata included in an inbound block is only applicable to a first codec system. Thus, a transcoder can be configured to discard metadata included in an inbound block if the outbound bitstream is encoded according to a second codec system that is different from the first codec system.

[0021] Yet another example of an attribute included in the descriptor is a replication parameter indicating whether metadata of an inbound block is to be included in each outbound metadata frame generated from an inbound metadata frame. In a similar manner, a de-duplication parameter may be used as an attribute indicating whether metadata of an inbound block is to be discarded by the transcoder if an outbound metadata frame is generated from a plurality of inbound metadata frames. The transcoder may use replication parameters and / or de-duplication parameters in the case where the framing of the inbound bitstream and the outbound bitstream is different.

[0022] Yet another example of an attribute is a priority parameter that indicates the importance of the metadata of an inbound block relative to one or more other inbound blocks of metadata. The priority parameter may be used by a transcoder in situations where only a reduced amount of metadata may be inserted into the outbound bitstream compared to the inbound bitstream. Another example of an attribute is an association parameter that indicates whether the metadata of an inbound block may be inserted into a delayed outbound metadata frame after the outbound metadata frame. In this way, the association parameter provides the transcoder with additional flexibility in the transcoding process because the transcoder may determine in an efficient manner which inbound blocks may be delayed and which inbound blocks associated with the associated content frames must be retained.

[0023] Another example of an attribute is a PCM processing parameter indicating whether metadata of an inbound block is to be discarded by the transcoder in case modifications have been made to the data included in the inbound content frame. In particular, the PCM processing parameter may indicate to the transcoder that metadata of an inbound block is to be included in an outbound metadata frame even if data of the inbound content frame (e.g., signal samples included in the inbound content frame) has been modified. This may be the case, for example, when the inbound block includes a payload, such as binary data or such as an additional bitstream, that is not related to the data included in the inbound content frame. The PCM processing parameter is particularly relevant to so-called PCM-connected transcoders.

[0024] Preferably the inbound descriptor comprises at least an indication of whether a timestamp parameter and / or a duration parameter are included in the descriptor. Furthermore, preferably the inbound descriptor comprises a replication parameter and a de-duplication parameter.

[0025] The transcoder may be configured to generate an outbound metadata frame from the inbound metadata frame based on the inbound descriptor. Specifically, the transcoder may be configured to generate an outbound metadata frame from the inbound metadata frame based only on one or more attributes represented by the inbound descriptor. More specifically, the transcoder may be configured to generate an outbound metadata frame from the inbound metadata frame without analyzing the metadata included in the inbound block. In this way, the transcoder may perform transcoding of the metadata included in the metadata frame based only on the descriptor of the metadata block, without analyzing and / or parsing the metadata carried by the metadata block. This enables the transcoder to have significantly reduced computational complexity.

[0026] The transcoder may be configured to generate an outbound metadata frame from an inbound metadata frame by copying metadata from one or more inbound blocks of the inbound metadata frame to a corresponding one or more outbound blocks. The one or more outbound blocks may be inserted into the outbound metadata frame. The copying and inserting may be subject to one or more attributes represented by an inbound descriptor of the one or more inbound blocks. As an example, an association parameter may indicate to the transcoder that a particular inbound block is to be inserted into the outbound metadata frame. On the other hand, a transcoder parameter may indicate to the transcoder that a particular inbound block should be discarded if the second codec system is different from the first codec system.

[0027] The transcoder may be configured to generate an outbound metadata frame by generating an outbound descriptor of an outbound block based on an inbound descriptor of an inbound block. Specifically, the outbound descriptor may include or may represent some or all of the attributes represented by the inbound descriptor. Some or all of the attributes of the inbound descriptor may be copied to the outbound descriptor. On the other hand, the transcoder may be configured to modify one or more attributes represented by the inbound descriptor to generate an outbound descriptor, wherein the outbound descriptor represents one or more modified attributes. As an example, the inbound descriptor may represent a timestamp parameter. The transcoder may modify the timestamp parameter so that even if the transcoder may have re-framing the outbound bitstream for the inbound bitstream, the modified timestamp parameter still represents the same signal sample as the original timestamp parameter.

[0028] As described above, one or more attributes of the inbound descriptor may include a timestamp parameter representing a signal sample, and the metadata of the inbound block is associated with the signal sample. The timestamp parameter of the inbound descriptor generally represents a signal sample related to the inbound content frame. The transcoder may be configured to generate an outbound block based on the inbound block. In addition, the transcoder may be configured to generate an outbound descriptor for the outbound block by modifying the timestamp parameter of the inbound descriptor so that the corresponding timestamp parameter of the outbound descriptor represents a signal sample related to the outbound content frame (which may have a different framing compared to the inbound content frame). In this way, the transcoder may be configured to ensure that one or more attributes represented by the inbound descriptor are still valid even when the inbound bitstream is reframed.

[0029] The transcoder may be configured to insert an outbound block (generated from an inbound block of an inbound metadata frame) into a delayed outbound metadata frame. As an example, an associated parameter of the inbound descriptor may indicate to the transcoder that the inbound block may be delayed. The transcoder may choose to insert metadata into the delayed outbound metadata frame (e.g., due to a limited bit rate of the second bitstream). The delayed outbound metadata frame may be associated with a delayed outbound content frame that does not include a signal sample represented by a timestamp parameter of the inbound block. Nevertheless, to ensure that the timestamp parameter of the outbound block identifies the correct signal sample, the transcoder may be configured to generate an outbound descriptor for the outbound block by modifying the timestamp parameter of the inbound block so that the timestamp parameter of the outbound descriptor represents a signal sample associated with the delayed outbound content frame. As an example, the modified timestamp parameter may represent a number of samples that exceeds the number of samples of the delayed content frame, thereby representing that the sample of the signal exists outside the delayed content frame.

[0030] As described above, one or more attributes of the inbound indicator may include a replication parameter indicating whether the metadata of the corresponding inbound block is to be included in each outbound metadata frame generated from the inbound metadata frame. The transcoder may be configured to generate multiple outbound metadata frames from the inbound metadata frame by considering the replication parameter. Specifically, the transcoder may be configured to determine that the replication parameter indicates that the metadata of the inbound block is to be included in each outbound metadata frame generated from the inbound metadata frame. In such a case, the transcoder may be configured to insert the metadata of the inbound block into each outbound metadata frame of the multiple outbound metadata frames. Specifically, the transcoder may be configured to generate an outbound block from the inbound block for each outbound metadata frame of the multiple outbound metadata frames. In addition to generating multiple outbound metadata frames, the transcoder may also be configured to generate multiple outbound content frames from the inbound content frame, wherein the multiple outbound content frames may be associated with the multiple outbound metadata frames, respectively.

[0031] The replication parameters may include a flag that can be set to indicate that metadata for an inbound block is to be included in each outbound metadata frame generated from the inbound metadata frame, or that metadata for an inbound block is not to be included in each outbound metadata frame generated from the inbound metadata frame (i.e., alternatively, the flag can be set to indicate the opposite).

[0032] As described above, one or more attributes of the inbound descriptor may include a deduplication parameter indicating whether metadata of the inbound block may be (or is to be) discarded by the transcoder if the outbound metadata frame is generated from the plurality of inbound metadata frames. The transcoder may be configured to generate the outbound metadata frame from the plurality of inbound metadata frames of the inbound bitstream by considering the deduplication parameter. Specifically, the plurality of inbound metadata frames may include a plurality of metadata inbound blocks, each inbound block being associated with a corresponding deduplication parameter indicating that metadata of the inbound block may be discarded by the transcoder. The transcoder may be configured to discard metadata of the plurality of inbound blocks for all inbound metadata frames except one inbound metadata frame of the plurality of inbound metadata frames (e.g., all inbound metadata frames except a first inbound metadata frame of the plurality of inbound metadata frames) to generate the outbound metadata frame. In addition to generating the outbound metadata frame from the plurality of inbound metadata frames, the transcoder may be configured to generate the outbound content frame from the plurality of inbound content frames, wherein the plurality of inbound content frames are respectively associated with the plurality of inbound metadata frames.

[0033] The deduplication parameters may include a flag that can be set to indicate that: if the outbound metadata frame is generated based on multiple inbound metadata frames, the metadata of the inbound block can be (or is to be) discarded by the transcoder; or if the outbound metadata frame is generated based on multiple inbound metadata frames, the metadata of the inbound block may not be (or is not to be) discarded by the transcoder (i.e., alternatively, the flag can be set to indicate the opposite situation).

[0034] As described above, one or more attributes of the inbound descriptor may include a priority parameter that represents the relative importance of the metadata of the inbound block relative to one or more other inbound blocks of metadata. An inbound metadata frame received at a transcoder may include multiple inbound blocks having descriptors representing different values ​​of the priority parameter. The transcoder may be configured to generate an outbound metadata frame based on the multiple inbound blocks in accordance with the priority parameters of the multiple inbound blocks. Specifically, if sufficient bit rate is available for the outbound bitstream, the transcoder may first select one or more inbound blocks with the highest relative priority and only insert lower priority inbound blocks.

[0035] Multiple inbound blocks may be associated with an incremental priority parameter representing an incremental priority. Multiple inbound blocks may include incremental metadata such that the combined metadata of the multiple inbound blocks provides high-quality metadata and such that the metadata of the inbound block with the highest relative priority among the multiple inbound blocks provides metadata of reduced quality (i.e., metadata of reduced quality compared to the high-quality metadata provided by the combined metadata). An inbound block with the next lower priority may provide metadata of improved quality, and so on, until the highest quality metadata is provided when all of the multiple inbound blocks are combined. The transcoder may be configured to generate an outbound metadata frame based on at least one or more of the multiple inbound blocks, thereby allowing scalable degradation of the quality of the metadata included in the outbound metadata frame. The degree of degradation may be based, for example, on an available bitrate of the outbound bitstream.

[0036] As described above, one or more attributes of the inbound descriptor may include an associated parameter indicating whether the metadata of the inbound block may be inserted into a delayed outbound metadata frame following the outbound metadata frame. The transcoder may be configured to insert the metadata from the inbound block into the outbound metadata frame based on the associated parameter and / or based on a bit rate limit on the outbound bitstream. Specifically, the transcoder may be configured to insert the metadata from the inbound block into the delayed outbound metadata frame following the outbound metadata frame if the associated parameter indicates that the metadata of the inbound block may be delayed.

[0037] According to another aspect, a method for transcoding an inbound bitstream including an inbound content frame and an associated inbound metadata frame into an outbound bitstream is described. The outbound bitstream may include an outbound content frame and / or an associated outbound metadata frame. The inbound content frame may represent a signal encoded according to a first codec system, and the outbound content frame may represent a signal encoded according to a second codec system. As described above, the first codec system and the second codec system may be the same or may be different. The method may include identifying a metadata inbound block from the inbound metadata frame. The metadata inbound block may be associated with an inbound descriptor representing one or more attributes of metadata included in the metadata inbound block. In addition, the method may include: generating an outbound metadata frame based on the inbound metadata frame based on the inbound descriptor. In other words, the outbound metadata frame can be determined by considering the inbound descriptor, typically without further analyzing the metadata included in the inbound metadata frame.

[0038] According to another aspect, an encoded bitstream including a content frame and an associated metadata frame is described. The content frame may represent a signal encoded according to a first codec system. The metadata frame may include a metadata block, and the metadata block may be associated with (or may include) a descriptor representing one or more attributes of metadata included in the metadata block.

[0039] According to another aspect, an encoder is described, configured to generate an encoded bitstream including a content frame and an associated metadata frame. The content frame may represent a signal encoded according to a codec system. The encoder may be configured to generate a metadata block. In addition, the encoder may be configured to determine a descriptor associated with the metadata block. The descriptor may represent one or more attributes of the metadata included in the metadata block. In addition, the encoder may be configured to insert the metadata block into the metadata frame. It should be noted that the features described in the context of a transcoder in this document also apply to the corresponding encoder.

[0040] Specifically, one or more attributes may include a timestamp parameter representing a signal sample, and the metadata included in the metadata block is associated with the signal sample. The signal sample may be included in the content frame. The encoder may be configured to insert the block into a delayed metadata frame, wherein the delayed metadata frame is associated with a delayed content frame that does not include the signal sample. In addition, the encoder may be configured to generate a descriptor of the metadata block so that the timestamp parameter of the descriptor represents a signal sample related to the delayed content frame. In this way, the encoder may be configured to delay the transmission of the metadata and modify the timestamp parameter accordingly, so as to smooth the bit rate of the bitstream generated by the encoder.

[0041] According to one aspect, a corresponding decoder is described. The decoder may include any of the features related to the decoder described in this document. The decoder may be configured to decode a coded bitstream including a content frame and an associated metadata frame. As described above, the content frame represents a signal encoded according to a first codec system. The metadata frame may include a metadata block, wherein the metadata block is associated with (or includes) a descriptor representing one or more attributes of the metadata included in the metadata block. The decoder may be configured to decode the coded signal included in the content frame. Specifically, the decoder may include a decoder of the first codec system to decode the coded signal. Therefore, the decoder may be configured to provide a set of PCM samples of the coded signal.

[0042] In addition, the decoder can be configured to: identify a metadata block from a metadata frame and extract a descriptor from the metadata block. In addition, the decoder can be configured to: process the metadata included in the metadata block according to one or more attributes represented by the descriptor. The one or more attributes may correspond to any one or more attributes described in this document. The decoder can be configured to: associate a specific attribute of the metadata with a corresponding processing of the metadata. As an example, the descriptor can represent a timestamp parameter, thereby notifying the decoder that the metadata of the metadata block is to be applied to a specific signal sample. In this way, the decoder can be configured to: apply the metadata to the sample represented by the timestamp parameter. As another example, the descriptor can represent an association parameter. If the association parameter indicates that the metadata block is independent of the content frame, the decoder can be configured to: transmit the metadata included in the metadata block to another processing unit (which processes, for example, auxiliary data included in the metadata block).

[0043] According to another aspect, a method for decoding an encoded bitstream including a content frame and an associated metadata frame is described. The content frame may represent a signal encoded according to a first codec system. The metadata frame may include a metadata block, wherein the metadata block may be associated with a descriptor representing one or more attributes of metadata included in the metadata block. The method may include decoding the encoded signal included in the content frame. In addition, the method may include identifying the metadata block from the metadata frame and extracting the descriptor from the metadata block. In addition, the method may include processing the metadata included in the metadata block based on one or more attributes represented by the descriptor.

[0044] According to another aspect, a method for generating an encoded bitstream including a content frame and an associated metadata frame is described. The content frame may represent a signal encoded according to a codec system. The method may include generating a metadata block. In addition, the method may include determining a descriptor associated with the metadata block, wherein the descriptor represents one or more attributes of metadata included in the metadata block. In addition, the method may include inserting the metadata block into the metadata frame.

[0045] According to another aspect, an encoder is described that is configured to generate an encoded bitstream including a content frame and an associated metadata frame. The content frame may represent a signal encoded according to a first codec system. The encoder may be configured to generate a metadata block. In a preferred embodiment, the metadata block includes a descriptor as described in this document. The descriptor may represent one or more attributes of the metadata included in the metadata block.

[0046] The encoder may be configured to insert the metadata block into the metadata frame. In addition, the encoder may be configured to select a security key from a plurality of predetermined security keys. The plurality of predetermined security keys may be configured so as to provide different trust levels. Specifically, the plurality of predetermined security keys may include a highly secure key known only to a developer of the encoder (or a developer of a corresponding decoder or a developer of a corresponding transcoder including a decoder and an encoder). In addition, the plurality of predetermined security keys may include a medium security key known to an operator of the encoder (or an operator of a corresponding decoder or an operator of a corresponding transcoder including a decoder and an encoder).

[0047] The encoder may be configured to generate an encrypted value based at least on the content frame, the associated metadata frame, and the selected security key. Specifically, the encoder may be configured to calculate an HMAC-MD5 value or an HMAC-SHA256 value (such as the secure hash algorithm specified in the federal information processing standard FIPS PUB 180-2) to generate an encrypted value. In addition, the encoder may be configured to truncate the HMAC-MD5 value or the HMAC-SHA256 value to generate an encrypted value. By truncating the HMAC value, the overhead required for the encrypted value can be reduced. The encoder may be configured to insert the generated encrypted value into the metadata frame, thereby ensuring that the content frame and / or the metadata frame cannot be modified by an unauthorized party without being detected.

[0048] The use of different security keys that provide different trust levels ensures that the corresponding decoder (or transcoder including the decoder) can verify whether the received bitstream has been modified, and if it has been modified, which party has modified the received bitstream. As an example, the encoder may have initially generated the bitstream using a highly secure key. An intermediate party may have modified the bitstream and may have used a medium security key to generate a modified encryption value. In this way, the decoder understands that the received bitstream has been modified by a party that can obtain a medium security key. It should be noted that multiple predetermined security keys can include more than two levels of trust, thereby providing the decoder with more details about the trustworthiness of the received bitstream.

[0049] The encoder may be configured to insert a representation of the selected security key into a metadata frame, thereby enabling a corresponding decoder to easily verify whether a received bitstream has been modified. On the other hand, the decoder may be configured to use all of the plurality of predetermined security keys to verify the authenticity of the received bitstream without inserting a representation of the selected security key into a metadata frame.

[0050] The encoder may be configured to generate a plurality of continuous content frames and associated metadata frames for a coded bitstream. In addition, the encoder may be configured to generate a frame encryption value based on a single content frame and its associated metadata frame and based on a selected security key. The frame encryption value may be inserted into the associated metadata frame, and the corresponding decoder (or transcoder) may use the frame encryption value to verify the reliability of the individual content frame / metadata frame. In addition, the encoder may be configured to generate a historical encryption value based on at least some of the plurality of continuous content frames and their associated metadata frames and based on the selected security value. The historical encryption value may be inserted into one of the plurality of continuous metadata frames, and the corresponding decoder (or transcoder) may use the historical encryption value to verify the correct sequential order of the plurality of continuous content frames and metadata frames.

[0051] According to another aspect, a method for generating an encoded bitstream including a content frame and an associated metadata frame is described. The content frame may represent a signal encoded according to a first codec system. The method may include generating a metadata block and inserting the metadata block into the metadata frame. In addition, the method may include selecting a security key from a plurality of predetermined security keys, wherein the plurality of predetermined security keys provide different trust levels. In addition, the method may include generating an encryption value based at least on the content frame, the associated metadata frame, and the selected security key. The generated encryption value may then be inserted into the metadata frame.

[0052] According to another aspect, a corresponding decoder is described. The decoder can be configured to receive a coded bitstream including a content frame and an associated metadata frame. The coded bitstream can have any one or more properties described in this document. Specifically, the content frame can represent a signal encoded according to a first codec system (e.g., a codec system as mentioned in this document). The decoder can be configured to extract an encrypted value from the metadata frame. As described in this document, the corresponding encoder may have inserted the encrypted value into the metadata frame. Specifically, the encrypted value can be determined using one of a plurality of predetermined security keys. As described above, a plurality of predetermined security keys can provide different trust levels. As an example, a plurality of predetermined security keys can include a highly secure key and a medium secure key.

[0053] The decoder may be configured to determine a security key from a plurality of predetermined security keys. Specifically, the decoder may be configured to determine the security key by extracting the security key from a metadata frame (e.g., from a specific field of the metadata frame). In addition, the decoder may be configured to generate a verification encryption value based at least on the received content frame, the received associated metadata frame, and the determined security key. In addition, the decoder may be configured to compare the extracted encryption value with the verification encryption value to determine whether the received coded bit stream can be trusted. As an example, if the extracted encryption value matches the verification encryption value, the decoder may determine that the received coded bit stream can be trusted. In addition, the security key used to generate the verification encryption value may indicate to the decoder a trust level associated with the received coded bit stream. As an example, a high security key may represent a higher level of trust compared to a medium security key.

[0054] The decoder may be configured to determine which of a plurality of predetermined security keys has been used to generate the extracted encryption value. As described above, the security key that has been used to generate the extracted encryption value may provide an indication of the level of trust in the received encoded bitstream. Specifically, the decoder may be configured to generate a plurality of verification encryption values ​​for each of the plurality of predetermined security keys. In addition, the decoder may be configured to compare each of the plurality of verification encryption values ​​with the extracted encryption value. In addition, the decoder may be configured to determine that a security key in the plurality of predetermined security keys has been used to generate the extracted encryption value if the comparison shows that a verification encryption value in the plurality of verification encryption values ​​matches the extracted encryption value.

[0055] According to another aspect, a method for determining a trust level of a received coded bitstream including a content frame and an associated metadata frame is described. The content frame may represent a signal encoded according to a first codec system. The method may include extracting an encryption value from the metadata frame. In addition, the method may include determining a security key based on a plurality of predetermined security keys, wherein the plurality of predetermined security keys provide different trust levels. In addition, the method may include generating a verification encryption value based on at least the content frame, the associated metadata frame, and the determined security key. The method may perform a comparison of the extracted encryption value with the verification encryption value to determine a trust level of the received coded bitstream, wherein the trust level may be represented by the determined security key.

[0056] According to another aspect, a transcoder is described that is configured to transcode an inbound bitstream including inbound content frames and associated inbound metadata frames into an outbound bitstream. The transcoder may include any of the features described in this document related to the transcoder. As described above, the inbound bitstream may represent a set of signal samples, such as samples representing frames of a signal. The transcoder may include a decoder (for decoding the received inbound bitstream) and an encoder (for re-encoding the decoded inbound bitstream to provide a transcoded outbound bitstream). The transcoder may include a so-called PCM connection transcoder.

[0057] The decoder of the transcoder can be configured to convert the inbound content frame into a group of decoded PCM samples of the signal. In addition, the decoder can be configured to extract metadata from the inbound metadata frame. In this way, the decoder can be configured to convert the inbound bitstream into a sequence of decoded PCM samples and associated metadata. The encoder of the transcoder can use the sequence of decoded PCM samples and associated metadata to generate an outbound bitstream (according to the second codec system). The decoder can be configured to generate a signature value using a decoder security key for the group of decoded PCM samples and extracted metadata. The signature value can be generated using an HMAC-MD5 hash function or an HMAC-SHA256 hash function. The obtained value can be truncated to provide a signature value. In this way, the decoder can be configured to provide a signature value so that the encoder can verify whether the decoded PCM samples and / or metadata between the decoder and the encoder of the transcoder have been modified by an unauthorized entity (which cannot obtain the decoder security key).

[0058] The encoder of the transcoder may be configured to receive a set of PCM samples and associated metadata. The received set of PCM samples typically corresponds to a set of decoded PCM samples provided by the decoder, and the received metadata typically corresponds to extracted metadata from the decoder. However, the PCM samples and / or metadata may have been modified so that the received set of PCM samples and / or the received metadata may be different from the decoded set of PCM samples and / or the extracted metadata.

[0059] The encoder may be configured to receive a signature value. The received signature value may correspond to or be equal to the signature value generated by the decoder. On the other hand, the received signature value may be different from the signature value generated by the decoder (e.g., if modified by an authorized entity, the PCM samples and / or metadata are modified). The encoder may be configured to verify whether the received signature value is valid for a received set of PCM samples and associated metadata using an encoder security key. In addition, the encoder may be configured to generate an outbound content frame of an outbound bitstream based on a received set of PCM samples and an associated outbound metadata frame of an outbound bitstream based on the received metadata if the received signature is valid. On the other hand, the encoder may be configured to prevent the received metadata from being inserted into the outbound bitstream if the received signature is invalid. In this way, the encoder of the transcoder may be configured to prevent the metadata frame from being inserted into the outbound bitstream if the metadata or PCM samples have been modified by an unauthorized entity.

[0060] It should be noted that, typically, decoders and encoders used in transcoders are provided by the developers of the corresponding audio codec systems. In this way, the functionality of the decoders and encoders can be controlled by the developers, thereby ensuring high quality audio content and associated metadata. On the other hand, unauthorized entities can modify the PCM samples and / or metadata between the decoder and the encoder, thereby creating a risk of reduced quality of the audio content and / or metadata. By providing a decoder that generates signature values ​​and by providing an encoder that verifies signature values, it can be ensured that unauthorized modifications to the PCM samples and / or metadata can be detected.

[0061] The encoder may be configured to use the decoder security key as the encoder security key. This ensures that the encoder can verify whether the received PCM samples and metadata correspond to the PCM samples and metadata provided by the corresponding decoder.

[0062] The transcoder may also include a PCM processing stage configured to modify a set of decoded PCM samples and / or extracted metadata to generate a set of second PCM samples and associated second metadata. The set of second PCM samples may correspond to a set of decoded PCM samples or a set of modified PCM samples. In a similar manner, the second metadata may correspond to the extracted metadata or the modified extracted metadata. In addition, the PCM processing stage may be configured to transmit a set of second PCM samples and associated second metadata to the encoder. By using the received signature value and the encoder security key, the encoder may be configured to detect that the decoded PCM samples and / or the extracted metadata have been modified by the PCM processing stage. In other words, the encoder may be configured to detect that the second PCM samples (received by the encoder) and the second metadata (received by the encoder) do not correspond to the decoded PCM samples and the extracted metadata (provided by the decoder).

[0063] The transcoder may also include a re-signing unit configured to determine an updated signature value for a set of second PCM samples and associated second metadata using a re-signed security key. In addition, the re-signing unit may be configured to transmit the updated signature value to the encoder. The re-signed security key may be different from the decoder security key. The encoder may be configured to use the re-signed security key as the encoder security key. In this way, the encoder may be configured to detect that the PCM samples and / or associated metadata have been modified by an authorized PCM processing level. In a manner similar to the encryption values ​​described in this document, a security key for the signature value may be selected from a plurality of predetermined security keys. As an example, the decoder security key may be a highly secure key, while the re-signed security key may be a medium security key, thereby providing different levels of trust for the PCM samples and / or associated metadata received at the encoder of the transcoder.

[0064] An encoder of a transcoder may include a PCM processing stage configured to modify a set of received PCM samples and / or received metadata. The set of received PCM samples may correspond to a set of decoded PCM samples or a set of second PCM samples. In a similar manner, the received metadata may correspond to the extracted metadata or the second metadata. The encoder may be configured to generate outbound content frames and / or outbound metadata frames based on the modified set of received PCM samples and / or the modified received metadata that have been modified by the PCM processing stage of the encoder. By providing a PCM processing stage for the encoder of the transcoder, it is ensured that a chain of trust is maintained in the transcoder (because the PCM processing is performed in the encoder provided by the developer of the encoder).

[0065] As described above, the PCM connection transcoder may include any of the features described in this document. Specifically, the decoder of the transcoder may be configured to: identify a metadata inbound block from an inbound metadata frame. As described in this document, the metadata inbound block may be associated with an inbound descriptor representing one or more attributes of the metadata included in the metadata inbound block. The one or more attributes may be any one or more of the attributes described in this document. The encoder of the transcoder may be configured to: generate an outbound metadata frame from the inbound metadata frame based at least on the inbound descriptor.

[0066] Specifically, one or more attributes may include a PCM processing parameter indicating whether metadata of an inbound block is to be discarded by the encoder if a modification of a set of PCM samples and / or a modification of the extracted metadata has been made. In such a case, the encoder of the transcoder may be configured to include or exclude the inbound block in an outbound metadata frame based on the value of the PCM processing parameter. Specifically, the encoder may be configured to include metadata of the inbound block in an outbound metadata frame even if a set of PCM samples and / or the extracted metadata has been modified if the PCM processing parameter indicates that the metadata of the inbound block should not be discarded. This may be useful, for example, in situations where the metadata included in the inbound block is independent of a set of PCM samples, such as in the case of, for example, auxiliary data or binary data.

[0067] The PCM processing stage of the transcoder may be configured to provide an indication of one or more PCM processing conditions to the encoder of the transcoder. The one or more PCM processing conditions may indicate how the PCM processing stage processes a group of PCM samples and / or extracted metadata. As an example, the one or more PCM processing conditions may include one or more of the following: conversion of the sampling rate of a group of PCM samples, mixing of PCM samples with system sounds, modification of the extracted metadata, modification of the channel configuration of a group of PCM samples (in the case of an audio signal), and leveling of the loudness of a group of PCM samples. Then, the encoder may be configured to generate an outbound metadata frame according to the inbound metadata frame, also based on the one or more PCM processing conditions. Specifically, the encoder may be configured to determine whether to include an inbound block in an outbound metadata frame or not to include an inbound block in an outbound metadata frame based on the value of a PCM processing parameter and based on one or more PCM processing conditions. Specifically, the PCM processing parameters may indicate how to process an inbound block subject to one or more PCM processing conditions.

[0068] According to another aspect, a method for transcoding an inbound bitstream including an inbound content frame and an associated inbound metadata frame into an outbound bitstream is described. The inbound bitstream may represent a set of samples of a signal. The method may include converting the inbound content frame into a set of decoded PCM samples of the signal at a decoder. In addition, the method may include extracting metadata from the inbound metadata frame at the decoder. In addition, a decoder security key may be used to generate a signature value for a set of decoded PCM samples and extracted metadata. A set of decoded PCM samples, extracted metadata, and generated signature values ​​may be transmitted to a corresponding encoder. In addition, the method may include receiving a set of PCM samples and associated metadata at an encoder and receiving a signature value. The method may be performed by determining whether the received signature value is valid for the received set of PCM samples and associated metadata using an encoder security key. Thereafter, if the received signature is valid, an outbound content frame of the outbound bitstream may be generated based on the received set of PCM samples and an associated outbound metadata frame of the outbound bitstream may be generated based on the received metadata.

[0069] According to other aspects, the decoder and encoder of the above-mentioned PCM connection transcoder are described separately. The decoder and / or encoder may include any one or more of the features related to the decoder and / or encoder described in this document, respectively. The decoder and / or encoder may be used in the transcoder (as described above). Alternatively or additionally, the decoder and / or encoder may be used alone. Thus, according to another aspect, a decoder is described, which is configured to: decode an inbound bitstream including an inbound content frame and an associated inbound metadata frame. The inbound bitstream may represent a set of samples of a signal. The decoder may be configured to convert the inbound content frame into a set of decoded PCM samples of the signal. In addition, the decoder may be configured to extract metadata from the inbound metadata frame. In addition, the decoder may be configured to: generate a signature value for a set of decoded PCM samples and for the extracted metadata using a decoder security key. In this way, a set of decoded PCM samples and associated extracted metadata may be protected using a signature value. The recipient of a set of decoded PCM samples and the recipient of the associated extracted metadata can use the signature value to verify whether a set of decoded PCM samples and / or the associated extracted metadata have been modified in an unauthorized manner. The recipient can be an encoder configured to re-encode a set of decoded PCM samples and the associated extracted metadata into an outbound bitstream. Therefore, the decoder can be configured to send a set of decoded PCM samples, the extracted metadata, and the generated signature value to the encoder for re-encoding.

[0070] According to another aspect, an encoder is described that is configured to encode an outbound bitstream including an outbound content frame and an associated outbound metadata frame. The encoder can be configured to receive a set of PCM samples and associated metadata and receive a signature value for the set of PCM samples and the associated metadata. The received set of PCM samples can correspond to (or can be derived from) the above-mentioned set of decoded PCM samples. In a similar manner, the received set of associated metadata can correspond to (or can be derived from) the above-mentioned set of extracted metadata. The received signature value can be determined (e.g., at a decoder) using the above-mentioned set of decoded PCM samples and the extracted metadata.

[0071] The encoder may be configured to verify, using the encoder security key, whether the received signature value is valid for the received set of PCM samples and associated metadata. Furthermore, the encoder may be configured to generate an outbound content frame of the outbound bitstream based on the received set of PCM samples and an associated outbound metadata frame of the outbound bitstream based on the received metadata if the received signature is valid.

[0072] According to another aspect, a method for decoding an inbound bitstream comprising an inbound content frame and an associated inbound metadata frame is described. The inbound bitstream may represent a set of samples of a signal. The method may include converting the inbound content frame into a set of decoded PCM samples of the signal, and extracting metadata from the inbound metadata frame. In addition, the method may include generating a signature value using a decoder security key for the set of decoded PCM samples and for the extracted metadata. In addition, the method may include providing the set of decoded PCM samples, the extracted metadata, and the generated signature value to an encoder for re-encoding.

[0073] According to another aspect, a method for encoding an outbound bitstream including an outbound content frame and an associated outbound metadata frame is described. The method may include receiving a set of PCM samples and associated metadata and receiving a signature value for the set of PCM samples and the associated metadata. In addition, the method may include using an encoder security key to verify whether the received signature value is valid for the received set of PCM samples and the associated metadata. The method may proceed by generating an outbound content frame of the outbound bitstream based on the received set of PCM samples and generating an associated outbound metadata frame of the outbound bitstream based on the received metadata if the received signature is valid.

[0074] According to one aspect of the present application, a coding method is provided, comprising: encoding a current content frame; generating a protection field for an associated metadata frame, the associated metadata frame being associated with the current content frame; encoding the associated metadata frame, including the protection field; and including the current content frame and the associated metadata frame in an output bitstream, wherein: generating the protection field involves generating one or more encryption values; at least one of the one or more encryption values ​​is a frame encryption value representing the authenticity of the current content frame; and generating the frame encryption value by applying a one-way function to a group of frames including the current content frame and the associated metadata frame.

[0075] According to another aspect of the present application, an encoding device including one or more hardware elements is provided, which is configured to: encode a current content frame; generate a protection field for an associated metadata frame, the associated metadata frame being associated with the current content frame; encode the associated metadata frame, including the protection field; and include the current content frame and the associated metadata frame in an output bitstream, wherein: generating the protection field involves generating one or more encryption values; at least one of the one or more encryption values ​​is a frame encryption value representing the authenticity of the current content frame; and generating the frame encryption value by applying a one-way function to a group of frames including the current content frame and the associated metadata frame.

[0076] According to another aspect of the present application, a method for transcoding an inbound bitstream into an outbound bitstream is provided, the inbound bitstream comprising a first inbound content frame and an associated first inbound metadata frame, the method comprising: at a decoder: converting the first inbound content frame into a first set of decoded pulse code modulation (PCM) samples; extracting first metadata from the first inbound metadata frame; identifying a first metadata inbound block in the first metadata, the first metadata inbound block being associated with a first inbound descriptor representing one or more attributes of the first metadata, the one or more attributes comprising PCM processing parameters, the PCM processing parameters representing a modification of the first set of decoded PCM samples, the modification of the extracted first metadata, or the modification of the first set of decoded PCM samples and the extracted first metadata. In the case of modification of both metadata, whether the metadata of the first metadata inbound block is to be discarded by the encoder; generating a frame signature value based on the first group of decoded PCM samples and the first metadata; and transmitting the first group of decoded PCM samples, the first metadata and the frame signature value to the corresponding encoder; and at the encoder: receiving the first group of decoded PCM samples, the first metadata and the frame signature value; determining whether the frame signature value is valid for the first group of decoded PCM samples and the first metadata; and determining at least in part based on whether the frame signature value is valid: whether to generate a first outbound content frame of an outbound bitstream based on the first group of decoded PCM samples; and whether to generate an associated first outbound metadata frame of the outbound bitstream based on the first inbound metadata frame at least in part based on the first inbound descriptor.

[0077] According to another aspect of the present application, a transcoder is provided, configured to: transcode an inbound bitstream including an inbound content frame and an associated inbound metadata frame into an outbound bitstream including an outbound content frame and an associated outbound metadata frame; wherein the inbound content frame represents a signal encoded according to a first codec system, and wherein the outbound content frame represents a signal encoded according to a second codec system; wherein the transcoder is configured to: identify a metadata inbound block from the inbound metadata frame; wherein the metadata inbound block is associated with an inbound descriptor representing one or more attributes of metadata included in the metadata inbound block; and generate an outbound metadata frame according to the inbound metadata frame based on the inbound descriptor.

[0078] According to one aspect of the present application, a system for processing a coded audio bitstream is provided, comprising: a memory for storing the coded audio bitstream, wherein the coded audio bitstream comprises a content frame and a metadata frame, the content frame comprises coded audio content and metadata associated with the coded audio content, and the metadata frame comprises a metadata container having additional metadata different from the metadata of the content frame; an audio decoder for decoding the content frame or the metadata frame; and an extractor for extracting the content frame or the metadata frame, wherein the metadata container comprises a key identifier, one or more metadata payloads and protection data, and wherein, for each of the one or more metadata payloads, the metadata container further comprises a payload identifier, a metadata payload configuration and a size.

[0079] According to another aspect of the present application, a method for processing a coded audio bitstream is provided, comprising: storing a coded audio bitstream, wherein the coded audio bitstream comprises a content frame and a metadata frame, the content frame comprises coded audio content and metadata associated with the coded audio content, and the metadata frame comprises a metadata container having additional metadata different from the metadata of the content frame; decoding the content frame or the metadata frame; and extracting the content frame or the metadata frame, wherein the metadata container comprises a key identifier, one or more metadata payloads and protection data, and wherein, for each of the one or more metadata payloads, the metadata container further comprises a payload identifier, a metadata payload configuration and a size.

[0080] According to another aspect, a software program is described. The software program may be adapted to be executed on a processor and to perform the method steps described in this document when executed on the processor.

[0081] According to another aspect, a storage medium is described. The storage medium may include a software program adapted to be executed on a processor and adapted to perform the method steps described in this document when executed on the processor.

[0082] According to another aspect, a computer program product is described. The computer program may include executable instructions for performing the method steps described in this document when executed on a computer.

[0083] It should be noted that the method and system including its preferred embodiments as described in this patent application can be used alone or in combination with other methods and systems disclosed in this document. In addition, all aspects of the method and system described in this patent application can be combined arbitrarily. Specifically, the features in this application can be combined with each other in any way. BRIEF DESCRIPTION OF THE DRAWINGS

[0084] The present invention is described below in an exemplary manner with reference to the accompanying drawings, in which:

[0085] Figure 1a A block diagram of an example audio content distribution chain including a transcoder is shown;

[0086] Figure 1b An example structure of a metadata frame is shown;

[0087] Figure 2a and Figure 2b shows an example of a timestamp attribute used in a metadata frame;

[0088] Figure 3a and Figure 3b An example of a deduplication attribute used in a metadata frame is shown;

[0089] Figure 4a and Figure 4b shows an example of a replication attribute used in a metadata frame; and

[0090] Figure 5a to Figure 5d and Figure 6a to Figure 6b An example PCM connection transcoder is shown. DETAILED DESCRIPTION

[0091] As described in the background section, audio content is typically associated with metadata, and the audio content is encoded into a joint bitstream comprising a sequence of coded content frames and a sequence of associated metadata containers (also referred to as metadata frames). Fig. 1 shows a block diagram of an example distribution system 100 for audio content. The method and system described in this document are summarized in the context of audio content. However, it should be noted that the method and system are applicable to other types of content such as video content. In a more general sense, the method and system described in this document are applicable to multimedia content such as audio and / or video, wherein the multimedia content is associated with metadata.

[0092] The distribution system 100 includes an encoder 101 configured to encode audio content and provide an encoded bitstream 110 (also referred to as a first encoded bitstream 110 or an inbound encoded bitstream 110). Typically, the first encoded bitstream 110 includes a sequence of encoded content frames 111, wherein the encoded content frames 111 may be associated with corresponding metadata frames 112. The encoder 101 is configured to provide the first encoded bitstream 110 encoded according to a first audio codec system. The first audio codec system may be, for example, one of the following: Dolby E, Dolby Digital Plus, Dolby Digital, Dolby TrueHD, Dolby Pulse, AAC, and / or HE-AAC. The content frame 111 may represent or may include a predetermined number of samples of audio content, such as 1536, 1024, or 512 samples of audio content.

[0093] The first encoded bit stream 110 is provided to the transcoder 103 via a transmission medium or via a storage medium 102. The transcoder 103 is configured to transcode or convert the first encoded bit stream 110 into a second encoded bit stream 120 (also referred to as an outbound bit stream 120), wherein the second encoded bit stream 120 is encoded according to a second audio codec system. The second audio codec system may be different from the first audio codec system. On the other hand, the second audio codec system may be the same as the first audio codec, but using a different configuration, such as a different bit rate, a different frame rate and / or a different channel configuration. The second audio codec system may be, for example, one of the following: Dolby E, Dolby Digital Plus, Dolby Digital, Dolby True HD, Dolby Pulse, AAC and / or HE-AAC. In a similar manner to the first encoded bit stream 110, the second encoded bit stream 120 includes a sequence of content frames 121 and a corresponding sequence of metadata frames 122. The content frames 121 of the second encoded bitstream 120 may have a frame size that is different from the frame size of the content frames 111 of the first encoded bitstream 110. The second encoded bitstream 120 may be provided to the decoder 104 for rendering audio content.

[0094] The metadata frames 112, 122 may have a predetermined structure. In other words, the metadata frames 112, 122 may follow a predetermined syntax. As an example, the metadata frames 112, 122 may follow the so-called evolving frame syntax shown in Table 1. The evolving frame syntax may be used, for example, in the context of a standard multimedia content codec system such as a Dolby Video Broadcasting (DVB) system and / or a Moving Picture Experts Group (MPEG) codec system. It should be noted that the metadata frame syntax shown in Table 1 and subsequent tables are merely examples. The syntax may be varied or modified. In particular, the syntax shown in this document may be extended, for example, by additional fields for providing additional functionality.

[0095]

[0096] Table 1

[0097] The semantics of the parameters of the evolution frame shown in Table 1 may be as follows:

[0098] • key_id may be an identifier of the encryption key used for hashing (ie, for calculating the protection_bits of the protection() field).

[0099] payload_id may be an identifier of the payload of the following application; payload_id END="0000b" may have the following meaning: no further payload is included in this evo_frame();

[0100] • payload_size may indicate the number of bytes in the payload field that follows.

[0101] The evolved frame syntax specifies a metadata frame 112, 122 that may include multiple metadata blocks, where a metadata block is also referred to as a payload. Thus, a metadata frame 112, 122 may include zero metadata blocks, one or more metadata blocks, where each metadata block represents a specific metadata type and / or a specific metadata aspect. Examples of metadata types are:

[0102] Descriptive metadata that describes specific aspects of the content frame 111 associated with the metadata frame 112 (e.g., tempo information and / or harmony information);

[0103] Unrelated metadata, which includes auxiliary data not directly related to the content frame 111 (such as a firmware upgrade for a target decoder that encodes the audio content);

[0104] Control metadata that may be used to control the rendering of one or more samples of the content frame 111 associated with the metadata frame 112 (eg, loudness values ​​of one or more samples of the content frame 111 ).

[0105] Thus, the metadata frame 112 provides a flexible structure that can be extended by additional metadata blocks, when necessary, to describe additional characteristics of the encoded audio content or to convey additional auxiliary data in the bitstream 110. In the event that no metadata is to be transmitted along with the content frame 111, the metadata frame 112 may not include a metadata block, which may be indicated by a payload_id corresponding to a predetermined "END" ID (identifier) ​​in the syntax of the evolution frame of Table 1.

[0106] In this document, it is proposed to add a descriptor to a metadata block, wherein the descriptor describes one or more characteristics or attributes of the metadata included in the associated metadata block. In the syntax of the evolving frame shown in Table 1, the descriptor is called "payload_config()". The transcoder can then use the descriptor to perform efficient transcoding of the metadata block without analyzing the metadata included in the associated metadata block. Therefore, the complexity of metadata transcoding can be significantly reduced.

[0107] In other words, the present document describes a method for transcoding a metadata block (also referred to as a payload) within a metadata frame 112 (e.g., within an evolving frame as shown in Table 1) from one coded bitstream to another bitstream. The transcoding operation may be directed by a specific field within each payload (e.g., field "payload_config()" of the metadata block as shown in Table 1). The transcoding operation may then be specified so that the respective payload may be appropriately transcoded from one coded stream to another coded stream without extracting or parsing the nature of the implicit metadata parameters of the metadata block (i.e., without extracting or parsing the nature of the implicit payload).

[0108] Figure 1b An example structure of a metadata frame 130 (e.g., metadata frame 112) is shown. The metadata frame 130 may include a frame header 131, which indicates general information about the structure of the metadata frame 130 and the association between the metadata frame 130 and the content frame 111 of the coded bitstream 110. The frame header 131 may include some or all fields in the evolution frame of Table 1 that are not related to the payload of the frame. In addition, the metadata frame 130 may include one or more metadata blocks 140 (also referred to as metadata payload 140). The metadata block 140 may include a block header 141, which may indicate the size of the metadata block 140 (referred to as payload_size in Table 1). In addition, the metadata block 140 may include a descriptor 142 (referred to as payload_config() in Table 1), wherein the descriptor 142 may indicate the type of metadata and / or one or more attributes of the metadata, which is included in the data field 143 of the metadata block 140 (i.e., payload() shown in Table 1).

[0109] An example descriptor 142, i.e., an example "payload_config()" field, of a metadata block 140 of an evolution frame is shown in Table 2. It can be seen that the descriptor 142 may include or may represent one or more attributes of the metadata included in the block 140. In the example of Table 2, the attributes are:

[0110] A timestamp parameter representing a sample of the audio content to which the metadata of block 140 can be applied. The timestamp may represent a sample included in the content frame 111 associated with the metadata frame 112 of block 140. Alternatively or additionally, the timestamp may be configured to have a value large enough to represent a sample included in a content frame subsequent to the content frame 111 associated with the metadata frame 112 of block 140.

[0111] • The metadata of block 140 can be applied to a duration parameter representing a number of samples starting from the sample represented by the timestamp.

[0112] A transcoding flag (referred to as the "do not transcode" flag in Table 2) that provides instructions to the transcoder as to whether or not the metadata block 140 is to be transcoded. If the "do not transcode" flag is set, the transcoder may simply ignore or remove the metadata block 140 when transcoding the inbound bitstream 110. This may be useful in cases where the metadata is only relevant to the first codec system of the inbound bitstream 110, and is meaningless to any other codec system to which the bitstream 110 may be transcoded (such as in the case of, for example, generating a cyclic redundancy check (CRC) on data included in the inbound bitstream 110. Typically, the CRC is only meaningful if the encoded data has not been modified, so there is no need to transcode the CRC). In a more general sense, the transcoding flag may be used to identify metadata that is only useful during the decoding process of the inbound bitstream within the transcoder (thereby not requiring a subsequent re-encoding process for generating an outbound bitstream).

[0113] A copy flag that provides instructions to the transcoder as to whether to copy metadata included in the block 140 when the size of the content frame 111 is different before and after transcoding.

[0114] A de-duplication flag that provides instructions to the transcoder as to whether to remove the copy of the metadata included in the block 140 when the size of the content frame 111 is different before and after transcoding.

[0115] A priority parameter that provides an indication of the relative importance of the metadata included in the block 140. For example, if the allowed bit rate of the transcoded second bitstream 120 is reduced relative to the bit rate of the first bitstream 110, the transcoder may select one or more blocks 140 from the metadata frame 130 using the priority parameter.

[0116] An associated flag (referred to as the "now_or_never" flag in Table 2) that provides an indication to the transcoder whether the metadata included in the block 140 is associated with the corresponding content frame 111. Thus, if the "now_or_never" flag is set, the transcoder is aware of the fact that the metadata included in the block 140 should be transcoded immediately or should be discarded (because the "now_or_never" flag indicates that the decoder cannot use the metadata if it is delayed).

[0117]

[0118] Table 2

[0119] In other words, the semantics of the attribute parameters of the descriptor 142 shown in Table 2 may be as follows:

[0120] A timestamp parameter indicating the offset of the sample from the start of the content frame 111 to which the payload 143 in question belongs;

[0121] A duration parameter indicating the time in samples for which the payload 143 in question remains valid;

[0122] dont_transcode flag, which indicates whether the payload 143 in question must be discarded when transcoding (flag=1) or whether transcoding can occur (flag=0);

[0123] A copy flag, when set to 1, indicates that the payload 143 in question needs to be copied during transcoding so that the payload 143 appears in the transcoded block 140 between the timestamp and the timestamp plus the duration. The copy flag may be set, for example, for loudness data to indicate that the frames have the same normalization of dialogue. In a more general sense, the copy flag may be set for metadata that does not have a sense of time. Typically, the copy flag is not set for data that supports a sense of time itself, such as the bitstream of a codec. In other words, the copy flag and / or de-duplicate flag set may not be provided for metadata that is timed internally, wherein the term "timed internally" means that only the exact sequence of metadata blocks is meaningful, i.e., copying or de-duplication will invalidate the metadata. An example of metadata that is timed internally is a different bitstream (different from the content included in the content frame) embedded in a sequence of metadata blocks of a sequence of metadata frames. The payload of such a bitstream should never be copied or de-duplicated. Otherwise, the bitstream will be partially repeated or partially cut. Another example of internally timed data is binary data such as an executable program. If such binary data is transmitted in multiple metadata blocks in multiple metadata frames, duplication or deduplication of metadata blocks will invalidate the meaning of the binary data.

[0124] De-duplication flag: The de-duplication flag can ensure that during transcoding, every metadata block with a specific id in the same outbound metadata frame can be deleted except for the first metadata block that has the flag set to 1. The de-duplication flag can be set, for example, for loudness data that does not need to be present multiple times for each outbound metadata frame 122, such as dialogue normalization.

[0125] · The "now_or_never" flag means that the payload does not have to be delayed when transcoding.

[0126] PCM processing parameters, referred to as "tight_coupling" parameters in Table 2. PCM processing parameters may be used, for example, in the context of a PCM connection transcoder as described below, to inform a PCM connection transcoder how to process metadata for a particular metadata frame associated with a particular content frame, where modifications are made to samples of a signal included in a content frame. The functionality of the PCM processing parameters is described in further detail below in describing the functionality of a PCM connection transcoder.

[0127]

[0128] Table 3

[0129] Table 3 shows the syntax of an example data field 143 of the metadata block 140 .

[0130] As described above, the bitstream syntax used to carry metadata (i.e., the metadata frame 130 including the metadata block 140) may define general metadata attributes (e.g., included in the descriptor 142, i.e., in the payload_config() field shown in Table 2). These attributes still enable metadata to be simply copied from one inbound (i.e., first) bitstream 110 to the outbound (i.e., second) bitstream 120, even if the first codec (for encoding the inbound bitstream 110) and the second codec (for encoding the outbound bitstream 120) use different framing. The manner in which the copying of metadata is performed is guided by the attributes included in the descriptor 142. During the transcoding process, the only thing that may need to be changed may be the attributes themselves. However, modification of the attributes included in the descriptor 142 does not require knowledge of the actual meaning of the metadata included in the data field 143 of the block 140.

[0131] In the following, the example attributes shown in Table 2 are described in more detail. Specifically, it is described how transcoder 103 can use one or more attributes represented by descriptor 142 to perform efficient transcoding of metadata included in metadata block 140.

[0132] Figure 2a and Figure 2b The use of a timestamp parameter included in the descriptor 142 of the metadata block 140 is shown. Figure 2a2 , it is shown how the transcoder 103 may update the timestamp parameter 201 when transcoding metadata from a first bitstream 110 to a second bitstream 120. In the example shown, the timestamp parameter 201 represents the position of a particular sample 202 relative to the end of the associated content frame 111 (i.e., relative to the most recent sample). In this way, the timestamp parameter 201 represents the "delay" of the sample 202 relative to the most recent sample included in the content frame 111. In the example shown in FIG. 2 , the content frame 121 of the second bitstream 120 has a different size than the content frame 111 of the first bitstream 110, specifically, the size of the content frame 121 of the second bitstream 120 is larger than the size of the content frame 111 of the first bitstream 110. Therefore, the particular sample 202 may be located at a different relative position within the content frame 121 of the second bitstream 120 compared to the relative position within the content frame 111 of the first bitstream 110. Specifically, the particular sample 202 may exhibit a different “delay” relative to the most recent sample included in the outbound content frame 121 than relative to the most recent sample included in the inbound content frame 111. Thus, the timestamp parameters 201 included in the metadata frame 112 of the first bitstream 110 may need to be modified when inserted into the metadata frame 122 of the second bitstream 120, thereby producing transcoded timestamp parameters 203.

[0133] Figure 2b The possibility of moving metadata blocks 140 in the bitstream 110, 120 is shown. This can be used to smooth the bitrate of the bitstream 120 after transcoding. As an example, the metadata of a specific block 140 in the metadata frame 112 can be associated with a specific sample 202 (indicated by a timestamp parameter 211) in the content frame 111. As described above, the position of the specific sample 202 can be indicated relative to the sample of the last, i.e., most recent, inbound content frame 111. If it is not necessary for the metadata of the specific block 140 to arrive immediately after the content frame 121 including the sample 202 (as can be indicated by an associated flag (referred to as a "now_or_never" flag in Table 2)), the transcoder can move the specific block 140 to a metadata frame 222 of a content frame 221 after the content frame 121 including the sample 202. The transcoder 103 can update the timestamp parameter 213 so that it points to the correct sample 202.

[0134] Specifically, the timestamp parameter 213 may indicate the position of the sample 202 relative to the last, i.e., the most recent, outbound content frame 221 to which the outbound metadata frame 222 including the timestamp parameter 213 is associated. For this purpose, the timestamp parameter 213 may have a value that exceeds the number of samples included in the content frame 221. In a similar manner, the timestamp parameter 213 may be configured to have a negative value. Such a negative value may be used to indicate a sample 202 included in a future content frame, i.e., a sample 202 included in a content frame after the content frame 221 associated with the metadata frame 222 including the timestamp parameter 213. By doing so, the metadata may be transmitted before one or more samples to which the metadata is associated (e.g., to which the metadata is to be applied).

[0135] In this way, the timestamp parameter 211 (possibly in combination with an associated flag) enables the transcoder 103 to transmit metadata associated with the timestamp 211 in a subsequent metadata frame 222 or a previous metadata frame 222, and enables the transcoder 103 to adjust the timestamp 213 so that it refers to the same PCM sample 202 (even if, after transcoding, the sample 202 is not included in the content frame 221 associated with the metadata frame 222 that includes the particular block 140). Thus, some flexibility is provided to the transcoder 103 to smooth the bit rate of the second bitstream 120.

[0136] It should be noted that the encoder 101 may be configured to include metadata for a sample in a subsequent metadata frame in a similar manner as the transcoder 103. Thus, the encoder 101 may be configured to generate a timestamp 213 pointing to a sample 202 included in a content frame 121 that is not a content frame associated with the metadata frame including the timestamp 213.

[0137] Figure 3a and Figure 3bA possible use case of a deduplication marker represented by a descriptor 142 of a metadata block 140 is shown. In the illustrated scenario, a content frame 121 of the second bitstream 120 represents a higher number of samples (i.e. has a higher frame size) than a content frame 111 of the first bitstream 110. If the frame sizes are different, it may happen that a single content frame 121 of the second bitstream 120 includes samples from more than one content frame 111 of the first bitstream 110. In such a case, the metadata block 140 may be obtained from more than one metadata frame 112 associated with more than one content frame 111 of the first bitstream 110. The transcoder 103 has to determine which metadata blocks of the metadata block 140 are to be included in a single metadata frame 122 of a single content frame 121 of the second bitstream 120. The de-duplication flag of the particular block 140 may indicate to the transcoder 103 that if metadata blocks 140 from multiple metadata frames 112 of the first bitstream 110 are to be merged, the particular block 140 need not be inserted into the metadata frame 122 of the second bitstream 120. In this way, the transcoder 103 may be configured to discard or ignore metadata blocks 140 of the additional metadata frames 112 that have the de-duplication flag set.

[0138] This is Figure 3a , where the outbound content frame 121 (i.e., the content frame 121 of the outbound bitstream 120) includes samples of the inbound content frames 111 and 311 (i.e., the content frames 111, 311 of the inbound bitstream 110). The transcoder 103 must determine which blocks of the blocks 140 of the inbound metadata frames 112, 312 (i.e., the metadata frames 112, 312 of the inbound bitstream 110) are to be included in the outbound metadata frame 122 (i.e., the metadata frame 122 of the outbound bitstream 120) associated with the outbound content frame 121. Figure 3a In the example shown, it is assumed that the deduplication flag is set for at least one or more blocks 140 of the inbound metadata frame 312. As such, the transcoder 103 may be configured to discard the blocks 140 of the inbound metadata frame 312.

[0139] It should be noted that the de-duplication flag of one or more blocks 140 of the inbound metadata frame 112 may also be set. The transcoder 103 may be configured to only discard blocks 140 of the second (or more) metadata frames 312 used to create the outbound metadata frame 122. In other words, the transcoder 103 may be configured to consider the de-duplication flag only when more than one inbound metadata frame 112 is to be considered for generating the outbound metadata frame 122. In this way, the de-duplication flag may be used to prevent "duplication" of a particular type of metadata block 140 while still ensuring that at least one metadata block 140 of the particular type is included.

[0140] Figure 3bAn example case where the deduplication flag is not set is shown. In this case, the transcoder 103 can be configured to consider the block 140 of the multiple inbound metadata frames 112 and 312 for creating the outbound metadata frame 122. Specifically, the transcoder 103 can be configured to insert the block 140 from the inbound metadata frame 312 into the outbound metadata frame 122 if the deduplication flag is not set (even in the case where the outbound metadata frame 122 is generated from the multiple inbound metadata frames 112, 312).

[0141] A de-duplication flag may be used, for example, to identify metadata blocks 140 that are inserted into a plurality of consecutive metadata frames 112, 312 (e.g., into each metadata frame 112, 312 of the bitstream 110). In this way, the de-duplication flag enables the transcoder 103 to easily identify metadata blocks 140 that can be discarded (without having to analyze the metadata stored in the data field 143 of the metadata block 140). Thus, the computational complexity of metadata transcoding is reduced. On the other hand, an unset de-duplication flag indicates that the corresponding metadata block 140 should not be discarded. This may be used for auxiliary data to ensure that the auxiliary data is not discarded even if multiple inbound metadata frames 112, 312 are transcoded into a single outbound metadata frame 122.

[0142] Figure 4a and Figure 4b An example use of a copy marker represented in a descriptor 142 of a metadata block 140 is shown. In the scenario shown, the inbound content frame 111 includes a higher number of samples (i.e., has a larger frame size) than the outbound content frame 121. If the frame sizes are different, it may happen that samples of a single inbound content frame 111 are included in more than one outbound content frame 121, 321. Therefore, the transcoder 103 receives a single inbound metadata frame 112 and must determine in which of the multiple outbound metadata frames 122, 322 to place a particular block of metadata 140. The copy marker may be used to indicate to the transcoder 130 whether a particular block 140 from the inbound metadata frame 112 is to be copied. As shown in FIG. Figure 4a As shown, by setting the copy flag, it can be indicated that the metadata included in the block 140 should be included in each outbound metadata frame 122, 322. On the other hand, an unset copy flag indicates that the metadata block 140 should be transmitted only once. In this way, the transcoder 103 inserts the block 140 from the inbound metadata frame 112 into only a single outbound metadata frame among the multiple outbound metadata frames 122, 322 (e.g., Figure 4b shown).

[0143] As described above, the descriptor 142 of the metadata block 140 may indicate an associated flag (referred to as a "now_or_never" flag in Table 2). The associated flag may indicate that the metadata included in the block 140 may be delayed without affecting the content included in the associated content frame. Thus, if delaying metadata by an arbitrary amount of time is a property of the metadata, the syntax of the descriptor 142 may enable the transcoder 103 to delay the metadata by an arbitrary amount of time. This may be indicated by setting the flag now_or_never to 0. The associated flag enables the transcoder 103 to transmit the metadata included in the block 140, for example, when the underlying audio codec can "afford" the transmission of the metadata, such as when the content frame includes silence. An example of metadata that may be delayed is auxiliary data or binary data that does not need to be transmitted along with a particular content frame 121, such as a firmware upgrade.

[0144] As described in the context of Table 2, the descriptor 142 of the metadata block 140 may represent or include a priority attribute or priority parameter. The priority parameter may represent the relative importance of the metadata of a particular block 140 (e.g., relative to other blocks 140). The transcoder 103 may determine that only a certain number of metadata blocks 140 are to be transcoded and all other metadata blocks in the metadata frame 112 are discarded. This may be required, for example, when transcoding from a higher bitrate inbound bitstream 110 to a lower bitrate outbound bitstream 120. The priority parameter may enable the transcoder 103 to select those blocks 140 of the inbound metadata frame 112 that have the relatively highest priority and discard (or delay) those blocks 140 that have a relatively lower priority.

[0145] The application and / or encoder 101 may provide multiple sets of metadata in the same metadata frame 112, each set of metadata having a different priority. Multiple sets of metadata may be associated with metadata of different qualities. The priority of higher quality metadata may be lower than the priority of lower quality metadata. In this way, the transcoder 103 may be configured to reduce the quality of metadata by taking into account the priority parameter. As an example, if the priority is set in such a way that scalability is possible, that is, if all sets of metadata of higher priority for the same application are transmitted, each set of metadata can be applied, then the transcoder can moderately reduce the quality of metadata without having to know the meaning of the metadata. Specifically, multiple sets of metadata may include incremental metadata, that is, each set of metadata may add some quality to a set of metadata with the next highest priority. Then, the highest quality metadata may be provided by combining all sets of metadata (from the highest priority down to the lowest priority). In this way, the inbound metadata frame 112 may include multiple incremental metadata blocks 140, wherein the metadata block 140 with the highest priority includes a version of metadata with the minimum acceptable quality, and wherein the blocks 140 with successively lower priorities include incremental versions of metadata that enable incremental improvement of the quality of the metadata. In this way, the transcoder 103 may determine the quality of metadata included in the second bitstream 120 by considering the priority parameters of the plurality of blocks 140 of incremental metadata.

[0146] As shown in the example syntax of the metadata frame 112 shown in Table 1, the metadata frame 130 may include a protection field. The protection field may be used to enable the decoder 104 to verify whether the content of the metadata frame 130 and / or the content of the associated content frame has been modified and may therefore be invalid. In other words, the protection field may enable the decoder 104 to verify whether the metadata included in the metadata frame 130 and / or the associated content frame is trustworthy. Table 4 shows an example syntax of the protection field of the metadata frame 130. The protection field may be included in the header 131 of the metadata frame 130.

[0147]

[0148] Table 4

[0149] The semantics of protected fields can be as follows:

[0150] • protection_bits_frame may include the truncated protection payload of the current frame (including the content frame and / or the associated metadata frame).

[0151] • protection_bits_history may include the truncated protection payload of the current frame and the truncated protection payload of the frame before the current frame (including content frames and / or associated metadata frames).An example scheme for securing a sequence of frames is described in WO2011 / 015369, the contents of which are incorporated herein by reference.

[0152] In this way, the protection field may include one or more encrypted values. One encrypted value may be generated based on metadata included in the current metadata frame (including the protection field) and / or based on a content frame associated with the current metadata frame. In this way, it may be ensured that the isolated metadata frame and / or the associated content frame are not modified. Another encrypted value may be generated based on metadata included in the current metadata frame and one or more previous metadata frames (and based on the corresponding associated content frames). In this way, it may be ensured that the content frame sequence and / or the metadata frame sequence are not modified.

[0153] By applying a one-way function to a set of one or more metadata frames 112, 312 and / or associated content frames 111, 311, an encrypted value can be determined at the encoder 101. Specifically, a key value and a cryptographic hash function (a so-called one-way function) can be used to generate an encrypted value. Specifically, an encrypted value can be generated by calculating an HMAC-MD5 (hash message authentication code) value of the data included in one or more metadata frames 112, 312 and the data included in one or more associated content frames 111, 311. In addition, the generation of the encrypted value can include truncating the HMAC-MD5 value, for example, truncating the HMAC-MD5 value to 16, 24, 32, 48, 64 or 128 bits. Truncation can be beneficial to reduce the overhead required for the encrypted value in the encoded bit stream 110 including the metadata frames 112, 312. It should be noted that other hash functions such as SHA-1 or SHA-256 can be used instead of MD5. Furthermore, it should be noted that, for example, in cases where protection of metadata is not required, the encoder 101 may be configured to send an encryption value of 0 bits, ie, to send no encryption value.

[0154] In more detail, the encrypted values ​​of one or more content frames 111, 311 and the encrypted values ​​of one or more metadata frames 112, 312 can be determined by using a cryptographic hash function H(.) and a "secret" key K (also called a security key). The "secret" key K is usually padded on the right with additional 0s to the block size of the hash function H(.) to determine the hash message authentication code (HMAC) of the one or more content frames 111, 311 and the one or more metadata frames 112, 312. Let the || symbol represent concatenation, let the ⊕ symbol represent exclusive OR, and let the outer padding opad=0x5c5c5c…5c5c and let the inner padding ipad=0x363636…3636 be constants of the length of the block size of the hash function H(.), then the HMAC value of the one or more content frames 111, 311 and the one or more metadata frames 112, 312 can be written as

[0155]

[0156] Where m is the combined bit sequence of one or more content frames 111, 311 and one or more metadata frames 112, 312. The block size used by the MD5 or SHA-1 or SHA-256 hash functions is typically 512 bits. The size of the output of the HMAC operation is the same as the size of the underlying hash function, i.e., 128 bits in the case of MD5 or 160 bits in the case of SHA-1.

[0157] Thus, the protection field may include at least two encrypted values

[0158] A frame encryption value (referred to as "protection_bits_frame" in Table 4), which indicates the reliability of each content frame 111 and its associated metadata frame 112. The frame encryption value can be used to identify whether the data of each content frame 111 and its associated metadata frame 112 have been changed. The frame encryption value can be determined using a message m including a bit sequence of each content frame 111 and its associated metadata frame 112 (or a payload included in each content frame 111 and its associated metadata frame 112).

[0159] A historical encryption value (referred to as "protection_bits_history" in Table 4), which indicates the reliability of the sequence of at least two content frames 111, 311 and their associated at least two metadata frames 112, 312. The historical encryption value may be used to identify whether the sequence of at least two content frames 111, 311 and their associated metadata frames 112, 312 has been changed. The historical encryption value may be determined using a message m including a bit sequence of at least two content frames 111, 311 and their associated at least two metadata frames 112, 312 (or payloads included in at least two content frames 111, 311 and their associated at least two metadata frames 112, 312).

[0160] As described above, the encrypted value is determined using a security key K, which is usually known only to the encoder 101 and the decoder 104. In this document, it is proposed to achieve multi-level trust by allowing the use of different security keys K that provide different trust levels. As an example, at least two levels of trusted keys may be provided.

[0161] A highly secure key K1, which may not be disclosed to any party other than the entity providing the components 101, 103, 104 along the distribution chain 100. Such an entity may be a provider of codec systems used along the distribution chain 100 (e.g. Dolby Laboratories). In particular, such an entity may be a provider of encoders and decoders used along the distribution chain 100. By keeping the highly secure key not disclosed, it may be ensured that a decoder 104 rendering an audio signal included in a received bitstream 120 may be confident that the metadata included in the metadata frames 122, 322 of the received bitstream 120 is authentic and has not been modified in an unauthorized manner along the distribution chain 100.

[0162] A medium security key K2, which may be disclosed to other parties, such as parties operating along some of the components 101, 103, 104 of the distribution chain 100 (e.g. licensees of the provider of the codec system). If a decoder 104 receives a bitstream 120 which has been protected using the medium security key K2, the decoder 104 knows that the bitstream 120 includes metadata (in metadata frames 122, 322) which has been processed according to some policy of the operator of the distribution chain 100 which may differ from the policy of the provider of the codec system (which holds the highly secure key K1).

[0163] A representation of the security key K used by the encoder 101 may be provided in the metadata frame 130 (e.g., in the header 131 of the metadata frame 130). The above is shown in Table 1 showing the key_id parameter. As shown in Table 4, the key_id parameter may include an index of a predetermined number of security keys, thereby enabling the decoder 104 to determine the security key K, which is used to determine one or more encryption values, wherein the one or more encryption values ​​may be included in the protection() field of the metadata frame 130. The decoder 104 may then use the identified security key to determine the one or more encryption values ​​in the same manner as the corresponding encoder 101 performs. The encryption value determined by the decoder 104 may be referred to as a verification encryption value. The verification encryption value is then compared with the encryption value stored in the metadata frame 103. In the case of a match, it is confirmed that the individual frames and / or the sequence of frames have not been modified. On the other hand, in the case of a mismatch, it is confirmed that the individual frames and / or the sequence of frames have been modified.

[0164] Alternatively or in addition to providing a representation of the security key in the metadata frame 130, the decoder 104 may be configured to determine multiple sets of verification encryption values ​​using multiple predetermined security keys known to the decoder 104. If one of the multiple sets of verification encryption values ​​matches the encryption value included in the metadata frame 130, the decoder 104 knows which security key has been used and the respective frame and / or the sequence of frames has not been modified. On the other hand, the fact that all sets of verification encryption values ​​do not match indicates that the respective frame and / or the sequence of frames has been modified.

[0165] Being able to detect which key was used to secure the bitstreams 110, 120 in the decoder 104 and transcoder 103 enables applications to make more fine-grained decisions about what to do with data of different trustworthiness. The decision may be different depending on the security key detected. Specifically, a highly secure key may be detected, a medium secure key may be detected, or no valid key may be detected and the security check fails.

[0166] Thus, when multiple different security keys (attached to different trust levels) are used, various levels of trustworthiness can be provided, compared to solutions that use only a single security key and can only make a binary decision on whether data can be trusted.

[0167] As described in the context of FIG. 1 , the distribution chain 100 of audio content may include a transcoder 103 configured to convert an inbound bitstream 110 into an outbound bitstream 120. The transcoding performed by the transcoder 103 may be related to transcoding from a first audio codec system to a possibly different second audio codec system. Alternatively or additionally, the transcoding may be related to a change in the bitrate of the outbound bitstream 120 relative to the bitrate of the inbound bitstream 110. The transcoder 103 may include a decoder for decoding the inbound bitstream 110 into a PCM (pulse code modulation) audio signal. In addition, the transcoder 103 may include an encoder for encoding the PCM audio signal into the outbound bitstream 120. Such a transcoder 103 may be referred to as a "PCM connection" transcoder because one or more decoders (for decoding one or more inbound bitstreams 110) are connected to one or more encoders (for encoding one or more outbound bitstreams 120) via linear PCM.

[0168] The transcoder 103 may be a so-called professional transcoder as a device used by professional content providers such as broadcasters. As described above, the transcoder 103 may be configured to accept an inbound bitstream 110 in a first format (e.g., Dolby E) and transcode the inbound bitstream 110 into a different format (e.g., Dolby Digital Plus). Such a transcoder 103 typically includes one or more decoders (for decoding the inbound bitstream 110) and one or more encoders (for encoding the outbound bitstream 120).

[0169] A PCM connection transcoder may have one or more PCM processing stages between the decoder and the encoder. Loudness leveling is one example of such PCM processing. Other examples of PCM processing include sample rate conversion, channel downmixing, and / or channel upmixing.

[0170] Such a PCM connection transcoder 103 raises challenges regarding the reliability, protection, and trust issues discussed above. As discussed above, the inbound bitstream 110 may include metadata frames 112, 312 protected using one or more encryption values ​​(as shown in Tables 1 and 4, included in, for example, a protection field of the metadata frame 112, 312). The PCM connection transcoder 103 enables a user to modify PCM data obtained from a content frame 111, 311, thereby potentially invalidating metadata included in the associated metadata frame 112, 312, and thereby potentially compromising the credibility of the metadata.

[0171] In this document, methods and systems are described for ensuring the authenticity of metadata in a transcoder 103. In particular, the described methods and systems enable the authenticity of metadata included in a metadata frame 112, 312 to be maintained even when the transcoder 103 is connected using PCM.

[0172] Figure 5a to Figure 5d An example PCM connection transcoder 503, 513, 523, 533 is shown, respectively. The transcoder includes a decoder 504, which is configured to convert the inbound bitstream 110 (which includes a sequence of content frames 111 and an associated sequence of metadata frames 112) into PCM data and metadata, respectively. The decoder 504 can be configured to verify the correctness of the inbound bitstream 110 using the above-mentioned protection scheme. For this purpose, the decoder 504 may know some or all of the predetermined security keys.

[0173] Typically, the decoder 504 provides a set of unprotected PCM data and metadata (e.g., on a frame-by-frame basis). In other words, the decoder 504 typically decodes each content frame 111 and the associated metadata frame 112, and provides a corresponding set of PCM data and metadata without protection. In this way, the decoder 504 provides a sequence of multiple sets of PCM data and metadata from a sequence of corresponding content frames 111 and metadata frames 112. The sequence of multiple sets of PCM data and metadata can be modified by a transcoder and can then be transmitted to the following encoder 501: the encoder 501 is configured to convert the sequence of (possibly modified) multiple sets of PCM data and metadata into an outbound bitstream 120. In this context, the encoder 501 is generally unable to verify whether the sequence of (possibly modified) multiple sets of PCM data and metadata has been modified in a perceptible manner. In other words, the encoder 501 may not be able to verify the credibility of the sequence of (possibly modified) multiple sets of PCM data and metadata.

[0174] In this document, it is proposed to enable the decoder 504 to provide one or more signature values ​​based on one or more sets of PCM data and metadata, thereby enabling the protection of the PCM connection between the decoder 504 and the encoder 501. As described above, the signature value can be determined in a similar manner to the encryption value. However, the signature value can also use a message m including one or more sets of PCM data and metadata (in contrast to one or more content frames and associated metadata frames). Specifically, the decoder 504 can be configured to

[0175] Determining a frame signature value based on each set of PCM data and associated metadata; and

[0176] • Determining a historical signature value based on two or more consecutive sets of PCM data and associated metadata.

[0177] In other words, within the PCM domain of the PCM connection transcoder 503 (i.e., between the decoder 504 and the encoder 501), one or more signatures (also referred to as signature values) can be used to "protect" the credibility of the content. The decoder 504 can be configured to generate one or more signature values ​​as output. When one or more signature values ​​are generated by the decoder 504, one or more signature values ​​can be calculated based on the union of PCM data and conventional metadata (obtained from the content frame) and additional metadata (obtained from the associated metadata frame). In this way, for each frame of the inbound bit stream 110, one or more signature values ​​can be determined based on the decoded groups of PCM data and metadata. The corresponding encoder 501 can use these one or more signature values ​​to verify whether a received set of PCM data and metadata has been modified and / or whether it is trustworthy.

[0178] The encoder 501 accepts one or more signature values ​​together with PCM data, conventional metadata and additional metadata as input. The encoder 501 can then check the signature value for other inputs (i.e., for one or more sets of PCM data and metadata received). If other inputs have been modified / tampered with, the signature check will fail and the encoder will take appropriate action. Verification of one or more signature values ​​can be performed at the encoder 501 by the following operations: Determine the verification signature value based on one or more sets of PCM data and metadata received (in a similar manner as described for the encrypted value).

[0179] In this way, the credibility of the decoded PCM data (and associated metadata) can be maintained in the PCM connection transcoder 503 by enabling the decoder 504 to determine one or more signature values ​​based on the decoded PCM data and the associated metadata, and enabling the corresponding encoder 501 to verify the authenticity of the PCM data to be encoded (and the associated metadata) based on the one or more signature values. As described above, the determination of one or more signature values ​​and their verification can be performed based on a single or multiple leveled security keys K1 and K2, wherein the one or more security keys can be known only to the decoder 504 and the encoder 501, and are generally not known to the entity that performs PCM processing on the connection between the decoder 504 and the encoder 501.

[0180] like Figure 5a to Figure 5d As shown, the use of one or more signature values ​​enables a variety of use cases. Figure 5aA transcoder 503 is shown in which no PCM processing is performed between the decoder 504 and the encoder 503. Thus, the protected data 510 (including one or more sets of PCM data and associated metadata and one or more associated signatures) is not modified and the chain of trust is maintained in the transcoder 503. Thus, Figure 5a The transcoder 503 is configured to receive an inbound bitstream 110 including a sequence of protected and trusted inbound content frames 111 and associated inbound metadata frames 112 (also referred to as evolution frames), and provide an outbound bitstream 120 including a sequence of protected and trusted outbound content frames 121 and associated outbound metadata frames 122. The above is ensured by using one or more signatures to protect the decoded PCM data, regular metadata, and additional metadata (also referred to as evolution metadata). The encoder 501 verifies the one or more signatures and transmits the additional metadata as an outbound metadata frame 122 to the outbound bitstream 120. Figure 5a The use case shown in may be applicable, for example, to transcoding a bitstream from a first bitrate to a second bitrate.

[0181] Figure 5b A PCM-connected transcoder 513 is shown whose chain of trust is broken by an untrusted PCM processing stage 505. The PCM processing stage 505 receives protected data 510 and modifies the data 510. The PCM processing stage 505 is "untrusted" because the PCM processing stage 505 does not know the security key K used by the decoder 504. Therefore, the modified data 511 includes one or more sets of modified PCM data and associated metadata and one or more invalid signatures. The encoder 501 is configured to determine the invalidity of the signature and can be configured to take appropriate action. Specifically, the encoder 501 can be configured to discard additional metadata from the inbound metadata frame 112, thereby providing an outbound bitstream 120 that includes only a sequence of content frames 121 but does not include an associated metadata frame 122. By doing so, it is ensured that the transcoder 513 does not forward untrusted additional metadata. In addition, due to the fact that the bitstream 120 does not include the metadata frame 122, the bitstream 120 does not include the above-mentioned encrypted value (protection field from the metadata frame 122). In this way, decoder 104 may identify bitstream 120 as untrusted.

[0182] As described above, the encoder 501 may be configured to discard the additional metadata from the inbound metadata frame 112 if one or more signature values ​​are invalid. As described in the context of Table 2, the metadata block 140 of the inbound metadata frame 112 may represent a corresponding descriptor 142 that describes one or more attributes of the corresponding metadata block 140. One of these attributes may be a PCM processing parameter (referred to as a tight_coupling parameter in Table 2). The encoder 501 may be configured to use the PCM processing parameters of the metadata block 142 to determine whether to include the metadata included in the metadata block 142 in the outbound bitstream 120. Specifically, the PCM processing parameters may indicate to the encoder 501 that the metadata from the block 140 of the inbound metadata frame 112 is to be included in the outbound bitstream 120 even if the PCM samples of the associated content frame 111 have been modified.

[0183] Table 5 shows example semantics of a PCM processing parameter (i.e., the tight_coupling parameter of Table 2). In the example shown, a value of "0" for the PCM processing parameter indicates that the payload 143 (i.e., metadata) of the metadata block 140 should be included in the outbound bitstream 120 only when no PCM processing occurs, e.g., only when one or more signature values ​​have been verified by the encoder 501. On the other hand, a value of "3" for the PCM processing parameter may indicate that the payload 143 of the block 140 should always be included in the outbound bitstream 120 even if the PCM samples have been modified, e.g., even if one or more signature values ​​have not been verified. Furthermore, the PCM processing parameter may have values ​​that represent intermediate situations, i.e., the PCM processing parameter may have values ​​that represent PCM processing conditions that need to be satisfied to include the payload 143 in the outbound bitstream 120 or values ​​that represent PCM processing conditions in the case where the payload 143 is not included in the outbound bitstream 120.

[0184] The PCM processing stage 505 may be configured to notify the encoder 501 about the processing that has been performed on the PCM samples in the PCM processing stage 505. In other words, the PCM processing stage 505 may be configured to notify the encoder 501 of PCM processing conditions (e.g., conversion of the sample rate of the PCM samples, inclusion of system sounds in the PCM samples, modification of metadata, modification of the channel configuration (e.g., modifying a mono signal into a stereo signal, or downmixing a 5.1 multi-channel signal into a stereo signal), adjustment of loudness, etc.). In this way, the encoder 501 may be configured to receive a representation of the PCM processing conditions from the PCM processing stage 505. Furthermore, the encoder 501 may be configured to process the metadata of the metadata block 140 based on the received PCM processing conditions and based on the values ​​of the PCM processing parameters (e.g., according to the semantics of Table 5).

[0185]

[0186]

[0187] Table 5

[0188] Figure 5c The case of a PCM-connected transcoder 523 configured to perform trusted PCM processing is shown. This can be achieved by combining the PCM processing stage 506 with an additional re-signing stage 507. For this purpose, one or more security keys can be provided to the trusted party, thereby enabling the trusted party to re-sign the modified data 511. As an example, a medium security key K2 can be provided to the trusted party. Therefore, the modified data 511 can be re-signed (i.e., one or more signature values ​​can be determined based on the modified data 511 using the medium security key K2), thereby providing protected modified data 512 (including a sequence of multiple sets of modified PCM data and associated metadata and one or more new signatures). The encoder 501 can be configured to: verify the new signature and generate a trusted outbound bitstream 120 including a sequence of content frames 121 and a sequence of associated metadata frames 122. Additionally, encoder 501 may be configured to determine that a chain of trust has been broken and a new chain has been created because re-signing stage 507 may have used a different security key (e.g., medium security key K2) than decoder 504 (which may have used high security key K1).

[0189] Figure 5d A block diagram of a PCM-connected transcoder 533 including a PCM processing stage 509 in an encoder 501 is shown. Specifically, the transcoder 533 is configured to maintain a chain of trust by ensuring that the PCM processing is performed by an entity (e.g., the encoder 501) that knows the security key used by the decoder 504 to determine one or more signature values. The encoder 501 is configured to verify one or more signatures of the protection data 510. The internal PCM processing stage 508 can then modify the received multiple sets of PCM data and associated metadata. In addition, the encoder 501 can include a metadata update unit 509 configured to update the metadata frame to which the modifications performed in the PCM processing stage 508 are performed. Specifically, the metadata update unit 509 can be configured to determine an updated encryption value based on the transcoded content frame 121 and the metadata frame 122. The updated encryption value can then be included in the metadata frame 122 for transmission to the decoder 104.

[0190] Figure 6a and Figure 6b Another representation of transcoders 503, 513, 523, and 533, respectively, is provided.

[0191] In this document, methods and systems for transcoding metadata have been described. These methods and systems enable metadata to be transcoded with reduced computational complexity. In particular, it is proposed to provide descriptors for metadata blocks so that a transcoder can transcode metadata based solely on the descriptors without analyzing the actual metadata included in the metadata blocks. By doing so, the complexity of the transcoder can be significantly reduced. In addition, this document provides methods and systems for protecting metadata frames and for protecting PCM data in a PCM-connected transcoder. Therefore, it can be ensured that a receiver of transcoder metadata is provided with an indication of the credibility of the received metadata.

[0192] The methods and systems described in this document can be implemented as software, firmware and / or hardware. Certain components can be implemented, for example, as software running on a digital signal processor or microprocessor. Other components can be implemented, for example, as hardware and or as a dedicated integrated circuit. The signals encountered in the described methods and systems can be stored in a medium such as a random access memory or an optical storage medium. The signals encountered in the described methods and systems can be transmitted via a network such as a radio frequency network, a satellite network, a wireless network or a wired network such as the Internet. Typical devices using the methods and systems described in this document include portable electronic devices or other consumer devices for storing and / or rendering audio signals.

[0193] The present technology may also be configured as follows.

[0194] (1) A transcoder (103) configured to: transcode an inbound bitstream (110) comprising inbound content frames (111) and associated inbound metadata frames (112) into an outbound bitstream (120) comprising outbound content frames (121) and associated outbound metadata frames (122); wherein the inbound content frames (111) represent signals encoded according to a first codec system, and wherein the outbound content frames (121) represent signals encoded according to a second codec system; wherein the transcoder (103) is configured to:

[0195] - identifying an inbound block of metadata (140) from the inbound metadata frame (112); wherein the inbound block of metadata (140) is associated with an inbound descriptor (142) representing one or more attributes of metadata included in the inbound block of metadata (140); and

[0196] - generating the outbound metadata frame (122) from the inbound metadata frame based on the inbound descriptor (142).

[0197] (2) The transcoder (103) of (1), wherein the transcoder (103) is configured to generate the outbound metadata frame (122) by:

[0198] - copying metadata from said inbound block (140) to the outbound block (140);

[0199] as well as

[0200] - inserting the outbound block (140) into the outbound metadata frame (122); wherein the copying and the inserting are subject to the one or more attributes represented by the inbound descriptor (142).

[0201] (3) The transcoder (103) of (2), wherein the transcoder (103) is configured to generate the outbound metadata frame (122) by generating an outbound descriptor (142) of the outbound block (140) based on the inbound descriptor (142) of the inbound block (140).

[0202] (4) The transcoder (103) of (3), wherein the transcoder (103) is configured to: modify one or more attributes represented by the inbound descriptor (142) to generate the outbound descriptor (142); wherein the outbound descriptor (142) represents the modified one or more attributes.

[0203] (5) A transcoder (103) according to any of the preceding items, wherein the transcoder (103) is configured to: generate the outbound metadata frame (122) from the inbound metadata frame (112) based solely on the one or more attributes represented by the inbound descriptor (142).

[0204] (6) A transcoder (103) according to any of the preceding items, wherein the transcoder (103) is configured to generate the outbound metadata frame (122) based on the inbound metadata frame (112) without analyzing the metadata included in the inbound block (140).

[0205] (7) The transcoder (103) according to any of the preceding items, wherein the one or more attributes include one or more of the following:

[0206] - a timestamp parameter representing a sample of the signal; wherein the metadata of the inbound block (140) is associated with the sample of the signal;

[0207] - a duration parameter representing a number of samples of the signal; wherein the metadata of the inbound block (140) is associated with the number of samples of the signal;

[0208] - a transcoding parameter indicating whether the inbound block (140) is to be transcoded into the outbound bitstream (120);

[0209] - a replication parameter indicating whether the metadata of the inbound block (140) is to be included in each outbound metadata frame (122, 322) generated from the inbound metadata frame (112);

[0210] a deduplication parameter indicating whether metadata of the inbound block (140) is to be discarded by the transcoder (103) if the outbound metadata frame (122) is generated from a plurality of inbound metadata frames (112, 312);

[0211] - a priority parameter indicating the importance of the metadata of said inbound block (140) relative to one or more other inbound blocks (140) of metadata;

[0212] - an associated parameter indicating whether the metadata of the inbound block (140) may be inserted into a delayed outbound metadata frame (322) following the outbound metadata frame (112); and / or

[0213] - a PCM processing parameter indicating whether metadata of the inbound block (140) is to be discarded by the transcoder (103) in case modifications are made to the data comprised in the inbound content frame (111).

[0214] (8) The transcoder (103) according to any one of the preceding items, wherein

[0215] - the one or more attributes include a timestamp parameter (201) representing a sample (202) of the signal, the metadata of the inbound block (140) being associated with the sample (202) of the signal; wherein the timestamp parameter (201) of the inbound descriptor (142) represents the sample (202) of the signal related to the inbound content frame (111);

[0216] - the transcoder (103) is configured to generate an outbound block (140) from the inbound block (140); and

[0217] - the transcoder (103) being configured to generate an outbound descriptor (142) of the outbound block (140) by modifying the timestamp parameter (201) of the inbound descriptor (142) such that the timestamp parameter (203) of the outbound descriptor (142) represents a sample (202) of the signal related to the outbound content frame (121).

[0218] (9) The transcoder (103) according to any one of the preceding items, wherein

[0219] - the one or more attributes include a timestamp parameter (201) representing a sample (202) of the signal, the metadata of the inbound block (140) being associated with the sample (202) of the signal; wherein the timestamp parameter (201) of the inbound descriptor (142) represents the sample (202) of the signal related to the inbound content frame (111);

[0220] - the transcoder (103) is configured to generate an outbound block (140) based on the inbound block (140);

[0221] - the transcoder (203) is configured to: insert the outbound block (140) into a delayed outbound metadata frame (222);

[0222] - said delayed outbound metadata frame (222) is associated with a delayed outbound content frame (221) not comprising said sample (202) of said signal; and

[0223] - the transcoder (103) is configured to generate an outbound descriptor (142) of the outbound block (140) by modifying a timestamp parameter (201) of the inbound block (140) such that a timestamp parameter (213) of the outbound descriptor (142) represents a sample (202) of the signal related to the delayed outbound content frame (221);

[0224] (10) The transcoder (103) according to any one of the preceding items, wherein

[0225] - the one or more attributes include a copy parameter indicating whether the metadata of the inbound block (140) is to be included in each outbound metadata frame (122, 322) generated from the inbound metadata frame (112); and

[0226] - the transcoder (103) being configured to generate a plurality of outbound metadata frames (122, 322) from the inbound metadata frame (112) by taking into account the replication parameter.

[0227] (11) The transcoder (103) according to (10), wherein the transcoder (103) is configured to

[0228] - determining that the replication parameter indicates that metadata of the inbound block (140) is to be included in each outbound metadata frame (122, 322) generated from the inbound metadata frame (112);

[0229] - inserting the metadata of the inbound block (140) into each outbound metadata frame of the plurality of outbound metadata frames (122, 322).

[0230] (12) A transcoder (103) according to any one of (10) to (11), wherein the copy parameter includes a flag, which can be set to indicate that the metadata of the inbound block (140) is to be included in each outbound metadata frame (122, 322) generated based on the inbound metadata frame (112), or the flag can be set to indicate that the metadata of the inbound block (140) is not to be included in each outbound metadata frame (122, 322) generated based on the inbound metadata frame (112).

[0231] (13) The transcoder (103) according to any one of (10) to (12), wherein

[0232] - the transcoder (103) is configured to generate a plurality of outbound content frames (121, 321) based on the inbound content frame (111); and

[0233] - the plurality of outbound content frames (121, 321) are associated with corresponding outbound metadata frames of the plurality of outbound metadata frames (122, 322).

[0234] (14) The transcoder (103) according to any of the preceding items, wherein the one or more attributes include

[0235] a deduplication parameter indicating whether metadata of the inbound block (140) may be discarded by the transcoder (103) if the outbound metadata frame (122) is generated from a plurality of inbound metadata frames (112, 312);

[0236] - the transcoder (103) being configured to generate the outbound metadata frame (122) from a plurality of inbound metadata frames (112) of the inbound bitstream (110) by taking into account the deduplication parameter.

[0237] (15) The transcoder (103) according to (14), wherein

[0238] - the plurality of inbound metadata frames (112) comprises a plurality of inbound blocks of metadata (140), each of the inbound blocks (140) being associated with a respective deduplication parameter indicating that metadata of the inbound block (140) may be discarded by the transcoder (103); and

[0239] - the transcoder (103) is configured to: for all inbound metadata frames except one inbound metadata frame from the plurality of inbound metadata frames (112, 312), discard metadata of the plurality of inbound blocks (140) to generate the outbound metadata frame (122).

[0240] (16) The transcoder (103) according to any one of (14) to (15), wherein

[0241] - the transcoder (103) is configured to generate the outbound content frame (121) based on a plurality of inbound content frames (111, 311); and

[0242] - the plurality of inbound content frames (111, 311) are associated with respective inbound metadata frames of the plurality of inbound metadata frames (112, 312).

[0243] (17) A transcoder (103) according to any one of (14) to (16), wherein the de-duplication parameters include a mark, which can be set to indicate that: if the outbound metadata frame (122) is generated based on multiple inbound metadata frames (112, 312), the metadata of the inbound block (140) can be discarded by the transcoder (103); or the mark can be set to indicate that: if the outbound metadata frame (122) is generated based on multiple inbound metadata frames (112, 312), the metadata of the inbound block (140) cannot be discarded by the transcoder (103).

[0244] (18) The transcoder (103) according to any one of the preceding items, wherein

[0245] - said one or more attributes include a priority parameter representing a relative importance of the metadata of said inbound block (140) relative to one or more other inbound blocks (140) of metadata;

[0246] - the inbound metadata frame (112) comprises a plurality of inbound blocks (140) having descriptors (142) representing different values ​​of the priority parameter; and

[0247] - the transcoder (103) being configured to generate the outbound metadata frame (122) from the plurality of inbound chunks (140) in accordance with the priority parameter of the plurality of inbound chunks (140).

[0248] (19) The transcoder (103) according to (18), wherein

[0249] - the plurality of inbound blocks (140) are associated with an incremental priority parameter representing an incremental priority;

[0250] - the plurality of inbound chunks (140) include incremental metadata such that combined metadata of the plurality of inbound chunks (140) provides high quality metadata and metadata of an inbound chunk (140) having a highest relative priority among the plurality of inbound chunks (140) provides degraded quality metadata; and

[0251] The transcoder (103) is configured to generate the outbound metadata frame (122) based on one or more inbound blocks of the plurality of inbound blocks (140) such that the quality of the metadata included in the outbound metadata frame (122) can be scalably degraded.

[0252] (20) The transcoder (103) according to any one of the preceding items, wherein

[0253] - the one or more attributes include an associated parameter indicating whether metadata of the inbound block (140) may be inserted into a delayed outbound metadata frame (222) subsequent to the outbound metadata frame (112);

[0254] - the transcoder (103) being configured to insert metadata from the inbound block (140) into the outbound metadata frame (122) based on the associated parameters and based on a bit rate limit on the outbound bitstream (120).

[0255] (21) The transcoder (103) according to (20), wherein

[0256] - the transcoder is configured to insert metadata from the inbound block (140) into a delayed outbound metadata frame (222) following the outbound metadata frame (122) if the associated parameter indicates that metadata from the inbound block (140) may be delayed.

[0257] (22) The transcoder (103) according to any one of the preceding items, wherein

[0258] - the inbound metadata frame (112) and the outbound metadata frame (122) follow a common syntax;

[0259] - the common syntax enables a metadata frame (130) to include zero metadata blocks (140), one or more metadata blocks (140);

[0260] - Each metadata block (140) represents a corresponding descriptor (142) representing one or more attributes of the metadata included in the corresponding metadata block (140).

[0261] (23) The transcoder (103) according to any of the preceding items, further configured to

[0262] - generating the outbound content frame (121) from the inbound content frame (111) using a decoder of the first codec system and an encoder of the second codec system.

[0263] (24) The transcoder (103) according to any one of the preceding items, wherein

[0264] - the signal comprises an audio signal; and / or

[0265] - said inbound content frame (111) represents some or all samples of a frame of said signal; and

[0266] - the outbound content frame (121) represents some or all samples of a frame of the signal.

[0267] (25) The transcoder (103) according to any one of the preceding items, wherein

[0268] - the first codec system is different from the second codec system; and / or

[0269] - the first codec system and the second codec system comprise one or more of the following: Dolby E, Dolby Digital Plus, Dolby Digital, Dolby TrueHD, Dolby Pulse, AAC and / or HE-AAC.

[0270] (26) The transcoder (103) of any preceding item, wherein the bit rate of the outbound bitstream (120) is different from the bit rate of the inbound bitstream (110).

[0271] (27) A method for transcoding an inbound bitstream (110) comprising inbound content frames (111) and associated inbound metadata frames (112) into an outbound bitstream (120) comprising outbound content frames (121) and associated outbound metadata frames (122); wherein the inbound content frames (111) represent signals encoded according to a first codec system, and wherein the outbound content frames (121) represent signals encoded according to a second codec system; wherein the method comprises:

[0272] - identifying an inbound block of metadata (140) from the inbound metadata frame (112); wherein the inbound block of metadata (140) is associated with an inbound descriptor (142) representing one or more attributes of metadata included in the inbound block of metadata (140); and

[0273] - generating the outbound metadata frame (122) from the inbound metadata frame (112) based on the inbound descriptor (142).

[0274] (28) An encoded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the metadata frame (112) comprises a metadata block (140); wherein the metadata block (140) is associated with a descriptor (142) representing one or more attributes of the metadata included in the metadata block (140).

[0275] (29) An encoder (101) configured to generate an encoded bitstream (110) comprising content frames (111) and associated metadata frames (112); wherein the content frames (111) represent signals encoded according to a first codec system; wherein the encoder (101) is configured to

[0276] - Generate metadata block (140);

[0277] - determining a descriptor (142) associated with the metadata block (140); wherein the descriptor (142) represents one or more attributes of metadata included in the metadata block (140); and

[0278] - inserting the metadata block (140) into the metadata frame (112).

[0279] (30) The encoder (101) according to (29), wherein

[0280] - the one or more attributes include a timestamp parameter (213) representing a sample (202) of the signal, the metadata of the block (140) being associated with the sample (202) of the signal;

[0281] - the encoder (101) is configured to insert the block (140) into a delayed metadata frame (222);

[0282] - said delayed metadata frame (222) is associated with a delayed content frame (221) not comprising said sample (202) of said signal; and

[0283] - the encoder (101) is configured to generate a descriptor (142) of the block (140) such that a timestamp parameter (213) of the descriptor (142) represents a sample (202) of the signal relating to the delayed content frame (221).

[0284] (31) A method for generating an encoded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the method comprises

[0285] - Generate metadata block (140);

[0286] - determining a descriptor (142) associated with the metadata block (140); wherein the descriptor (142) represents one or more attributes of the metadata included in the metadata block (140); and

[0287] - inserting the metadata block (140) into the metadata frame (112).

[0288] (32) An encoder (101) configured to generate an encoded bitstream (110) comprising content frames (111) and associated metadata frames (112); wherein the content frames (111) represent signals encoded according to a first codec system; wherein the encoder (101) is configured to

[0289] - Generate metadata block (140);

[0290] - inserting the metadata block (140) into the metadata frame (112);

[0291] -selecting a security key from a plurality of predetermined security keys; wherein the plurality of predetermined security keys provide different trust levels;

[0292] - generating an encrypted value based at least on said content frame (111), said associated metadata frame (112) and a selected security key; and

[0293] - Inserting the generated encrypted value into the metadata frame (112).

[0294] (33) The encoder (101) according to (32), wherein the plurality of predetermined security keys include

[0295] - a highly secure key known only to the developers of the encoder (101); and

[0296] - a medium security key known to the operator of said encoder (101).

[0297] (34) The encoder (101) according to any one of (32) to (33), wherein the encoder (101) is configured to

[0298] - generating a plurality of consecutive content frames (111, 311) and associated metadata frames (112, 312) for the encoded bitstream (110);

[0299] - generating a frame encryption value based on a single content frame (111) and its associated metadata frame (112) and based on a selected security key; and

[0300] - generating a historical encryption value based on at least some of the plurality of consecutive content frames (111, 311) and their associated metadata frames (112, 312) and based on the selected security value.

[0301] (35) An encoder (101) according to any one of (32) to (34), wherein the encoder (101) is configured to: calculate an HMAC-MD5 value or an HMAC-SHA256 value for generating an encryption value.

[0302] (36) The encoder (101) according to (35), wherein the encoder (101) is configured to: truncate the HMAC-MD5 value or the HMAC-SHA256 value to generate the encrypted value.

[0303] (37) An encoder (101) according to any one of (32) to (36), wherein the encoder (101) is configured to insert a representation of the selected security key into the metadata frame (112).

[0304] (38) A method for generating an encoded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the method comprises

[0305] - Generate metadata block (140);

[0306] - inserting the metadata block (140) into the metadata frame (112);

[0307] -selecting a security key from a plurality of predetermined security keys; wherein the plurality of predetermined security keys provide different trust levels;

[0308] - generating an encrypted value based at least on said content frame (111), said associated metadata frame (112) and a selected security key; and

[0309] - Inserting the generated encrypted value into the metadata frame (112).

[0310] (39) A transcoder (503) configured to transcode an inbound bitstream (110) comprising an inbound content frame (111) and an associated inbound metadata frame (112) into an outbound bitstream (120); wherein the inbound bitstream (110) represents a set of samples of a signal; wherein the transcoder (103) comprises

[0311] - A decoder (504), configured to

[0312] - converting the inbound content frame (111) into a set of decoded PCM samples of the signal;

[0313] - extracting metadata from said inbound metadata frame (112); and

[0314] - generating a signature value for the set of decoded PCM samples and the extracted metadata using a decoder security key; and

[0315] - encoder (501), configured to

[0316] - receiving a set of PCM samples and associated metadata;

[0317] -Receive signature value;

[0318] - using the encoder security key, verifying that the received signature value is valid for the received set of PCM samples and associated metadata; and

[0319] - if the received signature is valid, generating an outbound content frame (121) of the outbound bitstream (120) from the received set of PCM samples and generating an associated outbound metadata frame (122) of the outbound bitstream (120) from the received metadata.

[0320] (40) The transcoder (503) of (39), wherein the encoder (501) is configured to use the decoder security key as the encoder security key.

[0321] (41) A transcoder (503) according to any one of (39) to (40), wherein the encoder (501) is configured to: prevent the received metadata from being inserted into the outbound bitstream (120) if the received signature is invalid.

[0322] (42) The transcoder (503) according to any one of (39) to (41), further comprising a PCM processing stage (505, 506) configured to

[0323] - modifying the set of decoded PCM samples and / or the extracted metadata to produce a second set of PCM samples and second metadata; and

[0324] - transmitting the set of second PCM samples and the second metadata to the encoder (501).

[0325] (43) The transcoder (503) according to (42) further includes a re-signing unit 507, which is configured to

[0326] - determining, for the set of second PCM samples and the second metadata, an updated signature value using a re-signing security key; and

[0327] - transmitting the updated signature value to the encoder (501).

[0328] (44) The transcoder (503) according to (43), wherein

[0329] - the re-signing security key is different from the decoder security key; and

[0330] - The encoder (501) is configured to use the re-signing security key as the encoder security key.

[0331] (45) The transcoder (503) according to any one of (39) to (44), wherein

[0332] - the encoder (501) comprises a PCM processing stage (508), which is configured to modify the received set of PCM samples and / or the received metadata; and - the encoder (501) is configured to: generate the outbound content frame (121) and / or the outbound metadata frame (122) based on the modified received set of PCM samples and / or the modified received metadata.

[0333] (46) The transcoder (503) according to any one of (39) to (45), wherein

[0334] - the decoder (504) is configured to identify a metadata inbound block (140) from the inbound metadata frame (112); wherein the metadata inbound block (140) is associated with an inbound descriptor (142) representing one or more attributes of metadata included in the metadata inbound block (140); and

[0335] - the encoder (501) is configured to generate the outbound metadata frame (122) from the inbound metadata frame (112) based on the inbound descriptor (142).

[0336] (47) A transcoder (503) according to (46), wherein the one or more attributes include PCM processing parameters, which indicate whether the metadata of the inbound block (140) is to be discarded by the encoder (501) if modifications are made to the set of PCM samples and / or modifications are made to the extracted metadata.

[0337] (48) A transcoder (503) according to (47), wherein the encoder (501) is configured to include the metadata of the inbound block (140) in the outbound metadata frame (122) if the PCM processing parameters indicate that the metadata of the inbound block (140) should not be discarded, even if the set of PCM samples and / or the extracted metadata have been modified.

[0338] (49) The transcoder (503) according to (47) as further described in any one of (42) to (44), wherein

[0339] - the PCM processing stage (505) is configured to: provide an indication of one or more PCM processing conditions to the encoder (501);

[0340] - the one or more PCM processing conditions represent how the set of PCM samples and / or the extracted metadata have been processed by the PCM processing stage (505); and

[0341] - the encoder is configured to generate the outbound metadata frame (122) from the inbound metadata frame (112) further based on the one or more PCM processing conditions.

[0342] (50) A transcoder (503) according to (49), wherein the one or more PCM processing conditions include one or more of the following: conversion of the sampling rate of the set of PCM samples, mixing of the PCM samples with system sounds, modification of the extracted metadata, modification of the channel configuration of the set of PCM samples, and leveling of the loudness of the set of PCM samples.

[0343] (51) A method for transcoding an inbound bitstream (110) comprising an inbound content frame (111) and associated inbound metadata frames (112) into an outbound bitstream (120); wherein the inbound bitstream (110) represents a set of samples of a signal; the method comprising,

[0344] At the decoder (504),

[0345] - converting the inbound content frame (111) into a set of decoded PCM samples of the signal;

[0346] - extracting metadata from said inbound metadata frame (112); and

[0347] - generating a signature value using a decoder security key for the set of decoded PCM samples and the extracted metadata;

[0348] - transmitting the set of decoded PCM samples, the extracted metadata and the generated signature value to a corresponding encoder (501); and

[0349] At the encoder (501)

[0350] - receiving a set of PCM samples and associated metadata;

[0351] -Receive signature value;

[0352] - using the encoder security key to determine whether the received signature value is valid for the received set of PCM samples and associated metadata; and

[0353] - if the received signature is valid, generating an outbound content frame (121) of the outbound bitstream (120) from the received set of PCM samples and generating an associated outbound metadata frame (122) of the outbound bitstream (120) from the received metadata.

[0354] (52) A decoder (104) configured to receive an encoded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the decoder (104) is configured to

[0355] - extracting an encrypted value from said metadata frame (112);

[0356] - determining the security key based on a plurality of predetermined security keys; wherein the plurality of predetermined security keys provide different trust levels;

[0357] - generating a verification encryption value based at least on said content frame (111), said associated metadata frame (112) and the determined security key; and

[0358] - comparing the extracted encryption value with the verification encryption value to determine whether the received encoded bit stream can be trusted (110).

[0359] (53) The decoder (104) of (52), wherein the decoder (104) is configured to determine the security key by extracting the security key from the metadata frame (112).

[0360] (54) A decoder (104) according to any one of (52) to (53), wherein the decoder (104) is further configured to determine which security key of the multiple predetermined security keys has been used to generate the extracted encryption value to determine the trust level of the received encoded bit stream (110).

[0361] (55) The decoder (104) according to any one of (52) to (54), wherein the decoder (104) is configured to

[0362] - generating a plurality of verification encryption values ​​for the plurality of predetermined security keys respectively;

[0363] - comparing each of the plurality of verification encrypted values ​​with the extracted encryption value; and

[0364] - If one of the plurality of verification encryption values ​​matches the extracted encryption value, determining that one of the plurality of predetermined security keys has been used to generate the extracted encryption value.

[0365] (56) A method for determining a trust level of a received coded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the method comprises

[0366] - extracting an encrypted value from said metadata frame (112);

[0367] - determining the security key based on a plurality of predetermined security keys; wherein the plurality of predetermined security keys provide different trust levels;

[0368] - generating a verification encryption value based at least on said content frame (111), said associated metadata frame (112) and the determined security key; and

[0369] - comparing the extracted encryption value with the verification encryption value to determine whether the received encoded bit stream can be trusted based on the determined trust level of the security key (110).

[0370] (57) A decoder (504) configured to: decode an inbound bitstream (110) comprising an inbound content frame (111) and an associated inbound metadata frame (112); wherein the inbound bitstream (110) represents a set of samples of a signal; wherein the decoder (504) is configured to

[0371] - converting the inbound content frame (111) into a set of decoded PCM samples of the signal;

[0372] - extracting metadata from said inbound metadata frame (112);

[0373] - generating a signature value for the set of decoded PCM samples and the extracted metadata using a decoder security key; and

[0374] - Sending the set of decoded PCM samples, the extracted metadata and the generated signature value to the encoder (501) for re-encoding.

[0375] (58) An encoder (501) configured to encode an outbound bitstream (120) comprising an outbound content frame (121) and an associated outbound metadata frame (122), wherein the encoder (501) is configured to

[0376] - receiving a set of PCM samples and associated metadata;

[0377] - receiving a signature value for the set of PCM samples and associated metadata;

[0378] - verifying, using the encoder security key, that the received signature value is valid for the received set of PCM samples and associated metadata; and

[0379] - if the received signature is valid, generating an outbound content frame (121) of the outbound bitstream (120) from the received set of PCM samples and generating an associated outbound metadata frame (122) of the outbound bitstream (120) from the received metadata.

[0380] (59) A method for decoding an inbound bitstream (110) comprising an inbound content frame (111) and an associated inbound metadata frame (112); wherein the inbound bitstream (110) represents a set of samples of a signal; wherein the method comprises

[0381] - converting the inbound content frame (111) into a set of decoded PCM samples of the signal;

[0382] - extracting metadata from said inbound metadata frame (112);

[0383] - generating a signature value for the set of decoded PCM samples and the extracted metadata using a decoder security key; and

[0384] - providing the set of decoded PCM samples, the extracted metadata and the generated signature value to an encoder (501) for re-encoding.

[0385] (60) A method for encoding an outbound bitstream (120) comprising an outbound content frame (121) and an associated outbound metadata frame (122); wherein the method comprises

[0386] - receiving a set of PCM samples and associated metadata;

[0387] - receiving a signature value for the set of PCM samples and associated metadata;

[0388] - using the encoder security key, verifying that the received signature value is valid for the received set of PCM samples and associated metadata; and

[0389] - if the received signature is valid, generating an outbound content frame (121) of the outbound bitstream (120) from the received set of PCM samples and generating an associated outbound metadata frame (122) of the outbound bitstream (120) from the received metadata.

[0390] (61) A decoder (104) configured to: decode an encoded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the metadata frame (112) comprises a metadata block (140); wherein the metadata block (140) is associated with a descriptor (142) representing one or more attributes of metadata included in the metadata block (140); wherein the decoder (104) is configured to

[0391] - decoding the encoded signal included in the content frame (111);

[0392] - identifying said metadata block (140) from said metadata frame (112);

[0393] - extracting said descriptor (142) from said metadata block (140); and

[0394] - processing metadata comprised in said metadata block (140) in accordance with said one or more attributes represented by said descriptor (142).

[0395] (62) A method for decoding an encoded bitstream (110) comprising a content frame (111) and an associated metadata frame (112); wherein the content frame (111) represents a signal encoded according to a first codec system; wherein the metadata frame (112) comprises a metadata block (140); wherein the metadata block (140) is associated with a descriptor (142) representing one or more attributes of metadata included in the metadata block (140); wherein the method comprises

[0396] - decoding the encoded signal included in the content frame (111);

[0397] - identifying said metadata block (140) from said metadata frame (112);

[0398] - extracting the descriptor (142) from the metadata block (140); and processing the metadata included in the metadata block (140) based on the one or more attributes represented by the descriptor (142).

[0399] The present technology may also be configured as follows.

[0400] (1) A coding method, comprising:

[0401] Encode the current content frame;

[0402] generating a protection field for an associated metadata frame, the associated metadata frame being associated with the current content frame;

[0403] encoding the associated metadata frame, including the guard field; and

[0404] including the current content frame and the associated metadata frame in an output bitstream, wherein:

[0405] Generating the protection field involves generating one or more encrypted values;

[0406] At least one of the one or more encrypted values ​​is a frame encrypted value representing the authenticity of the current content frame; and

[0407] The frame encryption value is generated by applying a one-way function to a group of frames including the current content frame and the associated metadata frame.

[0408] (2) The encoding method of (1), wherein at least one of the one or more encryption values ​​is generated by applying a one-way function to a set of frames including a previous content frame and a metadata frame associated with the previous content frame.

[0409] (3) The encoding method according to (2), wherein the protection field includes a historical encryption value indicating the authenticity of at least two content frames and at least two metadata frames.

[0410] (4) The encoding method according to (1), wherein at least one of the one or more encrypted values ​​is generated using a key value and a cryptographic hash function.

[0411] (5) The encoding method according to (4), wherein:

[0412] The key value corresponds to a security key selected from a plurality of predetermined security keys;

[0413] A first key of the plurality of predetermined security keys corresponds to a first trust level; and

[0414] A second key of the plurality of predetermined security keys corresponds to a second trust level, the second trust level being different from the first trust level.

[0415] (6) The encoding method according to (5), wherein:

[0416] The first key is a highly secure key; and

[0417] The second key is a medium security key.

[0418] (7) An encoding device comprising one or more hardware elements, the encoding device being configured to:

[0419] Encode the current content frame;

[0420] generating a protection field for an associated metadata frame, the associated metadata frame being associated with the current content frame;

[0421] encoding the associated metadata frame, including the guard field; and

[0422] including the current content frame and the associated metadata frame in an output bitstream, wherein:

[0423] Generating the protection field involves generating one or more encrypted values;

[0424] At least one of the one or more encrypted values ​​is a frame encrypted value representing the authenticity of the current content frame; and

[0425] The frame encryption value is generated by applying a one-way function to a group of frames including the current content frame and the associated metadata frame.

[0426] (8) The encoding device according to (7), wherein at least one of the one or more encryption values ​​is generated by applying a one-way function to a group of frames including a previous content frame and a metadata frame associated with the previous content frame.

[0427] (9) The encoding device according to (8), wherein the protection field includes a historical encryption value indicating authenticity of at least two content frames and at least two metadata frames.

[0428] (10) The encoding device according to (7), wherein at least one of the one or more encrypted values ​​is generated using a key value and a cryptographic hash function.

[0429] (11) One or more non-transitory media storing software, the software comprising instructions for executing an encoding method, the encoding method comprising:

[0430] Encode the current content frame;

[0431] generating a protection field for an associated metadata frame, the associated metadata frame being associated with the current content frame;

[0432] encoding the associated metadata frame, including the guard field; and

[0433] including the current content frame and the associated metadata frame in an output bitstream, wherein:

[0434] Generating the protection field involves generating one or more encrypted values;

[0435] At least one of the one or more encrypted values ​​is a frame encrypted value representing the authenticity of the current content frame; and

[0436] The frame encryption value is generated by applying a one-way function to a group of frames including the current content frame and the associated metadata frame.

[0437] (12) One or more non-transitory media according to (11), wherein at least one of the one or more encryption values ​​is generated by applying a one-way function to a set of frames including a previous content frame and a metadata frame associated with the previous content frame.

[0438] (13) One or more non-transitory media according to (12), wherein the protection field includes a historical encryption value indicating the authenticity of at least two content frames and at least two metadata frames.

[0439] (14) The one or more non-transitory media of (11), wherein at least one of the one or more encrypted values ​​is generated using a key value and a cryptographic hash function.

[0440] (15) A method for transcoding an inbound bitstream into an outbound bitstream, the inbound bitstream comprising a first inbound content frame and an associated first inbound metadata frame, the method comprising:

[0441] At the decoder:

[0442] converting the first inbound content frame into a first set of decoded pulse code modulation samples, the pulse code modulation being referred to as PCM;

[0443] extracting first metadata from the first inbound metadata frame;

[0444] identifying a first inbound block of metadata in the first metadata, the first inbound block of metadata being associated with a first inbound descriptor representing one or more attributes of the first metadata, the one or more attributes including a PCM processing parameter representing whether metadata of the first inbound block of metadata is to be discarded by an encoder if the first set of decoded PCM samples, the extracted first metadata, or both the first set of decoded PCM samples and the extracted first metadata are modified;

[0445] generating a frame signature value based on the first set of decoded PCM samples and the first metadata; and

[0446] transmitting the first set of decoded PCM samples, the first metadata, and the frame signature value to a corresponding encoder; and

[0447] At the encoder:

[0448] receiving the first set of decoded PCM samples, the first metadata, and the frame signature value;

[0449] determining whether the frame signature value is valid for the first set of decoded PCM samples and the first metadata; and

[0450] Based at least in part on whether the frame signature value is valid, determine whether to generate a first outbound content frame of the outbound bitstream based on the first set of decoded PCM samples; and whether to generate an associated first outbound metadata frame of the outbound bitstream based at least in part on the first inbound descriptor and based on the first inbound metadata frame.

[0451] (16) The method of (15), wherein the inbound bitstream includes a second inbound content frame and an associated second inbound metadata frame, the method further comprising:

[0452] At the decoder:

[0453] converting the second inbound content frame into a second set of decoded PCM samples;

[0454] extracting second metadata from the second inbound metadata frame;

[0455] generating a historical signature value based at least in part on the first set of decoded PCM samples, the second set of decoded PCM samples, the first metadata, and the second metadata; and

[0456] The second set of decoded PCM samples, the second metadata, and the historical signature value are transmitted to the encoder.

[0457] (17) The method according to (16), further comprising:

[0458] At the encoder:

[0459] receiving the second set of decoded PCM samples, the second metadata, and the historical signature value; and

[0460] A determination is made as to whether the historical signature value is valid for the first set of decoded PCM samples, the second set of decoded PCM samples, the first metadata, and the second metadata.

[0461] (18) One or more non-transitory media storing software, the software comprising instructions for performing a transcoding method, the transcoding method comprising:

[0462] At the decoder:

[0463] converting a first inbound content frame into a first set of decoded pulse code modulation samples, the pulse code modulation being referred to as PCM;

[0464] extracting first metadata from a first inbound metadata frame;

[0465] identifying a first inbound block of metadata in the first metadata, the first inbound block of metadata being associated with a first inbound descriptor representing one or more attributes of the first metadata, the one or more attributes including a PCM processing parameter representing whether metadata of the first inbound block of metadata is to be discarded by an encoder if the first set of decoded PCM samples, the extracted first metadata, or both the first set of decoded PCM samples and the extracted first metadata are modified;

[0466] generating a frame signature value based on the first set of decoded PCM samples and the first metadata; and

[0467] transmitting the first set of decoded PCM samples, the first metadata, and the frame signature value to a corresponding encoder; and

[0468] At the encoder:

[0469] receiving the first set of decoded PCM samples, the first metadata, and the frame signature value;

[0470] determining whether the frame signature value is valid for the first set of decoded PCM samples and the first metadata; and

[0471] Based at least in part on whether the frame signature value is valid, determine whether to generate a first outbound content frame of an outbound bitstream based on the first set of decoded PCM samples; and whether to generate an associated first outbound metadata frame of the outbound bitstream based at least in part on the first inbound descriptor and the first inbound metadata frame.

[0472] (19) The one or more non-transitory media of (18), wherein the inbound bitstream includes a second inbound content frame and an associated second inbound metadata frame, and the transcoding method further includes:

[0473] At the decoder:

[0474] converting the second inbound content frame into a second set of decoded PCM samples;

[0475] extracting second metadata from the second inbound metadata frame;

[0476] generating a historical signature value based at least in part on the first set of decoded PCM samples, the second set of decoded PCM samples, the first metadata, and the second metadata; and

[0477] The second set of decoded PCM samples, the second metadata, and the historical signature value are transmitted to the encoder.

[0478] (20) According to the one or more non-transitory media described in (19), the transcoding method further includes:

[0479] At the encoder:

[0480] receiving the second set of decoded PCM samples, the second metadata, and the historical signature value; and

[0481] A determination is made as to whether the historical signature value is valid for the first set of decoded PCM samples, the second set of decoded PCM samples, the first metadata, and the second metadata.

[0482] (21) A transcoder (103) configured to: transcode an inbound bitstream (110) comprising inbound content frames (111) and associated inbound metadata frames (112) into an outbound bitstream (120) comprising outbound content frames (121) and associated outbound metadata frames (122); wherein the inbound content frames (111) represent signals encoded according to a first codec system, and wherein the outbound content frames (121) represent signals encoded according to a second codec system; wherein the transcoder (103) is configured to:

[0483] identifying an inbound block of metadata (140) from the inbound metadata frame (112); wherein the inbound block of metadata (140) is associated with an inbound descriptor (142) representing one or more attributes of metadata included in the inbound block of metadata (140); and

[0484] The outbound metadata frame (122) is generated from the inbound metadata frame (112) based on the inbound descriptor (142).

Claims

1. A system for processing a coded audio bitstream, the system comprising: a memory for storing the encoded audio bitstream, wherein the encoded audio bitstream comprises a content frame and a metadata frame, the content frame comprises encoded audio content and metadata associated with the encoded audio content, and the metadata frame comprises a metadata container having additional metadata different from the metadata of the content frame; an audio decoder, the audio decoder being configured to decode the content frame; and / or an extractor, the extractor being used to extract the metadata frame, wherein the metadata container comprises a key identifier, one or more metadata payloads and protection data, and wherein, for each of the one or more metadata payloads, the metadata container further comprises a payload identifier, a metadata payload configuration and a size.

2. The system according to claim 1, wherein: The metadata of the content frame includes dialogue normalization parameters.

3. The system according to claim 1, wherein: The key identifier is stored in a 3-bit field and the size is stored in an 8-bit field.

4. The system according to claim 1, wherein: The end of the metadata container is indicated when the value of the payload identifier is zero.

5. A method for processing a coded audio bitstream, the method comprising: storing the encoded audio bitstream, wherein the encoded audio bitstream comprises a content frame and a metadata frame, the content frame comprising encoded audio content and metadata associated with the encoded audio content, and the metadata frame comprising a metadata container having additional metadata different from the metadata of the content frame; Decoding the content frame; and / or extracting the metadata frame, wherein the metadata container comprises a key identifier, one or more metadata payloads and protection data, and wherein, for each of the one or more metadata payloads, the metadata container further comprises a payload identifier, a metadata payload configuration and a size.

6. The method according to claim 5, wherein: The metadata of the content frame includes dialogue normalization parameters.

7. The method according to claim 5, wherein: The key identifier is stored in a 3-bit field and the size is stored in an 8-bit field.

8. The method according to claim 5, wherein: The end of the metadata container is indicated when the value of the payload identifier is zero.

9. A non-transitory computer readable medium comprising instructions which, when executed by a processor, cause the processor to perform the method of claim 5.

Citation Information

Patent Citations

  • Encoding apparatus and methods, transcoding methods and transcoders, non-transient media

    CN109102815B

  • Authentication of data streams

    WO2011015369A1

  • Digital media general basic stream

    CN1761308A

  • Method, apparatus, and program for processing information

    CN1909449A