Handling of the validation chain in data stream authentication
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
- Filing Date
- 2025-10-22
- Publication Date
- 2026-06-02
AI Technical Summary
Complex data streams, such as those with multiple substreams or concatenated segments, pose challenges for reliable authentication due to the need to avoid recalculating digital signatures, especially when entities other than the original encoder modify or combine streams.
Incorporating indications in the data stream to identify the first or last segment of a signed subsequence, allowing receivers to verify temporal consistency using digital signatures, and forming verification strings based on hash values from preceding segments.
Enables reliable verification of concatenated data streams with reduced computational effort and low signaling overhead, ensuring authenticity and integrity of the data stream.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0003] , ,
[0001] Embodiments of the present invention relate to an apparatus and method for decoding a data stream to be checked for reliability. Further embodiments relate to an apparatus and method for making a data stream checkable for reliability. Further embodiments relate to a data stream checkable for reliability. In particular, embodiments relate to media data streams such as video data streams or audio data streams, and decoders and encoders for decoding or encoding such data streams respectively.
Background Art
[0002] Content authentication is important to avoid media tampering. Rapid advancements in AI have given rise to sophisticated deep fakes, blurring the line between genuine and fake content, raising significant concerns regarding cybersecurity and copyright. Therefore, in recent years, it has become important to be able to verify the authenticity of media. An example of a method of performing such authentication consists of, or includes, providing a digital signature to the media by first hashing the media asset and then signing it with the secret key of the content generator, such that, on the client side, when the public key of the content generator is provided, the client can compare the provided signature with the value of a hash calculated independently based on the received media asset. If the values match, the client can safely assume that the media has not been tampered with.
Summary of the Invention
Problems to be Solved by the Invention
[0003] The complex structure of data streams can complicate their authentication. This is particularly true in scenarios where a data stream is modified or generated by an entity, such as a scenario where a data stream consists of multiple substreams, or a scenario where an entity combines multiple data streams, or a scenario where a portion of a data stream is extracted. If this entity is not the entity that encoded the original data stream, and if the recalculation of the digital signature that would enable data stream verification is to be avoided, then a new solution is needed to enable reliable verification of the data stream. [Means for solving the problem]
[0004] An object of embodiments of the present invention is to provide a concept for checking data streams with respect to reliability, which offers an improved trade-off between high adaptability to complex streaming scenarios, low computational effort, and a low bitrate of signaling overhead required to provide the information necessary for authentication. This objective is achieved by the subject matter of the independent claim.
[0005] Embodiments according to a first aspect of the present invention rely on the idea of including an indication in the data stream that indicates whether a segment of the temporal sequence of segments in a data stream is the first segment of an assigned subsequence of the temporal sequence, or, in a second alternative example of the first aspect, whether this segment is the last segment of an assigned subsequence of the temporal sequence. The indication that a segment is the first / last segment of an assigned subsequence is used to form a verification string that is verified using a digital signature. By signaling the start of a signed subsequence of a sequence of temporal segments, the receiver can recognize the start of a signed subsequence, and as a result, for example, in a scenario where two bitstreams are concatenated, the receiver can handle the first segment appropriately in a reliability check, i.e., whether the current segment is the first segment of a signed subsequence or not. For example, to verify the temporal consistency of a sequence of temporal segments, the verification of the current segment may include hash values obtained from preceding segments so that a reliability check can verify whether the sequence of temporal segments in the sequence is genuine. If the receiver is unaware that the current segment is the first segment of a signed subsequence, it may include the hash value of a preceding segment in its reliability check, resulting in a negative outcome. In response to an indication that the current segment is the first segment of a signed subsequence, the receiver may perform a reliability check independently of the preceding segment. Thus, the indication that a segment is the first segment of a signed subsequence enables reliable verification of a concatenated data stream in which independently signed subsequences are concatenated. Note that the above example of a method for verifying the continuity of time segments in a data stream is merely illustrative, and alternative methods may be used to verify a sequence of signed segments in which the underlying concepts of the embodiments of the first aspect are applicable in an equivalent manner.In a data stream, indicating that the current segment is the last segment of a signed subsequence ensures that the sequence cannot be shortened unless the shortening is recognized by the receiver. For example, if the data stream ends without the receiver receiving a time segment that is indicated as the last segment of a signed subsequence, the receiver will recognize that subsequent segments are missing.
[0006] The terms "data stream validation" and "checking the reliability of a data stream" are used interchangeably below, for example, in relation to the validation that the content of a data stream corresponds to content provided by a content provider that has signed the content using a certificate. An embodiment according to the first aspect provides a device for decoding a data stream, the data stream comprising a temporal sequence of segments. The device is configured to determine a predetermined portion of a segment in a sequence of segments, derive an instruction from the data stream indicating whether a segment is the first segment of a signed subsequence of the temporal sequence, or whether a segment is the last segment of a signed subsequence of the temporal sequence, and derive a digital signature from the data stream to be matched against a verification string obtained based on the predetermined portion and the instruction.
[0007] An embodiment according to the first aspect provides a device for decoding a data stream. The device is configured to check the data stream for reliability, and the data stream includes a temporal sequence of segments. The device is configured to verify a segment of a sequence of segments by performing a hash function on a given portion of the segments to obtain a hash value; deriving an instruction from the data stream indicating whether the segment is the first segment of a signed subsequence of the temporal sequence, or whether the segment is the last segment of a signed subsequence of the temporal sequence; forming a verification string based on the hash value and the instruction; deriving a digital signature from the data stream and checking whether the verification string conforms to the digital signature.
[0008] An embodiment according to the first aspect provides a device for encoding a data stream. The device is configured to encode a temporal sequence of segments into the data stream, making the data stream trustworthy. The device is configured to make a segment of a sequence of segments trustworthy by having a hash function applied to a predetermined portion of the segment to obtain a hash value; inserting an instruction into the data stream indicating whether the segment is the first segment of a signed subsequence of the temporal sequence, or whether the segment is the last segment of a signed subsequence of the temporal sequence; forming a verification string based on the hash value and the instruction; and obtaining a digital signature based on the verification string.
[0009] Embodiments according to the first aspect provide a method for decoding a data stream, wherein the data stream comprises a temporal sequence of segments, and the method includes: determining a predetermined portion of a segment in a sequence of segments; deriving an instruction from the data stream indicating whether a segment is the first segment of a signed subsequence of the temporal sequence, or whether a segment is the last segment of a signed subsequence of the temporal sequence; and deriving a digital signature from the data stream to be matched with a verification string obtained based on the predetermined portion and the instruction.
[0010] Embodiments according to the first aspect provide a method for decoding a data stream, the method comprising checking the data stream for reliability, the data stream comprising a temporal sequence of segments, the method comprising: applying a hash function to a predetermined portion of the segments to obtain a hash value; deriving an instruction from the data stream indicating whether a segment is the first segment of a signed subsequence of the temporal sequence, or whether a segment is the last segment of a signed subsequence of the temporal sequence; forming a verification string based on the hash value and the instruction; verifying a segment of the sequence of segments by deriving a digital signature from the data stream and checking whether the verification string conforms to the digital signature.
[0011] Embodiments according to the first aspect provide a method for encoding a data stream, the method comprising making the data stream trustworthy and encoding a temporal sequence of segments within the data stream, the method comprising: applying a hash function to a predetermined portion of the segments to obtain a hash value; inserting an instruction into the data stream indicating whether the segment is the first segment of a signed subsequence of the temporal sequence or whether the segment is the last segment of a signed subsequence of the temporal sequence; forming a verification string based on the hash value and the instruction; and obtaining a digital signature based on the verification string (e.g., and inserting the digital signature into the data stream), thereby making the segments of the sequence of segments trustworthy.
[0012] Embodiments according to the first aspect provide a data stream which is checkable for reliability and includes instructions indicating the temporal sequence of segments, whether a segment is the first segment of a signed subsequence of the temporal sequence, or whether a segment is the last segment of a signed subsequence of the temporal sequence.
[0013] A second embodiment of the present invention relies on the idea that, if the verification chain in the temporal sequence of segments is interrupted at a segment, a verification string is formed for a reliability check of the segment in the sequence of segments in the data stream, independent of the preceding segment immediately preceding the segment in the temporal sequence. For this purpose, a receiver of the data stream, such as a decoder, can derive from the data stream whether the verification chain has been interrupted at a segment. For example, interruption detection may be performed based on explicit signaling in the data stream, or it may be performed, for example, based on implicit signaling, by comparing signaled verification parameters for each segment in the temporal sequence. By detecting interruptions and forming verification strings independently of preceding segments, reliability checks become possible in scenarios where bitstream splicing occurs, i.e., when a sequence of jointly signed segments is interrupted by inserting an unsigned segment between two segments in a verification chain, or a segment belonging to a further verification chain, resulting in a segment in the sequence of segments in the data stream that does not belong to the same verification chain.
[0014] An embodiment according to a second aspect provides a device for decoding a data stream, the data stream comprising a temporal sequence of segments. The device is configured to derive from the data stream, for each segment in the sequence of segments, whether the verification chain in the temporal sequence of segments was interrupted at the segment, and, if the data stream indicates that the verification chain was interrupted and the data stream comprises a digital signature for checking the segment for trustworthiness, to derive from the data stream a digital signature to be checked against a verification string independent of the preceding segment immediately preceding the segment in the temporal sequence.
[0015] An embodiment according to a second aspect provides a device for decoding a data stream. The device is configured to check the data stream for reliability, and the data stream includes a temporal sequence of segments. The device is configured to derive from the data stream whether the verification chain in the temporal sequence of segments was interrupted at the segment, and if the data stream indicates that the verification chain was interrupted and the data stream includes a digital signature for the segment, to derive a digital signature from the data stream, to form a verification string independent of the preceding segment immediately preceding the segment in the temporal sequence, and to check whether the verification string conforms to the digital signature.
[0016] An embodiment according to a second aspect provides a device for encoding a data stream. The device is configured to make the data stream trustworthy and to encode a temporal sequence of segments into the data stream. The device is configured to form a verification string independent of the preceding segment immediately preceding the segment in the temporal sequence, and to obtain a digital signature based on the verification string, and to insert the digital signature into the data stream, when the verification chain in the temporal sequence of segments is interrupted by a segment and the segment should be trustworthy.
[0017] Embodiments of a second aspect provide a method for decoding a data stream, the data stream comprising a temporal sequence of segments, the method comprising: deriving from the data stream, for a segment in the sequence of segments, whether the verification chain in the temporal sequence of segments was interrupted in the segment; and, if the data stream indicates that the verification chain was interrupted, and the data stream comprises a digital signature for checking the segment for authenticity, the method comprising from the data stream a digital signature to be checked against a verification string independent of the preceding segment that is immediately preceding the segment in the temporal sequence.
[0018] Embodiments of a second aspect provide a method for decoding a data stream, the method comprising checking the data stream for reliability, the data stream comprising a temporal sequence of segments, the method comprising deriving from the data stream whether the verification chain in the temporal sequence of segments was interrupted at the segment, deriving a digital signature from the data stream if the data stream indicates that the verification chain was interrupted and the data stream comprises a digital signature for the segment, forming a verification string independent of any preceding segment immediately preceding the segment in the temporal sequence, and checking whether the verification string conforms to the digital signature.
[0019] An embodiment according to the second aspect provides a method for encoding a data stream, the method including making the data stream checkable with respect to reliability and encoding a temporal sequence of segments within the data stream, and the method including forming a verification string independent of a preceding segment immediately before the segment in the temporal sequence when a verification chain within the temporal sequence of segments is interrupted by a segment and when the segment should be made checkable with respect to reliability, obtaining a digital signature based on the verification string, and inserting the digital signature into the data stream.
[0020] Advantageous embodiments are defined by the subject matter of the dependent claims. Embodiments of the present disclosure are described in more detail below with reference to the drawings.
Brief Description of the Drawings
[0021] [Figure 1] An apparatus for decoding a data stream according to one embodiment is shown. [Figure 2] A verification module according to one embodiment is shown. [Figure 3] An apparatus for encoding a data stream according to one embodiment is shown. [Figure 4] Verification for each sub-stream of segments of a data stream according to one embodiment is shown. [Figure 5] An apparatus for decoding a data stream according to an embodiment of the first aspect is shown. [Figure 6] An apparatus for encoding a data stream according to the first aspect of the present invention is shown. [Figure 7] An apparatus for decoding a data stream according to the second aspect is shown. [Figure 8] An apparatus for encoding a data stream according to the second aspect is shown. [Figure 9A] A verification string according to an embodiment of the first aspect is shown. [Figure 9B] Shows the verification string according to the embodiment of the first aspect. [Figure 10] Shows a sequence of segments of a data stream according to an embodiment of the second aspect. [Figure 11] Shows a video encoder according to an embodiment. [Figure 12] Shows a video decoder according to an embodiment. [Figure 13] Shows the subdivision of a picture according to an embodiment.
Mode for Carrying Out the Invention
[0022] Next, embodiments of the present invention will be described in more detail with reference to the accompanying drawings, and elements having the same or similar elements or the same or similar functionality are assigned the same reference numerals or are identified by the same names. In the following description, a plurality of details are described to provide a complete description of the embodiments of the present disclosure. However, it will be apparent to those skilled in the art that other embodiments may be implemented without these specific details. In addition, the features of different embodiments described in this specification may be combined with each other unless otherwise specified.
[0023] In the following description, when referring to a data stream, embodiments of the present invention include data streams in which a media data stream in which a media signal is encoded, for example, a video data stream in which video is encoded, or an audio data stream in which an audio signal is encoded. Generally, embodiments of the present invention may be applied to any sequentially signaled data stream, for example, a sampled signal, for example, a sampled measurement signal in which a data stream is encoded. According to one embodiment, the data stream has a waveform signal in which a waveform signal is encoded, for example, a biomedical waveform signal. Some aspects of the present invention are described below with respect to video data streams, but these aspects may be applied to other types of data streams in an equivalent manner unless otherwise specified.
[0024] Figure 1 shows a device 20 for decoding a data stream 14. The device 20 may be referred to as a decoder 20. The data stream 14 may be a media data stream, such as a video data stream or an audio data stream, or any of the data stream types listed above. For example, the decoder 20 may decode a media signal, such as a video signal or an audio signal, from the data stream 14. The decoder 20 comprises an extractor 21. The extractor 21 obtains a digital signature 43 based on the data stream 14. According to one embodiment, the extractor 21 derives the digital signature 43 from the data stream 14. In other words, the digital signature 43 may be included in the data stream 14. According to an alternative embodiment, the data stream 14 includes a resource instruction containing the digital signature 43, and the extractor 21 uses the resource instruction to obtain the digital signature 43 from the resource indicated in the data stream 14. For example, digital signature 43 is for checking the authenticity of the data stream. In other words, digital signature 43 may be for verifying the data stream 14, for example, for verifying the authenticity of the data stream 14.
[0025] The decoder 20 further comprises a sub-determiner 30 configured to determine a predetermined portion 13 of the data stream 14 on which a reliability check, also hereafter referred to as a reliability check, should be performed. A digital signature 43 may be associated with the predetermined portion. In other words, the digital signature 43 may be for verifying the predetermined portion 13. For example, verification or reliability checks of the data stream 14 may be performed part by part, i.e., in units of portions of the data stream 14. Therefore, the digital signature 43 may be for checking the reliability of portions of the data stream, in other words, for verifying portions of the data stream 14. A reliability check, i.e., a reliability check of the data stream 14 or a predetermined portion 13, includes checking whether the predetermined portion of the data stream 14 conforms to or matches the digital signature 43.
[0026] According to one embodiment, the decoder 20 includes a verification module 41 configured to perform a reliability check. As shown in Figure 1, the verification module 41 receives a digital signature 43 and a predetermined portion 13 and performs a reliability check. The verification module 41 is an optional feature of the device 20, as shown by the dashed line in Figure 1. In other words, according to one embodiment, the decoder 20 is configured to check a predetermined portion 13 of the data stream 14 for reliability. In other words, according to one embodiment, the decoder 20 is configured to check whether a predetermined portion 13 of the data stream 14 conforms to or matches a digital signature.
[0027] As already stated, the verification module 41 is optional in the device 20. According to alternative embodiments, the reliability check may be performed externally to the decoder 20. In other words, the verification module 41 does not necessarily have to be part of the decoder 20, but may be part of a separate entity, such as a device for checking the reliability of the data stream 14. For example, in this case, the decoder 20 may provide or transfer the digital signature 43 and a predetermined portion 13 for the reliability check. For example, the decoder 20 may collect information for the reliability check, such as the digital signature 43 and a predetermined portion 13, and provide the collected information for the reliability check. For example, the decoder 20 may form a concatenation of information for the reliability check. These alternative embodiments in which the verification module 41 is not part of the device 20 may be embodied in combination with all embodiments of all aspects of the present invention.
[0028] Further optional features of the apparatus 20 of Figure 1, which may be applicable to all embodiments described herein, are described below. For example, the data stream 14 may contain multiple packets. The partial decision-maker 30 may determine a predetermined portion 13 for each packet, for example, by including one or more of the multiple packets. For example, optionally, a data stream 14 may contain multiple payload packets 16. A payload packet 16 may carry payload data, for example, data to be transmitted by the data stream 14. For example, if the data stream 14 is a media data stream, the payload packet 16 may carry coded media data, such as video data if the data stream 14 is a video data stream. In other words, a payload packet 16 may be a video coding layer (VCL) or network abstraction layer (NAL) unit carrying coded video payload packets, for example, video data, for example, encoded video data. For example, the video data may refer to information from which sample values of video pictures are reconstructed.
[0029] The data stream 16 may optionally further include supplemental information packets 18, which may be alternatively referred to as supplemental information payload packets, in contrast to coded data payload packets that carry coded data. For example, in the case of a video data stream, particularly if H.264, H.265, and H.266 can format the video data stream, the supplemental information packets may be Supplemental Extended Information (SEI)NAL units. For example, the supplemental information packets 18 are interspersed among the payload packets 16. The supplemental information packets 18 carry supplemental information messages 19. For example, the supplemental information messages 19 assist processes related to decoding, displaying, or other purposes, but are not required by the decoding process to determine the values of samples in the decoded picture of the video. In other words, for example, supplemental information packets may carry information about encoding options and information for the decoding process, but they do not contain encoded samples of the signal encoded within the data stream.
[0030] For example, each supplementary information message may be associated with one of the payload packets. For example, each supplemental information message is associated with one of the payload packets, which is, for example, part of the same sample of the sampled signal encoded within the data stream, for example, the same picture unit or the same access unit as the supplemental information packet.
[0031] The predetermined portion 13 may optionally include one or more supplemental information messages that may be included in one or more supplemental information packages. In other words, the predetermined portion 13 may optionally include one or more supplemental information packets.
[0032] For example, a predetermined portion 13 includes all or a subset of the payload packets 16 of a segment of the data stream 14. For example, a predetermined portion 13 may include portions of the payload packets 16, for example, each portion of the payload packets that should be included in the predetermined portion, or it may include the entire payload packet. The segment of the data stream 14 from which a predetermined portion 13 can be determined may be, for example, an independently coded sequence of the data stream 14, for example, a coded video sequence (CVS) in the case of a video data stream. In other examples, the segment from which a predetermined portion 13 can be determined may be indicated in the data stream 14, for example, by one or more instructions that associate packets of the data stream with the predetermined portion 13, and / or by instructions such as supplemental information messages that indicate the start and end of the segment from which the predetermined portion 13 is selected. For example, the start and end may be indicated by the respective supplemental information messages.
[0033] According to the embodiment, the data stream 14 may include a set of verification parameters for verifying a predetermined portion 13, or a segment of the data stream 14 containing the predetermined portion, for example, a segment 17 as described in relation to Figure 4. For example, the set of verification parameters may include one or more of the following: a hash function for performing an authenticity check of the predetermined portion 13 (for example, a hash function 31 as described in relation to Figure 2), a certificate for decrypting a digital signature 43 for performing an authenticity check of the predetermined portion 13, an identifier for associating the predetermined portion with a media asset, and instructions on how to derive the predetermined portion 13. The set of verification parameters may be signaled, for example, with a supplemental information message that may correspond to a DSC ISCI message, as described later. For example, instruction 51 may be included in the set of verification parameters.
[0034] Figure 2 shows one embodiment of a verification module 41, which may be optional as part of the decoder 20. Alternatively, the reliability check described in relation to the verification module 41 may be performed outside of the decoder 20. According to the embodiment of Figure 2, the reliability check, i.e., checking whether a given portion 13 of the data stream 14 conforms to the digital signature 43, includes subjecting the given portion 13 to a hash function 31 to obtain a hash value 33. According to this embodiment, the verification module 41 further includes a verification block 39 that checks whether the hash value 33 conforms to the digital signature 43.
[0035] The following describes the further optional features of verification module 41. According to one embodiment, the verification block 39 includes a verification string generator 49 configured to form a verification string 48, for example, an IdString of the sample syntax described later, based on a hash value 33. For example, the verification string generator 49 may form a concatenation including the hash value 33 and, optionally, a media asset identifier that identifies the media asset to which a given portion 13 of the media belongs, an identifier of the algorithm of the hash function 31, and further information such as one or more further hash values obtained from earlier portions of the data stream 14. According to this embodiment, the verification block 39 includes a decryption block 59 that decrypts the digital signature 43 to obtain a check value 47, and the verification block 39 checks whether the verification string 48 matches the check value 47.
[0036] For example, the decryption module 59 may use an asymmetric cryptographic public key 45 to decrypt the digital signature 43. For example, the extractor 21 may derive the public key 45 based on an instruction in the data stream 14, for example, a resource identifier that indicates a resource from which the public key 45 can be derived, and then derive the public key 45 from the indicated resource in the data stream 14. In other words, according to one embodiment, the verification block 39 checks whether the hash value 33 conforms to the digital signature 43 by forming a verification string based on the hash value and optionally based on further information, and by comparing the verification string with the digital signature 43 using the public key (comparing the verification string with the digital signature may include decryption, which is performed by the decryption block 59).
[0037] According to the alternative embodiment, all or part of the above further information for deriving the verification string 48 is concatenated with a predetermined portion 13 and subjected to a hash function 31 to obtain a hash value. In other words, according to these alternative embodiments, all or part of the above further information, such as a hash function identifier and / or further hash values or digital signatures of the previous segment or portion, is used to derive the verification string, and this information is reflected in the verification string by hashing this information together with the predetermined portion 13, and therefore by deriving a hash value 33 based on this information.
[0038] For example, the generation of the digital signature 43 can be performed on the encoder side by forming a verification string and signing the verification string using the secret key of an asymmetric encryption scheme. For example, signing may involve further hashing, i.e., hashing the verification string using a further hash function to obtain a further hash value, and signing the further hash value. In this example, it may be impossible for the decoder to reconstruct the verification string from the digital signature 43, but instead, it can check whether the check value formed using the hash value 33 conforms to the digital signature, for example, by forming the verification string and deriving the check value by hashing the verification string using a further hash function. In other words, in this case, verification by verification block 39 may involve hashing the verification string using a further hash function to obtain a further hash value, and checking whether the further hash value conforms to the digital signature, for example, by decrypting the digital signature using a public key and checking whether the resulting check value is equal to the further hash value.
[0039] In other words, according to one embodiment, checking whether the hash value 33 conforms to or matches the check value 47 may include, for example, forming a verification string using the hash value 33 by concatenating it with further information such as a further hash value or hash function identifier, as described below, and hashing the verification string using a further hash function. The verification block 39 may then check whether the hashed verification string is equal to the check value 47 decoded from the digital signature. On the encoder side, according to this embodiment, the digital signature may be generated by forming a verification string, similar to the decoder side, hashing it using a further hash function, and signing the hashed verification string to obtain the digital signature 43.
[0040] According to an alternative embodiment, the check value 47 may correspond to a verification string, for example, a hash value 33, or the concatenation of hash value 33 with further information such as a further hash value or hash function identifier. In other words, decrypting the digital signature in this case may result in hash value 33 as part of (or the entirety of) check value 47. In this case, the digital signature may become larger due to the omission of further hashes. For example, which of the above alternatives is used may depend on the selected hash function.
[0041] Figure 3 shows a device 10 for encoding a data stream 14. The device 10 may be referred to as an encoder 10. The device 10 is configured to make the data stream 14 verifiable in terms of reliability. The encoder 10 provides the data stream 14 by inserting, for example, encoding, multiple payload packets 60 carrying payload data and supplemental information packets 18 carrying supplemental information messages 90 into the data stream 14. In other words, the encoder 10 may provide the data stream 14 described in relation to Figure 1. For example, the encoder 10 includes an inserter 23 for inserting the payload packets and supplemental information packets into the data stream 14. The encoder 10 includes a verification module 41' that obtains a digital signature 43 based on a predetermined portion of the data stream 14. The encoder 10 further includes a portion decision-maker 30' that determines a predetermined portion 13. For example, the portion decision-maker 30' determines a predetermined portion 13 by including, for example, a portion of the data 14' in a predetermined portion 13 that corresponds to a predetermined portion 13 determined by the portion decision-maker 30, based on the data 14' to be inserted into the data stream 14.
[0042] Any description of device 20 can be optionally applied to encoder 10 in the sense that information derived from data stream 14 by device 20 can be inserted into data stream 14 by device 10. Furthermore, any hash function used by verification module 41, such as hash function 31, may be equivalent to the corresponding hash function used by verification module 41'. The same applies to the input of the corresponding hash function, such as hash function 31, used to derive the hash value 33.
[0043] The interaction between the verification module of the decoder 20 and the verification module 41' of the encoder 10 has already been briefly described above. The verification module 41' may target a verification string containing a hash value derived by applying a hash function to a predetermined portion 13. The verification module 41' may further sign the verification string using, for example, the secret key of the asymmetric cryptographic scheme described above, in order to generate a digital signature 43. For example, the digital signature 43 may be inserted into the data stream 14 by the inserter 23, or the inserter 23 may insert into the data stream 14 a resource instruction from which the digital signature 43 can be derived.
[0044] Any description relating to device 20 may be optionally applied equivalently to device 10, in the sense that information derived from data stream 14 by device 20 may be inserted into data stream 14 by device 10. Furthermore, any hash function, such as hash function 31 used by device 10, may be equivalent to the corresponding hash function used by device 20. The same applies to the inputs to the corresponding hash function, such as hash function 31, used to derive the hash value 33. The generation of the digital signature 43 and the verification performed by device 20 using the digital signature 43 may each be part of an asymmetric cryptographic scheme, and these steps may each be performed by a pair of private and public keys, where at least the private key is used to sign in order to generate the digital signature 43, and the public key is used to decrypt in order to verify the verification string formed on the receiver side against the digital signature 43. Figure 4 shows a further embodiment of the decoder 20. The features described in relation to Figure 4 can be optionally combined with any of the aforementioned embodiments of the decoder 20. According to the embodiment of Figure 4, the reliability check is performed in units of parts 13', 13''. In other words, according to this embodiment, the data stream 14 includes several parts in which the data stream 14 can be verified in units thereof. For example, the data stream 14 includes a digital signature for each of the parts. Optionally, the data stream 14 may include the aforementioned verification parameter set for each of the parts. Alternatively, the verification parameters for all or a subset of the parts of a segment may be included in a common verification parameter set. The predetermined part 13 described above may be one of several parts. Each part may be defined by assigning one or more packets or data contained in packets to it (each part).
[0045] For example, in Figure 4, payload packet 16' is assigned to part 13', and payload packet 16'' is assigned to part 13''. Performing verification of the data stream 14 on a part-by-part basis may include determining each part, for example, parts 13' and 13'' in Figure 4, and subjecting each part to a reliability check 41. For this purpose, the data stream 14 may indicate the respective digital signatures for each part, for example, the digital signature 43' for part 13' and the digital signature 43'' for part 13'' in Figure 4. For example, parts as described in Figure 4 may be referred to as substreams or verification substreams of the data stream 14.
[0046] For example, in the case of a video data stream, different layers of a layered video data stream may be assigned to different substreams. For example, different layers may carry different representations of the video encoded within the video data stream 14, for example, having different spatial resolutions, carrying different types of data such as texture and depth, or carrying different views of a scene. As a further example, different substreams may be associated with different time layers of a media data stream, each time layer carrying samples to form a representation of a media signal encoded at a different time resolution, for example, resulting in a higher time resolution when different time layers are combined. However, it should be noted that these are merely examples of organizing data in a media data stream within different substreams, and the association between packets and substreams may depend on an encoder or entity that makes the data stream 14 checkable in terms of reliability. In other words, the data stream 14 may contain, or may contain, instructions for each of the several parts of the data stream 14 that can be verified on a unit basis.
[0047] In some embodiments, in addition to the data stream being verifiable in units of the aforementioned parts in the sense of substreams, reliability checks may be performed in units of segments 17 of the temporal sequence of segments of the data stream 14. A segment may be referred to as a verification period. In other words, within one segment of the data stream 14, multiple substreams, e.g., parts 13', 13'' described above, may be defined, and the segments are verifiable in units thereof, and packets or data belonging to each of the substreams do not necessarily form a contiguous part of the data stream 14, but rather, within one segment, packets or data fragments may be individually assigned to one of the substreams. Hereinafter, only one segment 17 is considered, i.e., when referring to a part, for example, the aforementioned substreams within one segment 17 may be referred to. For example, in the embodiments described with respect to the first and second embodiments, a given part 13 may be a part of one segment 17 of the data stream 14. According to one embodiment, the data stream 14 includes, for example, an indication of the number of substreams of the data stream within a single segment, such that, for example, only one segment of the data stream is considered as a data stream.
[0048] According to one embodiment, the extractor 21 derives several parts from the data stream 14, for example, the number of substreams of the data stream, by deriving instructions for several parts from the data stream 14. According to this embodiment, the part decisioner 30 may assign each payload packet 16 to one of the parts, for example, one or more of the parts, that is, it does not necessarily have to be assigned to each of the parts.
[0049] The following describes an embodiment of the first aspect of the present invention. Figure 5 shows a device 20 for decoding a data stream 14 according to one embodiment of the first aspect of the present invention. The device 20 in Figure 5 may optionally be an embodiment of the device 20 in Figure 1, that is, the device 20 in Figure 5 may be based on any of the embodiments described with respect to Figures 1 to 4. The features described with respect to Figure 4 may optionally be applied to embodiments of the second aspect.
[0050] According to an embodiment of the first aspect, the data stream includes a temporal sequence of segments 17, 17*, as described with respect to Figure 4, for example. For example, a segment forms a temporal sequence with respect to the temporal order of the samples of the signal encoded in the data stream 14, for example, the presentation order or presentation time assigned to the samples. For example, a segment may be a video segment that forms a temporal sequence with respect to the presentation order or presentation time assigned to the video segment. For example, each of the segments 17 may be an encoded video sequence (CVS). According to the embodiment of Figure 5, the partial decision-maker 30 determines a predetermined portion 13 of one of the segments 17* to be checked for reliability, for example, as described above. As already stated, the predetermined portion 13 does not necessarily have to be a contiguous portion of segment 17*, and may be assigned to individual packets or data fragments, as shown by the hatched portion of segment 17* in Figure 5.
[0051] According to an embodiment of the first alternative example of the first aspect, for a reliability check of segment 17*, the extractor 21 derives an instruction 61 from the data stream 14 indicating whether segment 17* is the first segment of a signed subsequence of a temporal sequence. For example, instruction 61 may be a syntactic element signaled in the data stream 14, such as a flag, such as DSCI_first_signed_segment_flag, as described below. According to an embodiment of the second alternative example of the first aspect, instruction 61 indicates whether the segment is the last segment of a signed subsequence of a temporal sequence. For example, instruction 61 may be a syntactic element signaled in the data stream 14, such as a flag, such as DSCI_last_signed_segment_flag described later.
[0052] According to an embodiment of the first aspect, instruction 61 is included in the verification of a predetermined portion 13. In other words, instruction 61 may be included in the determination of the verification string 48 performed by the verification string generator 39 in Figure 5. In the reliability check 41, as shown in Figure 5, in block 39, the verification string 48 is formed based on the predetermined portion 13 and instruction 61. For example, block 39 may include blocks 31 and 49 in Figure 2. Block 63 of the reliability check 41, as shown in Figure 7, checks whether the verification string 48 conforms to the digital signature 43. For example, block 63 may include block 59 in Figure 2 and a comparison between the check value 47 and the verification string 48. According to one embodiment, the verification string 48 is formed by combining, for example, concatenating, hash values derived by applying a hash function to a predetermined portion 13. According to another embodiment, the combination of instruction 61 and the predetermined portion 13, for example, concatenation, is applied to a hash function to obtain a hash value, which is used to form the verification string 48. In other words, instruction may be included in a predetermined portion 13.
[0053] In other words, for example, a verification string may reflect or rely on both the hash value 31 and the instruction 61. For example, the verification within it may include the hash value 31 and the instruction 61, for example, a value or flag representing the instruction 61. In other words, one embodiment of the present invention is a device 20 for decoding a data stream, the data stream comprising a temporal sequence of segments 17 (e.g., coded video sequence (CVS)) (e.g., video segments form a temporal sequence with respect to the presentation order or presentation time assigned to the video segments of the temporal sequence), the device 30 determines, for a segment of the sequence of segments, a predetermined portion 13 of the segment, and from the data stream, i) whether the segment is the first segment of a signed (or verifiable) subsequence of the temporal sequence, or ii) The system is configured to derive an instruction 61 (e.g., a syntactic element, e.g., a flag, e.g., dsci_last_signed_segment_flag) indicating whether the segment is the last segment of a signed (or verifiable) subsequence of a temporal sequence 21, and to derive a digital signature 43 from a data stream to be checked against a verification string 48 obtained based on a given portion 13 and instruction 61 (e.g., the verification string reflects or relies on a hash value and an instruction, e.g., the verification string includes a hash value and an instruction, e.g., the value of a flag representing the instruction).
[0054] According to one embodiment, the device is configured to verify a predetermined portion 13 by checking whether a verification string 48 conforms to (or matches) a digital signature 43 (for example, to check the reliability of a data stream or a predetermined portion 13 thereof). According to one embodiment, the device is configured to provide (or transmit) a predetermined portion 13, an instruction 61, and a digital signature 43 for verification of the predetermined portion 13 (for example, performed by a further device or entity) (for example, verification includes checking whether the predetermined portion 13 of the data stream conforms to (or matches) the digital signature 43). According to one embodiment, a predetermined portion 13 is subjected to a hash function to obtain a hash value, and the verification string 48 is obtained based on the hash value.
[0055] According to one embodiment, a predetermined portion 13 and instructions (for example, their concatenation) are subjected to a hash function to obtain a hash value, and the verification string 48 is obtained based on the hash value. In other words, one embodiment of the present invention is a device 20 for decoding a data stream 14, the device is configured to check the data stream for reliability (e.g., a device for verifying the data stream), the data stream includes a temporal sequence of segments 17 (e.g., segments of encoded payload data, e.g., coded video sequence (CVS)) (e.g., segments form a temporal sequence with respect to the presentation order or presentation time assigned to the segments of the temporal sequence), the device obtains a hash value 33 by applying a hash function 31 to a predetermined portion 13 of the segments, i) whether the segment is the first segment of a signed (or verifiable) subsequence of the temporal sequence The system is configured to verify a segment (e.g., the current or a given) of a sequence of segments by 2) deriving an instruction 61 (e.g., a syntactic element, e.g., a flag, e.g., dsci_last_signed_segment_flag) indicating whether the segment is the last segment of a signed (or verifiable) subsequence of a temporal sequence 21, forming a verification string 48 based on the hash value 33 and the instruction 61 (e.g., the verification string reflects or relies on the hash value and the instruction, e.g., the verification string includes the hash value and the instruction, e.g., the value of a flag representing the instruction), deriving a digital signature 43 from the data stream, and checking whether the verification string 48 conforms to the digital signature 43.
[0056] Further optional selections of embodiments of the first aspect are described below. According to one embodiment, instruction 61 is included in the data stream 14 within a supplemental information message associated with segment 17*, for example, within a DSCI SEI message described later. For example, instruction 61 may be part of the verification parameter set described above. Alternatively, instruction 61 may be part of a supplemental information message that carries the digital signature 43, such as the DSCV SEI message described later. In other words, according to one embodiment of the first alternative of the first aspect, the supplemental information message containing instruction 61 precedes a predetermined portion 13 in the data stream 14. According to one embodiment of the second alternative of the first aspect, the supplemental information message containing instruction 61 follows a predetermined portion 13 in the data stream 14 or precedes the final payload packet of a predetermined portion 13 in the data stream 14.
[0057] According to one embodiment of the first alternative example of the first aspect, the reliability check 14 of a predetermined portion 13 of segment 17* is performed in such a manner that, when segment 17* is the first segment of a signed subsequence, a verification string 48 is formed independently of any segment of the data stream 14 that precedes segment 17* in the temporal sequence.
[0058] For example, if a segment is not the first segment in a signed subsequence, the verification string 48 may be formed using the previous hash value obtained for the preceding segment that precedes segment 17* in the sequence of segments in data stream 14. For example, when referring to a “preceding segment”, it means the preceding segment immediately before segment 17*, i.e., the segment whose authenticity is currently being checked. In other words, the instruction indicating whether segment 17* is the first segment of a signed subsequence provides the decoder, or device for checking the authenticity of the data stream 14, with information on whether the current segment is the first segment of a signed subsequence, thereby enabling the entity performing the authenticity check to infer whether the hash value from the previous segment should be included in the authenticity check in order to successfully verify the digital signature for the current segment 17*. For example, to provide verification of the temporal consistency of a sequence of temporal segments, rather than just verifying individual segments, for example, to verify that no segments have been canceled or no additional segments have been added, segment verification may include the hash value of the previous segment within the verification string of the segment currently being checked.
[0059] A receiver switching to a stream does not necessarily know whether the segment it is currently receiving is the first segment of a signed subsequence of the media data stream. An instruction indicating whether a segment is the first segment allows the receiver to infer that if the segment is not the first segment and the receiver does not have the preceding segment, it cannot perform a reliability check. If the segment is the first segment, the receiver knows from instruction 61 that a reliability check should be performed independently of the previous segment and that it can perform a reliability check. Therefore, if the reliability check fails, the receiver knows that the segment is unreliable. Furthermore, if two data streams are concatenated and there is no instruction in the data stream indicating a switch from the first data stream to the second data stream, the receiver may assume that the first segment of the second data stream should be verified using the hash value of the last segment of the first data stream. However, if these two data streams are checkable for reliability independently of each other, such a check may fail, and the receiver may identify a verification problem for the first segment of the second data stream. By having information that the segment is the first segment of the second data stream, a receiver according to one embodiment of the present invention may perform a reliability check independently of the first data stream, and as a result the check will succeed. The presence of an instruction that a segment is the last segment of a signed subsequence prevents the data stream from being unintentionally shortened.
[0060] As already explained with respect to Figure 4, the data stream 14 or its segments may optionally be verifiable in units of parts also referred to as substreams. According to an embodiment of the first aspect, the segment 17* is verifiable in units of several parts having a hierarchical order. According to one embodiment, if a predetermined portion 13 is not the first portion in a hierarchical order of parts, the reliability check 41 generates a verification string 48 based on the previous hash value obtained for the preceding portion of the segment 17* that precedes the predetermined portion 13 in the hierarchical order. For example, the preceding portion may be the portion on which the reliability check for the predetermined portion relies, in other words, the reliability check for the predetermined portion 13 refers to the preceding portion.
[0061] According to one embodiment, if a predetermined portion 13 is the first portion in a hierarchical order of parts, for example, the lowest-ranked portion as described above, and the subsequent portion of the predetermined portion 13 is verified, and the subsequent portion follows the predetermined portion 13 in a hierarchical order, for example directly or indirectly, the reliability check 41 forms a verification string 48 for verifying the subsequent portion based on a hash value obtained by applying a hash function to the predetermined portion 13.
[0062] According to one embodiment, instruction 61 indicating whether segment 17* is the first segment in a signed subsequence is selectively signaled, for example, only if a given part 13 to be verified is the first part in a hierarchical order of several parts. The same may apply if instruction 61 indicates whether segment 17* is the last segment in a signed subsequence. This conditional signaling is particularly useful when instruction 61 is signaled with a syntactic structure specific to individual parts within segment 17*, such as a syntactic structure that signals each of several parts of segment 17*, such as the DSCV SEI message described later. Conditionally signaling instruction 61 only to the first part, for example the lowest-ranked substream, prevents signaling information that is the same for all parts of the segment multiple times. In other words, when verifying a part of several parts that is not the first part in a hierarchical sequence, the device 20 may refrain from deriving instruction 61 from the data stream 14.
[0063] Figure 6 shows a device 10 for encoding a data stream according to one embodiment of the first aspect. The device 10 in Figure 6 may optionally correspond to the device 10 in Figure 3, that is, the device 10 in Figure 6 may be based on any of the embodiments described with respect to Figures 1 to 3. According to the embodiment in Figure 6, the encoder 10 makes the data stream 14 verifiable for reliability (see verification module 41'). The inserter 23 of the encoder 10 encodes the temporal sequence of segments 17, 17* into the data stream 14. The device 10 makes the current segment 17* of the sequence of segments verifiable in terms of reliability by applying a hash function 31 to a predetermined portion 13 of segment 17* to obtain a hash value 33. The inserter 23 of the device 10 inserts an instruction 61 into the data stream 14, which indicates, in a first alternative example, whether the current segment 17* is the first segment of a signed subsequence of the temporal sequence, or in a second alternative example, whether the current segment 17* is the last segment of a signed subsequence of the temporal sequence. According to this embodiment, a verification string 48 is formed based on the predetermined portion 13 and the instruction 61, for example, with respect to the verification module 41 in Figure 5. The verification string is used to obtain a digital signature 43 by signing the verification string 43, for example, using a secret key of an asymmetric cryptographic scheme. The inserter 23 inserts the digital signature 43 or its instruction into the data stream 14.
[0064] By relying on instruction 61 for the validation string, it is prevented that instruction 61 may be corrupted, for example, modified in an improper way that could weaken the reliability check, and in particular, that the benefit of including instruction 61 within the data stream 14, as described above, may be lost.
[0065] The following describes an embodiment of a second aspect of the present invention. Figure 7 shows a device 20 for decoding a data stream 14 according to one embodiment of a second aspect of the present invention. The device 20 in Figure 7 may optionally be an embodiment of the device 20 in Figure 1, that is, any of the details described with respect to Figures 1 to 3 may optionally be implemented in the device 20 in Figure 7. Furthermore, the features described with respect to Figures 4 and 5 may optionally be implemented in the device in Figure 7.
[0066] According to the embodiment of Figure 7, the data stream 14 includes a temporal sequence of segments 17, 17*, as described, for example, with respect to Figure 4 or Figure 5. According to Figure 7, the device 20 derives from the data stream 14 of segment 17* of the sequence of segments that are currently to be checked for reliability whether the verification chain in the temporal sequence of segments was interrupted at a segment. If the device 20 arrives at the result that the verification chain was interrupted at a segment, and the data stream 14 includes a digital signature 43 for checking segment 17* for reliability, the extractor 21 extracts the digital signature 43 from the data stream 14 to provide the digital signature 43 for the reliability check 41. The reliability check 41 may be performed as described above, but according to an embodiment of the second aspect, the formation of the verification string 48 is performed independently of the preceding video segment immediately preceding the segment currently being checked in the temporal sequence if the verification chain was interrupted at the current segment.
[0067] For example, a validation chain is a signed subsequence of a temporal sequence of segments. For example, a break may occur if a data stream is spliced in the current segment, i.e., if the current segment does not belong to the same signal as the signal carried in the preceding segment of data stream 14. For example, in the case of media signals, a data stream may be spliced to insert advertisements between segments of a media data stream, resulting in a data stream where the validation chain is interrupted at the splicing point. In general, splicing can refer to components of data stream segments that are not checkable together in terms of reliability.
[0068] In other words, one embodiment of the present invention is a device 20 for decoding a data stream 14, the data stream comprising a temporal sequence of segments 17 (e.g., coded video sequence (CVS)) (e.g., the segments form a temporal sequence with respect to the presentation order or presentation time assigned to the segments of the temporal sequence), and the device is configured to derive from the data stream, for a segment 17* of the sequence of segments, whether the verification chain (or signed subsequence of the temporal sequence) in the temporal sequence of the segments was interrupted in the segment 21, and if the data stream indicates that the verification chain was interrupted and the data stream includes a digital signature 43 for checking the segment for trustworthiness (e.g., a digital signature 43 for checking the segment or part thereof for trustworthiness) (e.g., the device is configured to check whether the data stream includes a digital signature for the segment, and if the data stream does not include a digital signature for the segment, the device does not check the segment for trustworthiness), derive from the data stream a digital signature 43 for checking against a verification string 48 independent of the preceding segment immediately preceding the segment 17* in the temporal sequence 21. According to one embodiment, the device is configured to verify a segment by checking whether a verification string 48 conforms to (or matches) a digital signature 43 (for example, to check the reliability of a data stream or a predetermined portion 13 thereof).
[0069] According to one embodiment, the device is configured to provide (or transfer) a predetermined portion 13 of a segment and a digital signature 43 for segment verification (for example, performed by a further device or entity) (e.g., verification includes checking whether a predetermined portion 13 of a data stream conforms to (or matches) the digital signature 43). In other words, one embodiment of the present invention is a device 20 for decoding a data stream 14, the device is configured to check the data stream for reliability (e.g., a device for validating a data stream), the data stream includes a temporal sequence of segments (e.g., coded video sequence (CVS)) (e.g., segments form a temporal sequence with respect to the presentation order or presentation time assigned to the segments of the temporal sequence), the device derives from the data stream whether a verification chain (or signed subsequence of the temporal sequence) in the temporal sequence of segments has been interrupted in the segment 21, and whether the data stream indicates that the verification chain has been interrupted If the data stream contains a digital signature 43 for a segment (for example, a digital signature 43 for checking the segment or a portion thereof for authenticity) (for example, the device is configured to check whether the data stream contains a digital signature 43 for a segment, and for example, if the data stream does not contain a digital signature for a segment, the device does not check the segment for authenticity), the device is configured to derive the digital signature 43 from the data stream 21, to form a verification string 48 independent of the preceding segment that is immediately preceding the segment in the temporal sequence 39, and to check whether the verification string 48 conforms to the digital signature 43 63.
[0070] Further optional selections of embodiments are described below. According to one embodiment, the device 20 may check whether the data stream 14 contains a digital signature for the current segment. For example, if it does not, the current segment will not be checked for trustworthiness. In other words, the current segment, which is inserted into a verification chain and thereby causes an interruption in the verification chain, may not be verifiable, i.e., it may not contain a digital signature. In these cases, the trustworthiness check may be omitted. According to one embodiment, the data stream 14 includes an instruction for the current segment indicating whether the validation chain was interrupted at the current segment. For example, the instruction may be a flag, such as a syntactic element like DSCI_splicing_flag, as described later. For example, the instruction may be included in the validation parameter set described above.
[0071] In Figure 7, the current segment is indicated using reference numeral 17*. The temporal sequence of the data stream 14 in Figure 7 includes segments 17 and 17* for illustrative purposes. Segment 17 belongs to a verification chain, such as a signed subsequence of the temporal sequence. Segment 17* is inserted between two segments 17, thereby causing a break in the verification chain at the current segment 17*. According to one embodiment, the device 20 can check whether segment 17* is checkable in terms of reliability, and if segment 17* is not checkable in terms of reliability, the device 20 can assume that the verification chain was interrupted at segment 17*.
[0072] In the reliability check 41, as shown in Figure 7, the verification string 48 is formed in block 39 based on a predetermined portion 13. For example, block 39 may include blocks 31 and 49 in Figure 2. Block 63 of the reliability check 41, as shown in Figure 7, checks whether the verification string 48 conforms to the digital signature 43. For example, block 63 may include block 59 in Figure 2 and a comparison between the check value 47 and the verification string 48.
[0073] According to one embodiment, the formation of the verification string 48 depends on whether the device 20 detects a break in the verification chain at segment 17*. If the verification chain is broken (i.e., the device 20 detects a break), and the data stream 14 contains a digital signature for segment 17*, the verification string 48 is formed by using a preceding hash value obtained by applying the hash function 31 to the portion of the preceding segment. If the device 20 detects a break, and the data stream 14 contains a digital signature for segment 17*, the verification string 48 is formed independently of any of the segments 17 that precede segment 17* in the temporal sequence.
[0074] According to one embodiment, the formation of the verification string 48 may further depend on whether segment 17* is the first segment of a further verification chain. If segment 17* is the first segment of a further verification chain, the verification string 48 is formed independently of any segments preceding segment 17* in the temporal sequence. In the example, if the segment is not the first segment of a further verification chain, the verification string 48 may be formed using a previous hash value, which is obtained by applying a hash function to a portion of a further preceding segment in the temporal sequence. For example, the further preceding segment is a segment belonging to a further verification chain. In other words, the sequence of the temporal sequence of the data stream 14 may include multiple verification chains that can be interleaved. The device 20 may check whether segment 17* is the first segment of a further verification chain at a splicing point, i.e., the point where the device 20 detects a break in the verification chain, i.e., segment 17*, so that the temporal consistency between segment 17* and its preceding segment in the further verification chain can be checked.
[0075] In more general terms, the device 20 may check whether segment 17* is the first segment in a further verification chain. For example, this check may be performed using instruction 61 as described with respect to Figure 5. Thus, the second embodiment may be combined with the first embodiment of the present invention. Alternatively, the device 20 may determine whether segment 17* is the first segment in a further verification chain based on the verification information signaled for segment 17* in the data stream 14. In other words, the device 20 may derive verification information for segment 17* from the data stream 14 and compare that verification information with preceding verifications for another further preceding segment or a further preceding segment in a temporal sequence. For example, the verification information may be information from the verification parameter set described above, such as a DSCI SEI message, or a portion of the information signal therein. If the verification information matches the preceding verification information, the device may infer that segment 17* is not the first segment in a further verification chain; otherwise, i.e., if the verification information does not match, for example, if it is not identical to the preceding verification information, the device 20 may infer that segment 17* is not the first segment in a further verification chain.
[0076] For example, a match between verification information and preceding verification information may mean that they are identical, or that an evaluation of the verification information results in the conclusion that the verification information and the preceding verification information are part of the same content or verification chain, for example, that they are subsequent segments in the same verification chain. For example, the content identifier of the verification information may be changed for each segment, which may allow checking whether a segment is a subsequent segment of the same content. For example, when determining whether segment 17* is the first segment in a further verification chain, the device 20 may compare the verification information of segment 17* with the verification information of multiple preceding segments in the temporal sequence, for example, all segments, or all segments except the immediately preceding segment. For example, the verification information may include one or more of the following: a certificate instruction containing a public key for decrypting the digital signature 43, a hash function instruction, and a segment content identifier that associates the segment with a media asset.
[0077] According to one embodiment, if the data stream 14 indicates that the verification chain has been interrupted at segment 17*, the device 20 may store the hash value of the preceding segment for verification of the segment following segment 17*. In other words, the device 20 may store the hash value obtained by applying a hash function to the portion of the preceding segment and use this hash value for subsequent verification of the subsequent segment belonging to the verification chain that was interrupted at segment 17*. In other words, the device 20 may continue the verification chain with the subsequent segment of the verification chain.
[0078] Figure 8 shows a device 10 for encoding a data stream according to one embodiment of a second aspect of the present invention. The device 10 in Figure 8 may be an embodiment of the device 10 in Figure 3. The device 10 in Figure 8 may provide a data stream 14 as described in the context of the device 20 in Figure 7. The device 10 according to Figure 8 is configured to make the data stream 14 trustworthy. The device 10 inserts a temporal sequence of segments 17, including, for example, segments 17, 17*, into the data stream 14. If the verification chain in the temporal sequence of segments is interrupted at segment 17* in the temporal sequence of segments, and segment 17* should be trustworthy, the device 20 makes segment 17* trustworthy by forming a verification string 48 independent of the preceding segment immediately preceding segment 17* in the temporal sequence. The device 10 obtains a digital signature 43 based on the verification string 48 and inserts the digital signature 43 into the data stream 14. Although the descriptions of Figures 1 to 8 relate to the apparatus, the block diagrams in these figures can be considered alternatively to flow diagrams of each method, where each block represents a step in that method. Therefore, Figures 1 to 8 further provide examples of each method. The embodiments of the present invention will be described again below, in other words, specific and further embodiments of the present invention will be described. The embodiments described with respect to Figures 1 to 8 may be considered generalizations of the embodiments described below, but the following description may further include additional embodiments of the present invention that can be carried out independently of the embodiments described above. Any of the features and details described with respect to the embodiments described below may be optionally incorporated into the embodiments described above.
[0079] Although the following explanation refers to video data streams, it is clear that the same concepts can be applied equivalently to any type of media data stream, or any type of data stream that includes sampled data. A further example of sampled data may be waveform signals. In addition to audio signals, another example of waveform signals is biomedical waveform signals. To authenticate a video, the client must be provided with information about the certificate carrying the public key that may be used to verify and provide one or more signatures of the video, including how the hashing was performed (including the hashing method used, how the data is organized, and what was actually hashed and how).
[0080] The following describes existing solutions for content validation. Subsequent embodiments of the present invention may be described in terms of modifications to these existing solutions, and therefore, details of these existing solutions may form features of embodiments of the present invention. For this purpose, existing solutions involve including three SEI messages within each coded video sequence (CVS) of the video bitstream. 1. Digitally Signed Content Initialization SEI Message: Carries a C2PA manifest containing information such as the hashing method used, a URL to obtain a certificate, or the public key and UUID of the content used when calculating the signature, so that different bitstreams (e.g., different audio and video streams) that are individually signed and belong to the same content can be identified as belonging to the same content (thus preventing the use of audio from different content in a particular video, and avoiding the use of something someone said at a different time in a new video), and also carries the number of substreams used to generate the signature. The latter refers to splitting the content into different substreams, each with its own signature, so that if less important parts of a video are dropped (e.g., to layer-encode a high-resolution enhancement layer in case of network congestion), the received parts can still be authenticated. 2. Digitally signed content selection SEI message: Identifies the substream ID to which the picture slice (i.e., VCL NAL unit) belongs. 3. Digitally signed content verification SEI message: Provides a signature corresponding to each substream.
[0081] The existing solutions for these three SEI messages and verification processes are reproduced below. Details of these solutions may be optionally implemented in embodiments of the present invention, for example, in terms of modifications to these solutions, unless otherwise specified. Digitally signed content initialization SEI message: JPEG2026086355000002.jpg78168 dsci_hash_method_type indicates the secure hash algorithm used to compute message digests for a subset of SPS, PPS, APS, PH, and VCL NAL units of the coded video sequence. Based on these message digests and the digital signature present in the digitally signed content verification SEI message, the decoder can verify that the coded video was generated by the content originator indicated by dsci_key_register_idx if the flag in dsci_use_key_register_idx_flag is equal to 1. The supported values for the syntax element dsci_hash_method_type, the block size used to compute the message digest, and the size of the computed message digest are specified. Values for dsci_hash_method_type not listed in Table 1 are reserved for future use by ITU-T|ISO / IEC and should not be present in payload data conforming to this version of this specification. The decoder shall ignore trusted initialization SEI messages containing reserved values for dsci_hash_method_type. The secure hash algorithms listed in Table 1 are specified in the Secure Hash Standard FIPS PUB 180-4.
[0082] Table 1 - Support values for dsci_hash_method_type JPEG2026086355000003.jpg51169 dsci_key_source_uri contains a URI having the syntax and semantics specified in IETF Internet Standard 66. If dsci_key_retrieval_mode_idc is equal to 0, dsci_key_source_uri specifies a C2PA manifest store as defined in the C2PA Technical Specification. If dsci_key_retrieval_mode_idc is equal to 1, the following applies: -If dsci_use_key_register_idx_flag is equal to 0, the URI identifies the content provider's certificate which may be used to verify the signature present in the following digitally signed content verification SEI message. - If not (dsci_use_key_register_idx_flag is equal to 1), the URI identifies the certificate register and the content provider's certificate that can be used to verify the signature present in the following digitally signed content verification SEI message, as indicated by dsci_key_register_idx.
[0083] Adding 1 to dsci_num_verification_substreams_minus1 indicates the number of substreams in which a signature may exist within the following digitally signed content verification SEI message, calculated from the message digest. The variable NumVerificationSubstream is derived as follows: NumVerificationSubstream=dsci_num_verification_substreams_minus1+1. A dsci_key_retrieval_mode_idc equal to 0 indicates that the URI contained in dsci_key_source_uri specifies a C2PA manifest store as defined in the C2PA Technical Specification. A dsci_key_retrieval_mode_idc equal to 1 indicates that the URI contained in dsci_key_source_uri, and dsci_key_register_idx, if present, specify a certificate. In this version of the Specification, dsci_key_retrieval_mode_idc shall be in the range of 0 to 1. The decoder shall also accept other values for dsci_key_retrieval_mode_idc, but shall ignore the content of the digitally signed content initialization SEI message, associated digitally signed content selection SEI message, and associated digitally signed content verification SEI message.
[0084] A dsci_use_key_register_idx_flag equal to 1 indicates that the URI contained in dsci_key_source_uri specifies a certificate register and that the syntax element dsci_key_register_idx is present in the SEI message. A dsci_use_key_register_idx_flag equal to 0 indicates that the URI contained in dsci_key_source_uri specifies a certificate and that the syntax element dsci_key_register_idx is not present in the SEI message. When dsci_key_retrieval_mode_idc is equal to 0, the media asset for which the active manifest provides content binding is a digitally signed content initialization SEI message, as specified in the C2PA technical specification. The following constraints apply to the C2PA manifest store identified by dsci_key_source_uri.
[0085] - The active manifest shall contain exactly one c2pa.hash.data, which has strong binding force on content assertions as specified in the C2PA technical specifications. The exclusion range specified in -c2pa.hash.data shall match the dsci_key_source_uri byte in the digitally signed content initialization SEI message. dsci_key_register_idx contains an index that specifies the content provider's certificate in the certificate register indicated by dsci_key_source_uri, which, if present, can be used to verify the signature present in the following digitally signed content verification SEI message.
[0086] The certificate indicated by dsci_key_register_idx when the syntax elements dsci_key_retrieval_mode_idc, dsci_use_key_register_idx_flag, dsci_key_source_uri, and dsci_use_key_register_idx_flag are equal to 1 shall specify the digital signing method using the relevant parameters (if applicable) and the public key of the content provider. When dsci_key_retrieval_mode_idc is equal to 1, the format in which this information is provided is outside the scope of this specification. It is proposed to use a digital signature algorithm compliant with FIPS 186-5, “Digital Signature Standard”. A dsci_content_uuid_present_flag equal to 1 indicates that the syntactic element dsci_content_uuid exists. A dsci_content_uuid_present_flag equal to 0 indicates that the syntactic element dsci_content_uuid does not exist. When dsci_key_retrieval_mode_idc is equal to 0, dsci_content_uuid_present_flag is considered equal to 1.
[0087] dsci_content_uuid, if present, indicates the identifier of the video content and shall have a value specified as a UUID in accordance with ISO / IEC 11578:1996, Annex A.
[0088] If a digitally signed content initialization SEI message exists within the AU, the calculation of the NumVerificationSubstream message digest is initialized according to the FIPS PUB 180-4 specification for the specified dsci_hash_method_type. Each SPS, PPS, APS, PH, and VCL NAL unit following the digitally signed content initialization SEI message is associated with one of the NumVerificationSubstream message digests, where the verification substream ID is either indicated by the digitally signed content selection SEI message or inferred to be equal to 0 if no digitally signed content selection SEI message exists for the PU. The message used to calculate the k-th message digest is obtained by concatenating all SPS, PPS, APS, and VCL NAL units associated with the k-th verification substream, where k is in the range of 0 or greater and dsci_num_verification_substreams_minus1 or less. The message digest calculation is block-based, and the block size is specified in Table 1 depending on the value of dsci_hash_method_type. For each SPS, PPS, APS, PH, and VCL NAL unit, the associated message digest is updated according to the algorithm specified in FIPS PUB 180-4 for the given dsci_hash_method_type. Note that since the message digest is computed for the concatenation of all SPS, PPS, APS, PH, and VCL NAL units in the verification substream, some of the processing blocks will typically span two or more consecutive NAL units.
[0089] Digitally signed content selection SEI message: JPEG2026086355000004.jpg18166 dscs_verification_substream_id indicates the verification substream to which the SPS, PPS, APS, PH, and VCL NAL units of the current coded picture are assigned. If a digitally signed content initialization SEI message is present in the current coded video sequence, but a digitally signed content selection SEI message is not present in the coded picture, the value of dscs_verification_substream_id is inferred to be equal to 0. The value of dscs_verification_substream_id must be greater than or equal to 0 and less than or equal to dsci_num_verification_substream_minus1.
[0090] As specified below, the message digest of the verification substream having an ID equal to dscs_verification_substream_id is updated with the SPS, PPS, APS, PH, and VCL NAL units of the current coded picture, according to the dsci_hash_method_type specified in the preceding digitally signed content initialization SEI message.
[0091] Digitally signed content verification SEI message: JPEG2026086355000005.jpg29168 dscv_verification_substream_id indicates the verification substream to which the SEI message applies.
[0092] Adding 1 to dscv_signature_length_in_octets_minus1 specifies the length of the syntax element dscv_signature in octets (one octet consists of 8 bits). dscv_signature contains the digital signature for the verification substream indicated by dscv_verification_substream_id.
[0093] The verification of a bitstream signature consists of the following ordered steps: 1. The calculation of the message digest, known as CurrDigest, is ultimately determined as follows: -The concatenation of SPS, PPS, APS, PH, and VCL NAL units for the verification substream having an ID equal to dscv_verification_substream_id is padded according to the FIPS PUB 180-4 specification. Note that it is sufficient to pad only the last NAL unit of the verification substream. - The calculation of the message digest, CurrDigest, is finalized according to the FIPS PUB 180-4 specification. The length of the message digest (in bits) is shown in Table 1.
[0094] 2. The reference message digest RefDigest is determined as follows: -If dscv_verification_substream_id is greater than 0, the reference message digest RefDigest is the last calculated message digest of the verification substream having an ID equal to dscv_verification_substream_id-1. A bitstream conformance requirement is that any digitally signed content verification SEI associated with a verification substream ID equal to dscv_verification_substream_id-1 exists before the digitally signed content verification SEI message having a verification substream ID equal to dscv_verification_substream_id. -Instead, if the current digitally signed content verification SEI message is the first digitally signed content verification SEI in the coded video sequence with a verification ID equal to 0, and the preceding coded video sequence did not contain any digitally signed content initialization SEI messages (including the case where the current coded video sequence is the first coded video sequence in the bitstream), then RefDigest is set to equal a bit string consisting of DigestSize bits equal to 1, where DigestSize is the size of the message digest as specified in Table 1. - Otherwise, the reference message digest RefDigest is the last calculated message digest of the validation substream that has an ID equal to 0.
[0095] 3. The identifier string IdString is constructed by concatenating the binary representation of the reference message digest RefDigest, the current message digest, and dsci_hash_method_type, as well as dsci_content_uuid2 if present. The number of bits in RefDigest is determined by the value of dsci_hash_method_type that was valid when calculating the value of RefDigest, and the number of bits in CurrDigest is determined by the current value of dsci_hash_method_type, the value of dsci_hash_method_type is represented by 8 bits, and if present, the value of dsci_content_uuid is represented by 128 bits.
[0096] 4. The IdString represents the message used to verify the signature. The signature verification algorithm and the public key used to verify the signature are indicated by the syntax elements dsci_use_key_register_idx_flag, dsci_key_source_uri, and, if dsci_use_key_register_idx_flag is equal to 1, dsci_key_register_idx.
[0097] Note 1 - Since the bit stream used for signature verification includes RefDigest, it can be verified that the SPS, PPS, APS, PH, and VCL NAL units used to calculate the current message digest are correct, and it can also be additionally verified that no additional SPS, PPS, APS, PH, and VCL NAL units have been added to the bitstream and no SPS, PPS, APS, PH, and VCL NAL units have been removed from the bitstream. Note 2 - When the decoder tunes to the bitstream, it cannot correctly calculate the value of RefDigest, and therefore cannot verify the configured IdString for the first digitally signed Content Verification SEI message. However, it is possible to verify the signature starting from the second digitally signed Content Verification SEI message. After verification, the message digest of the verification substream with an ID equal to dscv_verification_substream_id is reinitialized according to the FIPS PUB 180-4 specification for the specified dsci_hash_method_type.
[0098] Further embodiments of the first aspect of the present invention will be described below. The currently defined SEI message enables the signaling of signatures for substreams within a segment and allows for the verification of temporal consistency by signing across hashes of consecutive segments. However, so far, there is no signaling for the start or end of a signed bitstream (section). In particular, the lack of an end signaling could make it possible to shorten (or cut) the bitstream at the end (end) without the decoder noticing. Explicit signaling of the start point would allow the decoder to be instructed to perform special actions, for example, to combine the hash of the previous segment with the signature. Explicit signaling of the start point would also make it possible to concatenate bitstreams that have been independently encoded and signed using the same signing key (e.g., two segments of a newscast). Unless an EOB NAL unit is used, the decoder would not be able to recognize that the second bitstream is permitted to break the link, potentially leading to incorrect verification.
[0099] Solution 1: Signals a flag indicating the end of a signed bitstream section. Variations of signaling a) The following flag is added to the digitally signed content initialization SEI message: JPEG2026086355000006.jpg82163 This is a desirable signaling behavior for the following reasons: - Only one initialization SEI is signaled for each substream. - The information is available to the decoder at the beginning of the already signed segment. - No additional data dependencies are introduced between the initialization SEI and the signature, as the hashing method type is already included in the signature.
[0100] Variations of signaling (b) Alternatively, the flag is added to the digitally signed content verification SEI message as follows: JPEG2026086355000007.jpg34166 Regarding variations of both signaling methods: To ensure that a malicious user cannot alter the instructions for the last signed bitstream segment, a flag value is added to the signature, and for example, the input data for the signature may consist of the elements shown in Figure 9A.
[0101] Solution 2: Signals a flag indicating the start of a signed bitstream section. Variations of signaling a) The following flag is added to the digitally signed content initialization SEI message: JPEG2026086355000008.jpg81164 This is a desirable signaling behavior for the following reasons: - Only one initialization SEI is signaled for each substream. - The information is available to the decoder at the beginning of the already signed segment. - No additional data dependencies are introduced between the initialization SEI and the signature, as the hashing method type is already included in the signature. Variations of signaling (b) Alternatively, the flag is added to the digitally signed content verification SEI message as follows: JPEG2026086355000009.jpg34166 Regarding variations of both signaling methods: To ensure that a malicious user cannot alter the instructions for the last signed bitstream segment, a flag value is added to the signature, and for example, the input data for the signature may consist of the elements shown in Figure 9A.
[0102] If the signed bitstream segment is the first, a temporary reference to the previous segment is not used. In this case, refDigest must be as follows: a) As shown in Figure 9B, the signature is not included at all, or b) Set all bytes of the hash to 0x00 (length depends on the hash type used) Conditional signaling in digitally signed content verification SEI Since time-dependent signatures are used only in base substream 0, the flags indicating the start and end of the signed bitstream section are only relevant within this substream.
[0103] If one or both flags are signaled in a digitally signed content verification SEI, they should only be present if the SEI message applies to substream 0. JPEG2026086355000010.jpg51166 This saves signaling bits by avoiding redundancy and potential contention.
[0104] Further embodiments of a second aspect of the present invention will be described below. Further extensions are described below. The solutions presented above make it possible to splice entire authenticated sections in a way that allows for content verification. In a typical scenario, splicing occurs as a result of an unexpected event, such as an ad insertion, in which some content is introduced in the middle of a video bitstream (i.e., a section). Such spliced content may or may not be authenticated. A diagram illustrating such a splicing case is shown in Figure 10.
[0105] The illustrated use case presents a problem because A (start) can be validated accurately. If B is validated, it may not be validated correctly when the last segment of A is considered. In principle, there may be no problem even if B is not validated. However, when returning to A (continuation), A (continuation) is not validated against A (start), meaning something can be deleted, or A (continuation) is validated against the last segment of B and results in an error.
[0106] In a further embodiment, a solution is provided in which the splicing is signaled (e.g., by a flag called dsci_splicing_flag) so that a decoder verifying an authenticated bitstream can identify such splicing points. This can also be used for parts of an unauthenticated bitstream, but can be used to indicate that some content is being spliced together, and the receiver interprets that if the content preceding the splicing point has not ended, it is likely to continue at the point where the spliced content ends (e.g., after B ends). At a splicing point where the following content is authenticated (e.g., A (continuation)), if the content is new and not simply a continuation of the previous content (e.g., it is certified from a new content provider, or has a new UUID, or in some way an indication has been added that it starts with a new segment - e.g., dsci_first_signed_segment_flag), then random access may be performed and it may be treated as if that segment were the first segment. Otherwise, if the content is not new but a continuation of previously decoded content (A continuation), it needs to be checked for temporal consistency with the last segment of the same content received some time ago. To do this, the hash value of the last segment before content B was spliced should be used. In the previous example, the first segment of A (continuation) might be checked against the last segment of A (start).
[0107] Therefore, splicing instructions within a bitstream provide decoders validating more than one video sequence with information that the segment immediately following the splicing point and the segment preceding the splicing point should not be validated together. In some circumstances, if the segment following the splicing point should be validated (i.e., containing authentication information), it may be that it should be validated by a preceding segment sent some time earlier. Therefore, at the splicing point, the decoder needs to identify the following:
[0108] a) Whether the subsequent segment of the new content is authenticated. a. If not authenticated, is it possible that a previously authenticated segment may be needed to validate further segments in the future? b. If authenticated, is it the first segment of the content? b) When a subsequent segment of new content needs to be authenticated, is it not the first segment of the new content where the previous segment of the same content should be found?
[0109] The choice to derive the aforementioned information can be made using a single flag, dsci_splicing_flag, as follows: When authenticated content is received and the splicing flag is found at some point, the decoder interprets that the content may continue (follow) at some point in the future and stores a digest message of the last segment of the lowest substream (the substream used for temporal consistency). Note that this can happen with B in the example, whether B is authenticated or not, if such a splicing flag is indicated. As a further option if B is not authenticated, the fact that B was not authenticated can be directly interpreted as meaning that splicing occurred.
[0110] After some time, when the decoder encounters further splicing flags, it determines whether the content is the first segment of new content or not, or not the first segment of previously sent content. For example, the decoder compares a digitally signed content SEI message to a digitally signed content SEI message received previously. If a digitally signed content initialization SEI message is exactly the same as a previously received digitally signed content initialization SEI message (i.e., it points to the same certificate, has the same UUID value, and the same hash_method_type), the decoder can determine that the subsequent segment is not the first segment of new content, and therefore validates that segment against the previously stored digest message (the last one) to which such an SEI message was applied, and validates it against that last segment. This comparison of digitally signed content initialization SEI messages can be done in various ways.
[0111] 1) Exact match as described 2) Exact match only if a UUID exists. 3) Consistency check: Allow some values to be changed. a. For example, hash_method_type b. UUIDs can change, but their generation follows specific rules. i. The previous UUID + 1 ii. Calculations are performed based on time information, and there is no gap between the previous time used and the current time. A further option might be to provide some additional signaling to facilitate the decision of whether a digest message needs to be remembered and whether a segment needs to be validated with the previous segment (not the immediately preceding segment). For example, if the last segment of the content is indicated within the bitstream, and the last segment flag is not indicated at the splicing point, then the digest message should be remembered. Similarly, if the first segment flag is not indicated within the subsequent segment at the splicing point, a previously remembered digest message is retrieved and validated together. If the last flag is indicated, the digest message is not remembered, and if the first message is indicated, the segment is not validated with any previous segment.
[0112] The instantiation of such syntax is shown within a digitally signed content initialization SEI message as follows: JPEG2026086355000011.jpg83167 However, splicing information may be provided in a separate SEI message.
[0113] [Video coding method] The following describes a video encoding scheme in which embodiments of the present invention can be optionally implemented. In other words, the device 20 according to any of the embodiments described above may be a video decoder implemented according to any of the embodiments of the decoder 20 described below. Similarly, the device 10 may be a video encoder according to any of the embodiments of the encoder 10 described below. The following description of the figures begins with a presentation of a description of an encoder and decoder for a block-based predictive codec for encoding video pictures, in order to form an example of a coding framework in which embodiments of the present invention may be incorporated. Each encoder and decoder will be described with reference to Figures 11, 12, and 13. Hereafter, embodiments of the concept of the present invention will be presented, along with a description of how such concepts may be incorporated into the respective encoders and decoders in Figures 11 and 12. However, subsequent figures and embodiments described below may also be used to form encoders and decoders that do not operate according to the underlying coding framework of the encoders and decoders in Figures 11, 12, and 13.
[0114] Figure 11 illustrates a device for predictively encoding picture 12 into a data stream 14 using transform-based residual coding as an example. The device or encoder is indicated by reference numeral 10. Figure 12 shows a corresponding decoder 20, i.e., a device 20 configured to predictively decode picture 12' from the data stream 14 using transform-based residual decoding, where an apostrophe is used to indicate that picture 12' reconstructed by the decoder 20 deviates from picture 12 originally encoded by the device 10 in terms of coding loss introduced by quantization of the predictive residual signal. While Figures 11 and 12 use transform-based predictive residual coding as an example, embodiments of the present application are not limited to this type of predictive residual coding. This also applies to other details described with respect to Figures 11 and 12, as outlined below.
[0115] Encoder 10 is configured to apply a spatial-spectral transform to the predicted residual signal and encode the thus obtained predicted residual signal into the data stream 14. Similarly, decoder 20 is configured to decode the predicted residual signal from the data stream 14 and apply a spectral-spatial transform to the thus obtained predicted residual signal. The encoder 10 may internally include a predictive residual signal generator 22, which generates a predictive residual 24 to measure the deviation of the predictive signal 26 from the original signal, i.e., from the picture 12. The predictive residual signal generator 22 may, for example, be a subtractor that subtracts the predictive signal from the original signal, i.e., from the picture 12. The encoder 10 then further includes a converter 28 that applies a spatial-spectral transform to the predictive residual signal 24 to obtain a spectral domain predictive residual signal 24', which is then quantized by a quantizer 32 also provided in the encoder 10. The thus quantized predictive residual signal 24'' is encoded in the bitstream 14. For this purpose, the encoder 10 may optionally include an entropy coder 34 that entropy codes the predictive residual signal to be transformed and quantized in the datastream 14. The predicted signal 26 is generated by the prediction stage 36 of the encoder 10 based on the predicted residual signal 24'' encoded in the data stream 14 and decodeable therefrom. For this purpose, the prediction stage 36 may internally include an inverse quantizer 38 that inversely quantizes the predicted residual signal 24'' to obtain a spectral domain predicted residual signal 24'''' corresponding to the signal 24' excluding quantization losses, as shown in Figure 11, and then an inverse converter 40 that applies an inverse transform, i.e., spectral-spatial transform, to the latter predicted residual signal 24'''' to obtain a predicted residual signal 24'''' corresponding to the original predicted residual signal 24 excluding quantization losses. The coupler 42 of the prediction stage 36 then recombines the predicted signal 26 and the predicted residual signal 24'''' by addition or other means to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to signal 12'. Next, the prediction module 44 in the prediction stage 36 generates a prediction signal 26 based on the signal 46, for example, by using spatial prediction, i.e., intra-picture prediction, and / or temporal prediction, i.e., inter-picture prediction.
[0116] Similarly, the decoder 20 may be internally composed of components corresponding to the prediction stage 36, as shown in Figure 12, and may be interconnected in a manner corresponding to the prediction stage 36. In particular, the entropy decoder 50 of the decoder 20 entropy decodes the spectral domain prediction residual signal 24'' quantized from the data stream, and then the inverse quantizer 52, inverse converter 54, coupler 56, and prediction module 58, which are interconnected and work together in the manner described above with respect to the module of the prediction stage 36, recover a signal reconstructed based on the prediction residual signal 24'', and as a result, the output of the coupler 56 yields the reconstructed signal, i.e., picture 12', as shown in Figure 12.
[0117] Although not specifically described above, it is readily apparent that encoder 10 can set several coding parameters, including prediction mode and motion parameters, according to several optimization methods, such as several rate and distortion-related criteria, i.e., methods for optimizing coding cost. For example, encoder 10 and decoder 20, and their corresponding modules 44 and 58, may support different prediction modes, such as intra-coding mode and inter-coding mode. The granularity at which the encoder and decoder switch between these prediction mode types may correspond to the subdivision of picture 12 and 12' into coding segments or coding blocks, respectively. At the level of these coding segments, for example, a picture may be subdivided into intra-coded blocks and inter-coded blocks. The intra-coded blocks are predicted based on the spatial, already coded / decoded neighborhood of each block, as outlined in more detail below. Several intracoding modes may exist, and each intracoding segment may be selected, including directional or angular intracoding modes, to satisfy each segment by extrapolating neighboring sample values along a specific direction specific to each directional intracoding mode into each intracoding segment. The intracoding modes may also include one or more further modes, such as a DC coding mode in which the prediction for each intracoding block assigns DC values to all samples within each intracoding segment, and / or a planar intracoding mode in which the prediction for each block is approximated or determined to be a spatial distribution of sample values described by a two-dimensional linear function over the sample positions of each intracoding block, having a plane driving slope and offset defined by a two-dimensional linear function based on neighboring samples. In comparison, the intercoding blocks may be predicted, for example, in time.In the case of an intercoded block, a motion vector may be signaled within the data stream, the motion vector indicating the spatial displacement of the previously encoded portion of the video to which picture 12 belongs, and the previously encoded / decoded portion of the picture is sampled to obtain the prediction signal for each intercoded block. In addition to the residual signal encoding included in the data stream 14, such as the entropy-encoded transformation coefficient level representing the quantized spectral domain prediction residual signal 24'', the data stream 14 may have further selective parameters encoded within the data stream 14, such as a coding mode parameter for assigning coding modes to various blocks, several prediction parameters of the blocks such as motion parameters for the intercoded segments, and parameters for controlling and signaling the subdivision of pictures 12 and 12' into segments, respectively. The decoder 20 uses these parameters to subdivision the picture in the same way that the encoder did, thereby assigning the same prediction mode to the segments, performing the same predictions, and yielding the same prediction signals.
[0118] Figure 13 shows the relationship between, on the one hand, the reconstructed signal, i.e., the reconstructed picture 12', and on the other hand, the combination of the predicted residual signal 24'''' and the predicted signal 26, which are signaled in the data stream 14. As already mentioned above, the combination can be additive. In Figure 13, the predicted signal 26 is shown as a subdivision of the picture area into intracoded blocks shown exemplarily with hatching and interconnected blocks shown exemplarily without hatching. The subdivision can be any subdivision, such as a regular subdivision of the picture area into rows and columns of square or non-square blocks, or a multi-tree subdivision of picture 12 into multiple leaf blocks of varying sizes from a tree root block, such as a quadtree subdivision, a mixture of which is shown in Figure 13, where the picture area is first subdivided into rows and columns of a tree root block, and then further subdivided into one or more leaf blocks according to a recursive multi-tree subdivision.
[0119] Here too, the data stream 14 may have an intra-coding mode encoded within the data stream 14 for the intra-coded blocks 80, so that one of several supported intra-coding modes is assigned to each intra-coded block 80. For the intercoded blocks 82, the data stream 14 may have one or more motion parameters encoded within the data stream 14. Generally speaking, the intercoded block 82 is not limited to being encoded in time. Alternatively, the intercoded block 82 may be any block predicted from parts encoded before the current picture 12 itself, such as a picture encoded before the video to which the picture 12 belongs, or a picture in another view or a hierarchically lower layer if the encoder and decoder are scalable encoders and decoders, respectively.
[0120] The predicted residual signal 24'''' in Figure 13 is also shown as a subdivision of the picture area into blocks 84. These blocks are sometimes called transformation blocks to distinguish them from coded blocks 80 and 82. In practice, Figure 13 shows that encoder 10 and decoder 20 may use two different subdivisions of picture 12 and picture 12' into blocks, namely, one subdivision into coded blocks 80 and 82 and the other subdivision into transformation block 84. Both subdivisions may be the same, i.e., each coded block 80 and 82 may simultaneously form a transformation block 84, but Figure 13 shows, for example, that the subdivision into transformation block 84 forms an extension of the subdivision into coded blocks 80 and 82, thereby such that any boundary between the two blocks 80 and 82 covers the boundary between the two blocks 84, or in other words, each block 80 and 82 coincides with one of the transformation blocks 84 or coincides with a cluster of transformation blocks 84. However, the subdivisions may also be determined or selected independently of each other, so that the transformation block 84 can alternatively cross the block boundary between blocks 80 and 82. Therefore, as far as subdivision to transformation block 84 is concerned, the same description as that presented for subdivision to blocks 80 and 82 applies: namely, block 84 may be the result of regular subdivision of the picture area into blocks (with or without row and column arrangement), the result of recursive multi-tree subdivision of the picture area, or a combination thereof, or any other type of block formation. Incidentally, it should be noted that blocks 80, 82, and 84 are not limited to squares, rectangles, or any other shape.
[0121] Figure 13 further shows that the combination of the prediction signal 26 and the prediction residual signal 24'''' directly yields the reconstructed signal 12'. However, it should be noted that, according to an alternative embodiment, more than one prediction signal 26 may be combined with the prediction residual signal 24'''' to yield the picture 12'.
[0122] In Figure 13, the transformation blocks 84 are assumed to have the following significance: The converters 28 and inverse converters 54 perform these transformations in units of these transformation blocks 84. For example, many codecs use some kind of DST or DCT for all transformation blocks 84. Some codecs allow skipping transformations, and as a result, for some of the transformation blocks 84, the predicted residual signal is encoded directly in the spatial domain. However, according to embodiments described later, the encoder 10 and decoder 20 are configured to support several transformations. For example, the transformations supported by the encoder 10 and decoder 20 may include: • DCT-II (or DCT-III), where DCT represents the Discrete Cosine Transform. • DST-IV, where DST represents the discrete sine transform. · DCT-IV · DST-VII • Identity transformation (IT) Naturally, the converter 28 may support all forward versions of these conversions, while the decoder 20 or the inverse converter 54 may support their corresponding reverse or inverse versions. • Inverse DCT-II (or Inverse DCT-III) · Reverse DST-IV ·Inverse DCT-IV · Reverse DST-VII • Identity transformation (IT) The following explanation provides further details on which transformations may be supported by the encoder 10 and decoder 20. Note that in any case, the set of supported transformations may include only one transformation, such as a single spectral-to-spatial or spatial-to-spectral transformation.
[0123] As outlined above, Figures 11, 12, and 13 are presented as examples of how the concepts of the present invention, further described below, may be implemented to form specific examples of encoders and decoders according to this application. To that extent, the encoders and decoders in Figures 11 and 12 may represent possible embodiments of encoders and decoders described herein. However, Figures 11 and 12 are merely examples. Nevertheless, an encoder according to an embodiment of this application may perform block-based encoding of picture 12 using concepts outlined in more detail below, which may differ from the encoder in Figure 11, for example, being a still picture encoder rather than a video encoder, not supporting interpretation, or performing subdivision into blocks 80 in a manner different from that illustrated in Figure 13. Similarly, a decoder according to an embodiment of the present application may perform block-based decoding of picture 12' from data stream 14 using the coding concept further outlined below, but may differ from decoder 20 in Figure 12, for example, in that it is a still picture decoder rather than a video decoder, does not support intra-prediction, subdivides picture 12' into blocks in a different manner than described with respect to Figure 13, and / or derives prediction residuals from data stream 14 in a spatial domain rather than a transformation domain.
[0124] The embodiments provide an H.264 / AVC decoder, an H.264 / AVC video data stream, a video encoder for providing the H.264 / AVC video data stream, or an H.265 / HEVC decoder, an H.265 / HEVC video data stream, a video encoder for providing the H.265 / HVC video data stream, or an H.266 / VVC decoder, an H.266 / VVC video data stream, a video encoder for providing the H.266 / VVC video data stream.
[0125] The following describes embodiments of the present invention that can be optionally implemented within or combined with the framework described above with respect to Figures 11 to 13. All embodiments of the present invention as disclosed herein may be optionally implemented in combination with any of the four video encoding modifications described below. That is, the data stream 14 may be a data stream according to any of these modifications, the device 20 may be configured to decode video from the data stream 14 according to any of the three modifications, and the device 14 may be configured to provide the data stream according to any of the four modifications. The first and second modifications may be optimally combined with each other.
[0126] According to the first of two modifications of the present invention, the video is decoded from the video data stream by block-based prediction and transformation-based residual decoding, by decoding the predicted residual data of the residual blocks into and from the video data stream. According to the first modification, the predicted residual data of the residual block is decoded using context-adaptive variable-length decoding, and the decoding is performed as follows: - A first syntactic element indicating the total number of non-zero conversion coefficients in the conversion block representing the residual block, and a trailing-one numerical value indicating the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, -One or more second syntactic elements indicating the sign of a non-zero transformation coefficient having an absolute value of 1 when traversing the coefficients along the scan order, -One or more third syntactic elements indicating the values of non-zero conversion coefficients, excluding the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, -A fourth syntactic element indicating the total number of zero-value conversion coefficient levels in the conversion block from the first non-zero conversion coefficient encountered in the scan order, -One or more fifth syntactic elements that indicate the position of a non-zero conversion coefficient along the scan order by indicating the number of consecutive zero-value conversion coefficients in the scan order between consecutively encountered non-zero conversion coefficients, This is done using, or As an alternative to using context-adaptive variable-length decoding, decoding the predicted residual data of the residual block is performed using context-adaptive binary arithmetic decoding, and context-adaptive binary arithmetic decoding is performed. - Decoding an importance map indicating the location of non-zero conversion coefficients within a conversion block representing a residual block by decoding an importance flag indicating whether a non-zero conversion coefficient is located at the current position in a forward scan traversing the conversion coefficients of the conversion block, and if a non-zero conversion coefficient is located at the current position, and the current position is not the end of the forward scan, by decoding a final importance flag indicating whether the non-zero conversion coefficient located at the current position is the last non-zero conversion coefficient in the forward scan sequence, and - Decode the values of the non-zero conversion coefficients sequentially using the reverse scan order, which is the reverse of the forward scan order. It is done by [the specified method].
[0127] According to the first of two modifications of the present invention, the video is encoded in the video data stream by block-based predictive and transform-based residual encoding, by encoding the predicted residual data of the residual blocks into the video data stream. According to the first modification, the predicted residual data of the residual block is encoded using context-adaptive variable-length encoding, and the encoding is performed as follows: - A first syntactic element indicating the total number of non-zero conversion coefficients in the conversion block representing the residual block, and a trailing-one numerical value indicating the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, -One or more second syntactic elements indicating the sign of a non-zero transformation coefficient having an absolute value of 1 when traversing the coefficients along the scan order, -One or more third syntactic elements indicating the values of non-zero conversion coefficients, excluding the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, -A fourth syntactic element indicating the total number of zero-value conversion coefficient levels in the conversion block from the first non-zero conversion coefficient encountered in the scan order, -One or more fifth syntactic elements that indicate the position of a non-zero conversion coefficient along the scan order by indicating the number of consecutive zero-value conversion coefficients in the scan order between consecutively encountered non-zero conversion coefficients, This is done using, or As an alternative to using context-adaptive variable-length encoding, encoding the predicted residual data of the residual block is performed using context-adaptive binary arithmetic encoding, and context-adaptive binary arithmetic encoding is, - Encoding an importance map indicating the location of non-zero conversion coefficients within a conversion block representing a residual block by encoding an importance flag indicating whether a non-zero conversion coefficient is located at the current position in a forward scan traversing the conversion coefficients of the conversion block, and if a non-zero conversion coefficient is located at the current position, and the current position is not the end of the forward scan, by encoding a final importance flag indicating whether the non-zero conversion coefficient located at the current position is the last non-zero conversion coefficient in the forward scan order, and - Encode the values of the non-zero conversion coefficients sequentially using the reverse scan order, which is the reverse of the forward scan order. It is done by [the specified method].
[0128] According to the second modification, the video decoder (or device for decoding video from a video data stream) comprises an encoded picture buffer (CPB) and a decoded picture buffer (DPB). The video decoder, Receiving a data stream containing video pictures encoded in a data stream in a coded order as a sequence of access units (AUs) (for example, the term "access unit" refers to a portion of a video data stream containing coded video data or information relating to one time frame of the video), The current AU, which has been deleted from the CPB, is decoded using picture-to-picture prediction from the referenced picture stored in the DPB to obtain the decoded picture, and Inserting the decoded picture into the DPB, Assigning a classification to each reference picture stored in the DPB as one of the following: short-term reference picture, long-term reference picture, or picture not used for reference. Read DPB mode information from the current AU. If the DPB mode information indicates a first mode, remove one or more reference pictures classified as short-term pictures from the DPB in accordance with the First-In, First-Out (FIFO) strategy. If the DPB mode information indicates a second mode, read the memory management control information, which includes at least one command in the current AU, and execute at least one command to change the classification assigned to at least one of the reference pictures stored in the DPB, and to use the classification of the reference picture in the DPB to manage the removal of the reference picture from the DPB. It is configured to perform the following actions.
[0129] According to the second modification, the video data stream is to be decoded by being fed into a decoder having an encoded picture buffer (CPB). According to the second modification, the video encoder (or device for encoding video into a video data stream) is configured to encode the pictures of the video encoded in the coded order into the data stream as a sequence of access units (AUs), When the device encodes AU, Encoding the current picture into the current AU using picture-to-picture predictions from the referenced picture stored in the decoded picture buffer (DPB), Inserting a decoded version of the current picture in the DPB into the DPB itself. Assigning a classification to each reference picture stored in the DPB as one of the following: short-term reference picture, long-term reference picture, or picture not used for reference. To write DPB mode information into the current AU. If the DPB mode information indicates a first mode, then, according to the FIFO strategy, remove one or more reference pictures classified as short-term pictures from the DPB. If the DPB mode information indicates a second mode, write memory management control information including at least one command into the current AU, the command instructs to change the classification assigned to at least one of the reference pictures stored in the DPB, and the classification of the reference picture in the DPB is used to manage the removal of the reference picture from the DPB. It is configured to perform the following actions.
[0130] According to a third modification, the video is decoded from the video data stream by block-based predictive decoding and transformation-based residual decoding, which involves decoding the predicted residual data of the residual blocks from the video data stream using context-adaptive binary arithmetic decoding of the quantization index of the transformation coefficients of the transformation blocks representing the residual blocks, and sequential inverse quantization of the quantization index, where the value of the current transformation coefficient depends on the parity of the quantization index of the previous quantization index. According to a third modification, the video is encoded within the video data stream by block-based predictive encoding and transform-based residual encoding, which is done by encoding the predicted residual data of the residual blocks into the data stream using context-adaptive binary arithmetic encoding of the quantization index of the transformation coefficients of the transformation block representing the residual block, and sequential quantization of the transformation coefficients to obtain the quantization index, where the quantizer for quantizing the current transformation coefficient depends on the parity of the quantization index of the previous quantization index.
[0131] All three variations relate to video encoders, video decoders, methods for decoding video, methods for encoding video, and the video data streams obtained by each encoding method.
[0132] The following describes further optional details and characteristics of the first and second variations. Embodiments of the first and second modified versions may conform to H.264 / AVC. Embodiments of the third modified version may conform to H.266 / VVC. One embodiment of the first and second modifications relates to the handling of decoded pictures and their buffering in a DPB, which is a decoded picture buffer.
[0133] According to one embodiment, two types of reference pictures can be distinguished: short-term and long-term. The encoder does the same when emulating the decoder's DPB-filled state at each point in time during decoding. A reference picture can be marked as "not used for reference" when it is no longer needed for predictive referencing. The conversion between these three states (short-term, long-term, not used for reference) is controlled by the decoded reference picture marking process. Two alternative decoded reference picture marking mechanisms exist: an implicit sliding window process and an explicit memory management control operation (MMCO) process. For each currently decoded picture or each currently decoded AU, the data stream signals which process should be used for DPB management. The sliding window process marks short-term reference pictures as "not used for reference" when the number of reference frames equals a given maximum number (max-num-ref-frames in SPS). Short-term reference pictures are stored in a first-in, first-out (FIFO) manner, so the most recently decoded short-term picture is retained in the DPB. The explicit MMCO process is controlled by several MMCO commands. If this mode is selected for the current AU or the picture currently being decoded, the bitstream will contain one or more of these commands for it, or in this case for the AU. An MMCO command may be any of the following: 1) mark one or more short-term or long-term reference pictures as "not used for reference", 2) mark all pictures as "not used for reference", or 3) mark the current reference picture or an existing short-term reference picture as long-term and assign a long-term picture index to that long-term picture. The reference picture marking operation, as well as any output for presentation and removal of the picture from the DPB, may be performed after the picture has been decoded.
[0134] Details of several possible but optional reference picture marking mechanisms are described below. 1) The first aspect concerns frame number gaps and non-existent pictures. Although not described above, each reference picture in a DPB may be associated with a frame number. Normally, this number increments by 1 for each reference picture, but frame number gaps may be allowed by setting a corresponding high-level (such as sequence-level) flag, sometimes called a parameter-gaps-in-frame-num-allowed-flag, to 1, to allow, for example, an encoder or MANE (Media Aware Network Element) to deliver a bitstream where the frame number increments by 2 or more for each reference picture preceding in the decoding order. This can be advantageous for supporting temporal scalability. A sequence of AUs with gaps in frame numbers may be received, and non-existent pictures may be created to fill the gaps. The non-existent pictures are assigned a frame number value in the gap and are considered reference pictures during decoded reference picture marking, but are not used for output (and therefore not displayed). The absence of a picture ensures that the state of the DPB for the frame numbers of pictures present in the DPB is the same for decoders that received the picture and decoders that did not receive the picture.
[0135] Another possible aspect of the first and second modifications concerns the loss of reference pictures when using sliding windows. If a reference picture is lost, assuming the loss has been detected, it may be possible to hide the picture and, if possible, report the loss to the encoder, provided a feedback channel is available. If gaps in frame numbers are not allowed, discontinuities in frame number values indicate an unintended loss of a reference picture. If gaps in frame numbers are allowed, discontinuities in frame number values may occur due to either the intentional deletion of a time layer or subsequence, or accidental picture loss, and the decoder should infer picture loss only if a non-existent picture was referenced in the interprediction process. The picture order number of a hidden picture may be unknown, in which case the decoder may use an incorrect reference picture without detecting any error when decoding the B picture.
[0136] Further possible embodiments of the first and second modifications relate to the loss of reference pictures due to MMCO. If a reference picture containing an MMCO command that marks a short-term reference picture as "not used for reference" is lost, the state of the reference picture in the DPB may become incorrect, and as a result, the reference picture list for several pictures following the lost picture may become incorrect. If a picture containing an MMCO command related to a long-term reference picture is lost, there is a risk that the number of long-term reference pictures in the DPB will differ from the number if that picture had been received, resulting in an "incorrect" sliding window process for all subsequent pictures. That is, the encoder and decoder may have different numbers of short-term reference pictures, and as a result, the operation of the sliding window process may not be synchronized. Further exacerbating the situation is that the decoder may not necessarily recognize that the sliding window process is out of sync.
[0137] The MMCO commands are shown below. In different embodiments, one or more or all of these commands may apply. JPEG2026086355000012.jpg109169 Further options for implementing decoders and encoders by the first and second modifications are described below, optionally in combination with the aforementioned options for DPB management, relating to entropy decoding of several syntactic elements, such as residual data in the form of conversion coefficients into the bitstream. Reversible entropy coding of irreversibly quantized conversion coefficients is a crucial part of efficient video codecs. One such method is called context-adaptive variable-length coding (CAVLC), in which the encoder switches between different variable-length code (VLC) tables for various syntactic elements in a context-adaptive manner, depending on the values of previously transmitted syntactic elements within the same slice. Encoders and decoders may use CAVLC. Each syntactic element is coded into the bitstream by writing the corresponding codeword selected for that syntactic element from a context-adaptively selected code table into the bitstream, so that each CAVLC coded bit in the bitstream can be associated with a single syntactic element. Thus, relevant information about the scan-order conversion coefficient levels present in the bitstream is available in a form that is directly accessible as syntactic elements when CAVLC is used. Encoders and decoders may signal conversion coefficients in a bitstream using CAVLC. The following syntactic elements, for example, syntactic elements with the following semantics, may be used.
[0138] - A single syntactic element (indicated by CoeffToken) that specifies the total number of non-zero conversion coefficient levels within the conversion block. - One or more syntactic elements (indicated by CoeffToken) that indicate the number of subsequent transformation coefficient levels with a value of 1, for example, the sequence of syntactic elements that occur last when scanning syntactic elements in scan order up to the last non-zero syntactic element, all of which are 1, and their signs (indicated by trailing_ones_sign_flag) - One or more syntactic elements for each non-zero conversion coefficient, excluding the subsequent conversion coefficient that indicates the conversion coefficient level value. - A single syntactic element indicating the total number of zero-value conversion coefficient levels. - A syntactic element that indicates the number of consecutive zero-value conversion coefficient levels in the scan sequence from the current scan position until a non-zero value conversion coefficient level is encountered.
[0139] Alternatively or additionally, the encoder may choose to use CABAC, and therefore between context-adaptive binary arithmetic coding and CAVLC, signaling the choice in the bitstream, and the decoder may read this signal and decode the residual data in a specified manner.
[0140] Further options for implementing decoders and encoders by the first and second modifications are described below, which may optionally be combined with either the DPB management or the aforementioned CAVLC, and relate to a quarter-pixel interpolation filter. To enable interpretation with finer granularity than a normal full-pixel sample grid, a sample interpolation process is used to derive sample values at sub-pixel sample positions that may range from half-pixel to quarter-pixel positions. One method of performing quarter-pixel interpolation may be used by encoders and decoders and is as follows: First, a 6-tap FIR filter is used to generate sample values at half-pixel positions, and then the half-pixel position sample values generated by interpolation are averaged to generate sample values at quarter-pixel positions for the luminance component.
[0141] Further embodiments by modifications of the first and second are described below. According to one embodiment, the device may further comprise a decoded picture buffer (DPB), and may be configured to decode the current AU using picture predictions from referenced reference pictures stored in the DPB to obtain the decoded picture, insert the decoded picture into the DPB, assign each reference picture stored in the DPB a classification as one of short-term reference picture, long-term reference picture, and picture not used for reference, read DPB mode information from the current AU, if the DPB mode information indicates a first mode, remove one or more reference pictures classified as short-term pictures from the DPB according to a FIFO strategy, and if the DPB mode information indicates a second mode, read memory management control information including at least one command in the current AU, change the classification assigned to at least one of the reference pictures stored in the DPB, and execute at least one command to use the classification of reference pictures in the DPB to manage the removal of reference pictures from the DPB.
[0142] In one embodiment, the device may be configured to read an instruction from the current AU indicating whether the decoded picture should not be used for inter-picture prediction, to insert the decoded picture into the DPB if it is not indicated that the decoded picture should not be used for inter-picture prediction or should not be output directly, and to output the decoded picture directly in the DPB without buffering it if it is indicated that the decoded picture should not be used for inter-picture prediction and should be output directly.
[0143] According to one embodiment, the device may be further configured to assign a frame index to each reference picture in a DPB classified as a long-running picture, and to use a given reference picture in a DPB classified as a long-running picture as a referenced reference picture in the DPB when the frame index assigned to the given reference picture is referenced in the current AU.
[0144] In one embodiment, the device may be configured to perform one or more of the following: if at least one command in the current AU is a first command, reclassify reference pictures in a DPB classified as short-term reference pictures as pictures not used for reference; if at least one command in the current AU is a second command, reclassify reference pictures in a DPB classified as long-term reference pictures as pictures not used for reference; if at least one command in the current AU is a third command, reclassify reference pictures in a DPB classified as short-term pictures as long-term reference pictures and assign a frame index to the reclassified reference pictures; if at least one command in the current AU is a fourth command, set an upper frame index limit according to the fourth command and reclassify all reference pictures in a DPB classified as long-term pictures that have been assigned a frame index exceeding the upper frame index limit as pictures not used for reference; if at least one command in the current AU is a sixth command, classify the current picture as a long-term picture, a picture not used for reference, and assign a frame index to the reclassified reference pictures.
[0145] In one embodiment, the device may be configured to remove from the DPB any reference pictures that are classified as pictures not used for reference and therefore should no longer be output. In one embodiment, the device may be configured to read an entropy coding mode indicator from a data stream and decode the predicted residual data from the current AU using the context-adaptive variable-length coding mode if the entropy coding mode indicator indicates the context-adaptive variable-length coding mode, and using the context-adaptive binary arithmetic coding mode if the entropy coding mode indicator indicates the context-adaptive binary arithmetic coding mode. In one embodiment, the device may be configured to derive a quarter-pixel value in a referenced picture based on the motion vector in the current AU and using a 6-tap FIR filter, such that it derives a half-pixel value and averages the half-pixel values of neighboring pixels.
[0146] In one embodiment, the apparatus is The current AU is decoded using picture-to-picture predictions from the referenced picture stored in the DPB to obtain the decoded picture, and the decoded picture is inserted into the DPB. Assigning a classification to each reference picture stored in the DPB as one of the following: short-term reference picture, long-term reference picture, or picture not used for reference. Read DPB mode information from the current AU. If the DPB mode information indicates a first mode, remove one or more reference pictures classified as short-term pictures from the DPB in accordance with the First-In, First-Out (FIFO) strategy. If the DPB mode information indicates a second mode, read the memory management control information, which includes at least one command in the current AU, and execute at least one command to change the classification assigned to at least one of the reference pictures stored in the DPB, and to use the classification of the reference picture in the DPB to manage the removal of the reference picture from the DPB. It can be configured to perform the following actions.
[0147] According to one embodiment, the apparatus is Read instructions from the current AU regarding whether the decoded picture will be used for picture-to-picture prediction. If it is not indicated that the decoded picture should not be used for inter-picture prediction or should not be output directly, insert the decoded picture into the DPB; if it is indicated that the decoded picture should not be used for inter-picture prediction and should be output directly, output the decoded picture directly in the DPB without buffering it. It can be configured to perform the following actions.
[0148] In one embodiment, the apparatus is Assigning a frame index to each referenced picture in the DPB classified as a long-term picture, and If a specified reference picture in a DPB classified as a long-running picture is referenced within the DPB when the frame index assigned to that specified reference picture is referenced within the current AU, then it should be used as the referenced reference picture within the DPB. It can be further configured to perform the following: According to one embodiment, the apparatus is If at least one command in the current AU is the first command, Reclassifying reference pictures within a DPB that were previously categorized as short-term reference pictures as pictures not used for reference. If at least one command in the current AU is the second command, Reclassifying reference pictures within a DPB that were previously categorized as long-term reference pictures as pictures not used for reference. If at least one command in the current AU is a third command, Reclassifying reference pictures within a DPB that were previously categorized as short-term pictures as long-term reference pictures, and assigning frame indices to the reclassified reference pictures. If at least one command in the current AU is the fourth command, The fourth command sets an upper frame index limit, and all referenced pictures in the DPB that are classified as long-term pictures and have frame indexes exceeding the upper frame index limit are reclassified as pictures not used for reference. If at least one command in the current AU is the sixth command, The current picture, which is a long-term picture, is reclassified as a picture that is not used for reference, and a frame index is assigned to the reclassified reference picture. It can be configured to perform one or more of the following: In one embodiment, the apparatus is It can be configured to remove any reference pictures from the DPB that are classified as pictures not used for reference and therefore should no longer be output.
[0149] The following describes the further optional details and characteristics of the third variant. Multiple Reference Lines (MRLs): For intra-prediction, in addition to adjacent lines of neighboring samples, one of two non-adjacent reference lines, corresponding to a position two or three lines away from the current block, can also be used as a reference line for in-picture prediction of luminance samples. Adaptive MV Resolution (AMVR): Selection of MV resolution is performed at the CU level. For interpreted CUs, the selected MV resolution is indicated and can be quarter, half, an integer, or 4 in units of luminance samples. If a half-luminance sample resolution is selected, an alternative luminance interpolation filter is used for the half-sample positions within this block, i.e., a different interpolation filter is used when the resolution is a quarter or half pixel relative to the MV.
[0150] History-Based MV Prediction (HMVP): In addition to spatially and temporally neighborly MV prediction, a new candidate type is added for merge mode and MV prediction in the AMVP candidate list. HMVP candidates are established using a 5-entry table that is maintained and updated using a first-in, first-out (FIFO) rule. The motion vector candidate list is generated using spatially and temporally neighborly and HMVP candidates. Affine Motion: An affine motion model with CU-level signaling is used for luminance. The CU-level affine motion can be either a 4-parameter or 6-parameter model. The 4-parameter model uses two MVs corresponding to two control points located at the upper-left and upper-right corners of the CU, while the 6-parameter model uses three MVs corresponding to three control points located at the upper-left, lower-left, and upper-right corners. When the CU is coded in affine motion mode, the luminance block of the CU is divided into 4x4 subblocks, and the MV at the central sample position of each subblock is calculated according to the affine motion model and set as the subblock MV based on the control points. The subblock MV is rounded to 1 / 16 luminance sample accuracy during computation, and a set of 6-tap interpolation filters is applied to generate the prediction for each subblock. For non-affine cases, merge mode and AMVP mode are used for predicting and coding the affine motion parameters.
[0151] Coefficient encoding: When encoding a coefficient level, first a flag (SigFlag) is indicated to specify whether the coefficient level is non-zero. If the flag is equal to 1 (the coefficient level is non-zero), then a further flag (Gt1-Flag) is indicated to specify whether the absolute level is greater than 1. In that case (when the absolute level is greater than 1), there are two further flags: a parity level flag (Parity-Flag) that specifies the parity of the converted coefficient level, and another flag (Gt3-Flag) that specifies whether the absolute value of the converted coefficient level is greater than 3.
[0152] The fourth modification of video decoding is performed by decoding the video from the video data stream using block-based predictive decoding and transformation-based residual decoding, the block-based predictive decoding and transformation-based residual decoding are performed by decoding the predicted residual data of the intra-predicted blocks from the video data stream using context-adaptive binary arithmetic decoding, the context-adaptive binary arithmetic decoding is performed Decoding the coordinates of the position within the transformation block representing the predicted residual data encountered when traversing the transformation coefficients of the transformation block according to a predetermined scan order, and Sequentially decoding the values of the included and ranked transformation coefficients in a predetermined scan order between the last non-zero transformation coefficient and the first transformation coefficient scanned, and The predetermined scan order is selected from diagonal scan order, horizontal scan order, and vertical scan order by using a mapping that maps each of the multiple intra-prediction modes to the corresponding one among the diagonal scan order, horizontal scan order, and vertical scan order, according to the intra-prediction mode of the intra-predicted block. It is done by [the specified method].
[0153] A fourth modification relating to the present invention performs video encoding by encoding video into a video data stream using block-based predictive encoding and transform-based residual encoding, the block-based predictive encoding and transform-based residual encoding are performed by encoding intra-predicted block predictive residual data into the video data stream using context-adaptive binary arithmetic encoding, Encoding the coordinates of the position within the transformation block representing the predicted residual data encountered when traversing the transformation coefficients of the transformation block according to a predetermined scan order, and Sequentially encoding the values of the included and ranked transformation coefficients in a predetermined scan order between the last non-zero transformation coefficient and the first transformation coefficient scanned, as well as The predetermined scan order is selected from diagonal scan order, horizontal scan order, and vertical scan order by using a mapping that maps each of the multiple intra-prediction modes to the corresponding one among the diagonal scan order, horizontal scan order, and vertical scan order, according to the intra-prediction mode of the intra-predicted block. It is done by [the specified method].
[0154] The present invention includes a video encoder, a video decoder, and a method for decoding video according to the above-described video decoding modification, as well as a method for encoding video according to a fourth modification of the above-described video, and a video data stream obtained by each encoding method.
[0155] The following describes further optional details and features of specific video encoding and video decoding variations of embodiments of the present invention. A fourth modified embodiment may conform to H.265 / HEVC. [PCM] Prediction, transformation, quantization, and entropy coding are bypassed, and samples are represented directly by a predefined number of bits. When PCM is enabled, the number of bits (minus 1) used to represent luminance samples and chroma samples is indicated, respectively. Furthermore, the minimum and maximum block sizes (difference from the minimum) for a 2N×2N block in which PCM can be optimally used are indicated. When a 2N×2N block is being parsed, if the size of that block is between the described minimum and maximum values, the flag indicates whether PCM mode is being used. When PCM mode is used, PCM samples are byte-aligned, the luminance samples of the block are represented / parsed directly in a raster scan with the indicated PCM luminance bit length, and then the chroma samples of the PCM block are represented / parsed in a raster scan with the indicated PCM chroma bit length, with the first half of the chroma samples being Cb samples and the remainder being Cr samples. Furthermore, the CABAC decoding engine terminates each time the PCM flag is parsed and initialized after decoding the PCM syntax.
[0156] [Intramode Dependency Coefficient Scan Order] The scan order of coefficients within an intracoded block is dynamically changed based on the transformation block size and intra mode. The scan is performed for every 4x4 subblock / region of the transformation block (e.g., a 4x4 transformation block size uses only one coefficient region, an 8x8 transformation block uses four coefficient regions, and a 16x16 transformation block size uses sixteen regions). The choice of scan method in intra mode depends on the transformation block size. For 16x16 and 32x32 transformation block sizes, the scan is performed diagonally (starting from 0,0 -> 1,0 -> 0,1 -> 2,0 -> 1,1 -> 0,2 -> 3,0, etc. - for example, decreasing the y value by step 1 and increasing the x value by step 1 at each step, restarting the y value from x+1 when y is equal to 0, and setting x to 0 as it starts from value 0,0). For 4x4 (luminance or chroma) and 8x8 (luminance) conversion block sizes, the coefficient scan order depends on the intra-mode associated with the intra-direction of the prediction of neighboring blocks. Vertical scanning is used when the prediction direction is nearly horizontal, and horizontal scanning is used when the prediction direction is nearly vertical. For other prediction directions, diagonal upper-right scanning is used.
[0157] [Conversion Quantization Bypass Mode] For each coding unit or coding block, it may be indicated whether both transformation and quantization are bypassed, which indicates that the residual signals from inter-picture or intra-picture predictions are directly entropy coded for that block. In that mode, the in-loop filter is skipped.
[0158] [Further embodiments] The embodiments of the present invention will be described again below in more general terms. The following embodiments may be optionally combined with any of the features described above. In the following further embodiments, the following options may apply to all embodiments. The data stream may be a video data stream or an audio data stream. The device for decoding the data stream may be a device for decoding video from a video data stream, or a device for decoding an audio signal from an audio data stream. The device for encoding the data stream may be a device for encoding video into a video data stream, or an audio signal into an audio data stream. The payload packet may be a coded video payload packet carrying video data, for example, encoded video data. The term “supplementary information packet” may be used interchangeably with the term “supplementary information payload packet.” The expressions “check the data stream for reliability” and “verify the data stream” may be used interchangeably.
[0159] Different embodiments can be combined; that is, any feature defined with respect to any of the embodiments may be combined with any of the further embodiments. 1. A device 20 for decoding a data stream, wherein the data stream includes a temporal sequence of segments 17, and the device decodes for each segment of the sequence of segments, Determining a predetermined portion 13 of the segment 30, The process of deriving instruction 61 from the data stream 21, wherein the instruction is Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence. To instruct, derive 21, 21 Deriving a digital signature 43 to be checked against a verification string 48 obtained from a data stream based on a predetermined portion 13 and based on instruction 61, Apparatus 20 is configured to perform the following actions.
[0160] 2. The apparatus according to Embodiment 1, wherein the apparatus is configured to verify a predetermined portion 13 by checking whether the verification string 48 conforms to the digital signature 43. 3. The apparatus according to Embodiment 1 or 2, wherein the apparatus is configured to provide a predetermined portion 13, an instruction 61, and a digital signature 43 for verification of the predetermined portion 13. 4. The apparatus according to any one of Embodiments 1 to 3, wherein a predetermined portion 13 is subjected to a hash function to obtain a hash value, and a verification string 48 is obtained based on the hash value. 5. The apparatus according to any one of Embodiments 1 to 4, wherein a predetermined portion 13 and instruction are subjected to a hash function to obtain a hash value, and a verification string 48 is obtained based on the hash value.
[0161] 6. A device 20 for decoding a data stream 14, wherein the device is configured to check the data stream for reliability, and the data stream includes a temporal sequence of segments 17, and the device decodes the segments 17* of the sequence of segments, The process involves applying a hash function 31 to a predetermined portion 13 of the segment to obtain a hash value 33. The process of deriving instruction 61 from the data stream 21, wherein instruction 61 is Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence, To instruct, to derive 21, To form a verification string 48 based on the hash value 33 and instruction 61, Derive the digital signature 43 from the data stream and check whether the verification string 48 conforms to the digital signature 43. Device 20, configured to verify by...
[0162] 7. Checking whether the verification string 48 conforms to the digital signature 43 is equivalent to decrypting the digital signature 43 and obtaining the check value. The verification string 48 is checked to see if it matches the check value, The apparatus according to any one of embodiments 1 to 6, including the apparatus described above. 8. The apparatus according to any one of embodiments 1 to 7, configured to derive instructions from supplemental information messages associated with a segment. 9. The apparatus according to Embodiment 8, wherein the supplemental information message indicates a certificate for decrypting the hash function and / or digital signature 43. 10. The apparatus according to any one of embodiments 1 to 7, configured to derive instructions from a supplemental information message indicating a digital signature 43.
[0163] 11. The device is configured to derive an instruction from the data stream indicating whether a segment is the first segment of a signed subsequence of a temporal sequence, and the device is configured to derive an instruction from the data stream indicating whether a segment is the first segment of a signed subsequence of a temporal sequence. When the segment is the first segment of a signed subsequence, it is configured to form a verification string 48 that is independent of any part of the data stream that precedes the segment in the temporal sequence. The apparatus according to any one of Embodiments 1 to 10. 12. If the segment is not the first segment of a signed subsequence, the verification string 48 is configured to be formed based on the previous hash value obtained for the preceding segment of the segment. The apparatus described in Embodiment 11. 13. The apparatus according to any one of embodiments 1 to 12, wherein the apparatus is configured to derive several parts, wherein the segment 17 is verifiable in units of several parts, and the several parts include a predetermined part 13, and the parts of the several parts have a hierarchical order.
[0164] 14. The device, If a predetermined part 13 is not the first part in the hierarchical order of the parts, the verification string 48 is configured to be formed based on the previous hash value obtained for the preceding part that precedes the predetermined part 13 in the hierarchical order. The apparatus described in Embodiment 13. 15. The apparatus according to Embodiment 13 or 14, wherein a predetermined portion 13 is the first portion in a hierarchical order of portions, and the apparatus is configured to form a subsequent verification string 48 for verifying subsequent portions of several portions that follow the predetermined portion 13 in the hierarchical order, based on a hash value obtained by applying a hash function to the predetermined portion 13. 16. The apparatus according to any one of embodiments 13 to 15, configured to selectively derive instructions from a data stream when a predetermined portion 13 is the first portion in a hierarchical sequence of several portions.
[0165] 17. A device 10 for encoding a data stream, wherein the device is configured to make the data stream verifiable in terms of reliability and to encode a temporal sequence of segments within the data stream, and the device encodes the segments of the sequence of segments, The process involves applying a hash function to a predetermined portion 13 of the segment to obtain a hash value. Within the data stream, Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence. Insert instruction 61 to instruct 23, Form a verification string 48 based on the hash value and according to the instructions. Obtain a digital signature 43 based on the verification string 48. Device 10 is configured to allow for reliability checks.
[0166] 18. The apparatus according to Embodiment 17, which is configured to sign a verification string 48 when obtaining a digital signature 43. 19. The apparatus according to Embodiment 17 or Embodiment 18, which is configured to insert instructions within a supplemental information message associated with a segment. 20. The apparatus according to Embodiment 19, wherein the supplemental information message indicates a certificate for decrypting the hash function and / or digital signature 43. 21. The apparatus according to embodiment 17 or 18, configured to insert instructions and a digital signature 43 within a supplemental information message. 22. The device is configured to insert an instruction into the data stream indicating whether a segment is the first segment of a signed subsequence of a temporal sequence, When the segment is the first segment of a signed subsequence, it is configured to form a verification string 48 that is independent of any part of the data stream that precedes the segment in the temporal sequence. The apparatus according to any one of embodiments 17 to 21.
[0167] 23. If the segment is not the first segment of a signed subsequence, it is configured to form a verification string 48 based on the previous hash value obtained for the preceding segment of the segment. The apparatus described in Embodiment 22. 24. The apparatus according to any one of embodiments 17 to 23, configured to derive several parts and to make segments checkable in terms of reliability in units of parts, wherein some parts include a predetermined part 13, and the parts of some parts have a hierarchical order. 25. The device, If a predetermined part 13 is not the first part in the hierarchical order of the parts, the verification string 48 is configured to be formed based on the previous hash value obtained for the preceding part that precedes the predetermined part 13 in the hierarchical order. The apparatus described in Embodiment 24. 26. The apparatus according to Embodiment 24 or 25, wherein a predetermined portion 13 is the first portion of a portion in a hierarchical order, and the apparatus is configured to form a subsequent verification string 48 for verifying the subsequent portion based on a hash value obtained by applying a hash function to the predetermined portion 13 when verifying subsequent portions of several portions that follow the predetermined portion 13 in a hierarchical order.
[0168] 27. The apparatus according to any one of embodiments 24 to 26, configured to selectively insert instructions into a data stream when a predetermined portion 13 is the first portion in a hierarchical sequence of several portions. 28. A method for decoding a data stream, wherein the data stream includes a temporal sequence of segments 17, and the method, for each segment of the sequence of segments, Determining a predetermined portion 13 of the segment 30, The process of deriving instruction 61 from the data stream 21, wherein the instruction is Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence. To instruct, derive 21, 21 Deriving a digital signature 43 to be checked against a verification string 48 obtained from a data stream based on a predetermined portion 13 and based on instruction 61, Methods that include...
[0169] 29. A method for decoding a data stream 14, the method comprising checking the data stream with respect to reliability, wherein the data stream comprises a temporal sequence of segments 17, and the method comprises a sequence of segments 17* of segments 17, The process involves applying a hash function 31 to a predetermined portion 13 of the segment to obtain a hash value 33. The process of deriving instruction 61 from the data stream 21, wherein instruction 61 is Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence, To instruct, to derive 21, To form a verification string 48 based on the hash value 33 and instruction 61, Derive the digital signature 43 from the data stream and check whether the verification string 48 conforms to the digital signature 43. A method that includes verification by means of.
[0170] 30. A method for encoding a data stream, the method comprising making the data stream verifiable with respect to reliability, and encoding a temporal sequence of segments within the data stream, wherein the method encodes the segments of the sequence of segments, The process involves applying a hash function to a predetermined portion 13 of the segment to obtain a hash value. Within the data stream, Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence. Insert instructions that indicate, Form a verification string 48 based on the hash value and according to the instructions. Obtain a digital signature 43 based on the verification string 48. A method that includes making it possible to check its reliability.
[0171] 31. A data stream in which the data stream is checkable in terms of reliability, and the data stream is Temporal sequence of segments Whether the segment is the first segment of a signed subsequence of a temporal sequence, Whether the segment is the last segment of a signed subsequence of a temporal sequence. Instructions to give instructions A data stream that includes this.
[0172] 32. The data stream according to Embodiment 31, wherein the data stream is provided using the method of Embodiment 30. 33. A device 20 for decoding a data stream 14, wherein the data stream includes a temporal sequence of segments 17, and the device From the data stream, for each segment 17* of the segment sequence, derive whether the validation chain within the segment's temporal sequence was interrupted in the segment 21, If the data stream indicates that the verification chain has been interrupted, and the data stream contains a digital signature 43 for checking the segment for authenticity, the digital signature 43 is derived from the data stream to be checked against a verification string 48 that is independent of the preceding segment that is immediately preceding the segment 17* in the temporal sequence 21, Apparatus 20 is configured to perform the following actions. 34. The apparatus according to embodiment 33, wherein the apparatus is configured to verify a segment by checking whether the verification string 48 conforms to the digital signature 43. 35. The apparatus according to Embodiment 33 or Embodiment 34, wherein the apparatus is configured to provide a predetermined portion 13 of a segment and a digital signature 43 for verification of the segment.
[0173] Device 20 for decoding data stream 14, the device being configured to check the data stream for reliability, the data stream including a temporal sequence of segments, the device deriving 21 from the data stream whether a verification chain within the temporal sequence of segments is interrupted in a segment when the data stream indicates that the verification chain is interrupted and when the data stream includes a digital signature 43 of a segment deriving 21 the digital signature 43 from the data stream forming 39 a verification string 48 independent of a preceding segment immediately preceding the segment in the temporal sequence checking 63 whether the verification string 48 conforms to the digital signature 43 Device 20 configured to perform the above.
[0174] 37. The device according to embodiment 33 or 36, configured to derive an indication indicating whether a verification chain is interrupted in a segment from the data stream for the segment. 38. Checking whether a segment is checkable for reliability and, if the segment is not checkable for reliability, assuming that the verification chain is interrupted in the segment. The device according to any one of embodiments 33 to 37. 39. Checking whether the verification string 48 conforms to the digital signature 43 is decoding the digital signature 43 to obtain a check value checking whether the verification string 48 matches the check value The device according to any one of embodiments 34 to 36, including the above. 40. Forming the verification string 48 includes applying a predetermined part 13 of the segment to a hash function to obtain a hash value, and forming the verification string 48 based on the hash value, for the apparatus according to any one of embodiments 33 to 39.
[0175] 41. Forming the verification string 48 includes forming the verification string 48 using a previous hash value when the data stream does not indicate an interruption in the verification chain and the data stream includes the digital signature 43 of the segment, where the previous hash value is obtained by applying a part of a preceding segment to a hash function. The apparatus according to any one of embodiments 33 to 40. 42. Forming the verification string 48 includes forming a verification string 48 independent of any of the segments preceding the segment in the time sequence when the data stream indicates that the verification chain has been interrupted and the data stream includes the digital signature 43 of the segment, for the apparatus according to any one of embodiments 33 to 41.
[0176] 43. Checking the segment for reliability includes, when the data stream indicates that the verification chain has been interrupted and the data stream includes the digital signature 43 of the segment, checking whether the segment is the first segment of a further verification chain, and when the segment is the first segment of a further verification chain, forming a verification string 48 independent of any of the segments preceding the segment in the time sequence, for the apparatus according to any one of embodiments 33 to 42. 44. Checking the segment for reliability includes, when the segment is not the first segment of a further verification chain, This involves forming a verification string 48 using a further earlier hash value, where the further earlier hash value is obtained by applying a hash function to a portion of a further preceding segment of the temporal sequence. The apparatus described in Embodiment 43.
[0177] 45. Checking the segment for reliability indicates that the data stream indicates that the verification chain has been interrupted, and that the data stream contains the segment's digital signature 43. Check whether the segment is the first segment in a further validation chain, If the segment is not the first segment in a further verification chain, the verification string 48 is formed using a further earlier hash value, wherein the further earlier hash value is obtained by applying a hash function to a portion of an even earlier segment in the temporal sequence. The apparatus according to any one of embodiments 33 to 44, including the apparatus described above.
[0178] 46. When checking whether a segment is the first segment in a further validation chain, It is configured to derive an instruction from the data stream that indicates whether a segment is the first segment in the validation chain. The apparatus according to claim 44 or 45. 47. When checking whether a segment is the first segment in a further validation chain, Deriving segment validation information from a data stream, and comparing the validation information with prior validation information for further preceding segments in the temporal sequence. Inferring that a segment is not the first segment in a further validation chain when the validation information matches the preceding validation information. Inferring that a segment is the first segment in a further validation chain when the validation information does not match the preceding validation information. The apparatus according to embodiment 44 or 45, configured to perform the following:
[0179] 48. Verification information, - Instructions for the certificate to decrypt digital signature 43, - Instructions for the hash function, - Segment content identifier The apparatus according to embodiment 46, comprising one or more of the following. 49. Check the segment for reliability if the instructions indicate that the verification chain has been interrupted, and If the data stream does not contain a digital signature 43 for the segment, or If the segment is the first segment in a further validation chain, The storage of a previous hash value, which is obtained by applying a hash function to a portion of a preceding segment to verify a subsequent segment in a temporal sequence, The apparatus according to any one of embodiments 33 to 48.
[0180] 50. A device 10 for encoding a data stream 14, wherein the device is configured to make the data stream verifiable in terms of reliability and to encode a temporal sequence of segments within the data stream, and the device If the verification chain within the temporal sequence of a segment is interrupted at the segment, and the segment should be checkable for reliability, To form a validation string 48 that is independent of the preceding segment immediately before the segment in the temporal sequence, and Obtaining a digital signature 43 based on verification string 48, and Inserting a digital signature 43 into the data stream Apparatus 10 is configured to perform the following actions. 51. The apparatus according to Embodiment 50, configured to insert an instruction into the data stream indicating whether the validation chain in the temporal sequence of segments was interrupted at a segment.
[0181] 52. The apparatus according to Embodiment 50, wherein the verification chain is configured to treat the segment as if it were interrupted at the segment when the segment should not be checkable for reliability. 53. The apparatus according to any one of embodiments 50 to 52, which is configured to sign a verification string 48 when obtaining a digital signature 43. 54. The apparatus according to any one of embodiments 50 to 53, configured to obtain a hash value by applying a hash function to a predetermined portion 13 of a segment, and to form a verification string 48 based on the hash value, thereby forming a verification string 48. 55. The apparatus according to any one of embodiments 50 to 54, configured to form a verification string 48 using a previous hash value when the verification chain is not interrupted by a segment and the segment should be checkable for reliability, wherein the previous hash value is obtained by applying a hash function to the portion of the preceding segment.
[0182] 56. When the verification chain is interrupted by a segment, and the segment should be checkable for reliability, it is configured to form a verification string 48 that is independent of any of the segments preceding the segment in the temporal sequence. The apparatus according to any one of embodiments 50 to 55. 57. When the verification chain is interrupted in a segment, and the segment should be checkable for reliability, If the segment is the first segment in a further validation chain, it is configured to form a validation string 48 independently of any of the segments preceding it in the temporal sequence. The device according to any one of Embodiments 50 to 56. 58. When the segment is not the first segment of a further verification chain, configured to form the verification string 48 using a further previous hash value, the further previous hash value being obtained by applying a hash function to a portion of a further preceding segment of the temporal sequence, The device according to Embodiment 57. 59. When the verification chain is interrupted by a segment and the segment is to be checkable for reliability, when the segment is not the first segment of a further verification chain, configured to form the verification string 48 using a further previous hash value, the further previous hash value being obtained by applying a hash function to a portion of a further preceding segment of the temporal sequence, The device according to any one of Embodiments 50 to 58.
[0183] 60. The device according to Embodiment 58 or 59, configured to insert an indication into the data stream indicating whether the segment is the first segment of the verification chain. 61. When the verification chain is interrupted by a segment and the segment is not to be checkable for reliability, or the segment is the first segment of a further verification chain, configured to store the previous hash value, the previous hash value being obtained by applying a hash function to a portion of the preceding segment for verifying a subsequent segment of the temporal sequence, The device according to any one of Embodiments 50 to 60. 62. A method for decoding the data stream 14, the data stream including a temporal sequence of segments 17, the method comprising From the data stream, for each segment 17* of the segment sequence, derive whether the validation chain within the segment's temporal sequence was interrupted in the segment 21, If the data stream indicates that the verification chain has been interrupted, and the data stream contains a digital signature 43 for checking the segment for authenticity, the digital signature 43 is derived from the data stream to be checked against a verification string 48 that is independent of the preceding segment that is immediately preceding the segment 17* in the temporal sequence 21, Methods that include...
[0184] 63. A method for decoding a data stream 14, the method comprising checking the data stream for reliability, wherein the data stream comprises a temporal sequence of segments, and the method From the data stream, derive whether the validation chain in the temporal sequence of the segment was interrupted in the segment 21, and If the data stream indicates that the verification chain has been interrupted, and the data stream contains the digital signature 43 of the segment, Deriving a digital signature 43 from the data stream 21, To form a validation string 48 that is independent of the preceding segment immediately preceding the segment in the temporal sequence 39, and Check whether the verification string 48 conforms to the digital signature 43 63 Methods that include...
[0185] 64. A method for encoding a data stream 14, the method comprising making the data stream verifiable with respect to reliability, and encoding a temporal sequence of segments within the data stream, the method If the verification chain within the temporal sequence of a segment is interrupted at the segment, and the segment should be checkable for reliability, To form a validation string 48 that is independent of the preceding segment immediately before the segment in the temporal sequence, and Obtaining a digital signature 43 based on verification string 48, and Inserting a digital signature 43 into the data stream Methods that include... 65. A data stream 14 generated using the method of Embodiment 64.
[0186] 66. The data stream has video encoded in the data stream, and the device is configured to decode the video from the data stream by block-based prediction and transformation-based residual decoding, and the decoding is This is done by decoding the predicted residual data of residual blocks from the data stream using context-adaptive variable-length decoding, and the decoding is performed by A first syntactic element that indicates the total number of non-zero conversion coefficients in the conversion block representing the residual block, and a trailing-one number indicating the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, One or more second syntactic elements indicating the sign of a non-zero transformation coefficient having an absolute value of 1 when traversing the coefficients along the scan order, One or more third syntactic elements indicating the values of non-zero conversion coefficients, excluding the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, A fourth syntactic element indicating the total number of zero-value conversion coefficient levels in the conversion block from the first non-zero conversion coefficient encountered in the scan order, One or more fifth syntactic elements that indicate the position of a non-zero conversion coefficient along the scan order by indicating the number of consecutive zero-value conversion coefficients in the scan order between consecutively encountered non-zero conversion coefficients, This is done using The apparatus according to any one of Embodiments 1 to 16, or any one of Embodiments 33 to 49.
[0187] 67. The data stream has video encoded within the data stream, and the device is configured to decode the video from the data stream by block-based predictive decoding and transform-based residual decoding, This is done by decoding the predicted residual data of the residual block from the data stream using context-adaptive binary arithmetic decoding, and context-adaptive binary arithmetic decoding is performed by The importance map indicating the location of non-zero conversion coefficients within a conversion block representing a residual block is decoded by decoding an importance flag indicating whether a non-zero conversion coefficient is located at the current position in a forward scan traversing the conversion coefficients of the conversion block, and if a non-zero conversion coefficient is located at the current position, and if the current position is not the end of the forward scan, by decoding a final importance flag indicating whether the non-zero conversion coefficient located at the current position is the last non-zero conversion coefficient in the forward scan order, and The values of the non-zero conversion coefficients are decoded sequentially using a reverse scan order, which is the reverse of the forward scan order. This is done by The apparatus according to any one of Embodiments 1 to 16, or any one of Embodiments 33 to 49.
[0188] 68. The data stream has video encoded within the data stream, and the device is configured to decode the video from the data stream by block-based predictive decoding and transform-based residual decoding, This is done by decoding the predicted residual data of intra-predicted blocks from the data stream using context-adaptive binary arithmetic decoding, and context-adaptive binary arithmetic decoding is performed by Decoding the coordinates of the position within the transformation block representing the predicted residual data encountered when traversing the transformation coefficients of the transformation block according to a predetermined scan order, and Sequentially decoding the values of the included and ranked transformation coefficients in a predetermined scan order between the last non-zero transformation coefficient and the first transformation coefficient scanned, and The predetermined scan order is selected from diagonal scan order, horizontal scan order, and vertical scan order by using a mapping that maps each of the multiple intra-prediction modes to the corresponding one among the diagonal scan order, horizontal scan order, and vertical scan order, according to the intra-prediction mode of the intra-predicted block. This is done by The apparatus according to any one of Embodiments 1 to 16, or any one of Embodiments 33 to 49.
[0189] 69. The data stream has video encoded in the data stream, and the device is configured to decode the video from the data stream by block-based predictive decoding and transformation-based residual decoding, and the decoding is Decode the predicted residual data of the residual blocks from the data stream using context-adaptive binary arithmetic decoding of the quantization index of the transformation coefficients of the transformation block representing the residual block, and sequential inverse quantization of the quantization index where the value of the current transformation coefficient depends on the parity of the quantization index of the previous quantization index. This is done by The apparatus according to any one of Embodiments 1 to 16, or any one of Embodiments 33 to 49.
[0190] 70. The device is an encoder configured to encode video into a data stream by block-based predictive encoding and transformation-based residual encoding, wherein the encoding is This is done by encoding the predicted residual data of the residual block into a data stream using context-adaptive variable-length coding, and the encoding is performed by A first syntactic element that indicates the total number of non-zero conversion coefficients in the conversion block representing the residual block, and a trailing-one number indicating the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, One or more second syntactic elements indicating the sign of a non-zero transformation coefficient having an absolute value of 1 when traversing the coefficients along the scan order, When traversing the coefficients along the scan order, one or more third syntactic elements indicating the values of non-zero conversion coefficients, excluding the number of non-zero conversion coefficients with an absolute value of 1, A fourth syntactic element indicating the total number of zero-value conversion coefficient levels in the conversion block from the first non-zero conversion coefficient encountered in the scan order, One or more fifth syntactic elements that indicate the position of a non-zero conversion coefficient along the scan order by indicating the number of consecutive zero-value conversion coefficients in the scan order between non-zero conversion coefficients encountered consecutively in the scan order, This is done using The apparatus according to any one of embodiments 17 to 27, or any one of embodiments 50 to 61.
[0191] 71. The device is an encoder configured to encode video into a data stream by block-based predictive coding and transform-based residual coding, where block-based predictive coding and transform-based residual coding are, This is done by encoding the predicted residual data of the residual block within the data stream using context-adaptive binary arithmetic coding, and context-adaptive binary arithmetic coding is performed by, The importance map indicating the location of non-zero transformation coefficients within a transformation block representing a residual block is encoded by encoding an importance flag indicating whether a non-zero transformation coefficient is located at the current position in a forward scan traversing the transformation coefficients of the transformation block, and if a non-zero transformation coefficient is located at the current position, and the current position is not the last in the forward scan, encoding a final importance flag indicating whether the non-zero transformation coefficient located at the current position is the last non-zero transformation coefficient in the forward scan order, and The values of the non-zero conversion coefficients are sequentially encoded in a reverse scan order, which is the reverse of the forward scan order. This is done by The apparatus according to any one of embodiments 17 to 27, or any one of embodiments 50 to 61.
[0192] 72. The device is configured to encode video into a data stream by block-based predictive coding and transformation-based residual coding, and block-based predictive coding and transformation-based residual coding are This is done by encoding the predicted residual data of the intra-predicted block into a data stream using context-adaptive binary arithmetic coding, Encoding the coordinates of the position within the transformation block representing the predicted residual data encountered when traversing the transformation coefficients of the transformation block according to a predetermined scan order, and Sequentially encoding the values of the included and ranked transformation coefficients in a predetermined scan order between the last non-zero transformation coefficient and the first transformation coefficient scanned, as well as The predetermined scan order is selected from diagonal scan order, horizontal scan order, and vertical scan order by using a mapping that maps each of the multiple intra-prediction modes to the corresponding one among the diagonal scan order, horizontal scan order, and vertical scan order, according to the intra-prediction mode of the intra-predicted block. This is done by The apparatus according to any one of embodiments 17 to 27, or any one of embodiments 50 to 61.
[0193] 73. The device is configured to encode video into a data stream by block-based predictive encoding and transform-based residual encoding, and block-based predictive encoding and transform-based residual encoding are Encoding predicted residual data of residual blocks into a data stream using context-adaptive binary arithmetic coding of the quantized index of the transformation coefficients of the transformation block representing the residual block, and sequential quantization of the transformation coefficients to obtain the quantized index, where the quantizer for quantizing the current transformation coefficient depends on the parity of the quantized index of the previous quantized index. This is done by The apparatus according to any one of embodiments 17 to 27, or any one of embodiments 50 to 61.
[0194] 74. The data stream has video encoded within the data stream by block-based predictive coding and transformation-based residual coding, and the encoding is This is done by encoding the predicted residual data of the residual block into the data stream using context-adaptive variable-length coding, and the encoding is performed by A first syntactic element that indicates the total number of non-zero conversion coefficients in the conversion block representing the residual block, and a trailing-one number indicating the number of non-zero conversion coefficients that have an absolute value of 1 when traversing the coefficients along the scan order, One or more second syntactic elements indicating the sign of a non-zero transformation coefficient having an absolute value of 1 when traversing the coefficients along the scan order, When traversing the coefficients along the scan order, one or more third syntactic elements indicating the values of non-zero conversion coefficients, excluding the number of non-zero conversion coefficients with an absolute value of 1, A fourth syntactic element indicating the total number of zero-value conversion coefficient levels in the conversion block from the first non-zero conversion coefficient encountered in the scan order, One or more fifth syntactic elements that indicate the position of a non-zero conversion coefficient along the scan order by indicating the number of consecutive zero-value conversion coefficients in the scan order between non-zero conversion coefficients encountered consecutively in the scan order, This is done using The apparatus according to any one of Embodiments 1 to 16, any one of Embodiments 33 to 49, any one of Embodiments 17 to 27, or any one of Embodiments 50 to 61.
[0195] 75. The data stream has video encoded within the data stream by block-based predictive coding and transformation-based residual coding, and block-based predictive coding and transformation-based residual coding are This is done by encoding the predicted residual data of the residual block within the data stream using context-adaptive binary arithmetic coding, and context-adaptive binary arithmetic coding is performed by, The importance map indicating the location of non-zero transformation coefficients within a transformation block representing a residual block is encoded by encoding an importance flag indicating whether a non-zero transformation coefficient is located at the current position in a forward scan traversing the transformation coefficients of the transformation block, and if a non-zero transformation coefficient is located at the current position, and the current position is not the last in the forward scan, encoding a final importance flag indicating whether the non-zero transformation coefficient located at the current position is the last non-zero transformation coefficient in the forward scan order, and The values of the non-zero conversion coefficients are sequentially encoded in a reverse scan order, which is the reverse of the forward scan order. This is done by The apparatus according to any one of Embodiments 1 to 16, or any one of Embodiments 33 to 49, or any one of Embodiments 17 to 27, or any one of Embodiments 50 to 61.
[0196] 76. The data stream has video encoded within the data stream by block-based predictive coding and transformation-based residual coding, and block-based predictive coding and transformation-based residual coding are This is done by encoding the predicted residual data of the intra-predicted block into the data stream using context-adaptive binary arithmetic coding, Encoding the coordinates of the position within the transformation block representing the predicted residual data encountered when traversing the transformation coefficients of the transformation block according to a predetermined scan order, and Sequentially encoding the values of the included and ranked transformation coefficients in a predetermined scan order between the last non-zero transformation coefficient and the first transformation coefficient scanned, as well as The predetermined scan order is selected from diagonal scan order, horizontal scan order, and vertical scan order by using a mapping that maps each of the multiple intra-prediction modes to the corresponding one among the diagonal scan order, horizontal scan order, and vertical scan order, according to the intra-prediction mode of the intra-predicted block. This is done by The apparatus according to any of Embodiments 1 to 16, or any of Embodiments 33 to 49, or any of Embodiments 17 to 27, or any of Embodiments 50 to 61.
[0197] 77. The data stream has video encoded within the data stream by block-based predictive encoding and transform-based residual encoding, and block-based predictive encoding and transform-based residual encoding, Encoding predicted residual data of residual blocks into a data stream using context-adaptive binary arithmetic coding of the quantized index of the transformation coefficients of the transformation block representing the residual block, and sequential quantization of the transformation coefficients to obtain the quantized index, where the quantizer for quantizing the current transformation coefficient depends on the parity of the quantized index of the previous quantized index. This is done by The apparatus according to any one of Embodiments 1 to 16, or any one of Embodiments 33 to 49, or any one of Embodiments 17 to 27, or any one of Embodiments 50 to 61. 78. A data stream generated using the method of Embodiment 30 or Embodiment 64. 79. A computer program for performing any of the methods of Embodiment 28, Embodiment 29, or Embodiments 62 to 64 when executed on a computer or signal processor.
[0198] Alternative examples of embodiments While some aspects are described as features within the context of the apparatus, it is clear that such descriptions may also be considered descriptions of corresponding features of the method. Similarly, while some aspects are described as features within the context of the method, it is clear that such descriptions may also be considered descriptions of corresponding features relating to the function of the apparatus. In particular, block diagrams illustrating the function of the apparatus may also be understood as descriptions of the respective methods, including the functions described by the blocks in the block diagram as steps of the method.
[0199] Data signals or data streams provided by embodiments of the present invention (e.g., media data streams, video data streams, audio data streams) can be stored in a digital storage medium, such as a non-temporary or temporary digital storage medium, or can be transmitted over a transmission medium such as a wireless or wired transmission medium. In other words, further embodiments provide a computer product, such as a data stream product or a bitstream product, such as a non-temporary digital storage medium, which includes, for example, a data signal or data stream according to any of the embodiments described herein, stored therein.
[0200] Further embodiments provide a method for storing data, the method comprising the step of storing a data stream in a digital storage medium, for example, a non-temporary digital storage medium, the data stream carrying the data. For example, the data stream is according to any of the embodiments described herein. For example, encodes the data according to any of the encoding methods described herein.
[0201] Further embodiments provide a method for transmitting any data stream from any of the embodiments described herein.
[0202] Features described for devices for receiving or processing signals (e.g., receivers, decoders) should be understood to function as features of the respective signals, such as data streams, as descriptions of the respective features of devices for providing signals (e.g., encoders) and vice versa. In particular, those skilled in the art will understand that any information received by a receiver or derived from a signal by a receiver, such as data types, structures, or items, is inserted into the signal by the corresponding provider, and vice versa.
[0203] Some or all of the method steps may be performed by (or using) a hardware device such as a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more method steps may be performed by such a device.
[0204] Depending on specific implementation requirements, embodiments of the present invention may be implemented in hardware or software, or at least partially in hardware or at least partially in software. Implementations may be carried out using digital storage media containing electronically readable control signals, such as floppy disks, DVDs, Blu-rays, CDs, ROMs, PROMs, EPROMs, EEPROMs, or flash memory, which cooperate (or can cooperate) with a programmable computer system to perform the respective methods. Therefore, the digital storage media may be computer-readable.
[0205] Some embodiments of the present invention include a data carrier having an electronically readable control signal that can cooperate with a programmable computer system so that one of the methods described herein can be performed. Generally, embodiments of the present invention can be implemented as a computer program product having program code, the program code behaves to perform one of the methods when the computer program product is executed on a computer. The program code may be stored, for example, in a machine-readable carrier. Other embodiments include a computer program stored in a machine-readable carrier for performing one of the methods described herein. In other words, therefore, one embodiment of the method of the present invention is a computer program having program code for performing one of the methods of the present invention when the computer program is executed on a computer.
[0206] Accordingly, a further embodiment of the method of the present invention is a data carrier (or digital storage medium, or computer-readable medium) containing a computer program for performing one of the methods described herein. The data carrier, digital storage medium, or recording medium is typically tangible and / or non-temporary. Therefore, a further embodiment of the method of the present invention is a data stream or sequence of signals representing a computer program for performing one of the methods described herein. The data stream or sequence of signals may be configured to be transmitted, for example, over a data communication connection, such as the Internet. Further embodiments include processing means configured or adapted to perform one of the methods described herein, such as a computer or a programmable logic device. Further embodiments include a computer on which a computer program for performing one of the methods described herein is installed.
[0207] Further embodiments of the present invention include an apparatus or system configured to transfer (e.g., electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system may include, for example, a file server for transferring the computer program to the receiver.
[0208] In some embodiments, a programmable logic device (e.g., a field-programmable gate array) may be used to perform some or all of the functions of the method herein. In some embodiments, a field-programmable gate array may cooperate with a microprocessor to perform one of the methods herein. Generally, the method is preferably performed by any hardware device. The apparatus described herein may be implemented using hardware devices, or using a computer, or using a combination of hardware devices and a computer. The methods described herein may be performed using hardware devices, or using a computer, or using a combination of hardware devices and a computer.
[0209] As can be seen in the detailed description above, various features are grouped together in the examples for the purpose of simplifying this disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed examples require more features than are explicitly described in each claim. Rather, as reflected in the claims below, the subject matter may consist of fewer features than all the features of a single disclosed example. Thus, the claims below are incorporated into the detailed description, and each claim may stand alone as a separate example. While each claim may stand alone as a separate example, a dependent claim may refer to a specific combination of one or more other claims in the claim, but it should be noted that other examples may also include combinations of a dependent claim with the subject matter of another dependent claim, or combinations of each feature with other dependent or independent claims. Such combinations are proposed herein unless otherwise stated that a particular combination is not intended. Furthermore, it is also intended that the features of the claim may be included in any other independent claim, even if this claim is not directly dependent on an independent claim.
[0210] The embodiments described above are merely illustrative of the principles of the present disclosure. Modifications and variations of the configurations and details described herein will be apparent to those skilled in the art. Therefore, it is intended to be limited only by the pending claims and not by the descriptions of the embodiments herein and by the specific details presented herein.
Claims
1. An apparatus (20) for decoding an audio data stream, wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream includes a temporal sequence of segments (17), and the apparatus decodes the segments of the sequence of segments, Determining a predetermined portion (13) of the segment (30), The process of deriving an instruction (61) from an audio data stream (21), wherein the instruction is Whether the segment is the first segment of a signed subsequence of the temporal sequence, Whether the aforementioned segment is the last segment of the signed subsequence of the temporal sequence (21) to instruct, to derive, (21) Deriving a digital signature (43) from the audio data stream to be checked against a verification string (48) obtained based on the predetermined portion (13) and based on the instruction (61), A device (20) configured to perform the following actions.
2. The apparatus according to claim 1, wherein the apparatus is configured to verify the predetermined portion (13) by checking whether the verification string (48) conforms to the digital signature (43).
3. The apparatus according to claim 1, wherein the apparatus is configured to provide the predetermined portion (13), the instruction (61), and a digital signature (43) for verification of the predetermined portion (13).
4. The apparatus according to claim 1, wherein the predetermined portion (13) is subjected to a hash function to obtain a hash value, and the verification string (48) is obtained based on the hash value.
5. The apparatus according to claim 1, wherein the predetermined portion (13) and the instruction are subjected to a hash function to obtain a hash value, and the verification string (48) is obtained based on the hash value.
6. Checking whether the verification string (48) conforms to the digital signature (43) is equivalent to deciphering the digital signature (43) and obtaining the check value. The verification string (48) is checked to see if it matches the check value, The apparatus according to claim 1, including the following:
7. The apparatus according to claim 1, configured to derive the instruction from a supplemental information message associated with the segment.
8. The apparatus according to claim 7, wherein the supplemental information message indicates a certificate for decrypting a hash function and / or a digital signature (43).
9. The apparatus according to claim 1, configured to derive the instruction from a supplemental information message indicating the digital signature (43).
10. The device is configured to derive an instruction from the audio data stream indicating whether the segment is the first segment of a signed subsequence of the temporal sequence, and the device is configured to derive an instruction indicating whether the segment is the first segment of a signed subsequence of the temporal sequence. When the segment is the first segment of the signed subsequence, the verification string (48) is configured to form a string that is independent of any portion of the audio data stream that precedes the segment in the temporal sequence. The apparatus according to claim 1.
11. If the segment is not the first segment of the signed subsequence, the verification string (48) is configured to be derived based on a previous hash value obtained for a preceding segment of the segment. The apparatus according to claim 10.
12. An apparatus (10) for encoding an audio data stream, wherein the audio data stream (14) encodes the audio signal within the audio data stream, and the apparatus is configured to make the audio data stream verifiable in terms of reliability and to encode a temporal sequence of segments within the audio data stream, wherein the apparatus encodes the segments of the temporal sequence of the segments, A hash value is obtained by applying a hash function to a predetermined portion (13) of the aforementioned segment. Within the aforementioned audio data stream, Whether the segment is the first segment of a signed subsequence of the temporal sequence, Whether the aforementioned segment is the last segment of the signed subsequence of the temporal sequence Insert an instruction (61) that instructs (23), Form a verification string (48) based on the hash value and according to the instructions. Obtaining a digital signature (43) based on a verification string (48) A device (10) configured to allow for reliability checks.
13. The apparatus according to claim 12, which is configured to sign the verification string (48) when obtaining the digital signature (43).
14. The apparatus according to claim 12, configured to insert the instruction within a supplemental information message associated with the segment.
15. The apparatus according to claim 14, wherein the supplemental information message indicates a certificate for decrypting the hash function and / or the digital signature (43).
16. The apparatus according to claim 12, configured to insert the instructions and the digital signature (43) into a supplemental information message.
17. The device is configured to insert the instruction into the audio data stream indicating whether the segment is the first segment of the signed subsequence of the temporal sequence, and the device When the segment is the first segment of the signed subsequence, the verification string (48) is configured to form a string that is independent of any portion of the audio data stream that precedes the segment in the temporal sequence. The apparatus according to claim 12.
18. If the segment is not the first segment of the signed subsequence, the verification string (48) is configured to be derived based on the previous hash value obtained for the preceding segment of the segment. The apparatus according to claim 17.
19. A method for decoding an audio data stream, wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream includes a temporal sequence of segments (17), and the method includes, for each segment of the temporal sequence of segments, Determining a predetermined portion (13) of the segment (30), (21) deriving an instruction (61) from the audio data stream, wherein the instruction is Whether the segment is the first segment of a signed subsequence of the temporal sequence, Whether the aforementioned segment is the last segment of the signed subsequence of the temporal sequence (21) to instruct, to derive, (21) Deriving a digital signature (43) from the audio data stream to be checked against a verification string (48) obtained based on the predetermined portion (13) and based on the instruction (61), Methods that include...
20. A method for encoding an audio data stream, wherein the audio data stream (14) encodes the audio signal within the audio data stream, and the method includes making the audio data stream reliable and encoding a temporal sequence of segments within the audio data stream, wherein the method encodes the segments of the sequence of segments A hash value is obtained by applying a hash function to a predetermined portion (13) of the aforementioned segment. Within the aforementioned audio data stream, Whether the segment is the first segment of a signed subsequence of the temporal sequence, Whether the aforementioned segment is the last segment of the signed subsequence of the temporal sequence Insert instructions that indicate, Form a verification string (48) based on the hash value and the instruction, Obtaining a digital signature (43) based on the verification string (48) A method that includes making it possible to check its reliability.
21. An audio data stream, wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream is checkable in terms of reliability, and the audio data stream is Temporal sequence of segments Whether the segment is the first segment of a signed subsequence of the temporal sequence, Whether the aforementioned segment is the last segment of the signed subsequence of the temporal sequence Instructions to give instructions An audio data stream containing [the specified element].
22. An apparatus (20) for decoding an audio data stream (14), wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream includes a temporal sequence of segments (17), and the apparatus From the audio data stream, for each segment of the segment sequence (17*), derive whether the verification chain within the segment's temporal sequence was interrupted in the segment (21), If the audio data stream indicates that the verification chain has been interrupted, and the audio data stream contains a digital signature (43) for checking the segment for authenticity, then the digital signature (43) is derived from the audio data stream to be checked against a verification string (48) that is in a temporal sequence immediately preceding the segment (17*) and is unrelated to the preceding segment (21), A device (20) configured to perform the following actions.
23. The apparatus according to claim 22, wherein the apparatus is configured to verify the segment by checking whether the verification string (48) conforms to the digital signature (43).
24. The apparatus according to claim 22, wherein the apparatus is configured to provide a predetermined portion (13) of the segment and the digital signature (43) for verification of the segment.
25. The apparatus according to claim 22, configured to derive an instruction from the audio data stream indicating whether the verification chain was interrupted at the segment.
26. The apparatus according to claim 22, configured to check whether the segment is checkable in terms of reliability, and, if the segment is not checkable in terms of reliability, to assume that the verification chain is interrupted at the segment.
27. Checking whether the verification string (48) conforms to the digital signature (43) is Deciphering the aforementioned digital signature (43) to obtain a check value, The verification string (48) is checked to see if it matches the check value, The apparatus according to claim 23, including the apparatus described in claim 23.
28. The apparatus according to claim 22, wherein forming the verification string (48) includes applying a hash function to a predetermined portion (13) of the segment to obtain a hash value, and forming the verification string (48) based on the hash value.
29. Forming the verification string (48) includes deriving the verification string (48) using a previous hash value if the audio data stream does not indicate a break in the verification chain and the audio data stream includes a digital signature (43) of the segment, the previous hash value is obtained by applying a hash function to the portion of the preceding segment. The apparatus according to claim 22.
30. The apparatus according to claim 22, wherein forming the verification string (48) includes forming the verification string (48) which is independent of any of the segments preceding the segment in the temporal sequence when the audio data stream indicates that the verification chain has been interrupted and the audio data stream includes a digital signature (43) of the segment.
31. Checking the segment for reliability is done if the audio data stream indicates that the verification chain has been interrupted, and if the audio data stream includes a digital signature (43) of the segment. Check whether the aforementioned segment is the first segment in a further verification chain, If the segment is the first segment in a further verification chain, the verification string (48) is formed which is unrelated to any of the segments preceding the segment in the temporal sequence. The apparatus according to claim 22, including the following:
32. Checking the reliability of the aforementioned segment is necessary if the segment is not the first segment in a further verification chain. This includes forming the verification string (48) using a further earlier hash value, wherein the further earlier hash value is obtained by applying a hash function to a portion of a further preceding segment of the temporal sequence. The apparatus according to claim 31.
33. Checking the segment for reliability is done if the audio data stream indicates that the verification chain has been interrupted, and if the audio data stream includes a digital signature (43) of the segment. Check whether the aforementioned segment is the first segment in a further verification chain, If the segment is not the first segment in a further verification chain, the verification string (48) is formed using a further earlier hash value, wherein the further earlier hash value is obtained by applying a hash function to a portion of an even earlier segment in the temporal sequence. The apparatus according to claim 22, including the following:
34. When checking whether the aforementioned segment is the first segment of a further verification chain, The system is configured to derive an instruction from the audio data stream indicating whether the segment is the first segment in the verification chain. The apparatus according to claim 32.
35. When checking whether the aforementioned segment is the first segment of a further verification chain, Deriving verification information for the segment from the audio data stream, and comparing the verification information with prior verification information for further preceding segments of the temporal sequence. If the verification information matches the preceding verification information, infer that the segment is not the first segment of a further verification chain. If the verification information does not match the preceding verification information, infer that the segment is the first segment of a further verification chain. The apparatus according to claim 32, configured to perform the following:
36. The aforementioned verification information, Instructions for a certificate to decrypt the aforementioned digital signature (43), Instructions for the hash function, Identifier of the content of the aforementioned segment The apparatus according to claim 35, comprising one or more of the following.
37. Checking the segment in terms of reliability is necessary if the instruction indicates that the verification chain has been interrupted, and If the audio data stream does not include a digital signature (43) for the segment, or If the aforementioned segment is the first segment of a further verification chain, A method for storing a previous hash value, wherein the previous hash value is obtained by exposing a portion of the preceding segment to a hash function for verifying subsequent segments of the temporal sequence. The apparatus according to claim 22.
38. An apparatus (10) for encoding an audio data stream (14), wherein the audio data stream (14) encodes the audio signal within the audio data stream, and the apparatus is configured to make the audio data stream verifiable in terms of reliability and to encode a temporal sequence of segments within the audio data stream, and the apparatus is configured to If the verification chain within the temporal sequence of the segment is interrupted at the segment, and the segment should be checkable in terms of reliability, In the aforementioned temporal sequence, a verification string (48) is formed that is unrelated to the preceding segment immediately preceding the segment, and Obtaining a digital signature (43) based on the verification string (48), and Inserting the aforementioned digital signature (43) into the audio data stream A device (10) configured to perform the following actions.
39. The apparatus according to claim 38, wherein the apparatus is configured to insert an instruction into the audio data stream indicating whether the verification chain in the temporal sequence of the segment was interrupted at the segment.
40. The apparatus according to claim 38, wherein, if the segment should not be checkable in terms of reliability, the verification chain is configured to process the segment as if it were interrupted by the segment.
41. The apparatus according to claim 38, configured to sign the verification string (48) when obtaining the digital signature (43).
42. The apparatus according to claim 38, wherein the apparatus is configured to obtain a hash value by applying a hash function to a predetermined portion (13) of the segment, and to form the verification string (48) based on the hash value, thereby forming the verification string (48).
43. The apparatus according to claim 38, wherein, if the verification chain is not interrupted by a segment and the segment should be checkable for reliability, a verification string (48) is formed using a previous hash value, the previous hash value is obtained by applying a hash function to the portion of the preceding segment.
44. If the verification chain is interrupted at the segment, and the segment should be checkable for reliability, the verification string (48) is configured to be formed which is independent of any of the segments preceding the segment in the temporal sequence. The apparatus according to claim 38.
45. If the verification chain is interrupted at the segment, and the segment should be checkable in terms of reliability, If the segment is the first segment in a further verification chain, the verification string (48) is configured to be formed independently of any of the segments preceding the segment in the temporal sequence. The apparatus according to claim 38.
46. If the aforementioned segment is not the first segment of a further verification chain, The system is configured to derive the verification string (48) using a further earlier hash value, the further earlier hash value is obtained by applying a hash function to a portion of a further preceding segment of the temporal sequence. The apparatus according to claim 45.
47. If the verification chain is interrupted at the segment, and the segment should be checkable in terms of reliability, If the segment is not the first segment of a further verification chain, the verification string (48) is configured to be derived using a further earlier hash value, the further earlier hash value is obtained by applying a hash function to a portion of the further preceding segment of the temporal sequence. The apparatus according to claim 38.
48. The apparatus according to claim 46, configured to insert an instruction into the audio data stream indicating whether the segment is the first segment of a verification chain.
49. If the verification chain is interrupted in the segment, and If the aforementioned segment should not be checkable in terms of reliability, or if the aforementioned segment is the first segment of a further verification chain, It is configured to store the previous hash value, which is obtained by applying a hash function to the portion of the preceding segment for verifying the subsequent segment of the temporal sequence. The apparatus according to claim 38.
50. A method for decoding an audio data stream (14), wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream includes a temporal sequence of segments (17), and the method From the audio data stream, for each segment (17*) of the temporal sequence of the segment, derive whether the verification chain within the temporal sequence of the segment was interrupted in that segment (21), If the audio data stream indicates that the verification chain has been interrupted, and the audio data stream includes a digital signature (43) for checking a segment for authenticity, then derive the digital signature (43) from the audio data stream to be checked against a verification string (48) that is in the temporal sequence immediately preceding the segment (17*) and is unrelated to the preceding segment (21), Methods that include...
51. A method for encoding an audio data stream (14), wherein the audio data stream (14) encodes the audio signal within the audio data stream, and the method includes making the audio data stream reliable and encoding a temporal sequence of segments within the audio data stream, wherein the method If the verification chain within the temporal sequence of the segment is interrupted at the segment, and the segment should be checkable for reliability, In the aforementioned temporal sequence, a verification string (48) is formed that is unrelated to the preceding segment immediately preceding the segment, and Obtaining a digital signature (43) based on the verification string (48), and Inserting the aforementioned digital signature (43) into the audio data stream Methods that include...
52. An audio data stream (14) encoded from an audio signal, The audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream is checkable for reliability, and the audio data stream includes a temporal sequence of segments. The aforementioned audio data stream is If the verification chain within the temporal sequence of the segment is interrupted at the segment, and the segment should be checkable for reliability, In the aforementioned temporal sequence, a verification string (48) is formed that is unrelated to the preceding segment immediately preceding the segment, and Obtaining a digital signature (43) based on the verification string (48), and Inserting the aforementioned digital signature (43) into the audio data stream Generated by Audio data stream (14).
53. A method for storing an audio signal, the method comprising storing an audio data stream in a digital storage medium, the audio data stream (14) encoding the audio signal within the audio data stream, the audio data stream being checkable with respect to reliability, and the audio data stream comprising a temporal sequence of segments. The aforementioned audio data stream is The segment of the temporal sequence of the aforementioned segment, A hash value is obtained by applying a hash function to a predetermined portion (13) of the aforementioned segment. Within the audio data stream, Whether the segment is the first segment of the signed subsequence of the temporal sequence, Whether the segment is the last segment of the signed subsequence of the temporal sequence Insert instructions that indicate, Forming a verification string (48) based on the hash value and according to the instructions, Obtaining a digital signature (43) based on a verification string (48) This makes it possible to check reliability. Generated by method.
54. A method for transmitting an audio signal, the method comprising transmitting an audio data stream over a transmission medium, the audio data stream (14) encoding the audio signal within the audio data stream, the audio data stream being checkable with respect to reliability, and the audio data stream comprising a temporal sequence of segments. The aforementioned audio data stream is The segment of the temporal sequence of the aforementioned segment, A hash value is obtained by applying a hash function to a predetermined portion (13) of the aforementioned segment. Within the audio data stream, Whether the segment is the first segment of the signed subsequence of the temporal sequence, Whether the segment is the last segment of the signed subsequence of the temporal sequence Insert instructions that indicate, Forming a verification string (48) based on the hash value and according to the instructions, Obtaining a digital signature (43) based on a verification string (48) This makes it possible to check reliability. Generated by method.
55. A method for storing an audio signal, the method comprising storing the audio data stream in a digital storage medium, wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream is checkable with respect to reliability, the audio data stream includes a temporal sequence of segments, and the audio data stream is If the verification chain within the temporal sequence of the segment is interrupted by the segment, and the segment should be checkable for reliability, In the aforementioned temporal sequence, a verification string (48) is formed that is independent of the preceding segment immediately preceding the segment, and Obtaining a digital signature (43) based on the verification string (48), and Inserting the aforementioned digital signature (43) into the audio data stream, Generated by method.
56. A method for transmitting an audio signal, the method comprising transmitting the audio data stream on a transmission medium, wherein the audio data stream (14) encodes the audio signal within the audio data stream, the audio data stream is checkable with respect to reliability, the audio data stream comprises a temporal sequence of segments, and the audio data stream is If the verification chain within the temporal sequence of the segment is interrupted by the segment, and the segment should be checkable for reliability, In the aforementioned temporal sequence, a verification string (48) is formed that is independent of the preceding segment immediately preceding the segment, and Obtaining a digital signature (43) based on the verification string (48), and Inserting the aforementioned digital signature (43) into the audio data stream Generated by method.