Method for operating adaptive encoding parameters and electronic device for supporting same

The adaptive encoding parameter method addresses the challenge of optimizing video encoder settings by classifying content into scenes and calculating optimal parameters, improving compression efficiency and reducing encoding time.

JP2025525184AInactive Publication Date: 2025-08-01ペテ ミョン
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025505930
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-17
Filing Date
2023-07-25
Publication Date
2025-08-01
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing video encoders face challenges in determining optimal encoding parameter values due to the large number of parameters, making it difficult to balance compression efficiency and encoding time, as current presets do not account for varying video content.

Method used

An adaptive encoding parameter operation method that classifies video content into scenes, calculates optimal encoding parameter values for each scene, and applies these values to improve compression efficiency by selecting the best parameter settings through iterative testing and comparison.

Benefits of technology

This method optimizes encoding parameter values for each video content, enhancing compression efficiency and reducing encoding time by applying the most suitable settings based on the content's characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025525184000001_ABST
    Figure 2025525184000001_ABST
Patent Text Reader

Abstract

The present invention relates to an adaptive video encoding parameter operation method including the steps of: a server processor of a server device acquiring video content; segmenting video scenes in the video content; acquiring video clips corresponding to parts of each video scene; selecting at least some of the encoding parameters among the overall encoding parameters related to a video encoder for encoding the video content, and performing video encoding for each video clip based on the encoding parameter values set for the selected at least some of the encoding parameters; calculating final encoding parameter values to be applied to each video clip based on the encoding results of the video encoding; and applying the calculated final encoding parameter values to the video scenes to perform video encoding on the video content, and an electronic device for supporting the same.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to video data processing of an electronic device, and more particularly, to a scheme for adaptively applying encoding parameters.

Background Art

[0002] Video encoders such as H.264, HEVC (High-Efficiency Video Coding: HEVC) (H.265), VVC (H.266), and AV1 (Advanced Video Coding) provide various parameters for video encoder settings in addition to input video information. For example, in the case of H.264, in order to encode one video content, it includes various encoding parameters such as GOP (Group Of Pictures: GOP) size, number of b frames, number of reference frames, whether to apply de-blocking, number of threads, ip-ratio, and pb-ratio.

[0003] Such encoding parameters affect the compression efficiency and encoding time of the video encoder. Therefore, in order to optimize the compression efficiency and encoding time of the video encoder, it is necessary to determine appropriate encoding parameter values for the encoding parameters. However, since there are a very large number of encoding parameters applied to the video encoder, it is not easy to determine the optimal encoding parameter values. For example, in the case of X.264, which is an open-source implementation of H.264, there are more than 70 parameters. Assuming that each encoding parameter has about 5 option values, in order to determine the encoding parameter values, calculations for the number of cases of 5 to the 70th power are required. Therefore, it is almost impossible to test all cases for the encoding parameters of a specific video encoder. As a result, the current method of determining the encoding parameter values of video encoders defines presets such as fast, medium, and slow, which pre-determine the encoding parameter values from the trade-off perspective of compression efficiency and encoding time, and selects the preset that meets the requirements for encoding time and video compression ratio.

[0004] Since it is very difficult for users to set such encoding parameter values in detail, generally, each video encoder vendor provides a preset in which the encoding parameter values are preset in advance according to the encoding time (or computational complexity) through many experiments. In the case of X.264, presets such as ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, and placebo are provided. However, since the provided presets are not configured to fit all video contents, differences in encoding performance occur depending on the video content or the video codec. Summary of the Invention Problems to be Solved by the Invention

[0005] The present invention provides an adaptive encoding parameter operation method that can improve the compression rate according to each video content through adaptive encoding parameter optimization for video content, and an electronic device that supports this.

[0006] However, the object of the present invention is not limited to the above object, and other objects not mentioned can be clearly understood from the following description. Means for Solving the Problems

[0007] The adaptive video encoding parameter operation method for achieving the above object includes: a stage where a server processor of a server device acquires video content; a stage where video scenes are classified in the video content; a stage where video clips corresponding to parts of each of the video scenes are acquired; a stage where video encoding is performed on each of the video clips based on encoding parameter values set for at least some of the overall encoding parameters related to a video encoder that encodes the video content; a stage where final encoding parameter values to be applied to each of the video clips are calculated based on the encoding results of the video encoding; and a stage where the calculated final encoding parameter values are applied to the video scenes to perform video encoding on the video content. The stage of calculating the final encoding parameter values includes: assigning an array index to each encoding parameter value of the at least some encoding parameters, selecting a plurality of array indexes from the array indexes according to a predetermined method, performing encoding on the video clip based on the plurality of encoding parameter values corresponding to the selected array indexes, and detecting an encoding parameter value of optimal quality.

[0008] Specifically, the stage of calculating the encoding parameter value of optimal quality may include: selecting a first plurality of encoding parameters from the overall encoding parameters related to the video encoder, and performing a plurality of video encodings on a specific video clip using the plurality of encoding parameter values set for the selected first plurality of encoding parameters; and comparing the qualities of the plurality of video encoding results to calculate a first encoding parameter value of maximum quality.

[0009] Specifically, the step of calculating the optimal quality encoding parameter value may include: selecting a second plurality of encoding parameters different from the first plurality of encoding parameters; performing a plurality of video encodings on the specific video clip using the plurality of encoding parameter values set for the selected second plurality of encoding parameters; comparing the quality of the plurality of video encoding results to calculate a second encoding parameter value with the maximum quality for the specific video clip; and mutually comparing the video encoding quality of the first encoding parameter value and the video encoding quality of the second encoding parameter value to select the encoding parameter value with the maximum quality as the final encoding parameter value.

[0010] Specifically, the method may include the step of video encoding the video scene to which the specific video clip belongs based on the final encoding parameter value.

[0011] Specifically, the step of calculating the final encoding parameter value may include: classifying the overall encoding parameters by characteristic; sampling encoding parameters from each of the encoding parameter groups classified by characteristic, and performing video encoding on the video clip with the encoding parameter values set for the sampled encoding parameters; selecting a plurality of encoding parameters from the group containing the specific encoding parameter value indicating the encoding result with the maximum quality; performing video encoding on the video clip based on the encoding parameter values set for the selected plurality of encoding parameters; and calculating the encoding parameter value with the maximum quality among the encoding results as the final encoding parameter.

[0012] Specifically, it may further include a step of defining the overall encoding parameter as an array index, and the step of defining the array index includes at least one of a step of generating the array index by sorting assignable values defined in advance for the encoding parameter having limited values, a step of performing quantization on the encoding parameter having consecutive values, binaryizing, and generating an array index having a limited number, and a step of sorting based on computational complexity for the categorical encoding parameter and generating an array index.

[0013] Specifically, the step of performing video encoding for each of the video clips may include a step of performing downsampling on each of the video clips and a step of performing the video encoding on the downsampled video clips.

[0014] A server device for assisting in the operation of adaptive video encoding parameters according to an embodiment of the present invention includes a server memory for storing video content and a server processor functionally connected to the server memory. The server processor divides video scenes in the video content, obtains video clips corresponding to parts of each of the video scenes, performs video encoding on each of the video clips based on encoding parameter values set for at least some of the encoding parameters of the overall encoding parameters related to the video encoder for encoding the video content, calculates final encoding parameter values to be applied to each of the video clips based on the encoding results of the video encoding, and is set to perform video encoding on the video content by applying the calculated final encoding parameter values to the video scenes. The server processor assigns an array index to each encoding parameter value of the at least some encoding parameters, selects a plurality of array indexes from the array indexes according to a predetermined method, performs encoding on the video clip based on the plurality of encoding parameter values corresponding to the selected array indexes, and is set to detect the encoding parameter value of the optimal quality.

[0015] Specifically, the server processor is set to select a first plurality of encoding parameters from the overall encoding parameters related to the video encoder, perform a plurality of video encodings on a specific video clip using the plurality of encoding parameter values set for the selected first plurality of encoding parameters, and calculate a first encoding parameter value of the maximum quality by comparing the qualities of the plurality of video encoding results.

[0016] Specifically, the server processor is configured to select a second plurality of encoding parameters different from the first plurality of encoding parameters in relation to the calculation of the final encoding parameter value, perform a plurality of video encodings on the specific video clip based on the plurality of encoding parameter values set for the selected second plurality of encoding parameters, compare the qualities of the plurality of video encoding results, calculate a second encoding parameter value of the maximum quality for the specific video clip, and mutually compare the video encoding quality of the first encoding parameter value and the video encoding quality of the second encoding parameter value to select the encoding parameter value of the maximum quality as the final encoding parameter value.

[0017] Specifically, the server processor is configured to perform video encoding on the video scene to which the specific video clip belongs based on the final encoding parameter value.

[0018] Specifically, the server processor is configured to classify the overall encoding parameters by characteristic, perform video encoding on the video clip based on the encoding parameter values set for the encoding parameters sampled from the encoding parameter groups classified by characteristic, and select a specific encoding parameter value indicating the encoding result of the maximum quality.

[0019] Specifically, the server processor is configured to select a plurality of encoding parameters from a group including the specific encoding parameter values, perform video encoding on the video clip based on the encoding parameter values set for the selected plurality of encoding parameters, and calculate the encoding parameter value of the highest quality among the encoding results as the final encoding parameter value.

[0020] Specifically, the server processor is configured to, in relation to the process of defining the overall encoding parameters as array indices, sort the assignable values defined in advance for the encoding parameters having limited values to generate the array indices, perform quantization on the encoding parameters having continuous values, binaryize them, and generate array indices having a limited number, or sort the categorical encoding parameters based on computational complexity to generate array indices.

[0021] Specifically, the server processor is configured to perform downsampling on each of the video clips and perform the video encoding on the downsampled video clips.

Advantages of the Invention

[0022] According to the present invention, by calculating and applying the encoding parameter values having the optimal compression rate for each video content, it is possible to provide optimization of the encoding parameter values related to the compression efficiency of a specific video encoder for each video content.

[0023] Moreover, various effects other than the above-described effects may be directly or implicitly disclosed in the detailed description according to the embodiments of the present invention described below.

Brief Description of Drawings

[0024]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Embodiments for Carrying Out the Invention

[0025] In order to more clearly clarify the features and advantages of the problem-solving means of the present invention, the present invention will be described in more detail with reference to specific embodiments of the present invention shown in the accompanying drawings.

[0026] However, detailed descriptions of well-known functions or configurations that may obscure the gist of the present invention in the following description and the accompanying drawings are omitted. Also, it should be noted that the same components are denoted by the same reference numerals throughout the drawings as much as possible.

[0027] In the following description and drawings, the terms and words used shall not be construed as being limited to their ordinary or dictionary meanings. In accordance with the principle that the inventor can appropriately define the concept of the terms in order to best explain his own invention, they should be construed in a meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in this specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention and do not represent all of the technical ideas of the present invention. It should be understood that there may be various equivalents and modifications that can replace them at the time of this application.

[0028] Also, terms including ordinal numbers such as first, second, etc. are used to describe various components and are only used for the purpose of distinguishing one component from another and are not used to limit the said components. For example, within the scope not departing from the scope of the rights of the present invention, the second component may be named the first component, and similarly, the first component may also be named the second component.

[0029] In addition, the terms used in this specification are only used to describe a specific embodiment and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. Also, terms such as "including" or "having" described in this specification are intended to specify the existence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and it should be understood that the existence or possibility of addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof, etc. is not precluded in advance.

[0030] Also, terms such as "section", "device", "module", etc. described in the specification mean a unit that processes at least one function or operation, which can be embodied by hardware, software, or a combination of hardware and software. Also, the words "a", "one", "the", and similar related words can be used in the context of describing the present invention (especially in the context of the following claims) in a sense that includes both the singular and the plural, unless otherwise indicated differently in this specification or clearly contradicted by the context.

[0031] In addition to the above-described terms, the specific terms used in the following description are provided to assist in understanding the present invention, and the use of such specific terms can be changed to other forms without departing from the technical idea of the present invention.

[0032] Also, embodiments within the scope of the present invention include computer-readable media having computer-executable instructions or data structures stored thereon or transmitted thereby. Such computer-readable media can be any available media accessible by a general-purpose or special-purpose computer system. By way of example, such computer-readable media can include, but are not limited to, RAM, ROM, EPROM, CD-ROM or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, or physical storage media such as any other media that can be used to store or transmit predetermined program code means in the form of computer-executable instructions, computer-readable instructions or data structures and can be accessed by a general-purpose or special-purpose computer system.

[0033] Hereinafter, various embodiments related to an adaptive operation scheme of video encoding parameters will be described with reference to the drawings.

[0034] FIG. 1 is a diagram showing an example of a video encoder operation environment according to an embodiment of the present invention.

[0035] Referring to FIG. 1, the electronic device operation environment 10 according to an embodiment of the present invention may include, for example, a network 50, a user terminal 100, and a server device 200. The user terminal 100 and the server device 200 may be one of the electronic devices.

[0036] The network 50 can assist in forming at least one communication channel among the communication channels between the user terminal 100 and the server device 200. Such a network 50 may include, for example, a communication circuit that can be connected to at least one of the aforementioned user terminal 100 and server device 200 either wired or wirelessly. As an example, the network 50 can form a communication channel with the server device 200 based on the user terminal 100 and transmit a message according to the request of the user terminal 100 to the server device 200. The network 50 can transmit the video content stored in the server device 200 to the user terminal 100. In relation to wireless connection, the network 50 may include network elements of the Internet or may include at least one base station and a base station controller. As described above, the network 50 according to the embodiment of the present invention is not limited to a specific communication type, communication method, communication generation, etc., and may include communication equipment that supports at least one of various communication methods for signal flow between the user terminal 100 and the server device 200.

[0037] The user terminal 100 can form a communication channel with the server device 200 via the network 50. The user terminal 100 can transmit video content stored in the memory corresponding to a user input to the server device 200. Alternatively, the user terminal 100 can receive video content from the server device 200 and store it in the memory. Furthermore, the user terminal 100 includes a camera and can collect video content via the camera. The user terminal 100 can provide the video content collected using the camera to the server device 200 in response to a request from the server device 200.

[0038] As an example, the user terminal 100 can perform the operation of determining the scene segmentation of the present invention and the video encoding parameter values optimized for the segmented scenes, apply the determined encoding parameter values, and perform encoding on the acquired video content. As an example, the user terminal 100 can perform encoding on the video content stored in the memory using a specific video encoder. In this process, after performing scene-based segmentation on the video content, the user terminal 100 groups the segmented scenes into a certain group (for example, a video clip of X seconds based on the scene standard, where X is a natural number), applies at least some of the encoding parameter values among the multiple encoding parameters provided by the video encoder to the grouped scene group, performs encoding on the scene group, and selects (or determines) the encoding parameter value with the optimal quality, and can encode the scene group with the selected (or determined) optimal encoding parameter value. Furthermore, the user terminal 100 can store in the memory the matching information obtained by matching the selected optimal encoding parameter value with the scene group. The user terminal 100 can transmit the encoded video content obtained by integrating the encoded scene groups to the server device 200. Although it is exemplified that one user terminal 100 is arranged for the video encoder operation environment 10, the present invention is not limited thereto. For example, in addition to the user terminal 100, another user terminal capable of forming a communication channel with the user terminal 100 or the server device 200 via the network 50 may be further included in the video encoder operation environment 10. Another user terminal can also assist in the function of selecting the optimal encoding parameter values provided by the user terminal 100 and generating the encoded video content for each scene group. Also, another user terminal can provide the encoded video content and the matching information to the user terminal 100 or the server device 200.

[0039] The server device 200 can collect video content through various routes. For example, the server device 200 can collect video content from at least one user terminal 100. Alternatively, the server device 200 can form a communication channel with a specific external server device that produces and distributes video content and receive video content from the external server device. As an example, the server device 200 can perform encoding on the video content stored in the server memory using a specific video encoder. In this process, after the server device 200 performs scene-based segmentation on the video content, it groups the segmented scenes into a certain group (e.g., a video clip of X seconds based on the scene criterion, where X is a natural number), applies the values of at least some of the encoding parameters provided by the specific video encoder to the grouped scene group, performs encoding on the scene group, selects the encoding parameter value with the optimal quality, and can encode the scene group with the selected optimal encoding parameter value. Furthermore, the server device 200 can store in the server memory the matching information obtained by matching the selected optimal encoding parameter value with the scene group. The server device 200 can store a plurality of video encoders. Thereby, the server device 200 can perform the above-described scene group extraction, selection of the optimal encoding parameter value for each scene, and encoding operation using the selected optimal encoding parameter value for each video encoder. When the user terminal 100 is connected via the network 50, the server device 200 can provide the user terminal 100 with a screen for selecting at least one video encoder and a screen for selecting at least one encoded video content. The server device 200 can provide the user terminal 100 with a specific video encoder and specific encoded video content corresponding to the request of the user terminal 100.

[0040] In the above description, it was exemplified that one user terminal 100 and one server device 200 are connected via a network 50 in the video encoder operation environment 10, but the present invention is not limited thereto. For example, in the video encoder operation environment 10, a plurality of sub-server devices replacing the user terminal 100 may be connected to the server device 200 via the network 50. When the server device 200 provides video content to the sub-server devices, the sub-server devices perform scene group extraction on the provided video content, select the optimal encoding parameter values for the extracted scene groups, and then perform video content encoding using the selected encoding parameter values, and can provide the encoded video content to the server device 200. Here, the sub-server devices can provide the server device 200 with matching information in which the scene group information and the selected encoding parameter values are matched. The server device 200 can provide the video content encoded with the optimal encoding parameter values for each scene group to the user terminal 100 according to the request of the user terminal 100, and can provide the matching information together. Further, the server device 200 can provide the user terminal 100 with a video decoder related to the encoding parameter (or encoding parameter value), and the user terminal 100 can play the encoded video content through downloading and installing the video decoder.

[0041] As described above, the operation of selecting the optimal encoding parameter values according to the embodiments of the present invention and encoding video content for each scene group based on the selected encoding parameter values can be independently performed by at least one of the user terminal 100 in which the video encoder is installed and the server device 200 that provides the video encoder.

[0042] FIG. 2 is a diagram showing an example of a user terminal configuration according to an embodiment of the present invention.

[0043] Referring to FIG. 2, the user terminal 100 according to an embodiment of the present invention may include a communication circuit 110, a memory 120, a camera 130, a display 140, and a processor 150. The above-described user terminal 100 can be any one of various electronic devices capable of computing operations, such as a portable communication device or a desktop computing device. The user terminal 100 including such a configuration may be a consumer that receives and consumes matching information in which optimal encoding parameter values are matched for each scene group according to an embodiment of the present invention and encoded video content encoded with the encoding parameter values from the server device 200, or may be a supplier that can generate matching information and encoded video content and provide them to the server device 200.

[0044] The communication circuit 110 can assist in forming a communication channel of the user terminal 100. As an example, the communication circuit 110 may include at least one communication module for supporting communication methods of various generations such as 3G (generation), 4G, 5G, and 6G. The communication circuit 110 can form a communication channel with the network 50 according to the settings of the user terminal 100 or in response to user input, and can connect to the server device 200 based on the input address information. The communication circuit 110 can receive various data or programs via the communication channel formed with the server device 200 corresponding to the control of the processor 150. As an example, the communication circuit 110 can receive at least one video encoder from the server device 200 in response to user input. Or, the communication circuit 110 can receive firmware that can update the at least one video encoder from the server device 200. Also, the communication circuit 110 can receive at least one video content from the server device 200. The at least one video content received from the server device 200 may include, for example, matching information in which optimal encoding parameter values are matched for each scene group and the encoded video content. As another example, the communication circuit 110 can transmit the video content collected by the camera 130 to the server device 200 in response to a user operation. In this process, the video content transferred to the server device 200 may include matching information in which optimal encoding parameter values are selected for each scene group and the encoded video content obtained by encoding the scene group with the encoding parameter values.

[0045] The memory 120 can store at least one program related to the operation of the user terminal 100 and data for program operation. As an example, the memory 120 can store the first video content 121 acquired via the camera 130. Alternatively, the first video content 121 stored in the memory 120 can also be received and stored from the server device 200, an external server device, or another user terminal. Further, the memory 120 can store the video content 122 that has been first encoded by the method of the present invention (for example, the method of encoding with optimal encoding parameter values for each scene group) for the first video content 121. The memory 120 can store the first matching information 123 generated by encoding the first video content 121 with the first encoded video content 122. The first matching information 123 may include the scene group information of the first video content 121 and information on the encoding parameter values applied to encode the scene group. The memory 120 may include at least one first video encoder 124 for encoding the first video content 121. The first video encoder 124 may be formed, for example, at least partially by a software module. Alternatively, at least a part of the first video encoder 124 can also be formed by a hardware module. The first video encoder 124 can be received and stored in advance, for example, from the server device 200. The first video encoder 124 can be activated for encoding the first video content 121.

[0046] The camera 130 can capture still images or videos. As an example, the camera 130 can capture a specific subject or a background including the subject under the control of the processor 150 or in response to a user input, and transmit the captured video content to the memory 120. The first video content 121 stored in the memory 120 may include various scenes corresponding to the operation of the camera 130.

[0047] The display 140 can output at least one screen related to the operation of the user terminal 100. For example, the display 140 can output a connection screen provided by the server device 200 or a usage screen of the server device 200 by the operation of the communication circuit 110. As an example, the display 140 can output a screen for selecting at least one video encoder provided by the server device 200, a video encoder selection and download screen, and a video encoder installation screen. The display 140 can output at least one list of encoded video content provided by the server device 200. When a specific video content is selected, the display 140 can output a screen on which a video player required for playing the video content can be downloaded. Or, if a video player capable of playing the selected video content is already installed, the display 140 can output the downloaded (or streamed) video content via the video player.

[0048] The display 140 can output a screen related to the operation of the camera 130. For example, when the camera 130 operates in the video shooting mode, the display 140 can display the currently shooting video content. During the process of displaying video content, the display 140 can provide control screens for recording, saving, deleting, etc. of the video content. The display 140 can output at least one of the catalog of the first video content 121 stored in the memory 120, the catalog of the first encoded video content 122, the catalog of the first matching information 123, and the installation information of the first video encoder 124.

[0049] The input unit 160 may include a configuration for assisting user input related to the operation of the user terminal 100. For example, the input unit 160 may include at least one device among various devices such as a keyboard, a keypad, a mouse, a touch screen, a touch pad, a touch key, a voice input device, a gesture input device, a joystick, and a wheel device. Such an input unit 160 can generate, by user input, at least one of an input signal requesting a communication connection with the server device 200, an input signal for selecting at least one object (for example, an object including at least one of a video content list, an encoded video content list, and a video encoder list) on the connection screen provided by the server device 200, and an input signal requesting playback control of the encoded video content.

[0050] The processor 150 can perform at least one of transmission, application, result output by application, data storage by the result, and transmission of at least one signal related to the operation of the user terminal 100. As an example, when the user terminal 100 operates as a consumer that consumes encoded video content, the processor 150 can control to form a communication channel with the server device 200 based on the communication circuit 110 in response to a user operation. The processor 150 can receive a catalog of encoded video content from the server device 200, receive specific encoded video content and matching information in response to a user input, and store them in the memory 120. The processor 150 can play the received encoded video content based on the matching information. In this regard, the processor 150 can execute a video player used to encode the video content. If there is no video player required for playing the encoded video content, it can guide the user that the video player is not installed, and can download and install the video player from the server device 200 in response to a user operation. The video player can decode the encoded video content by scene group based on the matching information and output the decoded video frames to the display 140.

[0051] When the user terminal 100 operates as a provider that supplies encoded video content, the processor 150 can execute the first video encoder 124 stored in the memory 120 in response to a user operation. When the processor 150 receives a selection of the first video content 121 stored in the memory 120 and an encoding input, it can classify the first video content 121 by scene and generate scene groups (e.g., video clips) based on the classified scenes. In this process, the processor 150 can multiply a predetermined time in seconds for each scene and divide and store the scene groups (or video clips) for that amount of time. The processor 150 can collect information regarding encoding parameters related to the first video encoder 124 and select encoding parameter values of optimal quality (or having optimal compression efficiency) for each of the divided and stored scene groups. The processor 150 can encode the scene group using the selected encoding parameter values to generate the first encoded video content 122. In this process, the processor 150 can match the encoding parameter values with identification information for the scene group to generate first matching information 123 and store the first matching information 123 in the memory 120. The first matching information 123 may include identification information of the first video encoder 124. The processor 150 can provide the first encoded video content 122 and the first matching information 123 stored in the memory 120 to another user terminal or the server device 200 according to a request from another user terminal or the server device 200. The operation of the processor 150 to generate the first encoded video content 122 may be substantially the same as the operation of the server processor 250 to generate the second encoded video content 227, which will be described later. Accordingly, at least a part of the processor operation related to the generation of the first encoded video content 122 may be the same as the operation of the server processor 250 with respect to the selection and application of encoding parameter values.

[0052] As described above, the user terminal 100 includes a memory 120 that stores video content and a processor 150 that is functionally connected to the memory 120. The processor 150 can divide video scenes in the video content, obtain video clips corresponding to parts of each of the video scenes, and perform video encoding on each of the video clips using encoding parameter values of at least some of the overall encoding parameters related to a video encoder for encoding the video content. Based on the encoding result of the video encoding, the processor 150 can calculate optimal encoding parameter values to be applied to each of the video clips, and can be set to perform video encoding on the video content by applying the calculated optimal encoding parameter values to the video scenes. Here, the processor 150 performs a plurality of video encodings on a specific video clip based on the encoding parameter values of a first plurality of encoding parameters under certain conditions among the overall encoding parameters related to the video encoder, and can calculate a first encoding parameter value of the maximum quality by comparing the qualities of the plurality of video encoding results. Also, in relation to the calculation of the final encoding parameters, the processor 150 performs a plurality of video encodings on the specific video clip based on the encoding parameter values of a second plurality of encoding parameters under other conditions different from the first plurality of encoding parameters under certain conditions, and can calculate a second encoding parameter value of the maximum quality for the specific video clip by comparing the qualities of the plurality of video encoding results. The processor 150 can select, as the final encoding parameter value, the encoding parameter value of the maximum quality by comparing the video encoding quality of the first encoding parameter value and the video encoding quality of the second encoding parameter value with each other.The above-described process of selecting the optimal encoding parameter values can be repeated for each video clip. The processor 150 can calculate the optimal encoding parameter values from the encoding parameter values of the first plurality of encoding parameters described above and the optimal encoding parameter values from the encoding parameter values of the second plurality of encoding parameters through parallel processing, so as to calculate the optimal encoding parameter values for a specific video clip more quickly. Note that the processor 150 can classify the overall encoding parameters into three or more groups, calculate the optimal encoding parameter values from each encoding parameter group, compare the calculated optimal encoding parameter values with each other, and also calculate the final optimal encoding parameter values for a specific video clip. As another example, the processor 150 can select at least some of the overall encoding parameters without performing the parallel processing process, and calculate the encoding parameter values indicating the optimal encoding efficiency for a specific video clip among the selected at least some of the encoding parameters.

[0053] Note that the above-mentioned certain conditions may include classification criteria based on the characteristics of the encoding parameters. For example, the encoding parameters related to a specific video encoder can be classified according to certain characteristics. For example, it may include encoding parameters with discrete values, encoding parameters with continuous values, and categorical encoding parameters. The processor 150 classifies the entire encoding parameters according to the above-mentioned characteristics, selects at least one encoding parameter from the encoding parameter groups classified according to the characteristics, and uses the encoding parameter value that supports the selected at least one encoding parameter to perform video encoding on the video clip, and can select a specific encoding parameter value that shows the encoding result of the maximum quality. The processor 150 can compare the encoding results of the optimal encoding parameter values according to the characteristics with each other, and finally perform video encoding on the video clip based on the encoding parameter value of the optimal quality. The operations of the above-mentioned processor 150 can also be performed by the server processor 250 described below.

[0054] FIG. 3 is a diagram showing an example of the configuration of a server device according to an embodiment of the present invention, and FIG. 4 is a diagram showing an example of the configuration of a server processor according to an embodiment of the present invention.

[0055] First, referring to FIG. 3, the server device 200 may include a server communication circuit 210, a server memory 220, a server display 240, and a server processor 250.

[0056] The server communication circuit 210 can assist in forming a communication channel for the server device 200. As an example, the server communication circuit 210 can form a communication channel with at least one of other user terminals, other sub-server devices, and external server devices that provide video content, and can receive video content from other electronic devices (e.g., user terminal 100, other user terminals, sub-server devices, or external server devices) that have formed a communication channel in response to a fixed period or administrator input.

[0057] As an example, the server communication circuit 210 can form a communication channel with the user terminal 100 based on the network 50 in response to the control of the server processor 250. The server communication circuit 210 can receive the first video content 121 from the user terminal 100. Alternatively, the server communication circuit 210 can receive the first encoded video content 122 and the first matching information 123 from the user terminal 100. As another example, the server communication circuit 210 can provide at least one of the second video content 221, the second encoded video content 227, and the second matching information 229 stored in the server memory 220 to the user terminal 100 in response to the control of the server processor 250. Also, the server communication circuit 210 can provide a program corresponding to at least one of the second video encoders 223 to the user terminal 100 in response to the request of the user terminal 100.

[0058] The server memory 220 can store at least one of data and programs related to the operation of the server device 200. For example, the server memory 220 can store at least a part of the second video content 221, the second video encoder 223, the parameter information 225, the second encoded video content 227, and the second matching information 229. The second video content 221 may include, for example, video content generated by the user terminal 100 via the camera 130. Alternatively, the second video content 221 may be provided from a specific external server device that produces and distributes video content. The second video encoder 223 may include at least one video encoder that can be used by the server device 200 to convert the second video content 221 into the second encoded video content 227. As an example, the server device 200 may include one video encoder, or may include a plurality of video encoders, and may also provide a program corresponding to the video encoder to the user terminal 100 in response to a request from the user terminal 100.

[0059] The parameter information 225 may include information on parameters corresponding to the second video encoder 223. As an example, when the second video encoder 223 is X.265, the parameter information 225 may include at least some encoding parameters such as cabac, ref, deblock, analyse, me, subme, psy, psy_rd, mixed_ref, me_range, chroma_me, trellis, 8x8dct, cqm, deadzone, fast_pskip, chroma_qp_offset, threads, lookahead_threads, sliced_threads, nr, decimate, interlaced, bluray_compat, constrained_intra, bframes, b_pyramid, b_adapt, b_bias, direct, weightb, open_gop, weightp, keyint, keyint_min, scenecut, intra_refresh, rc_lookahead, rc, mbtree, crf, qcomp, qpmin, qpmax, qpstep, ip_ratio, aq and encoding parameter values that support each encoding parameter. The parameter information 225 may vary depending on the type or kind of the second video encoder 223. When the server memory 220 includes a number of different video encoders, the parameter information 225 may include encoding parameters corresponding to each video encoder and encoding parameter values that support the encoding parameters.

[0060] The second encoded video content 227 may include video content obtained by encoding the second video content 221 by the second video encoder 223 in response to the control of the server processor 250. As an example, the second encoded video content 227 may include video content encoded with optimal encoding parameter values for a scene group defined by dividing the second video content 221 into scenes and then defining the divided scenes as a plurality of video clips of a certain length. The second matching information 229 may include matching information of the encoding parameter values used for encoding the scene group, division information (or identification information) of the scene group, and identification information of the video encoder used.

[0061] Furthermore, the server memory 220 can store a video player capable of playing the second encoded video content 227. As an example, the second encoded video content 227 may include versions corresponding to various video encoders, so that the server memory 220 includes various video players and can provide a program corresponding to a video player capable of playing the second encoded video content 227 to the user terminal 100 in response to the request of the user terminal 100.

[0062] The server display 240 can output at least one screen related to the operation of the server device 200. For example, the server display 240 can output at least one of a screen indicating the connection state with the user terminal 100, a connection screen provided to the user terminal 100, and a screen indicating the connection state of another user terminal or an external server device that provides the second video content 221 other than the user terminal 100. As another example, the server display 240 can also output a screen corresponding to at least a part of the generation process of generating the second encoded video content 227 based on the second video content 221.

[0063] The server processor 250 can perform at least one operation among receiving, transmitting, processing, and storing or transmitting the result of processing of signals related to the operation of the server device 200. For example, the server processor 250 can generate and provide second-encoded video content 227 based on the second video content 221. In this regard, the server processor 250 may include a configuration as shown in FIG. 4. Referring to FIG. 4, the server processor 250 may include a video collection unit 251, a scene detection unit 252, a scene extraction unit 253, a downsampling unit 254, an optimal parameter calculation unit 255, an encoded content generation unit 256, and a content providing unit 257. Here, the configuration of the downsampling unit 254 can also be omitted. The above-described server processor 250 can determine the encoding parameter value (for example, at least some of the encoding parameter values included in the parameter information 225) of the video encoder (for example, the second video encoder 223) so as to improve the compression efficiency (or compression ratio) by the input video content (for example, the second video content 221).

[0064] The video collection unit 251 can control video content collection. For example, the video collection unit 251 can form a communication channel with an external server device that provides video content at a certain period, collect video content from the external server device, and store it in the server memory 220. Also, the video collection unit 251 can form a communication channel with at least one user terminal 100 and receive video content from at least one user terminal 100. When the video content is collected, the video collection unit 251 can transmit the collected video content to the scene detection unit 252.

[0065] The scene detection unit 252 can acquire the second video content 221 stored in the server memory 220 or acquire video content from the video collection unit 251. The scene detection unit 252 can perform scene detection on the acquired second video content 221. In the present invention, a scene may include one Scene. Or, a scene may include a Scene based on the change of the background. Or, a scene may include a Scene where the number of objects on the screen changes. For example, when a new object is added to a single screen or an object on a single screen disappears, it can be determined that the scene has changed. Or, the scene detection unit 252 can apply a scene change detection technique to the second video content 221 and classify it in units of scenes. Or, the second video content 221 may include scene data (e.g., title, table of contents for a scene or group of scenes, playback time of each scene, position information of each scene) recorded according to at least one of the above-described various definitions of scenes. The scene data may include data in which the scene transition time point of the second video content 221 is defined. The scene detection unit 252 can detect the scene of the second video content 221 based on the scene data of the second video content 221. Or, the scene detection unit 252 can extract I-frames from the second video content 221, compare the extracted I-frames with each other, and check whether there is a change greater than a predefined reference value. If there is a change greater than the predefined reference value, the scene detection unit 252 can detect up to the frame before the I-frame with a change greater than the reference value as one scene. For example, the scene detection unit 252 can define a scene transition itself such as Fade in / Fade out, zoom in / Zoom out as one scene. One scene can have a playback time ranging from several seconds to several minutes.

[0066] The scene extraction unit 253 can extract one video clip (for example, one scene can include at least one video clip or a plurality of clips, and among the plurality of video clips, the video clip representing the scene) by multiplying X seconds (second) defined in advance based on the start frame of a specific scene using the scene data or using the scene transition time point. The X value can vary depending on the overall length of the scene. For example, if one scene is 1 minute long, the X value can be 10 seconds, and one scene can be extracted with 6 video clips. The 6 video clips can have similar screen characteristics (or similar object characteristics) by being divided from one scene. As an example, the 6 video clips may include a similar background, a similar number of objects, and similar objects.

[0067] The downsampling unit 254 can downsample at least a part of the video content applied to the optimal parameter calculation according to the embodiment of the present invention. For example, the downsampling unit 254 can reduce the image quality of at least one video clip for each scene extracted by the scene extraction unit 253. As an example, if the pixels of one frame included in one video clip are 1000×1000, the downsampling unit 254 can downsample the frame to 100×100. As a method of reducing pixels, an interpolation method (for example, a method of selecting the average value of the pixel values of 9 pixels) can be applied, or the pixels to be deleted can be selected in a specified pattern (for example, a method of selecting the pixel at the center among 9 pixels), or a method of randomly selecting can be applied.

[0068] The optimal parameter calculation unit 255 can apply an optimal encoding parameter value calculation algorithm to at least one video clip for each scene provided by the scene extraction unit 253 (or the representative video clip for each scene), and calculate the optimal encoding parameter value for each scene. Further, the optimal parameter calculation unit 255 can perform downsampling of the second video content 221 using the downsampling unit 254 according to the playback length of the second video content 221, and also apply the optimal encoding parameter value calculation algorithm to the downsampled second video content. In connection with the application of the optimal encoding parameter value calculation algorithm, the optimal parameter calculation unit 255 generates an array having a limited length for each EP (encoding parameter, hereinafter referred to as EP) belonging to the second video encoder 223 (or each EP obtained from the parameter information 225 stored in the server memory 220). In this process, the optimal parameter calculation unit 255 sorts the assignable values defined in advance for the EP having discrete values (values with a limited length) to generate an array. The optimal parameter calculation unit 255 performs quantization on the EP having continuous values, discretizes them, and generates an array having a limited number. The optimal parameter calculation unit 255 generates an array by sorting for the EP of the categorical type based on the computational complexity instead of numerical values.

[0069] The optimal parameter calculation unit 255 sets an initial EP value for a specific EP. When the EP included in the parameter information 225 for a specific video encoder is composed of N, the EP set can be expressed as {EP0, EP1,..., EP N-1}. Each EP (e.g., EP0, EP1,..., EP N-1)Each may include a plurality of EP values (or EP option values). Each EP may include the same number or a different number of EP values from each other. The information can be obtained from the parameter information 225. The optimal parameter calculation unit 255 can select a specific EP from the EP set by a random method, user input signal reception, or a specified method, and determine an initial EP value among the EP values of the selected EP. As an example, the optimal parameter calculation unit 255 can determine the median value among the arrangement of a plurality of EP values as the initial value of the EP value.

[0070] The optimal parameter calculation unit 255 encodes at least a part of the selected video clip (e.g., the first I-frame of the video clip or any one of a plurality of video clips) based on the initial EP value, and measures the video quality. In connection with the measurement of the video quality, the optimal parameter calculation unit 255 can use psnr (peak signa-to-noise ratio), vmaf (video multimethod assessment fusion), ssim (structural similarity), LPIPS (LEARNED PERCEPTUAL IMAGE PATCH SIMILARITY), etc., but the present invention is not limited thereto, and any quality metric that can be compared numerically can be applied as long as it is a video quality measurement standard.

[0071] In relation to the selection of EP values, the optimal parameter calculation unit 255 sets the array index of each EP based on the initial EP value, and performs encoding on the video clip with respect to the target bitrate using the initial EP value, and can measure the video quality. The optimal parameter calculation unit 255 changes the array index value by + / -M (M is an integer greater than or equal to 1) for each of the other EPs among the overall EP or N EPs, applies the EP value corresponding to the array index selected by the M change to the video clip and performs encoding, and then measures the video quality. By updating the EP value, the optimal parameter calculation unit 255 can perform indexing for a plurality of EPs and indexing for the EP values of each EP so as to be able to perform encoding on the video clip.

[0072] As an example, the EP value array index can be defined in the form of a matrix of the i-th row indicating a plurality of EPs and the j-th column indicating the EP value of each EP (e.g., EP ij ). Here, i can correspond to the number (or order) of at least a part (or all) of the overall EPs related to the video encoder. Here, when the EP values of each EP are set to different numbers, the j value can change for each respective EP value. The optimal parameter calculation unit 255 sets the variables i and j to 0 as initial values, applies arbitrary values other than 0 to the i and j values respectively, and can select the array index of EP ij . The optimal parameter calculation unit 255 can encode the video clip based on a specific EP value selected in the manner specified by the EP ij array index and measure the video quality. The method by which the optimal parameter calculation unit 255 changes the rows and columns of the array index EP ij includes a predefined fixed method (e.g., sequential selection, odd or even selection, multiple selection).

[0073] As another example, the optimal parameter calculation unit 255 can also perform EP selection and EP value selection based on a linear array. For example, the optimal parameter calculation unit 255 arranges N EPs in a column and selects the EP at a specific order (e.g., the L-th one) among them. L As an example, the optimal parameter calculation unit 255 can select the EP value of the middle order among the N EPs. Alternatively, the optimal parameter calculation unit 255 can select EPs according to a pre-defined selection method (e.g., sequential selection, odd or even number selection, regular or irregular skip selection) for the order of the N EPs. Then, the optimal parameter calculation unit 255 can select at least one EP value from among the K EP values that support the selected EP according to a certain method, encode the video clip with the selected EP value, and measure the quality. As an example, the optimal parameter calculation unit 255 arranges the K EP values of a specific EP in the order of -P,,,, -M~0 (middle order), ~M,,,, P (-P to P are K in number, and M is smaller than or the same as P), selects a specific EP value (e.g., the -M-th, M-th, or middle order EP value) among the arranged EP values to perform encoding on the video clip, measure and compare the quality, and calculate the optimal EP value. The optimal parameter calculation unit 255 can also apply a plurality of M values, select three or more EP values, and then compare the encoding results of the video clip with the three or more EP values to calculate the optimal EP value.

[0074] While encoding the video clip with a plurality of EP values, if the visual quality does not improve, the optimal parameter calculation unit 255 stops the execution and determines the last EP value as the final EP value, or repeats the update of the EP index and the calculation of the optimal EP value a predetermined number of times to determine the final EP value, so that the optimal final EP value for a specific video clip can be calculated. When applying the algorithm, the initial value of the encoding parameter is arbitrarily selected. Experimentally, the medium preset, which is a trade-off setting between the encoding time and the compression performance, shows the best results as the initial value. Accordingly, the optimal parameter calculation unit 255 uses the medium preset, which is generally defined as the initial value of the algorithm for searching the encoding parameter value. The bitrate is not included in the encoding parameter target for searching the optimized value.

[0075] The encoded content generation unit 256 can obtain the optimal encoding parameter value for the video clip representing each scene from the optimal parameter calculation unit 255. The encoded content generation unit 256 can generate the second encoded video content 227 by encoding each scene with the obtained encoding parameter value. That is, the encoded content generation unit 256 can perform encoding in units of scenes using the optimal encoding parameter values searched in units of video clips (or video scenes composed of a plurality of video clips) having common characteristics.

[0076] The content providing unit 257 can assist in the connection of the user terminal 100 and provide the second-encoded video content 227 according to the request of the user terminal 100. As an example, the content providing unit 257 can provide the user terminal 100 with a web page corresponding to the connection request and provide a list of the second-encoded video content 227 stored in the server memory 220 in response to the connection request of the user terminal 100. Alternatively, in response to the request of the user terminal 100, at least one video player (e.g., a video player capable of playing the second-encoded video content 227) that can be installed on the user terminal 100 can be provided to the user terminal 100. The server device 200 can calculate and apply the optimally encoded parameter values for the encoding parameters (encoding parameter sets) belonging to each of the multiple video encoders for one piece of second video content 221. Thereby, the content providing unit 257 can check the type of the video player installed on each user terminal 100 and provide the user terminal 100 with the second-encoded video content 227 of the type that can be played by the video player. In the process of providing the second-encoded video content 227 to the user terminal 100, the content providing unit 257 can provide the second matching information 229 together.

[0077] FIG. 5 is a diagram showing an example of a method for operating adaptive encoding parameters according to an embodiment of the present invention.

[0078] Referring to FIGS. 1 to 5, in connection with the adaptive encoding parameter operation method according to an embodiment of the present invention, the server processor 250 of the server device 200 (or the processor 150 of the user terminal 100) can acquire video content in 501 steps corresponding to administrator input or preset scheduling information. For example, the server processor 250 can acquire video content already stored in the server memory 220. Alternatively, the server processor 250 can also acquire video content from the user terminal 100 or an external server device.

[0079] In 503 steps, the server processor 250 can perform scene classification of the video content. As an example, the server processor 250 can classify the video content by scene and generate at least one video clip based on the classified scenes. For example, the server processor 250 can multiply a preset number of seconds per unit time for each scene to generate a video clip and then store it in the server memory 220. Alternatively, the server processor 250 can apply scene change detection technology to the video content to classify it in units of scenes. Alternatively, the server processor 250 can detect the scenes of the video content based on scene data recorded in relation to the video content (e.g., titles, tables of contents, playback times of each scene, position information of each scene, data defining scene transition points for a scene or a group of scenes). Alternatively, the server processor 250 can classify the next frame with a change greater than a predefined reference value through frame comparison as a new scene. One scene can have a playback time of several seconds to several minutes. The server processor 250 can generate a video clip by classifying scenes of a predefined unit exceeding a certain value (e.g., 10 seconds).

[0080] In step 505, the server processor 250 encodes a video clip corresponding to at least a part of the segmented scene, and an array index EP0 to EP of N encoding parameters belonging to the already installed video encoder is instructed. N-1 Among them, at least one array index EP q (q is a natural number from 0 or more to N - 1 or less) of the EP value can be applied to the encoding based on the target bit rate. Alternatively, the server processor 250 can select at least a part of the EPs in a pre-specified manner for a plurality of EPs, select a plurality of EP values from among the EP values supporting the selected respective EPs, and perform encoding on the video clip.

[0081] In step 507, the server processor 250 can measure the video quality of the encoding result with a plurality of EP values applied. For example, the server processor 250 selects a plurality of indexes smaller than N from among EP0 to EP N-1 according to a specified criterion, and can compare the video quality of the encoding result in which the EP value (encoding parameter value) corresponding to the selected EP index is applied to the video clip. Here, the criterion for the server processor 250 to select a plurality of indexes smaller than N from among EP0 to EP N-1 may include various methods. For example, the server processor 250 can select from among EP0 to EP N-1A random method can be used to select a plurality of pre-specified indices. Alternatively, the server processor 250 can select a certain number of EP indices for each EP characteristic (e.g., discrete EP, continuous EP, categorical EP). Alternatively, the server processor 250 can select one EP index for each EP characteristic, perform encoding based on the EP value corresponding to the selected EP index, and then compare the video quality. Thereafter, the server processor 250 can select a certain number of pre-defined EP indices from the EP characteristic group with the maximum quality and apply the EP values corresponding to the selected EP indices to the video clip to measure the video quality. As another example, the server processor 250 can repeat the above-described steps 505 to 507 until no quality improvement occurs or for a specified number of times.

[0082] In step 509, the server processor 250 can select the EP value with the maximum quality. That is, the server processor 250 can determine, as the final EP value, the EP value corresponding to the EP index that derives the encoding result with the maximum quality among the EP values of the EP indices selected by a pre-defined method.

[0083] In step 511, the server processor 250 can check whether it is the final video scene. If it is not the final video scene, the server processor 250 can branch to step 505 and re-execute the following operations for the video clip of another scene.

[0084] If it is the final video scene, the server processor 250 can check for the occurrence of an end event in step 513. If an end event occurs, the server processor 250 can end the calculation and application functions of the optimal encoding parameter values. Note that if no end event occurs, the server processor 250 branches to step 501, can acquire other video content, and can re-execute the following operations. Note that when the server processor 250 calculates the final EP value for the video clip of the final video scene, it can apply the final EP value corresponding to each scene and perform encoding on the entire video content. In this process, the server processor 250 can create matching information by matching the scene identification information for each scene and the EP value (encoding parameter value) used for each scene, and save it in the server memory 220.

[0085] FIG. 6 is a diagram showing another example of the adaptive encoding parameter operation method according to an embodiment of the present invention.

[0086] Referring to FIGS. 1 to 6, in relation to the adaptive encoding parameter operation method according to an embodiment of the present invention, the server processor 250 (or the processor 150 of the user terminal 100) of the server device 200 can acquire video content in step 601. The process of acquiring video content can correspond to the same steps as step 501 described above.

[0087] At the 603 stage, the server processor 250 can determine a video encoder that has performed encoding on the acquired video content and collect parameter information corresponding to the determined video encoder. In this regard, the server device 200 can save at least one video encoder and parameter information used for the at least one video encoder in the server memory 220 or obtain it from an external server device. When there are multiple video encoders, the server processor 250 can select a video encoder specified by the characteristics of the video content. In this regard, the server device 200 can save and manage matching information regarding the optimal video encoder for each type of video content characteristic (e.g., documentary, movie, drama, educational video, etc.). The information regarding the optimal video encoder can be obtained statistically or experimentally.

[0088] At the 605 stage, the server processor 250 can generate an array corresponding to the parameters obtained from the parameter information. For example, the server processor 250 can sort the assignable values defined in advance for an EP (encoding parameter) having discrete values (values with a limited length) to generate an array. The server processor 250 can perform quantization on an EP having continuous values, discretize it, and generate an array having a limited number. For a categorical EP, the server processor 250 can sort based on computational complexity to generate an array. In relation to array generation, the server processor 250 can operate an array generator that applies a rule defined in advance to the input EP to generate a specific array.

[0089] At stage 607, the server processor 250 can generate an index corresponding to each generated array. In relation to the index generation, the server processor 250 can generate an index that can classify each array according to the length and complexity of the array. For example, when the parameter information contains N parameters, the server processor 250 can generate N-1 indexes of EP0, EP1, ···, EP N-1 . Further or alternatively, the server processor 250 can generate an index for a plurality of EP values set for each EP (e.g., EP0, EP1, ···, EP

[0090] ). At stage 609, the server processor 250 selects a specific EP L from among the N EPs in a pre-specified manner, selects a plurality of EP values from among all the EP values set for the selected EP L , and can perform encoding on a video scene (or a video clip corresponding to a part of the video scene) based on a target bitrate. As an example, when K EP values are set for EP L , the server processor 250 can select some of the K EP values (e.g., EP values in a specific order or within a certain range from the 0th to the Kth EP values), and perform encoding on the video scene based on the selected EP values. Or, the server processor 250 can select the +Mth and -Mth EP values based on a specific order in the sequence of EP values of EP L , and use the selected EP values to encode the video scene based on a target bitrate. At this time, the indexes of other EPs are not changed. Or, the server processor 250 performs encoding on the video scene with the EP L value (EP value) using an integer y where -M <= y <= M as the array index.

[0091] In connection with encoding for a video scene, the server memory 230 can store a plurality of EPs, and each EP may include a plurality of EP values (for example, if a specific EP is QP, the EP value of QP can be defined as [10, 22, 27, 32, 37, 42, 47]). The server processor 250 can define an array index for a plurality of EPs and an array index for a plurality of EP values for each EP.

[0092] As an example, the server processor 250 can select EPs with a reference +M to -M index and encode the video scene based on a target bitrate. The EP L is an index value indicating N EPs associated with a video encoder and can be a specific index among EP0 to EP L . As an example, EP N-1 can be an intermediate index between EP0 and EP L . Also, the M can have a natural number value. The server processor 250 can select a plurality of EP indexes among EP0 to EP N-1 according to the above-mentioned criteria. As an example, when M is 3 and is set to select 3 EP indexes, the server processor 250 selects EP N-1 , EP L , EP L+3 , EP L-3The EP index corresponding thereto can be selected. The M value can be other values than 3, and the server processor 250 can select two or more EP indexes between +M and -M. When a plurality of EP indexes are selected, the server processor 250 can apply the plurality of EP values set for the selected EP indexes to the encoding of at least a part of the video scene. In this process, the server processor 250 first performs scene segmentation of the video content in step 503 described in FIG. 5, obtains a video clip with a length of several seconds based on the start point of each scene, and then performs video encoding by applying the plurality of selected EP values to the video clip. The server processor 250 can perform downsampling (e.g., converting the video clip to a low image quality) on the obtained video clip for faster operation, and then perform video encoding on the downsampled video clip.

[0093] In step 611, the server processor 250 can select the index of the EP value with the maximum quality among the encoding results to which the plurality of selected EP values are applied. In step 613, the server processor 250 checks whether the maximum quality EP value index selection operation has been performed more than the specified number of times. If it is less than the specified number of times, in step 615, the L value for EP index change is increased or decreased by 1, branched to step 609, and the following operations can be re-executed. The server processor 250 can perform the above-described steps 609 to 615 for all video scenes included in the video content. The increase or decrease of the L value by 1 can be performed in parallel. In this case, the server processor 250 performs the increase and decrease of the EP index in parallel, and can apply video encoding to the video clip with the EP values set for each EP index.

[0094] When the specified number of times arrives, at stage 617, the server processor 250 can perform video content encoding with the maximum quality EP value. For example, the server processor 250 can perform encoding for each entire video scene (e.g., video clips included in each video scene) with the maximum quality EP value.

[0095] At stage 619, the server processor 250 can check for the occurrence of an end event that indicates the end of encoding for the video content. If the end event occurs, the server processor 250 can end the calculation and application function of the optimal EP value. Note that if there is no occurrence of the end event, the server processor 250 branches to the 601 stage, acquires other video content, and can re - execute the following operations.

[0096] As described above, the adaptive encoding parameter operation method according to the embodiment of the present invention extracts at least one video clip for each scene of the video content, calculates an encoding parameter value that shows the optimal quality for a specific video clip (or at least one frame included in the specific video clip) with respect to at least some of the encoding parameter values of a plurality of encoding parameters belonging to the video encoder, and performs video encoding for the video content including the entire scene in such a way that encoding is performed for one scene to which a plurality of video clips belong using the calculated encoding parameter value, thereby obtaining an encoding result having optimal quality. Since a plurality of video clips belonging to one video scene have the same or similar screen characteristics, even if the same encoding parameter value is applied, encoding can be performed with optimal quality. Therefore, the optimal encoding parameter value can be calculated and applied through a relatively small amount of calculation (e.g., encoding for a video clip corresponding to a part of the scene).

[0097] As an example, in relation to the method of operating adaptive encoding parameters, the server processor 250 includes steps of obtaining video content, segmenting video scenes in the video content, obtaining video clips corresponding to parts of each of the video scenes, performing video encoding for each of the video clips based on the EP value (encoding parameter value) of at least some of the encoding parameters among the overall encoding parameters related to the video encoder for encoding the video content, calculating the final encoding parameter value to be applied to each of the video clips based on the encoding result of the video encoding, and applying the calculated final encoding parameter value to the video scene to perform video encoding for the video content. The step of selecting (or calculating) the final encoding parameter value can be performed for each video clip. As an example, for a specific video clip among each of the video clips, when the specified number of times is 3, the server processor 250 can calculate the first encoding parameter value, the second encoding parameter value, and the third encoding parameter value, and determine the encoding parameter value with the highest quality among them as the final encoding parameter value. In relation to the calculation of the first encoding parameter value, the server processor 250 can select the first plurality of encoding parameters among the overall encoding parameters related to the video encoder, perform a plurality of video encodings for a specific video clip based on at least some of the encoding parameter values of the selected first plurality of encoding parameters, and calculate the first encoding parameter value with the highest quality by comparing the qualities of the plurality of video encoding results.In connection with calculating the second encoding parameter value (or the third encoding parameter value), the server processor 250 selects a second plurality of encoding parameters (or a third plurality of encoding parameters) different from the first plurality of encoding parameters, performs a plurality of video encodings on the specific video clip based on at least a part of the encoding parameter values of the selected encoding parameters, and calculates a second encoding parameter value (or a third encoding parameter value) of the maximum quality for the specific video clip by comparing the qualities of the plurality of video encoding results. Finally, the server processor 250 can compare the video encoding qualities of the first to third encoding parameter values with each other and select the encoding parameter value of the maximum quality as the final encoding parameter value.

[0098] As another example, in connection with calculating the final encoding parameter value, the server processor 250 classifies the overall encoding parameters by characteristic, samples encoding parameters from each of the encoding parameter groups classified by characteristic, performs video encoding on the video clip using at least a part of the encoding parameter values set for the sampled encoding parameters, selects a specific encoding parameter value indicating the encoding result of the maximum quality, selects a plurality of encoding parameters from the group of characteristics including the specific encoding parameter value, performs video encoding on the video clip based on the encoding parameter values set for the selected plurality of encoding parameters, and calculates the encoding parameter value of the maximum quality among the encoding results as the final encoding parameter value.

[0099] As explained above, while this specification contains numerous specific implementation details, these should not be construed as limitations on the scope of any invention or claim, but rather as descriptions of the unique features of particular embodiments of particular inventions.

[0100] Additionally, although acts are depicted in the figures in a particular sequence, this should not be understood as requiring that such acts be performed in the particular sequence or order shown to achieve desirable results, or that all of the depicted acts must be performed. In certain cases, multitasking and parallel processing may be advantageous. Also, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged in multiple software products.

[0101] The written description sets forth the best mode of the invention and provides examples to explain the invention and to enable one skilled in the art to make and use the invention. The embodiments of the invention disclosed in the specification and drawings thus prepared are merely illustrative examples to aid in understanding and are not intended to limit the scope of the invention. Therefore, although the invention has been described in detail with reference to the above-described embodiments, those of ordinary skill in the art may make modifications, changes, and variations to the present embodiments without departing from the scope of the invention.

[0102] Therefore, the scope of the present invention should be defined not by the described embodiments, but by the appended claims. [Explanation of symbols]

[0103] 50 Network 100 user terminals 110 Communication Circuit 120 memory 130 Camera 140 Display 150 processors 160 Input section 200 Server Devices 210 Server communication circuit 220 Server Memory 240 Server Display 250 Server Processors

Claims

1. In an adaptive video encoding parameter operation method, a server processor of a server device acquires video content; classifies video scenes in the video content; acquires video clips corresponding to parts of each of the video scenes; performs video encoding on each of the video clips based on encoding parameter values set for at least some of the overall encoding parameters related to a video encoder that encodes the video content; calculates final encoding parameter values to be applied to each of the video clips based on the encoding results of the video encoding; performs video encoding on the video content by applying the calculated final encoding parameter values to the video scenes, including: The step of calculating the final encoding parameter values assigns an array index to each encoding parameter value of the at least some encoding parameters, selects a plurality of array indexes from the array indexes according to a predetermined method, performs encoding on the video clip based on the plurality of encoding parameter values corresponding to the selected array indexes, and detects the encoding parameter value of the optimal quality; characterized in that the adaptive video encoding parameter operation method includes this step.

2. The step of calculating the encoding parameter value of the optimal quality selects a first plurality of encoding parameters from the overall encoding parameters related to the video encoder, and performs a plurality of video encodings on a specific video clip using the plurality of encoding parameter values set for the selected first plurality of encoding parameters; compares the qualities of the plurality of video encoding results and calculates a first encoding parameter value of the maximum quality; characterized in that the adaptive video encoding parameter operation method according to Claim 1 includes this step.

3. The step of calculating the encoding parameter value of the optimal quality Select a second plurality of encoding parameters different from the first plurality of encoding parameters, and perform a plurality of video encodings on the specific video clip using a plurality of encoding parameter values set for the selected second plurality of encoding parameters; Comparing the quality of the plurality of video encoding results to calculate a second encoding parameter value of the maximum quality for the specific video clip; Comparing the video encoding quality of the first encoding parameter value with the video encoding quality of the second encoding parameter value, and selecting the encoding parameter value of the maximum quality as the final encoding parameter value; The adaptive video encoding parameter operation method according to claim 2, characterized by including.

4. Further comprising the step of video-encoding a video scene to which the specific video clip belongs based on the final encoding parameter value; The adaptive video encoding parameter operation method according to claim 3, characterized by including.

5. The step of calculating the final encoding parameter value is Classifying the overall encoding parameters by characteristic; Sampling encoding parameters from each of the encoding parameter groups classified by characteristic, and video-encoding the video clip with the encoding parameter values set for the sampled encoding parameters; Selecting a plurality of encoding parameters from a group including a specific encoding parameter value indicating the encoding result of the maximum quality; Video-encoding the video clip based on the encoding parameter values set for the selected plurality of encoding parameters; Calculating, as the final encoding parameter, the encoding parameter value of the maximum quality among the encoding results; The adaptive video encoding parameter operation method according to claim 1, characterized by including.

6. Further comprising the step of defining the overall encoding parameters as an array index, and the step of defining the array index is Sorting the assignable values defined in advance for the encoding parameters having a limited length of the encoding parameters to generate the array index; Performing quantization on the encoding parameters having consecutive values, binaryizing them, and generating an array index having a limited number; and Sorting based on computational complexity for the categorical encoding parameters to generate an array index; The adaptive video encoding parameter operation method according to claim 1, characterized by including at least one of the steps.

7. The step of performing video encoding for each of the video clips includes Performing downsampling for each of the video clips; and Performing the video encoding on the downsampled video clips; The adaptive video encoding parameter operation method according to claim 1, characterized by including.

8. In a server device that supports adaptive video encoding parameter operation, A server memory for storing video content; A server processor functionally connected to the server memory; including The server processor Classifies video scenes in the video content, obtains video clips corresponding to a part of each of the video scenes, performs video encoding for each of the video clips based on the encoding parameter values set for at least some of the encoding parameters of the overall encoding parameters related to the video encoder for encoding the video content, calculates the final encoding parameter values to be applied to each of the video clips based on the encoding results of the video encoding, and is set to perform video encoding on the video content by applying the calculated final encoding parameter values to the video scenes, The server processor An array index is assigned to each encoding parameter value of the at least partial encoding parameters, a plurality of array indexes among the array indexes are selected according to a predetermined method, encoding for the video clip is performed based on the plurality of encoding parameter values corresponding to the selected array indexes, and a server device for assisting in adaptive video encoding parameter operation is characterized in that it is set to detect an encoding parameter value of optimal quality.

9. The server processor, selects a first plurality of encoding parameters among the overall encoding parameters related to the video encoder, performs a plurality of video encodings for a specific video clip using the plurality of encoding parameter values set for the selected first plurality of encoding parameters, and is set to calculate a first encoding parameter value of maximum quality by comparing the quality of the plurality of video encoding results. The server device for assisting in adaptive video encoding parameter operation according to claim 8.

10. The server processor, selects a second plurality of encoding parameters different from the first plurality of encoding parameters, performs a plurality of video encodings for the specific video clip using the plurality of encoding parameter values set for the selected second plurality of encoding parameters, calculates a second encoding parameter value of maximum quality for the specific video clip by comparing the quality of the plurality of video encoding results, and mutually compares the video encoding quality of the first encoding parameter value and the video encoding quality of the second encoding parameter value to select the encoding parameter value of maximum quality as the final encoding parameter value. The server device for assisting in adaptive video encoding parameter operation according to claim 9.

11. The server processor, The server device for assisting in the operation of adaptive video encoding parameters according to claim 10, wherein the server device is set to perform video encoding on a video scene to which the specific video clip belongs based on the final encoding parameter value.

12. The server processor classifies the overall encoding parameters by characteristic, performs video encoding on the video clip based on the encoding parameter values of the encoding parameters sampled from the encoding parameter groups classified by characteristic, selects a plurality of encoding parameters from the group including the specific encoding parameter value indicating the encoding result of the highest quality, performs video encoding on the video clip based on the encoding parameter values set for the selected plurality of encoding parameters, and is set to calculate the encoding parameter value of the highest quality among the encoding results as the final encoding parameter value. The server device for assisting in the operation of adaptive video encoding parameters according to claim 8.

13. The server processor, in relation to the process of defining the overall encoding parameters as an array index, sorts the assignable values defined in advance for the encoding parameters having a limited value of the length of the encoding parameters to generate the array index, performs quantization on the encoding parameters having consecutive values, binaryizes them, and generates an array index having a limited number, or is set to sort the categorical encoding parameters based on the computational complexity to generate an array index. The server device for assisting in the operation of adaptive video encoding parameters according to claim 8.

14. The server processor A server device for assisting in the operation of adaptive video encoding parameters according to claim 8, characterized in that downsampling is performed on each of the video clips, and the video encoding is performed on the downsampled video clips.

Citation Information

Patent Citations

  • Optimal signal encoding based on experimental data

    US20180338151A1