Disclosure of Invention
In view of this, the present invention provides a video frame processing method, a video frame processing device, and an electronic device, so as to solve the problems that when a filter effect is added to a video frame, the entire video frame is processed uniformly, the filter effect is single, the video special effect is poor, the video synthesis quality is reduced, and the filter requirements of users cannot be met.
In order to solve the technical problems, the invention adopts the following technical scheme:
a video frame processing method, comprising:
acquiring a video frame needing filter adding operation in a target video, and converting the video frame into a target video frame in a preset format;
partitioning the target video frame to obtain a plurality of sub video frames;
and according to the arrangement sequence of the plurality of sub-video frames, dynamically setting the gray value of the edge of the sub-video frame as a corresponding target gray value, and setting the transparency of the edge of the sub-video frame as a corresponding target transparency.
Optionally, after converting the video frame into a target video frame in a preset format, the method further includes:
extracting a channel value of a preset channel of a pixel in the target video frame, and performing correction operation on the channel value to obtain a corrected channel value;
calculating a linear correction value of the pixel according to the corrected channel value;
and determining a gray value corresponding to the linear correction value, and taking the gray value as the gray value of the pixel.
Optionally, after determining the gray value corresponding to the linear correction value and taking the gray value as the gray value of the pixel, before blocking the target video frame to obtain a plurality of sub-video frames, the method further includes:
and carrying out filtering operation on the target video frame.
Optionally, blocking the target video frame to obtain a plurality of sub-video frames, including:
splitting the target video frame into a plurality of rectangular pictures with the side length being a preset length, and taking each rectangular picture as a sub-video frame;
and setting the pixel value of the side length of the sub video frame based on the preset length.
Optionally, dynamically setting the gray-level value of the edge of the sub-video frame as a corresponding target gray-level value and the transparency of the edge of the sub-video frame as a corresponding target transparency according to the arrangement order of the plurality of sub-video frames, includes:
determining a target gray value and a target transparency of the edge of the sub video frame;
according to the arrangement sequence of the sub video frames, in different filter adding time, setting the gray value of the edge of the sub video frame corresponding to the filter adding time as the target gray value, and setting the transparency of the edge of the sub video frame as the target transparency.
Optionally, determining the target gray value and the target transparency of the edge of the sub-video frame includes:
performing edge detection processing on the sub-video frame to determine the edge of the sub-video frame;
acquiring the gray value of the pixel in the preset range of the edge;
correcting the gray value of the edge based on the gray value of the pixel in the preset range of the edge to obtain a target gray value of the edge of the sub-video frame;
acquiring the transparency of the edge of the sub video frame and a transparency coefficient of a transparency interval where the transparency is located;
and calculating the target transparency of the edge of the sub-video frame according to a preset maximum transparency value, the transparency of the edge of the sub-video frame and the transparency coefficient.
Optionally, according to the arrangement order of the plurality of sub-video frames, in different filter adding times, setting the gray scale value of the edge of the sub-video frame corresponding to the filter adding time as the target gray scale value, and setting the transparency of the edge of the sub-video frame as the target transparency, includes:
acquiring the total filter adding time of the target video frame, and calculating the filter adding time of the sub video frame according to the total filter adding time and the number of the sub video frames;
determining the sub-video frame corresponding to the adding time of each filter according to the arrangement sequence of the plurality of sub-video frames;
and in different filter adding time, setting the gray value of the edge of the sub video frame corresponding to the filter adding time as the target gray value, and setting the transparency of the edge of the sub video frame as the target transparency.
A video frame processing apparatus comprising:
the video frame conversion module is used for acquiring a video frame needing filter adding operation in a target video and converting the video frame into a target video frame in a preset format;
the video frame processing module is used for blocking the target video frame to obtain a plurality of sub video frames;
and the filter processing module is used for dynamically setting the gray value of the edge of the sub-video frame as a corresponding target gray value and the transparency of the edge of the sub-video frame as a corresponding target transparency according to the arrangement sequence of the plurality of sub-video frames.
Optionally, the method further comprises:
the channel value processing module is used for extracting the channel value of a preset channel of the pixel in the target video frame and correcting the channel value to obtain a corrected channel value;
the correction module is used for calculating a linear correction value of the pixel according to the corrected channel value;
and the gray value determining module is used for determining the gray value corresponding to the linear correction value and taking the gray value as the gray value of the pixel.
Optionally, the method further comprises:
and the filter module is used for carrying out filtering operation on the target video frame.
Optionally, the video frame processing module is specifically configured to:
splitting the target video frame into a plurality of rectangular pictures with the side length of a preset length, taking each rectangular picture as a sub video frame, and setting the pixel value of the side length of the sub video frame based on the preset length.
Optionally, the filter processing module comprises:
the data determination submodule is used for determining a target gray value and a target transparency of the edge of the sub video frame;
and the filter adding sub-module is used for setting the gray value of the edge of the sub-video frame corresponding to the filter adding time as the target gray value and setting the transparency of the edge of the sub-video frame as the target transparency within different filter adding times according to the arrangement sequence of the plurality of sub-video frames.
An electronic device, comprising: a memory and a processor;
wherein the memory is used for storing programs;
the processor calls a program and is used to perform the video frame processing method described above.
Compared with the prior art, the invention has the following beneficial effects:
the invention provides a video frame processing method, a video frame processing device and electronic equipment, wherein a video frame needing to be subjected to filter adding operation in a target video is obtained, the video frame is converted into a target video frame in a preset format, the target video frame is blocked to obtain a plurality of sub video frames, the gray value of the edge of each sub video frame is dynamically set to be a corresponding target gray value according to the arrangement sequence of the plurality of sub video frames, and the transparency of the edge of each sub video frame is set to be a corresponding target transparency. In the invention, the filter is dynamically added to the sub-video frame obtained by splitting one video frame, so that the filter effect is increased, the video special effect is improved, the video synthesis quality is improved, and the filter requirements of users are met. In addition, the video frame is converted into the target video frame in the preset format, so that the lossless filter processing effect can be realized when the filter effect is added.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
At present, when a filter effect is added to a video frame, the whole video frame is processed in a unified way, the filter effect is single, the special effect display is poor, diversified requirements in contents are difficult to adapt, and the filter requirements of users cannot be met.
In order to solve the technical problem, the inventor finds that the video frame can be subjected to blocking processing, filters are dynamically added to blocked sub-video frames, the filter effect is increased, the special effect is improved, diversified requirements are met, and the filter requirements of users are met.
Specifically, the embodiment of the invention provides a video frame processing method, a video frame processing device and electronic equipment, wherein a video frame in a target video, which needs to be subjected to filter adding operation, is obtained, the video frame is converted into a target video frame in a preset format, the target video frame is blocked to obtain a plurality of sub video frames, and according to the arrangement sequence of the plurality of sub video frames, the gray value of the edge of each sub video frame is dynamically set as a corresponding target gray value, and the transparency of the edge of each sub video frame is set as a corresponding target transparency. In the invention, the filter is dynamically added to the sub-video frame obtained by splitting one video frame, so that the filter effect is increased, the video special effect is improved, the video synthesis quality is improved, and the filter requirements of users are met. In addition, the video frame is converted into the target video frame in the preset format, so that the lossless filter processing effect can be realized when the filter effect is added.
On the basis of the above, another embodiment of the present invention provides a video frame processing method, and with reference to fig. 1, the method may include:
and S11, acquiring a video frame which needs to be subjected to filter adding operation in the target video, and converting the video frame into a target video frame in a preset format.
Wherein the predetermined format is a predetermined PGM format.
In this embodiment, a filter operation may be sequentially added to video frames in a video, which is referred to as a target video in this embodiment.
And converting the video frame into a target video frame in a preset PGM format aiming at the video frame needing filter adding operation in the target video.
Here, PGM (one of simple file formats for storing and exchanging image data) is composed of two parts of data, a header part and a pixel data part.
The first row in the header part identifies the picture format with a "Magic Number" which is a pattern of P1, P2, P3, P4, P5, P6, etc. Wherein the reading of P1-P3 mode uses the reading supporting Ascii code format, and PIL only supports the reading of P4-P6 mode of binary format.
The second row is the picture width, picture height.
The third row is the maximum value of this picture data.
The pixel data is stored in row by row in a row-major order. Under default conditions. The length of each line cannot exceed 70 characters, and it is safe to store one pixel per line.
In this embodiment, the format of the video frame is converted into the preset PGM format because the values of some pixels are inevitably damaged as long as the existing jgp, png, bmp, yuv and other format files are processed, and the value of each pixel of the PGM file is vector, so that a lossless filter can be achieved. The filter effect adopts a pgm format, visual preview can be carried out on the pgm format in the early stage, the filter effect can be obtained visually, and the filter effect can be set for the processed video in the later stage and then the lossless filter processing effect can be achieved.
It should be noted that a filter effect picture may be preset, and the mode of the filter effect picture may be the above-mentioned modes P1, P2, P3, P4, P5, P6, etc., and the preset PGM format in this embodiment is the mode of the filter effect picture, such as P2.
After the video frame is converted into a target video frame in a preset format, the gray value of a pixel in the target video frame can be determined.
In practical applications, for each pixel in the target video frame, its corresponding gray value is determined.
Specifically, determining the gray value of the pixel in the target video frame may include:
1) and extracting a channel value of a preset channel of a pixel in the target video frame, and performing correction operation on the channel value to obtain a corrected channel value.
Specifically, for a pixel in the target video frame, a channel value of a preset channel thereof may be extracted. Wherein the preset channel may be R, G, B channels. An RGBA channel map of the pixel may be taken and R, G, B values extracted therefrom. And then, correcting the channel value to obtain a corrected channel value.
Wherein, the corrected channel value is:
Rlinear=pow(R,1/Gamma)
Glinear=pow(G,1/Gamma)
Blinear=pow(B,1/Gamma);
wherein Rlinear, Glinear and Blinear are in the range of [0,1], Rlinear is the R value after correction, Glinear is the G value after correction, and Blinear is the B value after correction. Gamma is a fixed value, such as 2.2.
2) And calculating the linear correction value of the pixel according to the corrected channel value.
Specifically, the linear correction value clearear of the pixel is:
Clinear=0.2126Rlinear+0.7152Glinear+0.0722Blinear。
3) and determining a gray value corresponding to the linear correction value, and taking the gray value as the gray value of the pixel.
Specifically, the linear correction value obtained by linear transformation calculation is corrected according to a linear Gamma correction formula to obtain a gray value Csrgb corresponding to the linear correction value, which specifically is:
csrgb 12.92 clear, when clear 0.0031308;
Csrgb=1.055*Clinear1/2.4-0.055, when clear>0.0031308
Through the step, the gray level image gray level value with the pixel value corresponding to each pixel point equal to the PGM input can be obtained.
In this embodiment, determining the gray value corresponding to the linear correction value is to perform graying processing on the image.
It should be noted that, after determining the gray value of the pixel in the target video frame (specifically, after determining the gray value corresponding to the linear correction value and taking the gray value as the gray value of the pixel), before performing step S12, a filtering operation may be performed on the target video frame.
When filtering, gaussian filtering can be adopted, and interference can be avoided through filtering.
And S12, blocking the target video frame to obtain a plurality of sub video frames.
Specifically, the target video frame is split into a plurality of rectangular pictures with the side length being a preset length, each rectangular picture is used as a sub-video frame, and the pixel value of the side length of the sub-video frame is set based on the preset length.
For example, reading a target video frame which is a gray image into a pixel array, partitioning, dividing a PGM full map into squares with the side length of m (preset length), and generating sub-maps according to the column sequence, wherein each sub-map is a sub-video frame.
And (4) setting the pixel p of the area corresponding to the side length of the sub video frame as m/the resolution of the original image.
And the number of the sub-video frames in the row and column directions is equal to the resolution size of the original image/the pixel (p) corresponding to the side length of the sub-image.
The sub-block numbers are arranged according to 1, 2, 3 and 4.
And S13, according to the arrangement sequence of the plurality of sub-video frames, dynamically setting the gray value of the edge of the sub-video frame as a corresponding target gray value, and setting the transparency of the edge of the sub-video frame as a corresponding target transparency.
In practical application, when the gray value and the transparency of the edge of the sub-video frame are dynamically set, the target gray value and the target transparency of the edge of the sub-video frame need to be determined, and then the dynamic filter adding operation is performed.
Namely, step S13 includes:
1) determining a target gray value and a target transparency of the edge of the sub video frame;
2) according to the arrangement sequence of the sub video frames, in different filter adding time, setting the gray value of the edge of the sub video frame corresponding to the filter adding time as the target gray value, and setting the transparency of the edge of the sub video frame as the target transparency.
The implementation process of determining the target gray value and the target transparency of the edge of the sub-video frame is as follows:
in this embodiment, when the filter is added, the gray scale value and the transparency of the edge of the sub-video frame are adjusted, but the gray scale value and the transparency value of the non-edge area of the sub-video frame are kept unchanged.
Referring to fig. 2, determining the target gray value and the target transparency of the edge of the sub video frame may include:
and S21, carrying out edge detection processing on the sub-video frame to determine the edge of the sub-video frame.
In this embodiment, the canny operator may be used to perform edge detection on the sub-video frame, so as to obtain the edge of the sub-video frame.
And S22, acquiring the gray value of the pixel in the preset range of the edge.
Specifically, in order to ensure that the gray value of the pixel changes naturally when the filter effect is added, the gray value of the edge may be corrected using the gray value of the pixel near the edge, so that the gray value of the edge changes naturally.
The pixels within the preset range in the present embodiment may be four pixels above, below, to the left, and to the right of the pixels at the edge. Then, the gradation values of the four pixels are acquired.
And S23, correcting the gray value of the edge based on the gray value of the pixel in the preset range of the edge to obtain the target gray value of the edge of the sub-video frame.
Specifically, the edge may be used as a boundary, and the weight of the gray-scale values of the four pixels around the edge is preset for the pixel at the edge, and then the product of the gray-scale value of the pixel and the weight may be used as the target gray-scale value of the edge of the sub-video frame.
The gray values of the pixels inside and outside the edge are consistent with the gray values of the corresponding positions of the sub video frames.
And S24, acquiring the transparency of the edge of the sub video frame and the transparency coefficient of the transparency interval where the transparency is located.
Specifically, transparency intervals are preset, and different transparency intervals correspond to different transparency coefficient intervals, such as [ under, over ]. Wherein, under is the minimum value of the transparency coefficient of the interval, and over is the maximum value of the transparency coefficient of the interval.
In this embodiment, the transparency of the edge of the sub video frame is obtained, then the transparency interval where the transparency is located is determined, and then transparency coefficients under and over corresponding to the transparency interval are determined.
And S25, calculating the target transparency of the edge of the sub-video frame according to the preset maximum transparency value, the transparency of the edge of the sub-video frame and the transparency coefficient.
Specifically, the target transparency of the edge of the sub-video frame is:
under*(1-(alpha/alpha_maxval))+over*(alpha/alpha_maxval)
wherein, alpha _ maxval is a preset maximum transparency value, alpha is the transparency of the edge of the sub-video frame, under is the minimum value of the transparency coefficient, and over is the maximum value of the transparency coefficient.
In another implementation manner of the present invention, according to the arrangement order of the plurality of sub-video frames, in different filter adding times, setting the gray value of the edge of the sub-video frame corresponding to the filter adding time as the target gray value, and setting the transparency of the edge of the sub-video frame as the target transparency, are implemented as follows:
in this embodiment, the filter adding operation is not performed on the entire target video frame in a unified manner, but may be performed on different sub video frames within different filter adding time for the sub video frames in the target video frame.
In this embodiment, referring to fig. 3, "setting, according to the arrangement order of the plurality of sub-video frames, the gray-level value of the edge of the sub-video frame corresponding to the filter adding time as the target gray-level value and the transparency of the edge of the sub-video frame as the target transparency in different filter adding times" specifically includes:
s31, acquiring the total filter adding time of the target video frame, and calculating the filter adding time of the sub-video frame according to the total filter adding time and the number of the sub-video frames.
Specifically, the filter adding time is equal to the total filter adding time/the number of sub video frames.
And S32, determining the sub video frame corresponding to each filter adding time according to the arrangement sequence of the plurality of sub video frames.
In this embodiment, in each filter adding time, which sub-video frame is subjected to the filter operation may be preset, for example, the sub-video frames may be sequentially arranged in columns or rows.
S33, in different filter adding time, setting the gray value of the edge of the sub video frame corresponding to the filter adding time as the target gray value, and setting the transparency of the edge of the sub video frame as the target transparency.
For example, if 30 sub-video frames are subjected to the filter adding operation within 1s, then the filter operation may be performed on the first sub-video frame in column order within 1/30 s. Then, in 2/30s, a second sub-video frame may be subjected to a filter operation … …, and so on, until 30/30s, a thirty-th sub-video frame is subjected to a filter operation.
In addition, at least one sub-video frame may be subjected to a simultaneous filter addition operation, e.g., in 1/30s, a first sub-video frame may be subjected to a filter operation, and in 2/30s, second and third sub-video frames may be subjected to a filter operation … … simultaneously. When the filter operation is carried out on the second sub video frame and the third sub video frame at the same time, the parallel filter adding operation can be adopted, the processing speed is improved, and the time consumption is reduced.
Adding the filter refers to setting the gray value of the edge of the sub video frame as the target gray value and setting the transparency of the edge of the sub video frame as the target transparency.
Namely, the gradient change of the video frame picture color is changed through the change of the PGM pixel value, and the effect of a video track filter is further achieved. If yes, the preset PGM format is changed, and finally displayed filter effects are different.
After filter addition is performed on the present video frame, filter addition may be performed on the next video frame, and so on, until the last video frame.
In this embodiment, a video frame in a target video, which needs to be subjected to a filter adding operation, is obtained, the video frame is converted into a target video frame in a preset format, the target video frame is blocked to obtain a plurality of sub-video frames, and according to an arrangement sequence of the plurality of sub-video frames, a gray value of an edge of each sub-video frame is dynamically set as a corresponding target gray value, and a transparency of the edge of each sub-video frame is set as a corresponding target transparency. In the invention, the filter is dynamically added to the sub-video frame obtained by splitting one video frame, so that the filter effect is increased, the video special effect is improved, the video synthesis quality is improved, and the filter requirements of users are met. In addition, in the invention, the video frame is converted into the target video frame in the preset format, so that the lossless filter processing effect can be realized when the filter effect is added.
In addition, the filter is added in the embodiment, the efficiency is high, the video special effect output effect can be edited, the design and research and development cost of the special effect can be reduced, the video special effect is richer and diversified, the final synthesis quality is ensured, and the editing efficiency is improved. In addition, the operation is simple and convenient, and the study and the use are easy.
In addition, when the filter is added, the filter can be added in a parallel mode, so that the efficiency is improved, and the time consumption is reduced.
Optionally, on the basis of the above embodiment of the video frame processing method, another embodiment of the present invention provides a video frame processing apparatus, and with reference to fig. 4, the video frame processing apparatus may include:
the video frame conversion module 11 is configured to acquire a video frame in a target video, which needs to be subjected to filter adding operation, and convert the video frame into a target video frame in a preset format;
the video frame processing module 12 is configured to block the target video frame to obtain a plurality of sub-video frames;
and a filter processing module 13, configured to dynamically set, according to the arrangement order of the multiple sub-video frames, a gray value of an edge of each sub-video frame as a corresponding target gray value, and a transparency of the edge of each sub-video frame as a corresponding target transparency.
Further, still include:
the channel value processing module is used for extracting the channel value of a preset channel of the pixel in the target video frame and correcting the channel value to obtain a corrected channel value;
the correction module is used for calculating a linear correction value of the pixel according to the corrected channel value;
and the gray value determining module is used for determining the gray value corresponding to the linear correction value and taking the gray value as the gray value of the pixel.
Further, still include:
and the filter module is used for carrying out filtering operation on the target video frame.
Further, the video frame processing module is specifically configured to:
splitting the target video frame into a plurality of rectangular pictures with the side length of a preset length, taking each rectangular picture as a sub video frame, and setting the pixel value of the side length of the sub video frame based on the preset length.
Further, the filter processing module 13 includes:
the data determination submodule is used for determining a target gray value and a target transparency of the edge of the sub video frame;
and the filter adding sub-module is used for setting the gray value of the edge of the sub-video frame corresponding to the filter adding time as the target gray value and setting the transparency of the edge of the sub-video frame as the target transparency within different filter adding times according to the arrangement sequence of the plurality of sub-video frames.
Further, the data determination sub-module includes:
performing edge detection processing on the sub-video frame to determine the edge of the sub-video frame;
a gray value acquisition unit for acquiring a gray value of a pixel within a preset range of the edge;
the correction unit is used for correcting the gray value of the edge based on the gray value of the pixel in the preset range of the edge to obtain a target gray value of the edge of the sub-video frame;
the transparency processing unit is used for acquiring the transparency of the edge of the sub video frame and the transparency coefficient of the transparency interval where the transparency is located;
and the transparency calculating unit is used for calculating the target transparency of the edge of the sub video frame according to a preset maximum transparency value, the transparency of the edge of the sub video frame and the transparency coefficient.
Further, the filter adding sub-module includes:
the time processing unit is used for acquiring the total filter adding time of the video and calculating the filter adding time of the sub-video frames according to the total filter adding time and the number of the sub-video frames;
the video frame determining unit is used for determining the sub-video frame corresponding to the adding time of each filter according to the arrangement sequence of the plurality of sub-video frames;
and the filter adding unit is used for setting the gray value of the edge of the sub video frame corresponding to the filter adding time as the target gray value and setting the transparency of the edge of the sub video frame as the target transparency within different filter adding times.
In this embodiment, a video frame in a target video, which needs to be subjected to a filter adding operation, is obtained, the video frame is converted into a target video frame in a preset format, the target video frame is blocked to obtain a plurality of sub-video frames, and according to an arrangement sequence of the plurality of sub-video frames, a gray value of an edge of each sub-video frame is dynamically set as a corresponding target gray value, and a transparency of the edge of each sub-video frame is set as a corresponding target transparency. In the invention, the filter is dynamically added to the sub-video frame obtained by splitting one video frame, so that the filter effect is increased, the video special effect is improved, the video synthesis quality is improved, and the filter requirements of users are met. In addition, the video frame is converted into the target video frame in the preset format, so that the lossless filter processing effect can be realized when the filter effect is added.
In addition, the filter is added in the embodiment, the efficiency is high, the video special effect output effect can be edited, the design and research and development cost of the special effect can be reduced, the video special effect is richer and diversified, the final synthesis quality is ensured, and the editing efficiency is improved. In addition, the operation is simple and convenient, and the study and the use are easy.
In addition, when the filter is added, the filter can be added in a parallel mode, so that the efficiency is improved, and the time consumption is reduced.
It should be noted that, for the working processes of each module, sub-module, and unit in this embodiment, please refer to the corresponding description in the above embodiments, which is not described herein again.
Optionally, on the basis of the above embodiments of the video frame processing method and apparatus, another embodiment of the present invention provides an electronic device, including: a memory and a processor;
wherein the memory is used for storing programs;
the processor calls a program and is used to perform the video frame processing method described above.
In this embodiment, a video frame in a target video, which needs to be subjected to a filter adding operation, is obtained, the video frame is converted into a target video frame in a preset format, the target video frame is blocked to obtain a plurality of sub-video frames, and according to an arrangement sequence of the plurality of sub-video frames, a gray value of an edge of each sub-video frame is dynamically set as a corresponding target gray value, and a transparency of the edge of each sub-video frame is set as a corresponding target transparency. In the invention, the filter is dynamically added to the sub-video frame obtained by splitting one video frame, so that the filter effect is increased, the video special effect is improved, the video synthesis quality is improved, and the filter requirements of users are met. In addition, the video frame is converted into the target video frame in the preset format, so that the lossless filter processing effect can be realized when the filter effect is added.
In addition, the filter is added in the embodiment, the efficiency is high, the video special effect output effect can be edited, the design and research and development cost of the special effect can be reduced, the video special effect is richer and diversified, the final synthesis quality is ensured, and the editing efficiency is improved. In addition, the operation is simple and convenient, and the study and the use are easy.
In addition, when the filter is added, the filter can be added in a parallel mode, so that the efficiency is improved, and the time consumption is reduced.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.