Transmitter, receiver, and methods used to verify video sequences.

By performing lossless compression on video sequences and generating small lossless compressed encoded image frames, combined with data structures and digital signatures, the problem of increased bit rate during video sequence transmission is solved, achieving efficient video sequence verification.

CN118413328BActive Publication Date: 2025-10-31AXIS
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410107424.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2023-01-30
Filing Date
2024-01-25
Publication Date
2025-10-31
Estimated Expiration
2044-01-25

AI Technical Summary

Technical Problem

Existing technologies, when transmitting video sequences, increase the bit rate required by adding digital signatures and encrypted hash values, resulting in a limitation on the available bit rate, and the verification capability has not been effectively reduced.

Method used

By performing lossless compression on video sequences, small lossless compressed coded image frames are identified and generated. Combined with data structures and digital signatures, the size of additional data is reduced without affecting verification capabilities.

Benefits of technology

It reduces the bit rate and additional data size required to transmit video sequences while maintaining the verification capability of the video sequences, thus achieving an efficient verification process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118413328B_ABST
    Figure CN118413328B_ABST
Patent Text Reader

Abstract

This invention relates to a transmitter, a receiver, and a method therein for verifying a video sequence. The method includes: performing (S502) lossless compression on each coded image frame to obtain a corresponding lossless compressed LC-coded image frame; identifying (S504) miniframes among the obtained LC-coded image frames, each miniframe having a data size less than a predefined number of bytes; generating (S506) a data structure including: the identified miniframes; and separate hashes of all coded image frames lacking corresponding miniframes or all other obtained LC-coded image frames different from the miniframes; generating (S512) a digital signature; and providing (S514) the data structure and the digital signature to the video sequence.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a transmitter and a method therein for verifying a video sequence. Furthermore, this invention relates to a receiver and a method therein for verifying a video sequence. In particular, verification is achieved by providing a data structure and a digital signature to the video sequence. Background Technology

[0002] Digital signatures provide a layer of verification and security for digital messages (such as video sequences comprising encoded image frames) transmitted from a transmitter to a receiver over an insecure channel. A transmitter can generate a digital signature by encrypting one or more cryptographic hash values ​​of the video sequence using a private encryption key from a private-public encryption key pair. The cryptographic hash values ​​can be frame-by-frame cryptographic hash values, where each cryptographic hash value can be a hash value of the image data of the corresponding encoded image frame, or a hash value of the image data of that encoded image frame combined with optional additional information. Typically, before transmitting the video sequence to the receiver, the transmitter provides the generated digital signature and the frame-by-frame cryptographic hash values ​​used to generate the digital signature to the video sequence.

[0003] To verify that the received video sequence is a genuine video sequence from the claimed transmitter and that the received video sequence has not been manipulated, the receiver needs to verify the digital signature and the received encoded image frames.

[0004] To verify the received digital signature, the receiver of the video sequence decrypts the received digital signature using the public key of the transmitter's private-public encryption key pair and compares the decrypted received digital signature with one or more received cryptographic hash values. If the decrypted received digital signature equals (e.g., matches) a received cryptographic hash value, the received digital signature is verified. This verifies that the video sequence received by the receiver was digitally signed by the alleged transmitter.

[0005] In addition to verifying the digital signature, the receiver needs to verify that the received video sequence is identical to the video sequence transmitted by the transmitter. One way to verify the received sequence of encoded image frames is for the receiver to generate the cryptographic hash values ​​of the encoded image frames in the received video sequence in the same way that the transmitter generates the cryptographic hash values. Therefore, the transmitter and receiver agree on how to generate the cryptographic hash values. Once the receiver generates its cryptographic hash values, it compares these values ​​with the received hash values. If they are the same, for example, a match, the received video sequence is verified as identical to the transmitted video sequence.

[0006] However, adding a digital signature, and especially by adding a cryptographic hash value to the video sequence, increases the bit rate required to transmit the video sequence. Since the available bit rate can be a limiting factor when transmitting video sequences over a communication channel, it is necessary to reduce the bit rate required to transmit the digital signature and cryptographic hash value without sacrificing or degrading the receiver's ability to verify the video sequence. Summary of the Invention

[0007] In view of the above, one object of the present invention is to mitigate the disadvantages of the prior art and to perform video sequence verification while reducing the bit rate required for transmitting the video sequence and the additional data required for verification compared to the prior art. Another object is to reduce the size of the additional data, thereby reducing the bit rate required for transmission. Yet another object is to provide additional data as a data structure and digital signature to the video sequence, which enables the video sequence to be verified, while simultaneously requiring a reduction in the amount of available bit rate resources for transmission. Another object is to provide a transmitter and computer program with these capabilities. Another object is to verify video sequences provided with the data structure and digital signature. Another object is to provide a receiver and computer program with these capabilities.

[0008] At least some of these objectives are achieved by the invention as defined in the independent claims. The dependent claims relate to advantageous embodiments.

[0009] According to a first aspect of the invention, a method executed by a transmitter is provided for verifying a video sequence by providing a data structure and a digital signature to the video sequence, wherein the video sequence includes coded image frames.

[0010] The method includes performing lossless compression on each coded image frame of a video sequence to obtain the corresponding lossless compressed (LC) coded image frame.

[0011] Furthermore, the method includes identifying one or more small LC-coded image frames among the acquired LC-coded image frames, each small LC-coded image frame having a data size less than a predefined number of bytes. Additionally, the method includes generating a data structure comprising the identified one or more small LC-coded image frames, and a separate hash of any of the following: all coded image frames lacking a corresponding small LC-coded image frame; and all other acquired LC-coded image frames different from the one or more small LC-coded image frames. The separate hash is obtained by separately hashing each of the all coded image frames lacking a corresponding small LC-coded image frame, or by separately hashing each of all other acquired LC-coded image frames.

[0012] The method further includes generating a digital signature for the video sequence; and providing the video sequence with a data structure and a digital signature. This enables the receiver to verify the video sequence.

[0013] By performing lossless compression and by including the identified small LC-coded image frames in the data structure instead of their individual hashes, the size of the data structure can be reduced without compromising its usability when verifying video sequences.

[0014] In this disclosure, the term "data structure" should be understood as any structure, element, or unit configured to be provided to a video sequence and configured to include information as a text sequence, as a binary sequence (i.e., a bitstream), as a byte sequence (i.e., a bytestream), or as a combination thereof, to name just a few examples. A data structure is sometimes referred to as a document. This data structure is configured to include one or more mini-LC-coded image frames and one or more individual hashes. The data structure may also include metadata, i.e., data that can be associated with the information included in the data structure. Thus, metadata can relate to one or more mini-LC-coded image frames and / or one or more individual hashes. As will be described below, sometimes the data structure includes information about the location and, optionally, the size of one or more mini-LC-coded image frames. Therefore, location and size are two examples of metadata that can be included in a data structure. Another example of metadata is the type of mini-LC-coded image frame. As described below, the mini-LC-coded image frame can be of a first type or a second type, and therefore this information can be included as metadata in the data structure.

[0015] The phrase "all coded image frames lacking a corresponding small LC-coded image frame" used in this document should be understood as all coded image frames in which the acquired corresponding LC-coded image frames were not identified as corresponding small LC-coded image frames. In other words, all those coded image frames lacking a corresponding small LC-coded image frame have corresponding LC-coded image frames that are not small LC-coded image frames. Therefore, the data size of the corresponding LC-coded image frames lacking a corresponding small LC-coded image frame is not less than the predefined number of bytes, but rather equal to or greater than the predefined number of bytes.

[0016] The phrase “all other LC-coded image frames that are different from small LC-coded image frames” used in this document should be understood as those acquired LC-coded image frames that were not identified as small LC-coded image frames. Therefore, all other LC-coded image frames that are different from small LC-coded image frames each have a data size that is not less than a predefined number of bytes, but is equal to or greater than the predefined number of bytes.

[0017] As used in this article, "digital signature" refers to a digital code provided to the transmitted video sequence to verify the identity of the transmitter. The digital code is generated and verified using a private / public key encryption. More specifically, the transmitter uses the private key of its encryption key pair to generate the digital code, and the receiver uses the public key of the transmitter's encryption key pair to authenticate the digital code.

[0018] The expression "performing lossless compression for each coded image frame" as used herein refers to compressing each coded image frame into a compressed coded image frame without losing image information. The compressed coded image frame can have a data size equal to or smaller than the coded image frame. Sometimes, the compressed coded image frame has a larger data size than the coded image frame; in such cases, the coded image frame can be used as the compressed coded image frame. In other cases, lossless compression may result in the compressed coded image frame including a reference to another coded image frame. This other coded image frame can be a previously encoded image frame in a video sequence or a stored coded image frame. Importantly, no image information is lost when performing lossless compression. Because no image information is lost in lossless compression, the original coded image frame can be perfectly reconstructed from the compressed coded image frame without any loss of image quality. The act of reconstructing the original coded image frame from the compressed coded image frame can be referred to as decompressing the compressed coded image frame into the original coded image frame. In this disclosure, the compressed coded image frame is referred to as a lossless compressed (LC) coded image frame.

[0019] Some examples of lossless compression algorithms are Huffman coding, arithmetic coding, codebook-based coding, and run-length coding. The apparatus for performing lossless compression as described above is referred to herein as a lossless compression module, which is configured to perform lossless compression of encoded image frames.

[0020] In this disclosure, "lossless compression (LC) encoded image frame" refers to an image frame generated by lossless compression of an encoded image frame.

[0021] "Individually hashed image frames" refers to applying a hash function (or one-way function) to each individual encoded image frame to obtain a separate hash. The hash function can be a cryptographic hash function that provides a level of security considered sufficient given the sensitivity of the video sequence to be signed and / or the value involved if the video sequence were manipulated by an unauthorized party. Three examples of hash functions are Secure Hash Algorithm 256 (SHA-256), Secure Hash Algorithm 3 512 (SHA3-512), and Rivest-Shamir-Adleman 1024 (RSA-1024). The hash function should be predefined (e.g., it should be reproducible) so that the individual hash can be regenerated when the digital signature and / or data structure is to be verified by the receiver.

[0022] The term "single hash" as used in this article refers to a single cryptographic hash value obtained by applying a hash function to a single encoded image frame or a single LC encoded image frame.

[0023] According to a second aspect of this disclosure, a method executed by a receiver is provided for verifying a video sequence provided with a data structure and a digital signature, wherein the video sequence includes encoded image frames.

[0024] The method includes receiving a video sequence from a transmitter, the video sequence comprising encoded image frames and providing a data structure and a digital signature.

[0025] The received data structure includes: one or more small lossless compressed (LC) encoded image frames and a separate hash of any of the following: encoded image frames of all transmissions lacking a corresponding small LC encoded image frame; or all other LC encoded image frames that are different from one or more small LC encoded image frames. Each small LC encoded image frame has a data size less than a predefined number of bytes and is an LC version of the corresponding transmission encoded image frame included in the video sequence transmitted from the transmitter. Each of the other all LC encoded image frames is an LC version of the corresponding transmission encoded image frame included in the transmitted video sequence.

[0026] Furthermore, the method includes verifying the received digital signature using the received data structure; and verifying the received coded image frame as equal to the transmitted coded image frame using the received data structure. Thus, when the received digital signature and the received coded image frame are verified, the received video sequence is verified as equal to the transmitted video sequence.

[0027] According to a third aspect of the invention, a transmitter is provided for verifying a video sequence by providing a data structure and a digital signature to the video sequence, wherein the transmitter includes processing circuitry configured to cause the transmitter to perform any action of the method of the first aspect.

[0028] According to a fourth aspect of the invention, a receiver is provided for verifying a video sequence having a data structure and a digital signature, wherein the receiver includes processing circuitry configured to cause the receiver to perform any action of the method of the second aspect.

[0029] According to a fifth aspect of the invention, a non-transitory computer-readable medium is provided having computer code instructions stored thereon, which, when executed by a processing-capable device, are adapted to perform the method of the first aspect.

[0030] According to a sixth aspect of the invention, a non-transitory computer-readable medium is provided having computer code instructions stored thereon, which, when executed by a processing-capable device, are adapted to perform the method of the second aspect.

[0031] The second, third, fourth, fifth, and sixth aspects generally have the same characteristics and advantages as the first aspect.

[0032] The present invention further relates to a computer program including instructions for causing a computer to perform any of the methods described above. The computer program may be stored or distributed on a data carrier. As used herein, "data carrier" can be a temporary data carrier, such as modulated electromagnetic waves or light waves, or a non-temporary data carrier. Non-temporary data carriers include volatile and non-volatile memories, such as permanent and non-permanent storage media of magnetic, optical, or solid-state types. Still within the scope of "data carrier," such memory can be fixedly mounted or portable.

[0033] Generally, all terms used in the claims should be interpreted according to their ordinary meaning in the technical field, unless otherwise expressly defined herein. Unless otherwise expressly stated, all references to "a / the element, device, component, means, step, etc." should be interpreted as referring to at least one instance of the element, device, component, means, step, etc. Unless expressly stated, the steps of any method disclosed herein need not be performed in the exact order disclosed. It should be further noted that, unless otherwise expressly stated, the present invention relates to all possible combinations of the features disclosed herein. Attached Figure Description

[0034] The above and other objects, features and advantages of the present invention can be better understood through the following illustrative and non-limiting detailed description of embodiments of the invention, with reference to the accompanying drawings, wherein the same reference numerals will be used for similar elements, wherein:

[0035] Figure 1 An embodiment of a system for performing video sequence verification is illustrated.

[0036] Figure 2A The video sequence according to the embodiment is illustrated schematically.

[0037] Figure 2B Two examples are illustrated, illustrating the encoded image frame sequence, the corresponding LC encoded image frame sequence, and the data structure content according to the embodiments.

[0038] Figure 3 The transmitter according to an embodiment is illustrated schematically.

[0039] Figure 4 The receiver according to an embodiment is illustrated schematically.

[0040] Figure 5 This is a flowchart of a method for performing video sequence verification executed by a transmitter according to an embodiment.

[0041] Figure 6 This is a flowchart of a method for verifying a video sequence executed by a receiver according to an embodiment.

[0042] Figures 7A to 7C This is a flowchart of a sub-method executed by the receiver to verify the received coded image frame, according to an embodiment. Detailed Implementation

[0043] The invention will now be described more fully with reference to the accompanying drawings, which illustrate certain embodiments of the invention. However, these aspects may be embodied in many different forms and should not be construed as limiting; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of all aspects of the invention to those skilled in the art.

[0044] To overcome or mitigate the limitations of bitrate availability when transmitting video sequences over communication networks, especially when transmitting video sequences with additional data, for the purpose of video sequence verification, this invention relates to reducing the size of the additional data without compromising verification reliability. In this disclosure, the additional data is a data structure and a digital signature. Specifically, this invention relates to reducing the size of the data structure by reducing the size of the data structure content while maintaining the reliability of the verification.

[0045] Before detailing how to verify a video sequence provided with a data structure and digital signature, and how to verify the video sequence, the components of the system that implements the present invention will be described.

[0046] refer to Figure 1This document describes embodiments of a system 100 for performing video sequence verification. System 100 includes a transmitter 110 configured to verify video sequences. Transmitter 110 may include or be connected to one or more cameras 112. Alternatively, transmitter 110 may be included within a camera 112. Transmitter 110 and one or more cameras 112 may be referred to as a camera system. The camera system may be included in a single unit, i.e., a unit including transmitter 110 and one or more cameras 112, or may be included in several separate units. Camera 112 may be a surveillance camera, sometimes also referred to as a monitoring camera. Furthermore, camera 112 may be a fixed camera such as a still camera, or a movable camera such as a pan, tilt, and zoom (PTZ) camera. Camera 112 may be a visible light camera, a thermal camera, or a camera that includes both a visible light camera and a thermal camera. It should be noted that camera 112 may include several components related to, for example, image capture, such as a capture module, and image processing, such as an encoding module. These components are common in conventional camera systems, and their purpose and operation are well known to those skilled in the art. For clarity, [the following has been omitted]. Figure 1 These components are omitted from the illustrations and descriptions.

[0047] like Figure 1 As shown, transmitter 110 is configured to communicate with receiver 130 via communication network 120. Communication network 120 can be a wired or wireless communication network through which transmitter 110 transmits video sequences to receiver 130. Receiver 130 may include or be connected to display device 150, which is configured to display the video sequences received by receiver 130 to an operator. Transmitter 110 and receiver 130 are configured to communicate directly or via communication network 120 with data memory 122. Data memory 122 may be configured to store data associated with the video sequences, such as data associated with encoded image frames and / or LC-encoded image frames. For example, data memory 122 may include predefined encoded image frames 220e. Predefined encoded image frames 220e may be stored in data memory 122 as a lookup table, wherein each stored predefined encoded image frame 220e is identified by an identifier, sometimes referred to as an index or key. In some embodiments, the lookup table is a codebook, and the index / key is a codeword. The data storage 122 may be non-volatile memory. Furthermore, the data storage may include common libraries.

[0048] It should be understood that there are multiple combinations of wireless and wired transmission models that can be used for transmission between transmitter 110 and communication network 120, between communication network 120 and receiver 130, and between data storage 122, transmitter 110, communication network 120 and receiver 130, and... Figure 1Only one example is given.

[0049] Figure 2A An exemplary video sequence 200 according to an embodiment is illustrated schematically. The video sequence 200 includes a plurality of coded image frames 220. A coded image frame used as a reference for predictive coding of other frames is called a reference frame. A frame encoded without information from other frames is called an intra-coded frame, intra-frame, I-frame, or keyframe. A frame using predictions from one or more reference frames is called an inter-coded frame or inter-frame frame. A P-frame is an inter-frame frame using predictions from one or more preceding reference frames (or one or more frames used for prediction in each region), while a B-frame is an inter-frame frame using predictions using the (possibly weighted) average of two reference frames, one or more preceding frames, and / or one or more subsequent frames. Frames are sometimes referred to as pictures.

[0050] Encoded image frames 220 can be arranged in one or more picture groups (GOPs). Figure 2A In the example video sequence 200, encoded image frames 220 are arranged into multiple Groups of Pictures (GOPs), of which a first GOP 210a and a second GOP 210b are shown. As schematically shown in the example video sequence 200, the first GOP 210a consists of a first I-frame I0, a first P-frame P00, a second P-frame P01, and a third P-frame P02; and the second GOP 210b consists of a first I-frame I1, a first P-frame P10, a second P-frame P11, and a third P-frame P12.

[0051] There are several common video coding protocols. Some common video coding protocols that work with the various embodiments of the present invention include: High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2; Advanced Video Coding (AVC), also known as H.264 and MPEG-4 Part 10; Universal Video Coding (VVC), also known as H.266, MPEG-IPart 3 and Future Video Coding (FVC); VP9, ​​VP10 and AOMediaVideo1 (AV1), to name just a few.

[0052] Now refer to Figure 5 Flowcharts and Figure 3 The method performed by transmitter 110 is described for verifying video sequence 200 by providing data structure 320 and digital signature 340 to video sequence 200. Figure 3 The transmitter 110 according to an embodiment is illustrated schematically. Reference will also be made to... Figure 2B It schematically illustrates two examples of the encoded image frame sequence, the corresponding LC encoded image frame sequence, and the data structure content according to the embodiment.

[0053] As previously stated, video sequence 200 includes coded image frames 220, and video sequence 200 may consist of at least one group of pictures (GOP) 210a, 210b. Figure 2B As shown, the encoded image frame sequence may include encoded image frames I0, P00, P01, P02, I1, P10, P11, P12, P13 and I2, wherein encoded image frames I0, P00, P01 and P02 may be included in one GOP, encoded image frames I1, P10, P11, P12 and P13 may be included in another GOP, and encoded image frame I2 may be included in yet another GOP.

[0054] Encoded image frames 220 of video sequence 200 may have been acquired from camera 112, which captures multiple image frames describing the scene and encodes the captured image frames into encoded image frames 220. Camera 112 may provide the encoded image frames 220 to the acquisition module 114 of transmitter 110. Where camera 112 is included in transmitter 110 (hereinafter referred to as camera system 110), camera 112 implements the acquisition module of transmitter 110. Where camera 112 is external to and connected to transmitter 110, the acquisition module 114 of transmitter 110 may be implemented via internal data memory configured to receive encoded image frames 220 from camera 112 and store the received encoded image frames 220 in the internal data memory.

[0055] In step S502, the transmitter 110 performs lossless compression on each coded image frame 220 of the video sequence 200 to obtain a corresponding LC-coded image frame 220LC. This is to obtain a corresponding LC-coded image frame with a size equal to or smaller than the size of the coded image frame 220 to which lossless compression is performed, while also obtaining a corresponding LC-coded image frame with the same image quality as the coded image frame 220 to which lossless compression is performed. Figure 2B As shown, the LC-coded image frame sequence includes LC-coded image frame I0. LC P00 LC P01 LC P02 LC I1 LC P10 LC P11 LC P12 LC P13 LC and I2 LC .like Figure 2B As shown by the arrows in the diagram, from one coded image frame in a sequence of coded image frames to one LC-coded image frame in a sequence of LC-coded image frames, lossless compression of a coded image frame produces a corresponding LC-coded image frame. For example, lossless compression of coded image frame I0 produces LC-coded image frame I0.LC Lossless compression of encoded image frame P00 produces LC encoded image frame P00. LC Lossless compression of encoded image frame P01 produces LC encoded image frame P01. LC Therefore, such as Figure 2B As shown, each encoded image frame has its own lossless LC encoded image frame.

[0056] Lossless compression can be performed based on one or more of Huffman coding, arithmetic coding, codebook-based coding, and run-length coding, with only a few examples given. Step S502 can be performed by lossless compression module 116, which is included in transmitter 110 and configured to perform lossless compression of encoded image frames.

[0057] As described above, the purpose of lossless compression is to obtain respective LC-coded image frames 220LC whose data size is equal to or less than the data size of their respective coded image frames 220. However, lossless compression does not always result in the corresponding LC-coded image frame 220LC having a data size equal to or smaller than that of its corresponding coded image frame 220. Therefore, the lossless compression module 116 compares the size of the corresponding LC-coded image frame 220LC with the size of its corresponding coded image frame 220, and if the corresponding LC-coded image frame 220LC has a larger size, the lossless compression module 116 outputs its corresponding coded image frame 220 as the LC-coded image frame. An alternative to reducing the size of the LC-coded image frame is to create an LC-coded image frame that lacks image information but includes a reference to another coded image frame and may include differences relative to another coded image frame, such as a stored predefined coded image frame 220e. This may be the case when the transmitter 110 determines that the coded image frame to which lossless compression is performed is a skip frame.

[0058] A "skipped frame" is an inter-frame representation that represents image data by referencing (e.g., including only references) image data from other frames, without any residual values. When decoding a skipped frame, the decoder uses the reference image data as a representation of the image data represented by the skipped frame, without making any adjustments (because of the lack of residual values).

[0059] In step S504, the transmitter 110 identifies one or more small LC-coded image frames 220LCb-1 and 220LCb-2 within the acquired LC-coded image frames 220LC. The data size of each small LC-coded image frame is less than a predefined number of bytes. The predefined number of bytes can be set according to the hash function used. For example, the predefined number of bytes can be 64 bytes (512 bits), 48 bytes (384 bits), or 32 bytes (256 bits) for SHA-2 hash, and 20 bytes (160 bits) for SHA-1 hash. The identification module 117, included in the transmitter 110 and configured to identify one or more small LC-coded image frames, can perform step S504. The identification module 117 can be included in the lossless compression module 116. Alternatively, the identification module 117 can be included in the data structure generation module 118 of the transmitter 110. The data structure generation module 118 will be described below.

[0060] One or more identified small LC-coded image frames 220LCb-1, 220LCb-2 can be Type 1 Small LC-encoded image frames 220LCb-1, wherein each small LC-encoded image frame is equal to the (original) encoded image frame 220, whose data size is less than a predefined number of bytes and is subjected to lossless compression, or when the LC-encoded image frame 220LC is smaller than the (original) encoded image frame 220 and has a data size less than a predefined number of bytes, the LC-encoded image frame 220LC is equal to the (original) encoded image frame 220.

[0061] For example, the former might involve lossless compression of an encoded image frame 220 with a data size smaller than the predefined number of bytes, resulting in the same encoded image frame 220, or lossless compression of the encoded image frame 220 might produce an LC encoded image frame 220LC with a larger data size than the encoded image frame 220. As described above, in this case, the lossless compression module 116 performing lossless compression outputs the original encoded image frame 220 as an LC encoded image frame 220LCb-1.

[0062] Therefore, in some embodiments, at least one of the identified small LC-coded image frames 220LCb-1, 220LCb-2 is a first type of small LC-coded image frame 220LCb-1, and is equal to its corresponding coded image frame 220 or an LC-coded image frame 220LC equal to the coded image frame 220.

[0063] Alternatively or additionally, one or more identified small LC-coded image frames 220LCb-1, 220LCb-2 may be Type IISmall LC-coded image frames 220LCb-2, wherein each small LC-coded image frame is equal to a portion of the stored coded image frame 220e and includes an identifier of the stored coded image frame 220e, and may also include differences.

[0064] This situation may occur when the encoded image frame 220 to which lossless compression is performed is identical to, or partially identical to, the stored encoded image frame 220e. In the case of a skipped frame, there is no difference between the stored encoded image frame 220e and the encoded image frame 220; therefore, the second type of small LC encoded image frame 220LCb-2 only includes the identifier of the stored encoded image frame 220e, without any difference.

[0065] However, while encoded image frame 220 may be partially identical to the stored encoded image frame 220e, the second type of small LC encoded image frame 220LCb-2 may include identifiers and differences from the stored encoded image frame 220e. This difference may relate to a portion of an originally constant image frame that has been updated or changed at some point in time. For example, this difference may involve a counter or clock included in encoded image frame 220, and this difference is the only one that distinguishes encoded image frame 220 from the stored encoded image frame 220e. In this case, the difference included in the second type of small LC encoded image frame 220LCb-2 relates to the counter value or the timing of the clock.

[0066] Therefore, in some embodiments, at least one of the identified small LC-coded image frames 220LCb-1, 220LCb-2 is a second type of small LC-coded image frame 220LCb-2, and includes an identifier of a stored predefined coded image frame 220e, as well as possible differences between the second type of small LC-coded image frame 220LCb-2 and the stored predefined coded image frame 220e.

[0067] To verify the video sequence, data structure 320 is required. Therefore, in step S506, transmitter 110 generates data structure 320, which includes one or more identified small LC-coded image frames 220LCb-1, 220LCb-2 and individual hashes. The individual hashes included in data structure 320 can be generated in two ways. First, the individual hashes can be individual hashes of all coded image frames 220 that lack the corresponding small LC-coded image frames 220LCb-1, 220LCb-2, such as... Figure 2BThe first data structure is shown in 320-1. Secondly, the individual hash can be the individual hash of all other acquired LC-coded image frames 220LCa, which differs from one or more smaller LC-coded image frames 220LCb-1, 220LCb-2, as shown below. Figure 2B The optional second data structure 320-2 is shown. Therefore, a separate hash is a separate hash of all coded image frames 220 lacking corresponding small LC-coded image frames 220LCb-1, 220LCb-2, or a separate hash of all other acquired LC-coded image frames 220LCa that are different from one or more small LC-coded image frames 220LCb-1, 220LCb-2. The transmitter 110 obtains the separate hash by performing a separate hash on each of the coded image frames 220 lacking corresponding small LC-coded image frames 220LCb-1, 220LCb-2, or by performing a separate hash on each of all other acquired LC-coded image frames 220LCa. This data structure will be used by the receiver 130 when verifying the video sequence, as described below. The transmitter 110 includes a data structure generation module 118 configured to generate the data structure, and the data structure generation module 118 can perform step S506.

[0068] exist Figure 2B In the example shown, LC-coded image frame P01 LC P02 LC I1 LC P12 LC and I2 LC These are identified as small LC-coded image frames 220LCb-1 and 220LCb-2, and therefore, both the first data structure 320-1 and the optional second data structure 320-2 shown include these small LC-coded image frames P01. LC P02 LC I1 LC P12 LC and I2 LC .

[0069] In addition to the small LC-coded image frames, the first data structure 320-1 includes separate hashes of all coded image frames 220 that are missing their corresponding small LC-coded image frames 220LCb-1 and 220LCb-2. Therefore, in the example shown, the (first) data structure also includes a separate hash H. I0 H P00 H P10 and H P13 .

[0070] In addition to the small LC-coded image frames, the optional second data structure 320-2 also includes separate hashes of all other acquired LC-coded image frames 220LCa, which are different from the identified small LC-coded image frames 220LCb-1 and 220LCb-2. Therefore, the optional (second) data structure also includes a separate hash H. I0LC H P00LC H P10LC and H P13LC They are LC-coded image frames I0 LC P00 LC P10 LC and P13 LC A separate hash.

[0071] Data structure 320 can be referred to as a document including a reduced hash list. The hash list is simplified because it not only includes the hashes of all encoded image frames like a full hash list, but the reduced hash list includes the hashes of smaller LC-coded image frames, not the hashes of smaller LC-coded image frames, since these are smaller LC-coded image frames, i.e., unhashable. This is in contrast to the case where the data structure is a document including a full hash list, which consists of the individual hashes of each encoded image frame in the video sequence. Specifically, the current data structure 320 includes the LC-coded image frames identified as smaller, and the individual hashes of all LC-coded image frames 220 that lack a corresponding smaller LC-coded image frame or have a size equal to or greater than a predefined number of bytes. Therefore, the reduced hash list consists only of the identified one or more small LC-coded image frames 220LCb-1, 220LCb-2; and the individual hashes of all coded image frames 220 that are missing the corresponding small LC-coded image frames 220LCb-1, 220LCb-2 or all other acquired LC-coded image frames 220LCa that are different from one or more small LC-coded image frames 220LCb-1, 220LCb-2.

[0072] In an embodiment where the video sequence consists of Groups of Pictures (GOPs), the transmitter 110 generates a data structure 320 and a digital signature 340 for one or more GOPs 210a, 210b. This allows the receiver 130 to verify the transmitted video sequence for each GOP, rather than the entire video sequence. This is advantageous for the receiver 130 because if one or more coded picture frames or GOPs cannot be verified, the receiver can still trust the authenticity of the verified GOPs and their coded picture frames. This contrasts with the situation where the entire video sequence must be verified, in which case the receiver cannot trust the authenticity of any coded picture frame if the entire video sequence cannot be verified.

[0073] Sometimes, it is advantageous to provide information about the location of each small LC-coded image frame in the data structure. This can, for example, simplify the receiver 130 in finding and retrieving small LC-coded image frames from the received data structure. As will be described below, when describing the method performed by the receiver 130, the receiver 130 can use the retrieved small LC-coded image frames to generate (i.e., reconstruct) their corresponding transmitted coded image frames and their hashes when verifying the received coded image frames.

[0074] Therefore, some embodiments include step S508, in which the transmitter 110 determines the position of each small LC-coded image frame 220LCb-1, 220LCb-2 in the data structure 320. In step S508, the transmitter 110 may also determine the data size of each small LC-coded image frame 220LCb-1, 220LCb-2. Step S508 may be performed by a determination module 119, which is included in the transmitter 110 and configured to determine the position of each small LC-coded image frame in the data structure. The determination module 119 may be included in the lossless compression module 116. Alternatively, the determination module 119 may be included in the data structure generation module 118 of the transmitter 110. The embodiment may also include step S510, wherein the transmitter 110 provides information specifying the position within the data structure 320 to the data structure 320, and optionally provides the data size of each small LC-coded image frame 220LCb-1, 220LCb-2. Providing the position specification information to the data structure 320 may be performed by the data structure generation module 118.

[0075] In order to verify the video sequence, a digital signature is also required. Therefore, in action S512, transmitter 110 generates a digital signature 340 for video sequence 200. This step can be performed by digital signature generation module 124, which is configured to generate digital signatures and is included in transmitter 110.

[0076] Transmitter 110 can use a public-private key pair and can generate a digital signature by encrypting any of the following using the private key in the public-private key pair: a hash of data structure 320; and a hash of a single hash of any of the following: all encoded image frames 220 of video sequence 200, or all acquired LC encoded image frames 220LC; 220LCa, 220LCb-1, 220LCb-2.

[0077] The private key in the public-private key pair can be stored in a secure memory accessible only by the transmitter 110. The secure memory can be a secure element (SE), such as a tamper-proof processor chip or a secure operating system (OS) within a secure component, or a trusted platform module (TPM), such as a secure cryptographic processor or a secure chip. The public key of the transmitter's public-private key pair can be stored in a data memory accessible to the receiver 130, such as data memory 122. Alternatively, the public key of the transmitter's public-private key pair can be transmitted to the receiver 130 along with the video sequence 200. For example, the public key of the transmitter's public-private key pair can be included in or appended to the video sequence 200.

[0078] In action S514, transmitter 110 provides data structure 320 and digital signature 340 to video sequence 200, thereby enabling receiver 130 to verify video sequence 200. A providing module 126, included in transmitter 110 and configured to provide data structure and digital signature to video sequence, can perform step S514.

[0079] Transmitter 110, for example by means of providing module 126, can provide data structure 320 and digital signature 340 in the Supplemental Information Unit (SIU) of video sequence 200. The Supplemental Information Unit is a unit or message configured to include supplemental information about or relating to the video sequence. The Supplemental Information Unit can be, for example, a Supplemental Enhancement Information (SEI) message in H.26x encoded format, or a Metadata Open Bitstream Unit (OBU) in AV1 encoded format.

[0080] Receiver 130 can verify the received video sequence using the received digital signature and the received data structure, as described in detail below.

[0081] Now refer to Figure 6 Flowcharts and Figure 4 An embodiment of receiver 130 is schematically illustrated, describing a method performed by receiver 130 for verifying a video sequence 200' provided with data structure 320 and digital signature 340. The video sequence 200' includes encoded image frames 220'.

[0082] In step S602, receiver 130 receives video sequence 200' from transmitter 110. Video sequence 200' includes coded image frames 220' and provides data structure 320 and digital signature 340. Preferably, the video sequence 200' received by receiver 130 is the same as the video sequence 200 transmitted by transmitter 110. However, the transmitted video sequence can be processed after transmission and before reception; therefore, reference number 200 is used for the transmitted video sequence, and reference number 200' is used for the received video sequence. Step S602 can be performed by a receiving module 132 included in receiver 130, which is configured to receive the video sequence.

[0083] The received data structure 320 includes one or more small LC-coded image frames 220LCb-1, 220LCb-2, wherein the data size of each small LC-coded image frame 220LCb-1, 220LCb-2 is less than a predefined number of bytes, and is an LC version of the corresponding transmitted LC-coded image frame 220 included in the video sequence 200 transmitted from transmitter 110. The received data structure 320 also includes a separate hash of all transmitted LC-coded image frames 220 lacking the corresponding small LC-coded image frames 220LCb-1, 220LCb-2, or a separate hash of all other LC-coded image frames 220LCa that are different from one or more small LC-coded image frames 220LCb-1, 220LCb-2. Each of the other all LC-coded image frames 220LCa is an LC version of the corresponding transmitted LC-coded image frame 220 included in the transmitted video sequence 200.

[0084] As previously described, when describing the method performed by transmitter 110, a predefined number of bytes can be set according to the hash function used. Since transmitter 110 and receiver 130 use the same hash function, it is understood that the predefined number of bytes set in transmitter 110 is the same as the predefined number of bytes used in receiver 130. The predefined number of bytes can be preset in receiver 130, or information about the predefined number of bytes used by transmitter 110 can be transmitted from transmitter 110 to receiver 130, for example, along with a video sequence. In step S604, receiver 130 verifies the received digital signature 340 using the received data structure 320. Step S604 can be performed by a verification module 134 included in receiver 130 and configured to verify digital signatures.

[0085] In some embodiments, receiver 130 may use the public key from the public-private key pair of transmitter 110. In such an embodiment, when the hash of the received data structure 320 matches the decrypted received digital signature 340, receiver 130 decrypts the received digital signature 340 using the public key and verifies the received digital signature 340. Alternatively, the received digital signature 340 is verified when the hash of all individual hashes of all LC-encoded image frames given by the received data structure 340 matches the decrypted received digital signature 340. In yet another alternative, the received digital signature 340 is verified when the hash of all individual hashes of all encoded image frames given by the received data structure 340 matches the decrypted received digital signature 340.

[0086] In step S606, the receiver 130 uses the received data structure 320 to verify whether the received encoded image frame 220' is equal to the transmitted encoded image frame 220. Step S606 can be performed by a verification module 134 included in the receiver 130 and configured to verify the encoded image frame. When the received digital signature 340 and the received encoded image frame 220' are verified, the received video sequence 200' is verified to be equal to the transmitted video sequence 200.

[0087] Verification of the received encoded image frame 220' (step S606)

[0088] The verification of the received encoded image frame 220' (step S606) will now be described in more detail with reference to some different embodiments. Before going into the details, it can be said that verification is generally performed by comparing the hash of the received encoded image frame with the hash of the encoded image frame given by the received data structure (as in some first embodiments below), by comparing the hash of the LC received encoded image frame with the hash of the LC encoded image frame given by the received data structure (as in some second embodiments below), or by comparing the received data structure with the generated data structure (as in some third embodiments below).

[0089] Furthermore, it should be remembered that the data structure 320 transmitted by transmitter 110 and received by receiver 130, in addition to one or more small LC-coded image frames 220LCb-1, 220LCb-2, also includes a separate hash of any of the following: all transmitted coded image frames 220 lacking the corresponding small LC-coded image frames 220LCb-1, 220LCb-2 (as in some of the first embodiments below), or all other LC-coded image frames 220LCa that are different from one or more small LC-coded image frames 220LCb-1, 220LCb-2 (as in some of the second and third embodiments below).

[0090]

[0091] In some first embodiments, in addition to the small LC-coded image frames 220LCb-1 and 220LCb-2, the received data structure 320 also includes individual hashes of all transmitted coded image frames 220 lacking the corresponding small LC-coded image frames 220LCb-1 and 220LCb-2. In such a first embodiment, the receiver 130 must generate the hash of the received coded image frames and must determine the individual hashes of the corresponding coded image frames included in one or more small LC-coded image frames 220LCb-1 and 220LCb-2 in the received data structure 320. Therefore, verifying (step S606) that the received coded image frame 220' is equal to the transmitted coded image frame 220 using the received data structure 320 includes four sub-steps S606.1.1-S606.1.4, as follows: Figure 7A As shown.

[0092] In sub-step S606.1.1, receiver 130 generates a separate hash for each received coded image frame 220' included in the received video sequence 200'. Hash generation module 136 included in receiver 130 can perform the generation of separate hashes.

[0093] In substep S606.1.2, receiver 130 performs lossless decompression on each of one or more small LC-coded image frames 220LCb-1, 220LCb-2 included in the received data structure 320 to obtain the corresponding coded image frame. By performing lossless decompression on the LC-coded image frame 220LC, transmitter 110 performs lossless compression on it to obtain the (original) coded image frame 220 of the LC-coded image frame. Some examples of lossless decompression algorithms are Huffman decoding, arithmetic decoding, codebook-based decoding, and run-length decoding. Lossless decompression module 138 included in receiver 130 can perform lossless decompression.

[0094] In sub-step S606.1.3, receiver 130 generates a separate hash for each acquired corresponding coded image frame 220. This can be performed by hash generation module 136.

[0095] In substep S606.1.4, when the generated individual hash of each received coded image frame 220' included in the received video sequence 200' matches the generated individual hash of each acquired corresponding coded image frame 220, the receiver 130 verifies that the received coded image frame 220' is equal to the transmitted coded image frame 220. This can be performed by the verification module 134.

[0096]

[0097] In some second embodiments, in addition to the small LC-coded image frames 220LCb-1 and 220LCb-2, the received data structure 320 also includes a separate hash of all other LC-coded image frames 220LCa that are different from one or more small LC-coded image frames 220LCb-1 and 220LCb-2. In such a second embodiment, verifying (step S606) that the received coded image frame 220' is equal to the transmitted coded image frame 220 using the received data structure 320 includes four sub-steps S606.2.1-S606.2.4, as follows: Figure 7B As shown. In sub-step S606.2.1, receiver 130 performs lossless compression on each received coded image frame 220' included in the received video sequence 200' to obtain corresponding LC received coded image frames 220LC'; 220LCa, 220LCb-1', 220LCb-2'. Some examples of lossless compression algorithms are Huffman coding, arithmetic coding, codebook-based coding, and run-length coding. Lossless compression module 140 included in receiver 130 can perform lossless compression.

[0098] In substep S606.2.2, receiver 130 generates individual hashes for all acquired corresponding LC received encoded image frames 220LC'; 220LCa', 220LCb-1', 220LCb-2'. This can be performed by hash generation module 136.

[0099] In sub-step S606.2.3, receiver 130 generates individual hashes for all LC-coded image frames 220LC; 220LCa, 220LCb-1, 220LCb-2 as given in the received data structure 320. Since the individual hashes of all other LC-coded image frames 220LCa that are different from one or more smaller LC-coded image frames 220LCb-1, 220LCb-2 are included in the received data structure 320, receiver 130 can retrieve them directly from data structure 320. Furthermore, receiver 130 retrieves one or more smaller LC-coded image frames 220LCb-1, 220LCb-2 included in the received data structure 320 and then hashes them individually. Receiver 130 will generate individual hashes differently depending on whether one or more smaller LC-coded image frames 220LCb-1, 220LCb-2 are of a first type or a second type. Sub-step S606.2.3 can be executed by the hash generation module. Following the description of substep S606.2.4, a detailed description of the generation of individual hashes will be given.

[0100] In substep S606.2.4, when generating individual hashes for all LC-coded image frames 220LC; 220LCa, 220LCb-1, 220LCb-2 that match the generated individual hashes of all acquired corresponding LC received coded image frames 220LCC'; 220LCa', 220LCb-1', 220LCb-2', the receiver 130 verifies that the received coded image frame 220' is equal to the transmitted coded image frame 220. This can be performed by the verification module 134.

[0101] Generate a separate hash for all LC-coded image frames (sub-step S606.2.3)

[0102] The receiver 130 will now be described in more detail, referring to two scenarios, as to how it generates individual hashes for all LC-coded image frames 220LC; 220LCa, 220LCb-1, 220LCb-2 given by the received data structure 320 (sub-step S606.2.3 above).

[0103] exist One or more small LC-coded image frames 220LCb-1 are Furthermore, when the LC-encoded image frame 220LC is smaller than the encoded image frame 220 and its data size is less than the predefined number of bytes, it is equal to the encoded image frame 220LC, whose data size is smaller than the encoded image frame 220. The encoded image frame 220 is the original encoded image frame transmitted by the transmitter 110. When the LC-encoded image frame obtained by the lossless compression module 116 of the transmitter when performing lossless compression on the original encoded image frame has a size larger than the original encoded image frame, the small LC-encoded image frame 220LCb-1 is equal to the encoded image frame 220, and the lossless compression module 116 outputs the original encoded image frame as the obtained LC-encoded image frame. Therefore, in the first case, one or more of the small LC-encoded image frames 220LCb-1 and 220LCb-2 are small LC-encoded image frames 220LCb-1 of the first type, and are equal to their corresponding transmitted encoded image frame 220 or the LC-encoded image frame 220LC, which is equal to the encoded image frame 220. The received data structure 320 further includes information specifying the position of the first type of small LC-coded image frame 220LCb-1 within the data structure 320, and an optional size. In this first case, the generation of individual hashes for all LC-coded image frames 220LCa, 220LCb-1, and 220LCb-2 given by the received data structure 320 includes:

[0104] Extract the individual hashes of the first type of small LC-coded image frame 220LCb-1 and all other LC-coded image frames 220LCa from the received data structure 320;

[0105] Individual hashes are generated by individually hashing the extracted first-type small LC-coded image frames 220LCb-1; and

[0106] Generate individual hashes for all LC-coded image frames 220LCa, 220LCb-1, and 220LCb-2, as a combination of the generated individual hash of the first type of small LC-coded image frame 220LCb-1 and the extracted individual hashes of all other LC-coded image frames 220LCa.

[0107] exist One or more small LC-coded image frames 220LCb-2 are This could be the case when the transmitter 110 determines that the corresponding (original) encoded image frame 220 of the second type of small LC encoded image frame 220LCb-2 is equal to a portion of the stored encoded image frame 220e. For example, when the transmitter 110 determines, for example by means of the lossless compression module 116, that the corresponding encoded image frame 220 is the same skip frame as the stored encoded image frame 220e, the second type of small LC encoded image frame 220LCb-2 can be generated to include only the identifier of the stored encoded image frame 220e, without any other image data. As another example, the transmitter 110 can determine, for example by means of the lossless compression module 116, that the corresponding encoded image frame 220 is partially identical to the stored encoded image frame 220e. Then, the second type of small LC encoded image frame 220LCb-2 can be generated to include the identifier of the stored encoded image frame 220e and the differences relative to the stored encoded image frame 220e. Therefore, one or more of the small LC-coded image frames 220LCb-1 and 220LCb-2 are second-type small LC-coded image frames 220LCb-2, and include the identifier of the stored predefined coded image frame 220e and possible differences between the corresponding transport coded image frame 220 and the stored predefined coded image frame 220e. The received data structure 320 further includes information specifying the position of the second-type small LC-coded image frame 220LCb-2 in the data structure 320, and an optional data size. In this second case, the generation of individual hashes of all LC-coded image frames 220LCa, 220LCb-1, and 220LCb-2 given by the received data structure 320 includes:

[0108] Each small LC-coded image frame 220LCb-2 of the second type extracts from the received data structure 320: the identifier of the stored predefined coded image frame 220e and possible differences between the corresponding transport coded image frame 220 and the stored coded image frame 220e; and the individual hash of all other LC-coded image frames 220LCa.

[0109] The extracted identifier is used to retrieve the stored coded image frame 220e from the data storage 122 accessible to the transmitter 110 and receiver 130 of the video sequence 200.

[0110] By combining the retrieved and stored predefined coded image frames 220e and possible differences, each corresponding transport coded image frame 220 is reconstructed for each second type LC coded image frame 220LCb-2;

[0111] Perform lossless compression on the reconstructed transmitted encoded image frames;

[0112] Individual hashes are generated by individually hashing the transmitted coded image frames reconstructed by LC; and

[0113] Another data structure 330 is generated to include the generated separate hash of the transmitted LC-reconstructed encoded image frame 220 and the extracted separate hash of all other LC-encoded image frames 220LCa.

[0114]

[0115] In some third embodiments, the received data structure 320 includes a separate hash of all other LC-coded image frames 220LCa that are different from one or more small LC-coded image frames 220LCb-1, 220LCb-2. To verify the received coded image frame 220', the receiver 130 generates a data structure including one or more small LC-coded image frames and a separate hash of all LC-coded image frames that are different from one or more small LC-coded image frames, and compares it with the received data structure. Therefore, in such a third embodiment, verifying (step S606) that the received coded image frame 220' is equal to the transmitted coded image frame 220 using the received data structure 320 includes three sub-steps S606.3.1-S606.3.3, as follows: Figure 7C As shown.

[0116] In substep S606.3.1, receiver 130 performs lossless compression on each received coded image frame 220' included in the received video sequence 200' to obtain the corresponding received coded image frames 220LCa', 220LCb-1', and 220LCb-2'. Some examples of lossless compression algorithms are Huffman coding, arithmetic coding, codebook-based coding, and run-length coding. A lossless compression module (not shown) included in receiver 130 can perform lossless compression.

[0117] In sub-step S606.3.2, receiver 130 generates data structure 320', including:

[0118] One or more small LC receive encoded image frames 220LCb-1', 220LCb-2', are identified as each having a data size smaller than a predefined number of bytes, and

[0119] A separate hash of all other LC receive-coded image frames 220LCa' that are different from one or more smaller LC receive-coded image frames 220LCb-1', 220LCb-2'. A separate hash is obtained by hashing each of all other LC receive-coded image frames 220LCa' individually.

[0120] This can be performed by the data structure generation module 142 included in the receiver 130. In sub-step S606.3.3, when the generated data structure 320' matches the received data structure 320, the receiver 130 verifies that the received coded image frame 220' is equal to the transmitted coded image frame 220. This can be performed by the verification module 134.

[0121] The embodiments also relate to a non-transitory computer-readable medium having computer code instructions stored thereon, which are adapted to implement the methods described herein when executed by a processing-capable device.

[0122] As described above, transmitter 110 can be configured to implement a method for video sequence verification by providing a data structure and a digital signature to the video sequence, and receiver 130 can be configured to implement a method for video sequence verification by providing a data structure and a digital signature to the video sequence. For this purpose, transmitter 110 and receiver 130 may each include processing circuits 111 and 131, respectively, configured to implement the various method steps described herein.

[0123] In a hardware implementation, processing circuits 111 and 131 may be dedicated to and specifically designed for implementing one or more method steps. This circuit may be in the form of one or more integrated circuits, such as one or more application-specific integrated circuits (ASICs) or one or more field-programmable gate arrays (FPGAs).

[0124] For example, transmitter 110 may therefore include processing circuitry 111, when in use:

[0125] Perform lossless compression on each encoded image frame of the video sequence to obtain the corresponding LC encoded image frame;

[0126] Identify one or more small LC-coded image frames among the acquired LC-coded image frames, each small LC-coded image frame having a data size smaller than a predefined number of bytes;

[0127] Generate a data structure comprising one or more identified small LC-coded image frames, and a separate hash of any of the following: all coded image frames lacking a corresponding small LC-coded image frame; or all other acquired LC-coded image frames different from one or more small LC-coded image frames, wherein the separate hash is obtained by hashing each of the coded image frames lacking a corresponding small LC-coded image frame, or by hashing each of all other acquired LC-coded image frames separately.

[0128] Generate digital signatures for video sequences; and

[0129] It provides data structures and digital signatures for video sequences, enabling receivers to verify them.

[0130] For example, receiver 130 may include processing circuitry 131, which, when in use:

[0131] The system receives a video sequence comprising encoded image frames and provided with a data structure and digital signature. The received data structure comprises: one or more small LC-coded image frames, each having a data size less than a predefined number of bytes and being an LC version of the corresponding transport encoded image frame included in the video sequence transmitted from the transmitter; and a separate hash of any of the following: encoded image frames of all transmissions lacking a corresponding small LC-coded image frame; or all other LC-coded image frames different from the one or more small LC-coded image frames. Each of the other LC-coded image frames is an LC version of the corresponding transport encoded image frame included in the transmitted video sequence.

[0132] The received digital signature is verified using the received data structure; and the received encoded image frame is verified to be equal to the transmitted encoded image frame using the received data structure. Thus, when the received digital signature and the received encoded image frame are verified, the received video sequence is verified to be equal to the transmitted video sequence.

[0133] In a software implementation, the circuitry can be replaced with a processor, such as a microprocessor, associated with computer code instructions stored on a (non-transitory) computer-readable medium (such as non-volatile memory), causing transmitter 110 and receiver 130 to respectively execute the corresponding methods disclosed herein. Examples of non-volatile memory include read-only memory, flash memory, ferroelectric RAM, magnetic computer storage devices, optical discs, etc. In the software case, each of the above method steps can therefore correspond to a portion of computer code instructions stored on a computer-readable medium, which, when executed by the processor, respectively cause transmitter 110 and receiver 130 to execute the corresponding methods disclosed herein.

[0134] It should be understood that hardware and software implementation can also be combined, meaning that some methods and steps are implemented in hardware while others are implemented in software.

[0135] It should be understood that those skilled in the art can modify the above embodiments in various ways and still utilize the advantages of the present invention shown in the above embodiments. Therefore, the present invention should not be limited to the illustrated embodiments, but should be defined only by the appended claims. Furthermore, as those skilled in the art will understand, the illustrated embodiments can be combined.

Claims

1. A method performed by a transmitter (110) for verifying a video sequence (200) by providing a data structure (320) and a digital signature (340) to the video sequence (200), wherein, The video sequence (200) includes coded image frames (220), and the method includes: Perform lossless compression on each encoded image frame (220) of the video sequence (200) in (S502) to obtain the corresponding lossless compressed LC encoded image frame (220LC); In the acquired LC encoded image frame (220LC), identify (S504) one or more small LC encoded image frames (220LCb-1, 220LCb-2), each small LC encoded image frame (220LCb-1, 220LCb-2) having a data size less than a predefined number of bytes; Generate (S506) a data structure (320), the data structure (320) comprising: one or more identified small LC-coded image frames (220LCb-1, 220LCb-2); and a separate hash of any of the following: all coded image frames (220) for which the corresponding LC-coded image frame (220LCa) was not identified as the corresponding small LC-coded image frame (220LCb-1, 220LCb-2); and all other coded image frames (220) for which the corresponding LC-coded image frame (220LCa) was not identified as the one or more small LC-coded image frames (220LCb-1, 220LCb-2). The corresponding LC-coded image frame (220LCa) is obtained, wherein the individual hash is obtained by performing a separate hash on each of the coded image frames (220) that are not identified as the corresponding small LC-coded image frames (220LCb-1, 220LCb-2), or by performing a separate hash on each of the other all obtained corresponding LC-coded image frames (220LCa) that are not identified as the corresponding small LC-coded image frames (220LCb-1, 220LCb-2); Generate (S512) a digital signature (340) for the video sequence (200); and The data structure (320) and the digital signature (340) are provided to the video sequence (200) in S514, thereby enabling the receiver (130) to verify the video sequence (200).

2. The method according to claim 1, wherein, At least one of the identified small LC-coded image frames (220LCb-1, 220LCb-2) is a small LC-coded image frame (220LCb-1) of the first type, and is equal to its corresponding coded image frame (220) or the LC-coded image frame (220LC) equal to the coded image frame (220).

3. The method according to claim 1, wherein, At least one of the identified small LC-coded image frames (220LCb-1, 220LCb-2) is a second type small LC-coded image frame (220LCb-2), and includes an identifier of a stored predefined coded image frame (220e) and possible differences between the second type small LC-coded image frame (220LCb-2) and the stored predefined coded image frame (220e).

4. The method according to claim 1, further comprising: For each small LC-coded image frame (220LCb-1, 220LCb-2), determine (S508) its position in the data structure (320); Provide (S510) information to the data structure (320) specifying the location in the data structure (320).

5. The method according to claim 1, wherein, The data structure (320) is a document comprising a reduced hash list, wherein the reduced hash list consists only of the following items: One or more small LC-coded image frames (220LCb-1, 220LCb-2) identified; and A single hash of any of the following: all coded image frames (220) for which the acquired corresponding LC-coded image frame (220LCa) is not identified as the corresponding small LC-coded image frame (220LCb-1, 220LCb-2); and all other acquired corresponding LC-coded image frames (220LCa) that are not identified as one or more small LC-coded image frames (220LCb-1, 220LCb-2).

6. The method according to claim 1, wherein, The transmitter (110) is able to access the public-private key pair, and the generation of the digital signature (S512) further includes: The digital signature is generated by encrypting any of the following using the private key in the public-private key pair: the hash of the data structure (320); and the hash of any of the following individual hashes: all encoded image frames (220) of the video sequence (200), and all the acquired LC encoded image frames (220LCa, 220LCb-1, 220LCb-2).

7. A method performed by a receiver (130) for verifying a video sequence (200') provided with a data structure (320) and a digital signature (340), wherein, The video sequence (200') includes coded image frames (220'), and the method includes: The transmitter (110) receives (S602) a video sequence (200') including an encoded image frame (220') and provided with the data structure (320) and the digital signature (340). The received data structure (320) includes: one or more small lossless compressed LC-coded image frames (220LCb-1, 220LCb-2); and a separate hash of any of the following: all transmitted coded image frames (220) for which the corresponding LC-coded image frame (220LCa) is not identified by the transmitter (110) as the corresponding small LC-coded image frame (220LCb-1, 220LCb-2); and one or more small LC-coded image frames (220LCb-1, 220LCb-2) not identified by the transmitter (110). All other corresponding LC-coded image frames (220LCa) of the transmitter (110) are included in the video sequence (200) transmitted from the transmitter (110). Each of the other corresponding LC-coded image frames (220LCa) has a data size smaller than a predefined number of bytes and is an LC version of the corresponding transmission-coded image frame (220) included in the video sequence (200) transmitted from the transmitter (110). The received digital signature (340) is verified (S604) using the received data structure (320); and The received encoded image frame (220') is verified (S606) using the received data structure (320) to be equal to the transmitted encoded image frame (220); thus, when the received digital signature (340) and the received encoded image frame (220') are verified, the received video sequence (200') is verified to be equal to the transmitted video sequence (200).

8. The method according to claim 7, wherein, When the received data structure (320) includes a hash of all transmitted coded image frames (220) for which the corresponding LC-coded image frame (220LCa) is not recognized by the transmitter (110) as the corresponding small LC-coded image frame (220LCb-1, 220LCb-2), verifying (S606) the received coded image frame (220') as equal to the transmitted coded image frame (220) using the received data structure (320) includes: Generate a separate hash for each received coded image frame (220') included in the received video sequence (200'); Lossless decompression is performed on each of the one or more small LC-coded image frames (220LCb-1, 220LCb-2) included in the received data structure (320) to obtain the corresponding coded image frame; Generate a separate hash for each acquired corresponding encoded image frame. The received coded image frame (220') is verified to be equal to the transmitted coded image frame (220) when the generated individual hash of each received coded image frame (220') included in the received video sequence (200') matches the generated individual hash of each acquired corresponding coded image frame.

9. The method according to claim 7, wherein, When the received data structure (320) includes a separate hash of all other corresponding LC-coded image frames (220LCa) that are not identified by the transmitter (110) as the one or more small LC-coded image frames (220LCb-1, 220LCb-2), verifying (S606) the received coded image frame (220') as equal to the transmitted coded image frame (220) using the received data structure (320) includes: Perform lossless compression of each received coded image frame (220') included in the received video sequence (200') to obtain the corresponding LC received coded image frame (220LC'; 220LCa', 220LCb-1', 220LCb-2'); Generate a separate hash for all the acquired corresponding LC receive encoded image frames (220LC'; 220LCa', 220LCb-1', 220LCb-2'); Generate individual hashes for all the LC-coded image frames (220LC', 220LCa, 220LCb-1, 220LCb-2) given by the received data structure (320); and When the individual hashes generated by all the LC-coded image frames (220LC', 220LCa, 220LCb-1, 220LCb-2) given by the received data structure (320) match the individual hashes generated by all the corresponding acquired LC-received coded image frames (220LC'; 220LCa', 220LCb-1', 220LCb-2'), the received coded image frame (220') is verified to be equal to the transmitted coded image frame (220).

10. The method according to claim 9, wherein, One or more of the small LC-coded image frames (220LCb-1, 220LCb-2) are small LC-coded image frames (220LCb-1) of the first type, and are equal to their corresponding transport-coded image frame (220) or the LC-coded image frame (220LC) equal to the coded image frame (220), wherein the received data structure (320) further includes information specifying the position of the small LC-coded image frame (220LCb-1) of the first type in the data structure (320), and wherein the generation of individual hashes of all the LC-coded image frames (220LC, 220LCa, 220LCb-1, 220LCb-2) given by the received data structure (320) includes: The individual hashes of the first type of small LC-coded image frame (220LCb-1) and all other corresponding LC-coded image frames (220LCa) not identified by the transmitter (110) as the one or more small LC-coded image frames (220LCb-1, 220LCb-2) are extracted from the received data structure (320); Individual hashes are generated by individually hashing the extracted small LC-coded image frames (220LCb-1) of the first type; and Generate individual hashes for all the LC-coded image frames (220LC, 220LCa, 220LCb-1, 220LCb-2), as a combination of the generated individual hashes for the extracted first-type small LC-coded image frame (220LCb-1) and the individual hashes for all the other extracted LC-coded image frames (220LCa).

11. The method according to claim 9, wherein, One or more of the small LC-coded image frames (220LCb-1, 220LCb-2) are second-type small LC-coded image frames (220LCb-2), and include identifiers of stored predefined coded image frames (220e) and possible differences between the corresponding transport coded image frame (220) and the stored predefined coded image frame (220e), wherein the received data structure (320) further includes information specifying the position of the second-type small LC-coded image frame (220LCb-2) in the data structure (320), and wherein the generation of individual hashes of all the LC-coded image frames (220LC, 220LCa, 220LCb-1, 220LCb-2) given by the received data structure (320) includes: For each small LC-coded image frame (220LCb-2) of the second type, the following are extracted from the received data structure (320): the identifier of the stored coded image frame (220e) and the possible differences between the corresponding transport coded image frame (220) and the stored coded image frame (220e); and the individual hashes of all other corresponding LC-coded image frames (220LCa); The extracted identifier is used to retrieve the stored predefined coded image frames (220e) from the data storage (122) accessible to the transmitter (110) and receiver (130) of the video sequence (200); By combining the retrieved and stored predefined encoded image frames (220e) and the possible differences, each corresponding transport encoded image frame (220) is reconstructed for each second type of LC encoded image frame (220LCb-2); Perform lossless compression on the reconstructed transport-coded image frames; Individual hashes are generated by hashing the transport-coded image frames reconstructed by LC individually; Another data structure (330) is generated to include a separate hash of the generated LC-reconstructed transport-coded image frame and a separate hash of all other extracted corresponding LC-coded image frames (220LCa).

12. The method according to claim 7, wherein, When the received data structure (320) includes a separate hash of all other corresponding LC-coded image frames (220LCa) that are not identified by the transmitter (110) as the one or more small LC-coded image frames (220LCb-1, 220LCb-2), verifying (S606) the received coded image frame (220') as equal to the transmitted coded image frame (220) using the received data structure (320) includes: Perform lossless compression of each received coded image frame (220') included in the received video sequence (200') to obtain the corresponding LC received coded image frame (220LC'; 220LCa', 220LCb-1', 220LCb-2'); Generate a data structure (320') comprising: one or more small LC receive-coded image frames (220LCb-1', 220LCb-2') identified as each having a data size less than a predefined number of bytes, and a separate hash of all other LC receive-coded image frames (220LCa') not identified by the transmitter (110) as one or more small LC receive-coded image frames (220LCb-1, 220LCb-2), wherein the separate hash is obtained by separately hashing each of the other other LC receive-coded image frames (220LCa') not identified by the transmitter (110) as the one or more small LC receive-coded image frames (220LCb-1, 220LCb-2); and When the generated data structure (320') matches the received data structure (320), the received encoded image frame (220') is verified to be equal to the transmitted encoded image frame (220).

13. The method according to claim 7, wherein, The receiver (130) is able to access the public key in the public-private key pair of the transmitter (110), and the verification (S606) of the received digital signature (340) includes decrypting the received digital signature (340) using the public key, and verifying the received digital signature (340) when the hash of the received data structure (320) matches the decrypted received digital signature (340).

14. A transmitter (110) for verifying a video sequence (200) by providing a data structure (320) and a digital signature (340) to the video sequence (200), wherein, The transmitter (110) includes a processing circuit (111) configured to cause the transmitter (110) to perform the steps of the method according to claim 1.

15. A receiver (130) for verifying a video sequence (200) provided with a data structure (320) and a digital signature (340), wherein, The receiver (130) includes a processing circuit (131) configured to cause the receiver (130) to perform the steps of the method according to claim 7.

Citation Information

Patent Citations

  • Method for encoding and processing raw UHD video via an existing HD video architecture

    CN110169047A

  • Lossless video coding method and decoding method for RPA robot screen recording

    CN113365065A