A Video Steganography Method Based on the Principle of Motion Vector Distortion Allocation
By adopting the principle of motion vector distortion allocation in the video steganography method and combining STC encoding for information embedding, the problem of poor performance of video steganography method in the prior art when facing steganography analysis algorithms of different angles is solved, and higher security performance and wider application range are achieved.
Patent Information
- Application Number
- CN202210588737.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-26
- Publication Date
- 2025-06-27
- Estimated Expiration
- 2042-05-26
AI Technical Summary
The existing video steganography method has poor performance and insufficient security when facing steganography analysis algorithms of different angles.
The video steganography method based on the principle of motion vector distortion allocation is adopted. Through the steps of precoding, distortion calculation, information embedding and re-encoding, the final joint distortion is calculated and information embedding is embedded in combination with STC encoding.
The security performance of steganography algorithms against different types of steganography analysis algorithms has been improved, the scope of use of steganography algorithms has been expanded, and the impact on the objective quality of videos has been reduced.
Smart Images

Figure CN115002476B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of information security technology, and in particular to a video steganography method based on the principle of motion vector distortion distribution. Background Art
[0002] Modern steganography hides secret information in ordinary carriers such as pictures, texts, videos, and audios to cover up the real communication behavior without being suspected, thereby ensuring information security. With the development of the network, people increasingly rely on videos to obtain and transmit information. Videos have become the current mainstream media. Therefore, video steganography occupies an important position in research.
[0003] Steganalysis is the reverse detection technology of steganography. Its goal is to determine whether there is secret information hidden in pictures, texts, videos, and audios. Since steganography inevitably disturbs the carrier, steganalysis can always find ways to attack it. The video steganalysis features based on motion vectors mainly obtain the perturbations caused by steganography operations on some inherent features in the video coding process, such as the local optimality of motion vectors, the consistency difference of motion vectors within a group of blocks, the motion vector recovery characteristics, or spatio-temporal correlation, etc. These features are often obtained from different perspectives and may not be significantly related to each other. However, most of the existing video steganographies only consider from a single perspective and fail to effectively resist attacks from other perspectives and are easily recognized, with poor security. Summary of the Invention
[0004] The technical problem to be solved by the present invention is to provide a video steganography method based on the principle of motion vector distortion distribution to improve the performance when dealing with different types of steganalysis algorithms and enhance security.
[0005] To solve the above technical problem, the object of the present invention is achieved through the following technical solutions: providing a video steganography method based on the principle of motion vector distortion distribution, including:
[0006] Precoding: Perform the first complete inter-frame prediction coding on the current coding frame to obtain the partitioning method of macroblocks and their sub-blocks and the original motion vector set; wherein, the original motion vector set is a set of multiple original motion vectors;
[0007] Distortion calculation: Obtain the candidate motion vectors of each motion vector according to the principle of local optimality of motion vectors, and calculate the embedding distortion caused by local optimality perturbation; Adjust the obtained embedding distortion according to the principle of non-uniformity of motion vectors within the macroblock to obtain the adjusted distortion that maintains non-uniformity within the group of blocks; Calculate the complexity distortion of the motion vector according to the principle of motion vector complexity priority, and calculate the final combined distortion according to the adjusted distortion and the complexity distortion;
[0008] Information embedding: According to the carrier vector and the corresponding final joint distortion, combined with STC coding, embed the secret information to obtain the stego carrier vector after steganography. When the value of an element of the carrier vector is different from the value of the corresponding element of the stego carrier vector after steganography, replace the obtained corresponding candidate motion vector into the original motion vector set to obtain the modified motion vector set;
[0009] Re-encoding: Keep the division method of the macroblock and its sub-blocks obtained during the first complete inter-frame prediction coding. Perform the second inter-frame prediction coding according to the obtained modified motion vector set, complete the coding work, and output the bitstream.
[0010] A further technical solution thereof is: Before the step of pre-coding, it further includes:
[0011] Carrier construction: Obtain multiple independent motion vectors after motion estimation of the coded frame, and map each motion vector of the coded frame according to the parity check function to obtain the carrier vector.
[0012] A further technical solution thereof is: The step of obtaining the candidate motion vector of each motion vector according to the principle of local optimality of the motion vector and calculating the embedding distortion caused by the local optimality perturbation in the step of distortion calculation specifically includes:
[0013] Determine the range of the total candidate motion vector set: Obtain the set of the first candidate motion vectors that only modify the horizontal or vertical component of the motion vector and the maximum component modification amplitude is 1, obtain the set of the second candidate motion vectors that simultaneously modify the horizontal and vertical components of the motion vector but the modification amplitudes of the two are different and the maximum modification amplitude is 2, and determine the range of the total candidate motion vector set according to the set of the first candidate motion vectors and the set of the second candidate motion vectors;
[0014] Determine the final candidate motion vector: Judge whether the original motion vector satisfies local optimality. If so, obtain the candidate motion vectors that satisfy local optimality in the total candidate motion vector set, calculate the reconstruction Lagrangian rate distortion of all candidate motion vectors that satisfy local optimality, and select the candidate motion vector with the smallest reconstruction Lagrangian rate distortion as the final candidate motion vector; if the original motion vector does not satisfy local optimality, obtain the candidate motion vectors that satisfy local non-optimality in the total candidate motion vector set, calculate the reconstruction Lagrangian rate distortion of all candidate motion vectors that satisfy local non-optimality, and select the candidate motion vector with the smallest reconstruction Lagrangian rate distortion as the final candidate motion vector;
[0015] Calculate the embedding distortion caused by local optimality perturbation: Calculate the difference between the Lagrangian rate distortion of the reference block and the coded block reconstructed with the original motion vector and the Lagrangian rate distortion of the reference block and the coded block reconstructed with the final candidate motion vector, and take the larger value after comparing the difference with 1 as the reference distortion. Obtain the embedding distortion according to the following formula:
[0016] ρ lo = β * ρ
[0017] In the formula, ρ lo represents the embedding distortion, ρ represents the reference distortion, and β represents a preset parameter.
[0018] A further technical solution thereof is: After the step of obtaining the candidate motion vectors satisfying local optimality in the step of determining the final candidate motion vector, the following steps are further included:
[0019] If there are no candidate motion vectors satisfying local optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors in the set of the first candidate motion vectors, and select the candidate motion vector with the smallest reconstructed Lagrangian rate distortion as the final candidate motion vector.
[0020] A further technical solution thereof is: After the step of obtaining the candidate motion vectors satisfying local non-optimality in the step of determining the final candidate motion vector, the following steps are further included:
[0021] If there are no candidate motion vectors satisfying local non-optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors in the set of the first candidate motion vectors, and select the candidate motion vector with the smallest reconstructed Lagrangian rate distortion as the final candidate motion vector.
[0022] A further technical solution thereof is: The step of adjusting the obtained embedding distortion according to the motion vector non-uniformity principle within the macroblock to obtain the adjusted distortion that maintains the non-uniformity within the block group in the step of distortion calculation specifically includes:
[0023] Obtain the embedding distortion: Obtain the candidate motion vectors and their corresponding embedding distortions;
[0024] Classify the block groups: Classify the block groups according to the division method of the macroblock and its sub-blocks, classify the blocks divided unevenly horizontally and vertically into the first type of block groups, and classify the blocks divided equally horizontally and vertically into the second type of block groups;
[0025] Calculate the adjusted distortion of the motion vectors of the first type of block group: Select two adjacent motion vectors in the first type of block group, obtain the sum of the absolute value of the difference in the horizontal components of the two motion vectors and the absolute value of the difference in the vertical components of the two motion vectors. When the value of the sum is 0 or 1, expand the embedding distortion by a preset multiple as the adjusted distortion; otherwise, use the embedding distortion as the adjusted distortion;
[0026] Calculate the adjusted distortion of the motion vectors of the second type of block group: Select four motion vectors distributed in a 2×2 matrix in the second type of block group, obtain the absolute value of the difference in the horizontal components of two adjacent motion vectors and the absolute value of the difference in the vertical components of two adjacent motion vectors as the difference in adjacent motion vector components; Set a component difference function and assign values to the component difference function according to the corresponding difference in adjacent motion vector components. Among them, when the difference in adjacent motion vector components is 0 or 1, the value of the component difference function is 1; otherwise, the value of the component difference function is 0; Accumulate the sum of the values of the component difference functions corresponding to all the differences in adjacent motion vector components among the four motion vectors, and obtain the adjusted distortion according to the following formula in combination with the embedding distortion:
[0027] ρ mvc =(c2*d2 + 1)*ρ lo
[0028] In the formula, ρ mvc represents the adjusted distortion, c2 represents the penalty factor, d2 represents the sum of the values of the component difference functions corresponding to all the differences in adjacent motion vector components among the four motion vectors, and ρ lo represents the embedding distortion.
[0029] Its further technical solution is: The step of calculating the complexity distortion of the motion vector according to the principle of giving priority to the motion vector complexity in the step of calculating the distortion specifically includes:
[0030] Construct a motion vector matrix: Obtain the information of the motion vectors according to the original motion vector set, set a processing unit with a 4×4 matrix structure to fill the horizontal components and vertical components of the motion vectors of the coded frame respectively, and construct each motion vector into a horizontal motion vector matrix for storing the horizontal components of the motion vector and a vertical motion vector matrix for storing the vertical components of the motion vector;
[0031] Calculate the residuals: The horizontal motion vector matrix and the vertical motion vector matrix of each motion vector calculate the residuals of the horizontal motion vector matrix and the vertical motion vector matrix respectively through three filters. The filter decomposition of the residual matrix of the horizontal motion vector matrix is represented by the following formula:
[0032]
[0033] In the formula, denotes the residual matrix obtained after the k-th filter decomposes the horizontal motion vector matrix, where k represents the k-th filter, MVH represents the horizontal motion vector matrix, and K (k) denotes the filter parameter matrix of the k-th filter, and * represents convolution with mirror padding;
[0034] The residual matrix obtained after the filter decomposes the vertical motion vector matrix is represented by the following formula:
[0035]
[0036] In the formula, denotes the residual matrix obtained after the k-th filter decomposes the vertical motion vector matrix, where k represents the k-th filter, MVV represents the vertical motion vector matrix, and K (k) denotes the filter parameter matrix of the k-th filter, and * represents convolution with mirror padding;
[0037] Among them, the filter parameter matrix of the filter is represented by the following formula:
[0038] K (1) = h z · g T ,
[0039] K (2) = g · h z T ,
[0040] K (3) = g · g T
[0041] In the formula, K (1) denotes the filter parameter matrix of the first filter, h z denotes the low-pass filter coefficients of the support basis of the Daubechies wavelet transform, and g T denotes the transpose of the high-pass filter coefficients of the support basis of the Daubechies wavelet transform, and K (2) denotes the filter parameter matrix of the second filter, g denotes the high-pass filter coefficients of the support basis of the Daubechies wavelet transform, and h z T denotes the transpose of the low-pass filter coefficients of the support basis of the Daubechies wavelet transform, and K (3) denotes the filter parameter matrix of the third filter, and · represents dot product;
[0042] Computational complexity distortion: According to the processing unit with a 4×4 matrix structure, the horizontal distortion generated after modifying the elements in the horizontal motion vector matrix is calculated according to the following formula:
[0043]
[0044] where ρ Hjq represents the horizontal distortion generated after modifying the (j,q)-th element in the horizontal motion vector matrix, ε represents a coefficient to prevent division by zero, and ε = 2 -6 , represents the absolute value of the difference between the (e,f)-th residual element of the residual matrix obtained after the k-th filter decomposes the horizontal motion vector matrix and the (e,f)-th residual element of the residual matrix obtained from the horizontal motion vector matrix after modifying the (j,q)-th element by this filter decomposition represents the (e,f)-th residual element in the residual matrix obtained after the k-th filter decomposes the horizontal motion vector matrix
[0045] Calculate the vertical distortion generated after modifying the elements in the vertical motion vector matrix according to the following formula
[0046]
[0047] where ρ Vjq represents the vertical distortion generated after modifying the (j,q)-th element in the vertical motion vector matrix, ε represents a coefficient to prevent division by zero, and ε = 2 -6 , represents the absolute value of the difference between the (e,f)-th residual element of the residual matrix obtained after the k-th filter decomposes the vertical motion vector matrix and the (e,f)-th residual element of the residual matrix obtained from the vertical motion vector matrix after modifying the (j,q)-th element by this filter decomposition represents the (e,f)-th residual element in the residual matrix obtained after the k-th filter decomposes the vertical motion vector matrix
[0048] Calculate the complexity distortion generated when modifying the motion vector according to the following formula
[0049] ρ com ={∑[(ρ Hjq +ρ Vjq ) / 2]} / n
[0050] where ρ com represents the complexity distortion, ρ Hjq represents the horizontal distortion generated after modifying the (j,q)-th element in the horizontal motion vector matrix, ρ Vjq represents the vertical distortion generated after modifying the (j,q)-th element in the vertical motion vector matrix, (ρ Hjq +ρ Vjq) / 2 represents the complexity distortion generated after separately modifying the (j, q)-th element in the horizontal motion vector matrix and the vertical motion vector matrix in the motion vector. n represents the number of processing units included in the coding block corresponding to the motion vector. {∑[(ρ Hjq +ρ Vjq ) / 2]} / n represents the average value of the sum of the complexity distortions generated by modifying all elements in the horizontal motion vector matrix and the vertical motion vector matrix of the motion vector.
[0051] The further technical solution thereof is: The step of calculating the final joint distortion according to the adjusted distortion and the complexity distortion in the step of distortion calculation is specifically:
[0052] According to the obtained adjusted distortion and complexity distortion, calculate the product between the adjusted distortion and the complexity distortion of the corresponding motion vector as the final joint distortion.
[0053] The beneficial technical effect of the present invention is that: A video steganography method based on the motion vector distortion distribution principle of the present invention obtains the division method of the macroblock and its sub-blocks and the original motion vector set during the first complete inter-frame prediction coding, and calculates and obtains the final joint distortion according to the motion vector local optimality principle, the motion vector non-uniformity principle within the macroblock, and the motion vector complexity priority principle. According to the carrier vector and the corresponding final joint distortion, combined with the STC coding, the secret information is embedded, so as to comprehensively consider the influence of various distortion distribution principles of the motion vector on the video, so as to resist the attacks of different types of steganalysis features by obtaining the final joint distortion, greatly improving the security performance of the steganography algorithm against different types of steganalysis algorithms, expanding the application range of the steganography algorithm, and reducing the impact on the objective quality of the video. Description of the Drawings
[0054] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0055] Figure 1 It is a flowchart of a video steganography method based on the motion vector distortion distribution principle provided by an embodiment of the present invention;
[0056] Figure 2 It is a specific flowchart of a video steganography method based on the motion vector distortion distribution principle provided by an embodiment of the present invention;
[0057] Figure 3Schematic diagram of the first sub - process of distortion calculation for a video steganography method based on the motion vector distortion allocation principle provided by an embodiment of the present invention;
[0058] Figure 4 Schematic diagram of the second sub - process of distortion calculation for a video steganography method based on the motion vector distortion allocation principle provided by an embodiment of the present invention;
[0059] Figure 5 Schematic diagram of the third sub - process of distortion calculation for a video steganography method based on the motion vector distortion allocation principle provided by an embodiment of the present invention. Detailed implementation manners
[0060] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
[0061] Please refer to Figure 1 as shown Figure 1 A flowchart of a video steganography method based on the motion vector distortion allocation principle provided by an embodiment of the present invention. The video steganography method based on the motion vector distortion allocation principle includes:
[0062] Step S11, pre - coding: Perform the first complete inter - frame prediction coding on the current coding frame to obtain the partitioning method of macro - blocks and their sub - blocks and the original motion vector set. Among them, the original motion vector set refers to a set of original multiple motion vectors. The current coding frame refers to the current data frame to be coded. The video coding standard for inter - frame prediction coding can adopt H.264 / AVC. Set the original motion vector set as MV origin , and the original motion vector set can be represented by formula (1):
[0063] MV origin ={mv(h i ,v i )}, i ∈ {1,…,N} (1)
[0064] In the formula, MV origin represents the original motion vector set, which is a set of original multiple motion vectors; mv(h i ,v i ) represents the i - th independent motion vector obtained after motion estimation, which is an original motion vector, h i represents the horizontal component of the i - th independent motion vector obtained after motion estimation, the value of h i is an integer, v irepresents the vertical component of the i-th independent motion vector obtained after motion estimation, v i takes integer values, and N is the total number of independent motion vectors obtained after motion estimation.
[0065] Step S12, distortion calculation: Obtain the candidate motion vectors of each motion vector according to the principle of local optimality of the motion vector, and calculate the embedding distortion caused by the local optimality perturbation; adjust the obtained embedding distortion according to the principle of non-uniformity of the motion vectors within the macroblock to obtain the adjusted distortion that maintains the non-uniformity within the block group; calculate the complexity distortion of the motion vector according to the principle of priority of motion vector complexity, and calculate the final combined distortion according to the adjusted distortion and the complexity distortion.
[0066] Step S13, information embedding: According to the carrier vector and the corresponding final combined distortion, combine STC coding to perform information embedding on the secret information to obtain the stego carrier vector after steganography. When the value of an element of the carrier vector is different from the value of the corresponding element of the stego carrier vector after steganography, replace the obtained corresponding candidate motion vector into the original motion vector set to obtain the modified motion vector set. The positions of the elements of the carrier vector before steganography and the elements of the stego carrier vector after steganography are the same, but the values of the elements at this position may be different.
[0067] Among them, set M to represent the secret information. The secret information includes multiple information elements and can be expressed by formula (2):
[0068] M = (m1,..., m L ) (2)
[0069] In the formula, M represents the secret information, m1 and m L represent the first information element and the L-th information element respectively. L is the total length of the secret information and is the absolute embedding capacity of the secret information.
[0070] Step S14, re-encoding: Keep the partitioning method of the macroblock and its sub-blocks obtained during the first complete inter-frame prediction coding, perform the second inter-frame prediction coding according to the obtained modified motion vector set, complete the coding work, and output the bitstream.
[0071] Among them, the video steganography method based on the motion vector distortion allocation principle obtains the division method of macroblocks and their sub-blocks and the original motion vector set during the first complete inter-frame predictive coding, and calculates and obtains the final joint distortion according to the motion vector local optimality principle, the motion vector non-uniformity principle within the macroblock, and the motion vector complexity priority principle. According to the carrier vector and the corresponding final joint distortion, the secret information is embedded by combining STC coding. Thus, the influence of various distortion allocation principles of motion vectors on the video is comprehensively considered, so as to resist the attacks of different types of steganalysis features by obtaining the final joint distortion, greatly improving the security performance of the steganography algorithm against different types of steganalysis algorithms, expanding the application range of the steganography algorithm, and reducing the impact on the objective quality of the video.
[0072] Combine Figure 2 , specifically, before step S11, it may further include:
[0073] Step S101, carrier construction: Obtain multiple independent motion vectors after motion estimation of the coded frame, and map each motion vector of the coded frame according to the parity check function to obtain the carrier vector.
[0074] Among them, the video steganography based on motion vectors uses motion vectors as the original carrier. Set the carrier vector as X. The carrier vector X includes multiple elements. The carrier vector X can be represented by formula (3):
[0075] X = (x1, x2, …, x i , …, x N ) (3)
[0076] In the formula, X represents the carrier vector, x1, x2, x i and x N respectively represent the first element, the second element, the i-th element and the N-th element of the carrier vector. N is the total number of independent motion vectors obtained after motion estimation.
[0077] Use formula (4) to map each motion vector of the coded frame according to the parity check function to obtain the value of the element of the carrier vector:
[0078] x i = P(mv(h i , v i )) = LSB(h i + v i ) (4)
[0079] In the formula, P represents the parity check function, mv(h i , v i ) represents the i-th independent motion vector obtained after motion estimation, h irepresents the horizontal component of the i-th independent motion vector obtained after motion estimation, v i represents the vertical component of the i-th independent motion vector obtained after motion estimation, and the LSB function represents a function for obtaining the least significant bit of a variable. Then, according to formula (4), the least significant bit of the sum of the horizontal and vertical components of all motion vectors is obtained as the value corresponding to each element of the carrier vector.
[0080] Among them, the stego carrier vector Y is set. The stego carrier vector Y includes multiple elements and corresponds one-to-one with the elements of the carrier vector respectively. The stego carrier vector Y can be represented by formula (5):
[0081] Y = (y1, y2, …, y i , …, y N ) (5)
[0082] In the formula, Y represents the stego carrier vector, and y1, y2, y i and y N respectively represent the first element, the second element, the i-th element, and the N-th element of the stego carrier vector. N is the total number of independent motion vectors obtained after motion estimation.
[0083] Then, step S13 can be specifically: according to the elements of the carrier vector and the final joint distortion corresponding to each element of the carrier vector, information embedding of each information element of the secret information is performed by combining STC coding to obtain the stego carrier vector after steganography. When the value of the element of the carrier vector is different from the value of the corresponding element of the stego carrier vector after steganography, the candidate motion vector corresponding to the obtained element of the carrier vector is replaced into the original motion vector set. When the value of the element of the carrier vector is the same as the value of the corresponding element of the stego carrier vector after steganography, the motion vector corresponding to the element of the carrier vector remains unchanged, and the modified motion vector set is obtained.
[0084] Combined with Figure 3 , the steps of obtaining the candidate motion vectors of each motion vector according to the motion vector local optimality principle and calculating the embedding distortion caused by the local optimality perturbation in step S12 specifically include:
[0085] Step S1211: Determine the range of the total candidate motion vector set: Obtain a set of first candidate motion vectors that only modify the horizontal or vertical component of the motion vector and the maximum component modification amplitude is 1. Obtain a set of second candidate motion vectors that modify both the horizontal and vertical components of the motion vector but the modification amplitudes of the horizontal and vertical components of the motion vector are different from each other and the maximum modification amplitude is 2. Determine the range of the total candidate motion vector set according to the set of first candidate motion vectors and the set of second candidate motion vectors.
[0086] Among them, when the motion vector needs to be modified, the horizontal component or the vertical component of the motion vector can be modified, but it is necessary to ensure that the value of the least significant bit of the modified motion vector is different from the value of the least significant bit of the original motion vector. The total candidate motion vector set is the union of the set of the first candidate motion vectors and the set of the second candidate motion vectors. The modified motion vector can be obtained from the candidate motion vectors in the total candidate motion vector set. The set of the first candidate motion vectors can be expressed by formula (6):
[0087] Ω1 = {mv(h i +1, v i ), mv(h i -1, v i ), mv(h i , v i -1), mv(h i , v i +1)} (6)
[0088] In the formula, Ω1 represents the set of the first candidate motion vectors, mv() represents the motion vector obtained after motion estimation, h i represents the horizontal component of the i-th independent motion vector obtained after motion estimation, and v i represents the vertical component of the i-th independent motion vector obtained after motion estimation.
[0089] The set of the second candidate motion vectors can be expressed by formula (7):
[0090] Ω2 = {mv(h i +2, v i -1), mv(h i -2, v i +1), mv(h i +1, v i -2), mv(h i -1, v i +2), mv(h i +2, v i +1), mv(h i -2, v i -1), mv(h i +1, v i +2), mv(h i -1, v i -2)} (7)
[0091] In the formula, Ω2 represents the set of the second candidate motion vectors, mv() represents the motion vector obtained after motion estimation, h i represents the horizontal component of the i-th independent motion vector obtained after motion estimation, and v iRepresents the vertical component of the i-th independent motion vector obtained after motion estimation.
[0092] Step S1212, determining the final candidate motion vector: Determine whether the original motion vector satisfies local optimality. If so, obtain the candidate motion vectors that satisfy local optimality within the total candidate motion vector set, calculate the reconstruction Lagrangian rate distortion of all candidate motion vectors that satisfy local optimality, and select the candidate motion vector with the smallest reconstruction Lagrangian rate distortion as the final candidate motion vector; if the original motion vector does not satisfy local optimality, obtain the candidate motion vectors that satisfy local non-optimality within the total candidate motion vector set, calculate the reconstruction Lagrangian rate distortion of all candidate motion vectors that satisfy local non-optimality, and select the candidate motion vector with the smallest reconstruction Lagrangian rate distortion as the final candidate motion vector.
[0093] Among them, the reconstruction Lagrangian rate distortion refers to the Lagrangian rate distortion between the reference block and the coded block reconstructed with the corresponding motion vector. The step of determining whether the original motion vector satisfies local optimality can be specifically: actually code the coded block and the corresponding original motion vector, then reconstruct the coded block with the modification amplitude of the horizontal component and the vertical component of the motion vector being 0 or 1 respectively, calculate the Lagrangian rate distortion between the obtained reference block and the reconstructed coded block, and obtain the corresponding surrounding Lagrangian rate distortion matrix. The coded block refers to the sub-block to be coded divided in the macro-block divided during the inter-frame predictive coding of the coded frame. The Lagrangian rate distortion between the reference block and the reconstructed coded block can be obtained according to formula (8):
[0094] J’ motion (mv(h i ±Δh,v i ±Δv))=D(B’,T)+λR(mv(h i ±Δh,v i ±Δv)),Δh=0,1,Δv=0,1 (8)
[0095] In the formula, Δh represents the modification amplitude of the horizontal component of the motion vector, Δv represents the modification amplitude of the vertical component of the motion vector, J’ motion (mv(h i ±Δh,v i ±Δv)) represents the Lagrangian rate distortion between the reference block and the reconstructed coded block, B’ represents the reconstructed coded block, mv(h i ±Δh,v i ±Δv) represents the motion vector corresponding to the reconstructed coded block, T represents the reference block, D(B’,T) represents the error sum (SAD, Sum of Absolute Difference) between the reference block and the reconstructed coded block, and λ is the Lagrangian multiplier, R(mv(hi ±Δh,v i ±Δv)) represents the number of macroblock coding bits of the motion vector corresponding to the reconstructed coded block.
[0096] When the Lagrangian rate distortion between the reference block and the coded block reconstructed with the original motion vector is the minimum in the loop Lagrangian rate distortion matrix, i.e., J’ motion (mv(h i ,v i ) is the minimum in the loop Lagrangian rate distortion matrix, then the original motion vector satisfies local optimality; otherwise, the original motion vector does not satisfy local optimality.
[0097] Specifically, the step of obtaining the candidate motion vectors satisfying local optimality in the total candidate motion vector set may be: calculating the corresponding loop Lagrangian rate distortion matrix for each candidate motion vector in the total candidate motion vector set to determine whether the candidate motion vector satisfies local optimality, and obtaining the set of candidate motion vectors satisfying local optimality. When the set of candidate motion vectors satisfying local optimality is not an empty set, i.e., there are candidate motion vectors satisfying local optimality, then the final candidate motion vector at this time is the optimal motion vector.
[0098] Since modifying one component brings less statistical distortion than modifying two components. Preferably, after the step of obtaining the candidate motion vectors satisfying local optimality in the total candidate motion vector set in step S1212, it further includes:
[0099] If there are no candidate motion vectors satisfying local optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors in the first candidate motion vector set, and select the candidate motion vector with the minimum reconstructed Lagrangian rate distortion as the final candidate motion vector. At this time, the original motion vector satisfies local optimality but there are no candidate motion vectors satisfying local optimality in the total candidate motion vector set, then the calculated final candidate motion vector is the sub-optimal motion vector.
[0100] Specifically, the step of obtaining the candidate motion vectors satisfying local non-optimality in the total candidate motion vector set may be: calculating the corresponding loop Lagrangian rate distortion matrix for each candidate motion vector in the total candidate motion vector set to determine whether the candidate motion vector satisfies local non-optimality, and obtaining the set of candidate motion vectors satisfying local non-optimality. Among them, since the original motion vector does not satisfy local optimality, the calculated final candidate motion vector is the non-optimal motion vector.
[0101] Preferably, after the step of obtaining the candidate motion vectors satisfying local non-optimality in the total candidate motion vector set in step S1212, it further includes:
[0102] If there is no candidate motion vector satisfying local non-optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors in the set of the first candidate motion vectors, and select the candidate motion vector with the minimum reconstructed Lagrangian rate distortion as the final candidate motion vector.
[0103] Step S1213, calculate the embedding distortion caused by local optimality perturbation: calculate the difference between the Lagrangian rate distortion of the reference block and the coded block reconstructed with the original motion vector and the Lagrangian rate distortion of the reference block and the coded block reconstructed with the final candidate motion vector, and take the larger value after comparing this difference with 1 as the reference distortion, and obtain the embedding distortion according to formula (9):
[0104] ρ lo =β*ρ (9)
[0105] In the formula, ρ lo represents the embedding distortion, ρ represents the reference distortion, and β represents a preset parameter. Among them, the value of the preset parameter is related to the final candidate motion vector. When the final candidate motion vector is the optimal motion vector, β = 1; the value of the preset parameter corresponding to the non-optimal motion vector is greater than the value of the preset parameter corresponding to the optimal motion vector, that is, the value of the preset parameter corresponding to the non-optimal motion vector is greater than 1; the value of the preset parameter corresponding to the sub-optimal motion vector is greater than the value of the preset parameter corresponding to the non-optimal motion vector; preferably, the value of the preset parameter corresponding to the non-optimal motion vector can be 1.5, and the value of the preset parameter corresponding to the sub-optimal motion vector can be 4.0.
[0106] Among them, the reference distortion can be expressed by formula (10):
[0107] ρ = max{[J’ motion (mv(h i ,v i )) - J’ motion (mv’(h i ,v i ))], 1} (10)
[0108] In the formula, ρ represents the reference distortion, J’ motion (mv(h i ,v i )) represents the Lagrangian rate distortion of the reference block and the coded block reconstructed with the original motion vector, that is, the reconstructed Lagrangian rate distortion of the original motion vector, J’ motion (mv’(h i ,v i )) represents the Lagrangian rate distortion of the reference block and the coded block reconstructed with the final candidate motion vector, that is, the reconstructed Lagrangian rate distortion of the final candidate motion vector, mv(h i ,v i) represents the original motion vector, mv’(h i ,v i ) represents the final candidate motion vector.
[0109] Combined with Figure 4 , the step of adjusting the obtained embedding distortion according to the motion vector non - consistency principle within the macro - block in step S12 to obtain the adjusted distortion that maintains the non - consistency within the block group specifically includes:
[0110] Step S1221, obtain the embedding distortion: Obtain the candidate motion vector and its corresponding embedding distortion.
[0111] Step S1222, classify the block groups: Classify the block groups according to the division method of the macro - block and its sub - blocks. Classify the blocks divided horizontally and vertically in unequal parts as the first - type block groups, and classify the blocks divided horizontally and vertically in equal parts as the second - type block groups. Among them, the sub - block types extracted by MVC (Motion Vector Consistency) feature can be divided into two types of block groups. One type is the case where the block is divided into 16×8, 8×16, 8×4, or 4×8 with unequal horizontal and vertical divisions, and this type of block is classified as the first - type block group; the other type is the case where the block is divided into 8×8 or 4×4 with equal horizontal and vertical divisions, and this type of block is classified as the second - type block group.
[0112] Step S1223, calculate the adjusted distortion of the motion vectors of the first - type block groups: Select two adjacent motion vectors in the first - type block groups, obtain the sum of the absolute values of the differences in the horizontal components of the two motion vectors and the absolute values of the differences in the vertical components of the two motion vectors. When the sum value is 0 or 1, expand the embedding distortion by a preset multiple as the adjusted distortion; otherwise, use the embedding distortion as the adjusted distortion.
[0113] Among them, the sum of the absolute values of the differences in the horizontal components of the two motion vectors and the absolute values of the differences in the vertical components of the two motion vectors can be expressed by formula (11):
[0114] d1=|d h |+|d v | (11)
[0115] In the formula, d1 represents the sum of the absolute values of the differences in the horizontal components of the two motion vectors and the absolute values of the differences in the vertical components of the two motion vectors, d h represents the difference in the horizontal component of the motion vector, d v represents the difference in the vertical component of the motion vector.
[0116] Specifically, when the sum d1 of the absolute values of the differences in the horizontal components of two motion vectors in the first type of block group and the absolute values of the differences in the vertical components of these two motion vectors is 0 or 1, the adjustment distortion can be expressed using formula (12):
[0117] ρ mvc = c1 * ρ lo (12)
[0118] In the formula, ρ mvc represents the adjustment distortion, c1 represents a preset multiple, and ρ lo represents the embedding distortion. Among them, c1 > 1, and the specific value can be determined through experiments. c1 ∈ {1.5, 2.0, 2.5, 3.0, 3.5}. Preferably, when c1 is 3.0 and d1 is 0 or 1, it means that the two motion vectors are the same or very close. Modifying any one of the motion vectors will likely destroy the MVC feature. Therefore, the embedding distortion corresponding to these motion vectors is increased to ensure that the corresponding motion vectors can be avoided during information embedding; when d1 is greater than 1, it means that the two motion vectors have a large difference, and performing steganography operations on these motion vectors is not likely to cause feature changes. Therefore, there is no need to adjust the embedding distortion of the corresponding motion vectors.
[0119] Step S1224, calculate the adjustment distortion of the motion vectors of the second type of block group: Select four motion vectors distributed in a 2×2 matrix in the second type of block group, and obtain the absolute value of the difference in the horizontal components of two adjacent motion vectors and the absolute value of the difference in the vertical components of two adjacent motion vectors as the difference of adjacent motion vector components; Set a component difference function, and assign a value to the component difference function according to the corresponding difference of adjacent motion vector components. Among them, when the difference of adjacent motion vector components is 0 or 1, the value of the component difference function is 1, otherwise, the value of the component difference function is 0; Accumulate the sum of the values of the component difference functions corresponding to all the differences of adjacent motion vector components among these four motion vectors, and obtain the adjustment distortion according to the following formula (13) in combination with the embedding distortion:
[0120] ρ mvc = (c2 * d2 + 1) * ρ lo (13)
[0121] In the formula, ρ mvc represents the adjustment distortion, c2 represents a penalty factor, d2 represents the sum of the values of the component difference functions corresponding to all the differences of adjacent motion vector components among these four motion vectors, and ρ loIndicates the embedding distortion. Among them, 0 < c2 < 1, and the specific value can be determined through experiments. c2 ∈ {0.05, 0.1, 0.2, 0.3, 0.4}. Preferably, c2 is 0.1. Two adjacent motion vectors refer to two adjacent motion vectors either vertically or horizontally. The difference between adjacent motion vector components can be the absolute value of the difference in the horizontal components of two adjacent motion vectors or the absolute value of the difference in the vertical components of two adjacent motion vectors. When the difference between adjacent motion vector components is 0 or 1, it indicates that the horizontal or vertical components of the two adjacent motion vectors have strong consistency, and the steganography operation is likely to cause changes in the MVC features. Then, a larger value is assigned to the component difference function to make the sum d2 of the values of the component difference functions corresponding to all adjacent motion vector differences in the accumulated four motion vectors larger, so as to expand the adjusted embedding distortion and ensure that the corresponding motion vectors can be avoided during information embedding. When the difference between adjacent motion vector components is greater than 1, it indicates that the horizontal or vertical components of the two adjacent motion vectors have weak consistency, and the steganography operation on these motion vectors is not likely to cause feature changes. Then, a smaller value is assigned to the component difference function to make the sum d2 of the values of the component difference functions corresponding to all adjacent motion vector differences in the accumulated four motion vectors smaller, and the embedding distortion can be basically kept unchanged.
[0122] Based on the design of the distortion cost based on the local optimality of motion vectors, the embedding distortion caused by the perturbation of local optimality is adjusted according to the principle of non-uniformity of motion vectors within the macroblock, so as to effectively maintain the non-uniformity within the motion vector block group, and at the same time, the perturbation of the local optimality of motion vectors is very small.
[0123] Combined with Figure 5 , the step of calculating and obtaining the complexity distortion of the motion vector according to the principle of priority of motion vector complexity in step S12 specifically includes:
[0124] Step S1231: Construct a motion vector matrix. Obtain the information of the motion vectors according to the original motion vector set, set a processing unit with a 4×4 matrix structure to fill the horizontal and vertical components of the motion vectors of the coded frame respectively, and construct each motion vector into a horizontal motion vector matrix for storing the horizontal components of the motion vectors and a vertical motion vector matrix for storing the vertical components of the motion vectors.
[0125] Among them, for the case where there is no motion vector, such as the positions corresponding to I blocks or P_Skip blocks, etc., the predicted motion vector of the macroblock is used instead. The width of the horizontal motion vector matrix and the vertical motion vector matrix is both one-fourth of the width of the coded frame, and the height of the horizontal motion vector matrix and the vertical motion vector matrix is both one-fourth of the height of the coded frame.
[0126] Step S1232, calculating the residual: The horizontal motion vector matrix and the vertical motion vector matrix of each motion vector calculate the residuals of the horizontal motion vector matrix and the vertical motion vector matrix through three filters respectively. The residual matrix obtained after the filter decomposes the horizontal motion vector matrix is represented by formula (14):
[0127]
[0128] In the formula, represents the residual matrix obtained after the k-th filter decomposes the horizontal motion vector matrix, k represents the k-th filter, MVH represents the horizontal motion vector matrix, represents the filtering parameter matrix of the k-th filter, and * represents convolution with mirror padding;
[0129] The residual matrix obtained after the filter decomposes the vertical motion vector matrix is represented by formula (15):
[0130]
[0131] In the formula, represents the residual matrix obtained after the k-th filter decomposes the vertical motion vector matrix, k represents the k-th filter, MVV represents the vertical motion vector matrix, K (k) represents the filtering parameter matrix of the k-th filter, and * represents convolution with mirror padding;
[0132] Among them, the filtering parameter matrix of the filter is represented by formulas (16) to (18):
[0133] K (1) = h z · g T (16),
[0134] K (2) = g · h z T (17),
[0135] K (3) = g · g T (18)
[0136] In the formula, K (1) represents the filtering parameter matrix of the first filter, h z represents the low-pass filter coefficient of the Daubechies wavelet transform support basis, g T represents the transpose of the high-pass filter coefficient of the Daubechies wavelet transform support basis, K (2) represents the filtering parameter matrix of the second filter, g represents the high-pass filter coefficient of the Daubechies wavelet transform support basis, h z TDenotes the transpose of the low-pass filter coefficients of the support basis of the Daubechies wavelet transform, K (3) Denotes the filtering parameter matrix of the 3rd filter, and · represents dot product.
[0137] Step S1233, calculate the complexity distortion: According to the processing unit with a 4×4 matrix structure, calculate the horizontal distortion generated after modifying the elements in the modified horizontal motion vector matrix using the following formula:
[0138]
[0139] In the formula, ρ Hjq Denotes the horizontal distortion generated after modifying the (j, q)th element in the horizontal motion vector matrix, ε represents preventing division by zero coefficient, ε = 2 -6 , Denotes the absolute value of the difference between the (e, f)th residual element of the residual matrix obtained after the kth filter decomposes the horizontal motion vector matrix and the (e, f)th residual element of the residual matrix obtained after the horizontal motion vector matrix modified by the (j, q)th element is decomposed by the filter Denotes the (e, f)th residual element in the residual matrix obtained after the kth filter decomposes the horizontal motion vector matrix. Using this formula, the distortion corresponding to all residual elements of the residual matrix obtained after all filters decompose the horizontal motion vector matrix can be obtained by accumulation. Among them, the residual element refers to the element in each residual matrix.
[0140] Then the steps to generate the horizontal distortion after modifying a certain element in the horizontal motion vector matrix can be specifically:
[0141] Obtain the horizontal motion vector matrix after modifying a certain element, and calculate the residual matrix obtained by decomposing the horizontal motion vector matrix modified by a certain element by each filter;
[0142] Calculate the absolute value of the difference between each residual element of the residual matrix obtained by decomposing the horizontal motion vector matrix modified by a certain element by each filter and the corresponding residual element of the residual matrix of the horizontal motion vector matrix before modifying a certain element by the filter;
[0143] Calculate the residual ratio of the absolute value of the difference between the residual elements of each filter and the residual elements of the residual matrix of the horizontal motion vector matrix before modifying a certain element by the filter;
[0144] Accumulate the sum of the residual ratios of all elements in the horizontal motion vector matrix modified by a certain element corresponding to all filters as the horizontal distortion generated by modifying a certain element in the horizontal motion vector matrix.
[0145] Calculate the vertical distortion generated after modifying the elements in the vertical motion vector matrix according to the following formula:
[0146]
[0147] where ρ Vjq represents the vertical distortion generated after modifying the (j, q)-th element in the vertical motion vector matrix, ε represents a coefficient to prevent division by zero, and ε = 2 -6 , represents the absolute value of the difference between the (e, f)-th residual element of the residual matrix obtained by decomposing the vertical motion vector matrix by the k-th filter and the (e, f)-th residual element of the residual matrix obtained by decomposing the vertical motion vector matrix with the (j, q)-th element modified by the filter, represents the (e, f)-th residual element of the residual matrix obtained by decomposing the vertical motion vector matrix by the k-th filter. Using this formula, the distortion corresponding to all residual elements of the residual matrix obtained by decomposing the vertical motion vector matrix by all filters can be obtained by accumulation.
[0148] Then the steps for calculating the vertical distortion generated after modifying a certain element in the vertical motion vector matrix can be specifically as follows:
[0149] Obtain the vertical motion vector matrix after modifying a certain element, and calculate the residual matrices obtained by decomposing the vertical motion vector matrix with a certain element modified by each filter;
[0150] Calculate the absolute value of the difference between each residual element of the residual matrix obtained by decomposing the vertical motion vector matrix with a certain element modified by each filter and the corresponding residual element of the residual matrix of the vertical motion vector matrix before modifying a certain element by the filter;
[0151] Calculate the residual ratio of the absolute value of the difference between the residual elements of each filter and the residual elements of the residual matrix of the vertical motion vector matrix before modifying a certain element by the filter;
[0152] Accumulate the sum of the residual ratios of all elements in the vertical motion vector matrix with a certain element modified by all filters as the vertical distortion generated by modifying a certain element in the horizontal motion vector matrix.
[0153] Since each motion vector may correspond to multiple elements in the horizontal motion vector matrix and the vertical motion vector matrix, the complexity distortion generated when modifying the motion vector can be calculated according to the following formula:
[0154] ρ com ={∑[(ρ Hjq +ρ Vjq ) / 2]} / n
[0155] where ρ com represents complexity distortion, ρ Hjq represents the horizontal distortion generated after modifying the (j, q)-th element in the horizontal motion vector matrix, ρ Vjq represents the vertical distortion generated after modifying the (j, q)-th element in the vertical motion vector matrix, (ρ Hjq + ρ Vjq ) / 2 represents the complexity distortion generated after respectively modifying the (j, q)-th element in the horizontal motion vector matrix and the vertical motion vector matrix in the motion vector, n represents the number of processing units included in the coding block corresponding to the motion vector, represents the amount of elements in the horizontal motion vector matrix and the vertical motion vector matrix corresponding to the motion vector, {∑[(ρ Hjq + ρ Vjq ) / 2]} / n represents the average value of the sum of the complexity distortions generated by modifying all elements in the horizontal motion vector matrix and the vertical motion vector matrix of the motion vector.
[0156] Among them, by calculating the complexity distortion according to the principle of priority of motion vector complexity, the video steganography can resist the feature attack of the corresponding distortion allocation principle, improving the security.
[0157] Preferably, the step of calculating and obtaining the final joint distortion according to the adjusted distortion and the complexity distortion in the step S12 may be specifically:
[0158] According to the obtained adjusted distortion and complexity distortion, calculate the product between the adjusted distortion and the complexity distortion of the corresponding motion vector as the final joint distortion. It can be expressed by formula (19):
[0159] ρ a = ρ mvc * ρ com (19)
[0160] where ρ a represents the final joint distortion, ρ mvc represents the adjusted distortion, ρ com represents the complexity distortion.
[0161] Among them, Table 1 shows the correct detection rates of the video steganography method based on the motion vector distortion allocation principle under the attacks of three steganalysis algorithms based on different features (Feature sets). It can be seen from the table that as the absolute embedding capacity of the secret information increases, the correct detection rates of all steganalysis algorithms under different quantization parameters (QP) increase. This is because the larger the absolute embedding capacity, the greater the damage to the statistical characteristics of the original motion vector set, and the more vulnerable it is to attacks. The correct detection rate of the CCF (Combined and Calibrated Features) feature for the video steganography method based on the motion vector distortion allocation principle is close to random guessing, that is, the correct detection rate is close to 50%, indicating that the video steganography method based on the motion vector distortion allocation principle can well resist attacks based on the local optimality and complexity characteristics of motion vectors. Under the same absolute embedding capacity, as the quantization parameter (QP) increases, the detection performance of the NPELO (Near-Perfect Estimation for Local Optimality) feature improves significantly. This is because the larger the quantization parameter (QP), the coarser the macroblock partition granularity and more macroblocks are partitioned into skip modes, so the total number of motion vectors is less. Under the same absolute embedding capacity, the proportion of modified motion vectors is larger, so it is vulnerable to attacks. In the extreme case where the quantization parameter (QP) is 34 and the absolute embedding capacity is 200 bpf, due to the reduction of the total number of motion vectors, the average embedding rate corresponding to the motion vectors in the dataset is 0.72 bpnsmv (bits per non-skip motion vector), and the correct detection rate is 84.4 at this time, with relatively low security. However, this phenomenon is not very obvious in the MVC feature. This is because the MVC feature mainly relies on the non-uniformity of motion vectors between sub-blocks inside the macroblock. When the quantization parameter (QP) increases, although the proportion of modified motion vectors becomes larger, the number of "block groups" available for the MVC feature becomes smaller. Therefore, the detection ability of the MVC feature does not change significantly under different quantization parameters (QP).
[0162]
[0163] In summary, a video steganography method based on the principle of motion vector distortion allocation according to the present invention obtains the partitioning method of macroblocks and their sub-blocks and the original motion vector set during the first complete inter-frame predictive coding, and calculates and obtains the final combined distortion according to the principle of local optimality of motion vectors, the principle of non-uniformity of motion vectors within a macroblock, and the principle of priority of motion vector complexity. According to the carrier vector and the corresponding final combined distortion, the secret information is embedded by combining STC coding, thereby comprehensively considering the influence of various distortion allocation principles of motion vectors on the video, so as to resist the attacks of different types of steganalysis features by obtaining the final combined distortion, greatly improving the security performance of the steganography algorithm against different types of steganalysis algorithms, expanding the application range of the steganography algorithm, and reducing the impact on the objective quality of the video.
[0164] As described above, the above is only a specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present invention can easily think of various equivalent modifications or substitutions, and these modifications or substitutions should all be covered within the protection scope of the present invention. Therefore, the protection scope of the present invention should be subject to the protection scope of the claims.
Claims
1. A video steganography method based on the principle of motion vector distortion allocation, characterized in that, Including: Precoding: Perform the first complete inter-frame prediction coding on the current coding frame to obtain the partitioning method of macroblocks and their sub-blocks and the set of original motion vectors; wherein, the set of original motion vectors is a set of multiple original motion vectors. Distortion calculation: Obtain the candidate motion vectors of each motion vector according to the principle of local optimality of motion vectors, and calculate the embedding distortion caused by local optimality perturbation; adjust the obtained embedding distortion according to the principle of non-uniformity of motion vectors within the macroblock to obtain the adjusted distortion that maintains non-uniformity within the block group; calculate the complexity distortion of the motion vectors according to the principle of priority of motion vector complexity, and calculate the final joint distortion according to the adjusted distortion and the complexity distortion. Information embedding: According to the carrier vector and the corresponding final joint distortion, combine STC coding to perform information embedding on the secret information to obtain the stego carrier vector after steganography. When the value of an element of the carrier vector is different from the value of the corresponding element of the stego carrier vector after steganography, replace the obtained corresponding candidate motion vector into the set of original motion vectors to obtain the modified set of motion vectors. Re-encoding: Keep the partitioning method of the macroblocks and their sub-blocks obtained during the first complete inter-frame prediction coding, and perform the second inter-frame prediction coding according to the obtained modified set of motion vectors to complete the coding work and output the bitstream.
2. The video steganography method based on the motion vector distortion allocation principle according to claim 1, characterized in that Before the steps of the precoding, it further includes: Carrier construction: Obtain multiple independent motion vectors after motion estimation of the coding frame, and map each motion vector of the coding frame according to the parity check function to obtain the carrier vector.
3. The video steganography method based on the motion vector distortion allocation principle according to claim 1, characterized in that The steps of obtaining the candidate motion vectors of each motion vector according to the principle of local optimality of motion vectors and calculating the embedding distortion caused by local optimality perturbation in the steps of the distortion calculation specifically include: Determine the range of the total candidate motion vector set: Obtain the set of the first candidate motion vectors that only modify the horizontal component or the vertical component of the motion vector and the maximum component modification amplitude is 1, obtain the set of the second candidate motion vectors that simultaneously modify the horizontal component and the vertical component of the motion vector but the modification amplitudes of the two are different and the maximum modification amplitude is 2, and determine the range of the total candidate motion vector set according to the set of the first candidate motion vectors and the set of the second candidate motion vectors. Determine the final candidate motion vector: Judge whether the original motion vector satisfies local optimality. If so, obtain the candidate motion vectors that satisfy local optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors that satisfy local optimality, and select the candidate motion vector with the smallest reconstructed Lagrangian rate distortion as the final candidate motion vector; if the original motion vector does not satisfy local optimality, obtain the candidate motion vectors that satisfy local non-optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors that satisfy local non-optimality, and select the candidate motion vector with the smallest reconstructed Lagrangian rate distortion as the final candidate motion vector. Calculating the embedding distortion caused by local optimality perturbation: Calculate the difference between the Lagrangian rate distortion of the reference block and the coded block reconstructed with the original motion vector and the Lagrangian rate distortion of the reference block and the coded block reconstructed with the final candidate motion vector, and take the larger value after comparing the difference with 1 as the reference distortion. Obtain the embedding distortion according to the following formula: ρ lo = β * ρ where ρ lo represents the embedding distortion, ρ represents the reference distortion, and β represents a preset parameter.
4. The video steganography method based on the motion vector distortion allocation principle according to claim 3, characterized in that After the step of obtaining the candidate motion vectors satisfying local optimality in the total candidate motion vector set in the step of determining the final candidate motion vector, the following steps are further included: If there are no candidate motion vectors satisfying local optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors in the set of the first candidate motion vectors, and select the candidate motion vector with the smallest reconstructed Lagrangian rate distortion as the final candidate motion vector.
5. The video steganography method based on the motion vector distortion allocation principle according to claim 3, characterized in that After the step of obtaining the candidate motion vectors satisfying local non-optimality in the total candidate motion vector set in the step of determining the final candidate motion vector, the following steps are further included: If there are no candidate motion vectors satisfying local non-optimality in the total candidate motion vector set, calculate the reconstructed Lagrangian rate distortion of all candidate motion vectors in the set of the first candidate motion vectors, and select the candidate motion vector with the smallest reconstructed Lagrangian rate distortion as the final candidate motion vector.
6. The video steganography method based on the motion vector distortion allocation principle according to claim 1, characterized in that The step of adjusting the obtained embedding distortion according to the motion vector non-uniformity principle in the macroblock to obtain the adjusted distortion that maintains the non-uniformity within the block group in the distortion calculation step specifically includes: Obtaining the embedding distortion: Obtain the candidate motion vectors and their corresponding embedding distortions; Classifying the block groups: Classify the block groups according to the division method of the macroblock and its sub-blocks. Classify the blocks divided unevenly horizontally and vertically into the first type of block group, and classify the blocks divided evenly horizontally and vertically into the second type of block group; Calculating the adjusted distortion of the motion vectors of the first type of block group: Select two adjacent motion vectors in the first type of block group, obtain the sum of the absolute values of the differences in the horizontal components of the two motion vectors and the absolute values of the differences in the vertical components of the two motion vectors. When the sum value is 0 or 1, expand the embedding distortion by a preset multiple as the adjusted distortion; otherwise, use the embedding distortion as the adjusted distortion; Calculating the adjusted distortion of the motion vectors of the second type of block group: Select four motion vectors distributed in a 2×2 matrix in the second type of block group, and obtain the absolute values of the differences in the horizontal components of two adjacent motion vectors and the absolute values of the differences in the vertical components of two adjacent motion vectors as the adjacent motion vector component differences; Set a component difference function, and assign values to the component difference function according to the corresponding adjacent motion vector component differences. Among them, when the adjacent motion vector component difference is 0 or 1, the component difference function takes the value of 1; otherwise, the component difference function takes the value of 0; Accumulate the sum of the values of the component difference functions corresponding to all adjacent motion vector component differences among the four motion vectors, and obtain the adjusted distortion according to the following formula in combination with the embedding distortion: ρ mvc =(c2*d2 + 1)*ρ lo where ρ mvc represents the adjustment distortion, c2 represents the penalty factor, d2 represents the sum of the values of the component difference functions corresponding to the differences between all adjacent motion vector components among the four motion vectors, and ρ lo represents the embedding distortion.
7. The video steganography method based on the motion vector distortion allocation principle according to claim 1, characterized in that The step of calculating the complexity distortion of the motion vector according to the motion vector complexity priority principle in the distortion calculation step specifically includes: Construct motion vector matrix: Obtain the information of motion vectors according to the original motion vector set, set a processing unit with a 4×4 matrix structure to fill the horizontal and vertical components of the motion vectors of the coded frame respectively, and construct each motion vector into a horizontal motion vector matrix for storing the horizontal component of the motion vector and a vertical motion vector matrix for storing the vertical component of the motion vector; Calculate residuals: The horizontal and vertical motion vector matrices of each motion vector calculate the residuals of the horizontal and vertical motion vector matrices through three filters respectively. The residual matrix obtained after the filter decomposes the horizontal motion vector matrix is represented by the following formula: In the formula, represents the residual matrix obtained after decomposing the motion vector matrix at the k-th filter decomposition level, k represents the k-th filter, MVH represents the horizontal motion vector matrix, K (k) represents the filter parameter matrix of the k-th filter, and * represents convolution with mirror padding; The residual matrix obtained after the filter decomposes the vertical motion vector matrix is represented by the following formula: In the formula, represents the residual matrix obtained after the k-th filter decomposes the vertical motion vector matrix, k represents the k-th filter, MVV represents the vertical motion vector matrix, and K (k) represents the filtering parameter matrix of the k-th filter, and * represents convolution with mirror padding; Among them, the filter parameter matrix of the filter is represented by the following formula: K (1) = h z ● g T , K (2) = g ● h z T , K (3) = g ● g T where K (1) represents the filtering parameter matrix of the first filter, h z represents the low-pass filter coefficients of the support basis of the Daubechies wavelet transform, g T represents the transpose of the high-pass filter coefficients of the support basis of the Daubechies wavelet transform, K (2) represents the filtering parameter matrix of the second filter, g represents the high-pass filter coefficients of the support basis of the Daubechies wavelet transform, h z T represents the transpose of the low-pass filter coefficients of the support basis of the Daubechies wavelet transform, K (3) represents the filtering parameter matrix of the third filter, ● represents the dot product; Calculate complexity distortion: Calculate the horizontal distortion generated after modifying the elements in the horizontal motion vector matrix according to the processing unit with a 4×4 matrix structure and the following formula: where ρ Hjq represents the horizontal distortion generated after modifying the (j,q)-th element in the horizontal motion vector matrix, ε represents a coefficient to prevent division by zero, and ε = 2 -6 , represents the absolute value of the difference between the (e,f)-th residual element of the residual matrix obtained after the k-th filter decomposes the horizontal motion vector matrix and the (e,f)-th residual element of the residual matrix obtained from the horizontal motion vector matrix after modifying the (j,q)-th element by this filter decomposition, represents the (e,f)-th residual element in the residual matrix obtained after the k-th filter decomposes the horizontal motion vector matrix; Calculate the vertical distortion generated after modifying the elements in the vertical motion vector matrix according to the following formula: where ρ Vjq represents the vertical distortion generated after modifying the (j,q)-th element in the vertical motion vector matrix, ε represents a coefficient to prevent division by zero, and ε = 2 -6 , represents the absolute value of the difference between the (e,f)-th residual element of the residual matrix obtained by decomposing the vertical motion vector matrix with the k-th filter and the (e,f)-th residual element of the residual matrix obtained by decomposing the vertical motion vector matrix with the (j,q)-th element modified by the filter represents the (e,f)-th residual element of the residual matrix obtained by decomposing the vertical motion vector matrix with the k-th filter Calculate the complexity distortion generated when modifying the motion vector according to the following formula: ρ com = {∑[(ρ Hjq + ρ Vjq ) / 2]} / n Where ρ com represents the complexity distortion, ρ Hjq represents the horizontal distortion generated after modifying the (j, q)-th element in the horizontal motion vector matrix, ρ Vjq represents the vertical distortion generated after modifying the (j, q)-th element in the vertical motion vector matrix, (ρ Hjq + ρ Vjq ) / 2 represents the complexity distortion generated after separately modifying the (j, q)-th element in the horizontal motion vector matrix and the vertical motion vector matrix in the motion vector, n represents the number of processing units included in the coding block corresponding to the motion vector, {∑[(ρ Hjq + ρ Vjq ) / 2]} / n represents the average value of the sum of the complexity distortions generated by modifying all elements in the horizontal motion vector matrix and the vertical motion vector matrix of the motion vector.
8. The video steganography method based on the motion vector distortion allocation principle according to claim 7, characterized in that, The step of calculating the final combined distortion according to the adjusted distortion and the complexity distortion in the step of distortion calculation is specifically as follows: According to the obtained adjusted distortion and complexity distortion, calculate the product between the adjusted distortion and the complexity distortion of the corresponding motion vector as the final combined distortion.
Citation Information
Patent Citations
Video steganography method based on motion vector
CN103338376A
Video steganography method, system and device based on macro block complexity
CN111711822A