WO2023071482A1 - 视频编辑方法和电子设备 - Google Patents
视频编辑方法和电子设备 Download PDFInfo
- Publication number
- WO2023071482A1 WO2023071482A1 PCT/CN2022/114891 CN2022114891W WO2023071482A1 WO 2023071482 A1 WO2023071482 A1 WO 2023071482A1 CN 2022114891 W CN2022114891 W CN 2022114891W WO 2023071482 A1 WO2023071482 A1 WO 2023071482A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- video
- electronic device
- bit depth
- color
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/34—Indicating arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47205—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
Definitions
- the present application relates to the field of terminals, in particular to a video editing method and electronic equipment.
- smart terminals such as mobile phones and tablets can support the shooting of higher-quality pictures, videos and other image content, such as HDR video in HDR10, DolbyVision, HLG, TechniColorHDR and other formats.
- HDR video images support richer colors and more vivid and natural details, which can bring users a better visual experience.
- most smart terminals do not yet support image operations on HDR videos directly, and the HDR videos need to be converted to SDR videos with lower quality. In this way, the video obtained after the image editing operation is a low-quality SDR video. This degrades user experience.
- the present application provides a video editing method and electronic equipment.
- the image processor does not support the output of 10-bit deep video through the existing output function
- the electronic device can implement the above video editing method to realize the function of outputting 10-bit deep video, thereby providing users with the ability to edit and save 10-bit deep video services without degrading the quality of the edited 10-bit video.
- the embodiment of the present application provides a video editing method, the method includes: detecting a first editing operation acting on the first video, the first editing operation is used to edit the first video, and the first editing operation of the first video
- the color value of the color channel of the pixel in the video frame is the first color value
- the first color value is integer data
- the bit depth of the first color value is the first bit depth
- the first video frame is any Video frame
- in response to the first editing operation generate a second color value based on the first color value, the second color value is floating-point data
- N third color values based on the second color value
- N third color values It is floating-point data
- the bit depth of the N third color values is the second bit depth, and N is a positive integer greater than 1
- the fourth color value is generated based on the N third color values
- the bit depth of the fourth color value is The first bit depth, the fourth color value is integer data;
- the second video frame is generated based on the fourth color value;
- the second video is generated
- the electronic device in the process of editing and saving 10bit (i.e. the first bit depth) video, can split a floating-point number stored in a color channel of a pixel in the video frame into two floating-point numbers, and an integer formed by the corresponding integers of these two floating-point numbers is the same as the integer number corresponding to the above-mentioned one floating-point color.
- the electronic device after outputting the numerical values of each color channel after the above-mentioned split based on the existing method of outputting 8bit (ie, second bit depth) video frames, the electronic device can output 10bit video frames by determining the numerical value of a color channel in 10bit format.
- the edited 10bit video is obtained. Therefore, the electronic device can provide users with the service of editing and saving 10bit video.
- generating N third color values based on the second color value includes: determining a sixth color value corresponding to the second color value, and the bit depth of the sixth color value is In the first bit depth, the sixth color value is integer data; in the second bit depth, the sixth color value is split into N integer data of the second bit depth; according to N integer data of the second bit depth type data to determine N third color values.
- the electronic device when the electronic device splits a floating-point number into two floating-point numbers, it can first determine the integer number corresponding to the above-mentioned floating-point number, and then, the integer number can be divided into high eight bits, low The eight bits are divided into two integer numbers, and the floating-point numbers corresponding to the above-mentioned two integer numbers after the above-mentioned splitting are the above-mentioned two floating-point numbers.
- the electronic device includes a graphics processing unit GPU, an encoder, and a first memory, and generates a fourth color value based on N third color values, including: the GPU converts the Nth color values The three color values are written into the first memory to obtain N fifth color values, and the N fifth color values are integer data; the encoder reads N fifth color values from the first memory with the first bit depth to obtain the first Four color values.
- the surface can determine a color value with 10bit (first bit depth), that is, the two second color values
- the three color values are determined as one color value, so that the encoder can identify the color value of one color channel by 10 bits.
- the method before the GPU writes the N third color values into the first memory, the method further includes: setting the bit depth of the video frame carried in the first memory to be the first one deep.
- the electronic device can set the bit depth of the first memory (that is, the surface) to 10bit, so that when the GPU outputs video frames in accordance with 8bit, the surface can recognize two consecutive 8bit data in the video as the color value of a color channel , that is, a video frame with a bit depth of 10bit is obtained. Further, the encoder can also determine the color value of one color channel according to two 8-bit data.
- the electronic device includes a Java native interface JNI, and the bit depth of the video frame carried in the first memory is set to be the first bit depth, including: JNI setting the bit depth of the video frame carried in the first memory The bit depth of the video frame is the first bit depth.
- the electronic device can set the bit depth of the first memory (that is, the surface) through the JNI interface.
- the GPU writes N third color values into the first memory, including: JNI sends a request to the GPU to acquire N third color values; JNI receives the request sent by the GPU N third color values; the JNI writes the N third color values into the first memory.
- the electronic device can call JNI to obtain the edited video frame from the GPU.
- the electronic device includes an open graphics library OpenGL, and generating the second color value based on the first color value includes: OpenGL normalizes the first color value, and determines the seventh color value The color value, the seventh color value is floating-point data; OpenGL determines the calculation logic of the second editing operation; OpenGL processes the seventh color value based on the calculation logic to obtain the second color value.
- the electronic device can determine the calculation logic for the pixels in the video frame according to the editing operation selected by the user, and then instruct the GPU to process each pixel according to the above logic, so as to obtain the edited video frame.
- the second editing operation includes: one of an editing operation of changing the number of video frames, an editing operation of changing the number of pixels of a video frame, and an editing operation of changing the color value of a pixel or more.
- the electronic device includes an editing application, and OpenGL determines the calculation logic of the second editing operation, including: OpenGL obtains the second editing operation through the editing application; OpenGL determines the second editing operation based on the second editing operation The calculation logic corresponding to the second editing operation.
- the electronic device includes a decoder and an editing application, and detects a first editing operation acting on the first video, specifically: the editing application detects a first editing operation acting on the first video A first editing operation; after detecting the first editing operation on the first video, the method further includes: the editing application sends the first video to the decoder; in response to receiving the first video, the decoder decodes the first video as M original video frames, the first video frame is any one of the M original video frames, and M is a positive integer greater than 1.
- N is equal to 2.
- the first bit depth is 10 bits; the second bit depth is 8 bits.
- the sixth color value is split into N integer data of the second bit depth in units of the second bit depth, including: when the first bit depth is When the second bit depth is a positive integer multiple, N is a positive integer; when the first bit depth is not divisible by the second bit depth, then N is the quotient obtained by rounding up after dividing the second bit depth by the first bit depth .
- the electronic device can obtain 8-bit data by filling high bits with 0.
- the request for obtaining N third color values carries the address of the second memory
- the second memory is the memory for storing data requested by JNI
- the method further includes: In response to receiving a request for obtaining N third color values, the GPU writes N third color values to the second memory; JNI receives the N third color values sent by the GPU, specifically including: the second memory of JNI receives the GPU N third color values sent; JNI writes N third color values into the first memory, specifically: JNI writes N third color values stored in the second memory into the first memory.
- the electronic device After the electronic device obtains the edited video frame from the GPU, it stores the above video frame in the image buffer (ie, the second memory) applied for by itself, and then inputs the above video frame into the surface (ie, the first memory) .
- the image buffer ie, the second memory
- the surface ie, the first memory
- the electronic device includes an open graphics library OpenGL, and JNI sends a request to the GPU to obtain N third color values, including: JNI sends a request to obtain N third color values to OpenGL The first request; OpenGL sends to the GPU a second request for obtaining N third color values; in response to receiving the request for obtaining N third color values, the GPU writes N third color values to the second memory, specifically : In response to the second request, the GPU sends requests for N third color values to OpenGL; OpenGL writes the requests for N third color values into the second memory.
- JNI sends a request to obtain N third color values to OpenGL The first request
- OpenGL sends to the GPU a second request for obtaining N third color values
- the GPU writes N third color values to the second memory, specifically :
- the GPU sends requests for N third color values to OpenGL
- OpenGL writes the requests for N third color values into the second memory.
- the method further includes that the decoder sends the M original video frames to OpenGL; Before the calculation logic of the second editing operation, the method further includes: OpenGL setting the color coding format of the first video frame to RGB color format.
- the first video includes one of a high dynamic range HDR video and a LOG video.
- the second editing operation is an editing operation of changing the number of video frames and/or an editing operation of changing the number of pixels of a video frame
- the second video is an HDR video
- the second editing operation is an editing operation of changing the number of video frames.
- the second video is an HDR video; or the second video is a LOG video, and the second video is a LOG video;
- the second editing operation is an editing operation of changing pixel color values, the second video is a LOG video, and the second video is an HDR video .
- the present application provides an electronic device, which includes one or more processors and one or more memories; wherein, one or more memories are coupled with one or more processors, and one or more
- the memory is used to store computer program codes.
- the computer program codes include computer instructions.
- the electronic device executes the method described in the first aspect and any possible implementation manner of the first aspect.
- the present application provides a computer-readable storage medium, including instructions.
- the above-mentioned instructions When the above-mentioned instructions are run on an electronic device, the above-mentioned electronic device executes the method described in the first aspect and any possible implementation manner of the first aspect. method.
- the present application provides a computer program product containing instructions.
- the above-mentioned computer program product is run on an electronic device, the above-mentioned electronic device is executed as described in the first aspect and any possible implementation manner of the first aspect. method.
- the electronic device provided in the second aspect above, the computer storage medium provided in the third aspect, and the computer program product provided in the fourth aspect are all used to execute the method provided in the first aspect of the present application. Therefore, the beneficial effects that it can achieve can refer to the beneficial effects in the corresponding method, and will not be repeated here.
- 1A-1K are schematic diagrams of a set of user interfaces provided by the embodiment of the present application.
- FIG. 2 is a flow chart of electronic equipment processing and editing video services provided by an embodiment of the present application
- FIG. 3 is a software architecture diagram of an electronic device provided in an embodiment of the present application.
- FIG. 4 is a software architecture diagram of another electronic device provided by the embodiment of the present application.
- FIG. 5 is a data flow diagram of an electronic device performing initialization of a video editing environment provided by an embodiment of the present application
- FIG. 6A is a schematic diagram of video frame color coding format conversion performed by an electronic device provided in an embodiment of the present application.
- FIG. 6B-FIG. 6C are schematic diagrams of the electronic device provided by the embodiment of the present application using two floating-point numbers to replace one floating-point number so that the GPU outputs 10bit video frames;
- FIG. 6D is a schematic diagram of filling a video frame by an electronic device provided in an embodiment of the present application.
- FIG. 7 is a flow chart of video editing by an electronic device provided in an embodiment of the present application.
- FIG. 8 is a hardware structural diagram of an electronic device provided by an embodiment of the present application.
- HDR High Dynamic Range
- SDR Standard Dynamic Range
- bit depth for representing color is 8bit.
- Bit depth refers to the method by which a computer uses "bits" to record the color of a digital image.
- a bit depth of 8 bits means that the number of counting unit bits used by the computer is 8, and the computer can represent 2 8 (256, 0-255) colors through these 8 bits.
- the bit depth representing the color is 10 bits, and the colors that can be used in the HDR video include 2 10 (1024, 0-1023) kinds.
- the color gamut indicates the range of colors that can be displayed during video encoding.
- HDR video uses BT2020 color gamut
- SDR video uses BT709 color gamut.
- HDR video can use more colors, a wider range of color representation, and a higher display brightness range.
- HDR video can support richer image color performance and more vivid images. Image detail performance. This also enables HDR video to provide users with viewing effects, thereby improving the user experience.
- the user After shooting a video, the user usually needs to perform an editing operation on the shot video, so that the edited video can better meet the personalized needs of the user. For example, after shooting a video, in response to the user's cropping operation, the electronic device 100 can cut the shot video into a video with a shorter video length; in response to the user's operation of adding special effects, the electronic device 100 can add special effects to the shot video image content (including filters, animation effects, text, stickers, etc.), so that the edited video has the above-mentioned corresponding image effects.
- special effects including filters, animation effects, text, stickers, etc.
- each frame of video data is 8bit YUV data (a color format of video sampling).
- the color format of the data when the video is edited will be converted into 8-bit RGB data.
- the electronic device 100 can directly use the C2D engine provided by the Graphics Processing Unit (GPU). , converting video data in 8bitRGB format to video data in 8bitYUV format, and the converted 8bitYUV data format is used as the data format when the final video is encoded into slices. Then, the electronic device 100 may save the edited video in the storage device. In this way, when the user needs to browse or use the edited video, the electronic device 100 can read the edited video from the storage device.
- the C2D engine provided by the Graphics Processing Unit (GPU).
- the color bit depth of SDR video is 8bit
- the video data color format is YUV.
- the electronic device 100 can encode and output video in 8bit YUV format. In this way, the above-mentioned SDR video in 8bitYUV format is still a video in 8bitYUV format after being edited.
- the bit depth of HDR type video is 10bit
- the video data color format is YUV. Since the C2D engine provided by the GPU does not support the conversion of 10bitRGB to 10bitYUV, and the format of the video to be edited is 10bitYUV at this time, if the above editing method is still used, the video to be edited in the above 10bitYUV format cannot be converted to 10bitRGB. Utilizes the C2D engine to restore itself to 10bitYUV. That is to say, in the scene of editing HDR video, the electronic device 100 cannot use the C2D engine provided by the existing GPU to obtain an output video consistent with the input HDR video in 10bitYUV format. If the bit depth of the output video is changed from 10bit to 8bit, the quality of the output video after editing will also decrease.
- embodiments of the present application provide a video editing method and an electronic device.
- the method can be applied to electronic devices capable of image processing, such as mobile phones and tablet computers.
- the electronic device 100 can support editing and converting the 10bitYUV format into a 10bitRGB format, and support saving the edited video as a video in the 10bitYUV format.
- the above-mentioned 10bit YUV format video includes HDR10, DolbyVision, HLG, TechniColorHDR and other HDR videos, and also includes 10bit gray film (LOG gray film) shot in LOG mode.
- the above editing operations include but are not limited to cropping, image inversion, zooming, adding text, adding filters, adding titles (or endings or other pages), adding video watermarks or stickers, etc.
- the electronic device 100 can use the capabilities provided by the Open Graphics Library (OpenGL) to first convert the video data in the 10bitYUV format into video in the 10bitRGB format Data, rendering the edited video data in 10bitRGB format, so as to obtain the edited video data. Further, the electronic device 100 can convert the edited video data in 10bitRGB format into video data in 10bitYUV format through an RGB-YUV conversion algorithm. The YUV data is encoded in the HDR video format by a video encoder to generate HDR video data. Then, the electronic device 100 may save the edited video in the storage device. In this way, when the user needs to browse or use the above-mentioned edited video, the electronic device 100 can read the above-mentioned edited video from the above-mentioned storage device, and display it for the user to browse and view.
- OpenGL Open Graphics Library
- the electronic device 100 not only satisfies the user's requirement for editing 10-bit videos, but also ensures that the edited and saved videos are still 10-bit videos, and the quality of the edited videos will not be reduced.
- the electronic device 100 can also be a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, and a cellular phone, a personal digital Assistant (personal digital assistant, PDA), augmented reality (augmented reality, AR) equipment, virtual reality (virtual reality, VR) equipment, artificial intelligence (artificial intelligence, AI) equipment, wearable equipment, vehicle equipment, smart home equipment And/or smart city equipment, the graphics processor of the above-mentioned electronic equipment does not have the ability to directly edit and save 10bit bit depth video.
- PDA personal digital assistant
- augmented reality augmented reality, AR
- VR virtual reality
- AI artificial intelligence
- wearable equipment wearable equipment
- vehicle equipment smart home equipment
- the graphics processor of the above-mentioned electronic equipment does not have the ability to directly edit and save 10bit bit depth video.
- the embodiment of the present application does not specifically limit the specific type of the electronic device.
- FIGS. 1A-1K schematically show a group of user interfaces on the electronic device 100.
- the application scenarios for implementing the video editing method provided by the embodiment of the present application will be described in detail below with reference to FIGS. 1A-1K.
- FIG. 1A exemplarily shows a user interface displaying installed application programs on the electronic device 100, that is, a home page.
- one or more application program icons are displayed on the main page, such as a "clock” application program icon, a “calendar” application program icon, a "weather” application program icon, and the like.
- the above-mentioned one or more application program icons include an icon of a “Gallery” application program (hereinafter referred to as “Gallery”), that is, an icon 111 .
- the electronic device 100 may detect a user operation acting on the icon 111 .
- the above operation is, for example, a click operation, a long press operation, and the like.
- the electronic device 100 may display the user interface shown in FIG. 1B .
- FIG. 1B exemplarily shows the main interface of the "Gallery” when the "Gallery” is running on the electronic device 100 .
- This interface can display one or more pictures or videos.
- the above-mentioned one or more videos include HDR video, LOG video, and other types of video, such as SDR video.
- the above-mentioned LOG video refers to a low-saturation, low-brightness video shot in the LOG gray mode, and may also be called a LOG gray film.
- the bit depth of HDR video and LOG video is 10bit.
- the bit depth of SDR video is 8bit.
- the video indicated by the icon 121 may be an HDR video; the video indicated by the icon 122 may be a LOG video; and the video indicated by the icon 123 may be an SDR video.
- the icon indicating the video can display the type of the video. In this way, the user can know the type of the video through the information displayed in the icon. For example, HDR is displayed in the lower left corner of the icon 121 ; LOG is displayed in the lower left corner of the icon 122 .
- the electronic device 100 may detect a user operation acting on the icon 122, and in response to the operation, the electronic device 100 may display the user interface shown in FIG. 1C.
- FIG. 1C is a user interface of the electronic device 100 specifically displaying a certain picture or video.
- the user interface may include a window 131 .
- Window 131 can be used to display the picture or video that the user selects to browse.
- the picture or video that the user selects to browse is the LOG video (“Video A”) indicated by the icon 122 . Then, "Video A” can be displayed in the window 131 .
- the user interface also includes icons 132 and controls 133 .
- Icons 132 may be used to represent the type of video displayed in window 131 .
- "LOG" displayed in the current icon 132 may indicate that "Video A" is a LOG type video.
- the icon 132 may display the words "HDR”; when the video selected by the user is an SDR video (such as the video indicated by the selected icon 123) , the words "SDR" and the like may be displayed in the icon 132.
- the control 133 can be used to receive a user's operation of editing a video (or picture), and display a user interface for editing a video (or picture).
- the electronic device 100 may display the user interface shown in FIG. 1D .
- the user interface may also include controls 134, share controls (135), favorite controls (136), delete controls (137), and the like.
- the control 134 can be used to display detailed information of the video, such as shooting time, shooting location, color coding format, bit rate, frame rate, pixel size and so on.
- the sharing control (135) can be used to send the video A to other applications for use.
- the electronic device 100 may display icons of one or more applications, and the icons of the one or more applications include social software A (such as QQ, WeChat, etc. ) icon.
- social software A such as QQ, WeChat, etc.
- the electronic device 100 can send the video A to the social software A, and further, the user can share the video to friends through the social software.
- a favorite control can be used to tag videos.
- the electronic device 100 may mark video A as the user's favorite video.
- the electronic device 100 can generate an album for displaying videos marked as favorite by the user. In this way, in the case that video A is marked as the user's favorite video, the user can quickly view video A through the above-mentioned photo album showing the user's favorite videos.
- a delete control (137) can be used to delete video A.
- FIG. 1D exemplarily shows a user interface for a user to edit a video (or picture).
- the user interface may include a window 141 , a window 142 , an operation bar 143 , and an operation bar 144 .
- Window 141 can be used to preview the edited video. Generally, window 141 will display the cover video frame of the video. When a user operation acting on the play button 145 is detected, the window 141 may sequentially display the video frame stream of the video, that is, play the video.
- Window 142 may be used to display a stream of video frames of the video being edited.
- the user can drag the window 142 to adjust the video frame displayed in the window 141 .
- a scale 147 is also shown in FIG. 1D .
- the electronic device 100 can detect the user operation of sliding left or right on the window 142, and in response to the above user operation, the position of the video frame stream where the ruler 147 is located is different. At this time, the electronic device 100 can display the current Frame of video where ruler 147 is located.
- a plurality of icons for video editing operations may be displayed in the operation bar 143 and the operation bar 144 .
- an icon displayed in the operation bar 143 indicates a category of editing operations.
- the operation bar 144 can display video editing operations belonging to the selected operation category in the current operation bar 143 .
- “Clip” is included in the operation column 143 .
- “Clip” displayed in bold can indicate that the operation currently selected by the user is “Clip”.
- some operations such as “splitting”, “capturing”, “volume”, and “deleting” are displayed in the operation bar 144 .
- the operation column 143 also includes "LUT".
- "LUT” refers to a method of adjusting the color of an image through a color table lookup algorithm (look up table). A color adjustment can be called a filter. Therefore, a "LUT” operation provides the user with one or more filters for adjusting the color of the video image.
- the user interface also includes a save control 146 .
- the electronic device 100 may save the video in the current state in response to the operation.
- the video in the current state may be a video with editing operations added, or a video without editing operations. Subsequent embodiments will introduce in detail the processing flow of the electronic device 100 saving the video, which will not be expanded here.
- the electronic device 100 may detect a user operation on the 'LUT', and in response to the operation, the electronic device 100 may display the user interface shown in FIG. 1E.
- FIG. 1E exemplarily shows a user interface where the electronic device 100 displays a LUT filter provided for a user to adjust the color of a video image.
- the screen for editing the video may include multiple LUT filter controls (for example, “none”, “LUT1”, “LUT2”, “LUT3”, “LUT4").
- the electronic device 100 may set the currently used LUT filter to “none” by default, that is, no LUT filter is added. Then, when a user's operation on a certain LUT filter control is detected, in response to the operation, the electronic device 100 may display a user interface for editing a video using the LUT filter indicated by the above-mentioned LUT filter control. For example, the electronic device 100 may detect a user operation on the “LUT4” filter control, and in response to the operation, the electronic device 100 may display the user interface described in FIG. 1F .
- the electronic device 100 can highlight the LUT filter control, for example, increase the LUT filter control, increase the border of the control thick, or set the control highlight, etc., the embodiment of the present application does not limit this.
- the electronic device 100 will also display the rendered video using the LUT filter indicated by the above-mentioned LUT filter control in the window 141 .
- the picture color of the video frame of "Video A" displayed in window 141 is different from the picture color of window 141 in Fig. Consistent.
- the electronic device 100 does not render the entire video using the above-mentioned LUT filter.
- the electronic device 100 often only renders the video frame displayed in the current window, or, in some embodiments Among them, the electronic device 100 may also use other simple image processing means to process the cover video frame, so that the processed image has the effect of the LUT filter when previewed.
- the user interface also includes a confirm control 147 and a cancel control 148 .
- the user may click the confirmation control 147 .
- the electronic device 100 may display the user interface shown in FIG. 1G in response to the operation.
- the electronic device 100 may detect a user operation on the save control 146, and in response to the above operation, the electronic device 100 may display the user interface shown in FIG. 1H.
- the user can click other LUT filter controls to select other LUT filters.
- the electronic device 100 may display in the window 141 a video rendered using the LUT filter indicated by any one of the LUT filter controls.
- the user can click the cancel control 148 .
- the electronic device 100 may display the user interface shown in FIG. 1D .
- FIG. 1H exemplarily shows a user interface of the electronic device 100 displaying resolution options when saving a video.
- the user interface includes a window 151, that is, the electronic device 100 may display the window 151 upon detecting a user operation acting on the save control 146.
- Window 151 may display multiple video resolution options. For example, option 1: full size (2160p, about 50MB); option 2: full HD (1080p, about 21MB); option 3: high definition (720p, about 15MB); option 4: medium quality (480p, about 10MB).
- option 1 full size (2160p, about 50MB); option 2: full HD (1080p, about 21MB); option 3: high definition (720p, about 15MB); option 4: medium quality (480p, about 10MB).
- buttons 152 after each option.
- the user can click the button to select the resolution option corresponding to the button.
- the electronic device 100 may detect a user operation on the button 152, and in response to the operation, the electronic device 100 may display the user interface shown in FIG. 1I.
- the button 152 is transformed from a circle to a circle.
- the circle may indicate that the resolution option currently selected by the user is option 1.
- the electronic device 100 may also replace the button corresponding to the option with a circle.
- the electronic device 100 may detect a user operation acting on the confirmation control 153, and in response to the operation, the electronic device 100 may display the user interface shown in FIG. 1J. As shown in FIG. 1J , at this time, the electronic device 100 may display a window 155 . Window 155 may be used to prompt the user to save progress.
- the electronic device 100 may display a user interface in which the electronic device 100 specifically displays a certain picture or video.
- the video (or picture) displayed in the user interface is an edited video (or picture).
- the original user interface of the video “Video A” shown in FIG. 1C changes to the one shown in FIG. 1K .
- the video of "Video A” displayed in the window 131 is different from the video of "Video A” shown in the original FIG. 1C.
- the screen color of "Video A” in Figure 1K may be different from the screen color of "Video A” shown in the original Figure 1C.
- a LOG type video can be converted into an HDR type video after adding a LUT filter.
- 1A-1K exemplarily show that the electronic device 100 displays a user interface for a user to edit a LOG video (add a LUT filter to the LOG video).
- the above-mentioned edited video may also be an HDR video or an SDR video.
- the electronic device 100 can also detect a user operation acting on the icon 121, and in response to this operation, the video displayed in the window 131 in the user interface shown in FIG. 1C can also be an icon.
- the view indicated by 121 (“Video B").
- the electronic device 100 may also display a user interface for editing the video of "Video B". After finishing editing, the electronic device 100 may save the edited video as an HDR type video.
- the user can edit the 10-bit LOG video and 10-bit HDR video that have been taken, and save the above-mentioned edited video as a 10-bit HDR video after finishing editing.
- this method can ensure that the video quality of the edited video will not be reduced, thereby not reducing the user experience.
- FIG. 2 exemplarily shows a flow chart of electronic device 100 processing a video editing service.
- the process of processing the video editing service by the electronic device 100 includes: S201-S204.
- S201 The electronic device 100 detects a user's operation of editing a video, and then displays a user interface for editing a video.
- the electronic device 100 can display one or more pictures or videos.
- the above videos include 10-bit HDR video, LOG video, and 8-bit SDR video.
- the user can browse pictures or videos stored in the electronic device 100 through the interface.
- the electronic device 100 may detect that the user selects a certain video and edits the video. At this point, the electronic device 100 may determine detailed information of the edited video, including the video type, bit depth, encoding format, and the like. For example, when a user operation acting on the icon 133 (LOG video) is detected, the electronic device 100 may determine that the edited video is the video displayed in the window 131, and the video is a LOG type video, the video bit The depth is 10bit, and the color coding format is YUV.
- the electronic device 100 may determine a video editing method to be specifically adopted subsequently. For example, when it is determined that the edited video is an 8-bit video, the electronic device 100 may determine to adopt an existing editing method of saving the edited video as an 8-bit video, for example, as described above, by calling the C2D engine to realize the encoded color of the rendered video. Method for format conversion. After determining that the edited video is a 10-bit video, the electronic device 100 may determine to adopt the editing method for saving the edited video as a 10-bit video provided in the embodiment of the present application.
- the electronic device 100 may also display a user interface for the user to edit the video, refer to the user interfaces shown in FIGS. 1D-1G .
- S202 The electronic device 100 records the editing operation initiated by the user.
- the electronic device 100 may detect the user's operation on the editing controls of the interface. For example, the electronic device 100 may detect an operation on a LUT filter control in the operation bar 143 . The electronic device 100 may also detect manipulation of other editing controls (clips, music, etc.), and the like.
- valid operations refer to operations that the electronic device 100 will perform during video editing
- invalid operations refer to operations that the electronic device 100 will not perform during video editing.
- the electronic device 100 can confirm that the user's operation of selecting the LUT4 filter is a valid operation; , the electronic device 100 may confirm that the user's operation of selecting the LUT4 filter is an invalid operation.
- the electronic device 100 may record the above-mentioned valid operations.
- the recorded effective operations can be arranged according to the time when the user initiates the operation.
- S203 In response to the detected saving operation, the electronic device 100 performs an editing operation on the edited video, and saves the edited video.
- the electronic device 100 may detect the user's operation of saving the video after the editing is completed. For example, as shown in FIG. 1G , electronic device 100 may detect user manipulation on save control 146 .
- the electronic device 100 can perform environment initialization.
- the aforementioned environment initialization refers to the process in which the electronic device 100 creates tools required for the video editing process and applies for storage space required for the video editing process.
- the electronic device 100 sequentially executes editing operations on the edited video according to the editing operations recorded in S202, so as to obtain an edited video.
- the electronic device 100 can save the edited video as a 10bit video; if the edited video is an 8bit video, the electronic device 100 can save the edited 8bit video as 8bit video.
- the method of saving the edited 8-bit video as an 8-bit video is a prior art, and will not be repeated here.
- the embodiment of the present application will mainly introduce the processing flow of saving the edited 10-bit video as a 10-bit video by the electronic device 100, refer to the subsequent embodiments, and do not expand here.
- the electronic device 100 may display a progress bar.
- the electronic device 100 may display the window 155 (progress bar) shown in FIG. 1J.
- the electronic device 100 may display the saved edited video.
- the video displayed in window 131 is the edited video.
- the video displayed in window 131 is the video before editing by the user.
- the electronic device 100 may display a sharing interface and the like. The embodiment of the present application does not limit this.
- FIG. 3 exemplarily shows the software architecture of the electronic device 100 .
- the following embodiments of the present application will describe the software architecture for saving the edited 10-bit video as a 10-bit video by the electronic device 100 with reference to FIG. 3 .
- the software system of the electronic device 100 may adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture.
- the software structure of the electronic device 100 is exemplarily described by taking an Android system with a layered architecture as an example.
- the layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Layers communicate through software interfaces.
- the Android system is divided into four layers, which are respectively the application program layer, the application program framework layer, the Android runtime (Android runtime) and the system library, and the kernel layer from top to bottom.
- the application layer can consist of a series of application packages. As shown in FIG. 3, the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.
- applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.
- the application program layer also includes a video editing application.
- the video editing application has video data processing capabilities, and can provide users with video editing functions, including cropping, rendering, and other video data processing.
- the application framework layer provides an application programming interface (application programming interface, API) and a programming framework for applications in the application layer.
- the application framework layer includes some predefined functions. As shown in Figure 3, the application framework layer can include window manager, content provider, view system, phone manager, resource manager, notification manager, etc.
- a window manager is used to manage window programs.
- the window manager can get the size of the display screen, determine whether there is a status bar, lock the screen, capture the screen, etc.
- Content providers are used to store and retrieve data and make it accessible to applications. Said data may include video, images, audio, calls made and received, browsing history and bookmarks, phonebook, etc.
- the view system includes visual controls, such as controls for displaying text, controls for displaying pictures, and so on.
- the view system can be used to build applications.
- a display interface can consist of one or more views.
- a display interface including a text message notification icon may include a view for displaying text and a view for displaying pictures.
- the phone manager is used to provide communication functions of the electronic device 100 . For example, the management of call status (including connected, hung up, etc.).
- the resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, and so on.
- the notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and can automatically disappear after a short stay without user interaction.
- the notification manager is used to notify the download completion, message reminder, etc.
- the notification manager can also be a notification that appears on the top status bar of the system in the form of a chart or scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog window.
- prompting text information in the status bar issuing a prompt sound, vibrating the electronic device, and flashing the indicator light, etc.
- the application framework layer also includes a media framework.
- the media framework provides multiple tools for editing video and audio.
- the above tools include MediaCodec.
- MediaCodec is a class provided by Android for encoding and decoding audio and video. It includes encoders, decoders, and surface type buffers.
- the encoder provided by MediaCodec can convert the video or audio in one format input to the encoder into another format through compression technology, and the decoder performs the reverse process of encoding, which can convert the video or audio input in one format into the decoder Video or audio is converted to another format through decompression techniques.
- the decoder can deframe the above HDR video, so as to split the above encapsulated HDR video frame by frame Image data in 10bitYUV format. Then, the encoder can re-encode the split image data in 10bitYUV format, and then repackage the split image data in 10bitYUV format into a HDR video in 10bitYUV format.
- MediaCodec can also apply for a piece of memory of type surface (hereinafter referred to as surface).
- Surface can be used to cache video data. For example, after the electronic device 100 performs an editing operation to obtain rendered video image frames, the electronic device 100 may input the above image frames into the surface cache. Then, the application program can obtain the rendered video image frame from the above surface for storage or display and so on.
- the application framework layer also includes a Java native interface (Java Native Interface, JNI).
- JNI can be used to set the color format of the video data supported by the surface.
- Surface has a default supported color format for the video data it hosts.
- Surface supports receiving video data in 8-bit format, that is, video data in 8-bit format is received by default.
- the electronic device 100 can modify the format of the above-mentioned video data supported by the Surface to 10bit. In this way, Surface can be used to cache video data in 10bit format.
- the Android Runtime includes core library and virtual machine.
- the Android runtime is responsible for the scheduling and management of the Android system.
- the core library consists of two parts: one part is the function function that the java language needs to call, and the other part is the core library of Android.
- the application layer and the application framework layer run in virtual machines.
- the virtual machine executes the java files of the application program layer and the application program framework layer as binary files.
- the virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.
- a system library can include multiple function modules. For example: surface manager (surface manager), media library (Media Libraries), 3D graphics processing library (eg: OpenGL ES), 2D graphics engine (eg: SGL), etc.
- the surface manager is used to manage the display subsystem and provides the fusion of 2D and 3D layers for multiple applications.
- the media library supports playback and recording of various commonly used audio and video formats, as well as still image files, etc.
- the media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
- the 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing, etc.
- 2D graphics engine is a drawing engine for 2D drawing.
- Open Graphics Library provides multiple image rendering functions, which can be used to draw from simple graphics to complex three-dimensional scenes.
- the OpenGL provided by the system library can be used to support the video editing application to perform image editing operations, such as the video cropping operation, the operation of adding a filter, etc. described in the foregoing embodiments.
- the kernel layer is the layer between hardware and software.
- the kernel layer includes at least a display driver, a camera driver, an audio driver, and a sensor driver.
- FIG. 4 also includes a hardware layer.
- the kernel layer in FIG. 3 is not represented in FIG. 4 .
- the hardware layer includes memory (memory) and graphics processing unit (GPU).
- the memory can be used to temporarily store computing data in the central processing unit (CPU), and exchange data with external storage such as hard disks.
- a GPU is a processor that performs image and graphics-related operations.
- the storage space required by the electronic device 100 to run the video editing application can be provided by memory, including the aforementioned surface, data carousel bufferqueue, and so on.
- the process of editing video and processing video frames by the electronic device 100 using OpenGL can be completed by GPU.
- the embodiment of the present application will specifically introduce the processing flow of saving the edited 10-bit video as a 10-bit video by the electronic device 100 in the step shown in S203 with reference to FIG. 4 .
- the operation performed by the electronic device 100 may include two parts: one is to initialize the editing environment; the other is to execute the editing operation , Output the edited video.
- the initialization of the editing environment includes: creating tools required for the video editing process and applying for storage space required for the video editing process.
- the above-mentioned tools include an encoder for video data format encoding, a decoder for video data format decoding, and a user image rendering tool OpenGL.
- the above storage space includes the surface provided by the memory, the data conveyor belt (BufferQueue), etc., and the video memory provided by the GPU.
- FIG. 5 exemplarily shows a data flow diagram for the electronic device 100 to perform environment initialization.
- the APP can detect the operation of editing the video. As shown in FIG. 1C , when a user operation acting on the control 133 is detected, the electronic device 100 may determine that an operation of editing a video is detected.
- the electronic device 100 may determine the format of the video to be edited.
- the video format includes bit depth information, color coding format, and the like.
- the electronic device 100 may determine that the bit depth of the video to be edited (video A) is 10 bits, and the color coding format is YUV.
- the electronic device 100 may display a user interface for editing a video (FIGS. 1D-1J).
- the electronic device 100 may record the editing operations selected by the user, including the type of editing operations, the order of execution, and the like.
- the electronic device 100 may record the editing operation of adding the LUT4 filter shown in FIG. 1F , and the like.
- the electronic device 100 will record the above cutting operation and the order in which the filter is added first and the cutting operation is followed.
- the electronic device 100 will not execute the image processing indicated by the editing operation on the video to be edited after detecting an editing operation. It is just to improve calculation efficiency and avoid double calculation and invalid calculation.
- the APP can detect the operation of saving the video. As shown in FIG. 1G , when a user operation acting on the control 146 is detected, the electronic device 100 may determine that an operation of saving a video is detected. In other embodiments, the above saving operation may also be a preset periodic saving operation. The embodiment of the present application does not limit this.
- the electronic device 100 may determine the format of the edited output video. Specifically, when the video to be edited is a 10bit LOG video, and the editing operation includes adding a LUT filter, the electronic device 100 may determine that the video output after editing is a 10bit HDR video; when the video to be edited is a 10bit HDR video, and When the editing operation includes editing audio/cutting operations but does not include adding a filter operation, the electronic device 100 can determine that the output video after editing is a 10bit HDR video; when the video to be edited is a 10bit HDR video, and the editing operation includes adding a filter During operation, the electronic device 100 may determine that the edited output video is an 8bit SDR video.
- the video to be edited is a 10bit LOG video
- the editing operation includes the operation of adding a LUT filter.
- the output video should be 10bit HDR video.
- APP can send a request to MediaCodec to create an encoder.
- the request can carry: the bit depth and color encoding format of the video frame supported by the created encoder.
- the APP cannot directly convey the two parameters of 10bit and YUV to MediaCode, that is, the APP cannot directly instruct MediaCodec to create a code for encoding video frames in 10bitYUV format. device.
- the instruction information included in the request sent by the APP to MediaCodec to create an encoder includes: instructing MediaCodec to create an encoder that supports encoding bit depth of 10bit video frames (communication parameter 10bit), indicating that the encoder can support the video carried by the surface
- the color coding format of the frame sets the color coding format of the video frame supported by itself.
- MediaCodec can create an encoder for encoding video with a bit depth of 10 bits according to the above request, and set the encoder to determine the color coding format of the video frame it supports according to the color coding format of the video frame supported by the surface Color-coded format.
- the request sent by APP to MediaCodec to create an encoder includes: bit depth information (10bit), indication information of color coding format, used to instruct the encoder to support bearer according to the surface
- the color coding format of the video frame determines the color coding format of the video frame supported by itself.
- MediaCodec can create an encoder that supports encoding video frames with a bit depth of 10bit.
- MediaCodec does not set the color coding format of the video frame supported by the encoder first, but after the encoder determines the color coding format of the video frame supported by the surface, the encoder sets the color coding format of the encoder.
- MediaCodec can return information indicating that the creation is complete to the APP.
- the above confirmation information indicating the completion of creation is, for example, the confirmation character ACK and the like.
- the APP may send a request to the above-mentioned encoder to create a surface.
- the encoder may apply to the memory for a surface for carrying data.
- a Surface is an object with a specific data structure. Generally, the surface is dedicated to carrying image frames to be encoded.
- the memory can allocate a piece of memory for the encoder, that is, the above surface.
- the memory allocated to the encoder supports a bit depth of video frame data of 8 bits.
- the surface requested by the encoder supports a bit depth of video frame data of 8 bits.
- the memory can provide multiple surfaces. Each surface carries an identity (ID) indicating the surface. For any surface, there is a one-to-one correspondence between the ID of the surface and the address of the surface. For example, the ID of surface-01 is 01, and the address of the surface is 0011-0100. When it is recognized that the ID of a certain surface is 01, the electronic device 100 can determine that the above-mentioned surface is surface-01, and at the same time can also determine that the address of the above-mentioned surface is 0011-0100; otherwise, when it is recognized that the address used by a certain surface is From 0011 to 0100, the electronic device 100 may determine that the surface is surface-01.
- ID identity
- the memory can allocate a surface-type memory space for the encoder as an encoder application surface for use by the encoder. Then, 11) the memory may return confirmation information indicating successful application and the surface to the encoder, including the ID of the surface, and/or the address of the surface. Further, 12) the encoder can return the application success and the surface to the APP. In this way, the APP can determine the ID of the surface applied by the above-mentioned encoder, and/or, the address of the surface.
- APP can notify OpenGL to initialize.
- the notification may include the bit depth of the video to be edited and the ID of the surface of the aforementioned application.
- the bit depth of the video to be edited can be determined in step 2).
- OpenGL can determine the bit depth of the edited video, and create a data channel of the corresponding bit depth. For example, for a 10bit format video, a data channel with a 10bit bit depth is created, and the current data channel can transmit video frames in a 10bit (1024) color format.
- OpenGL can send a request to the application (APP) to query the address of the surface corresponding to the ID of the surface.
- the request contains the ID of the above surface.
- the APP The address of the surface can be determined by the ID of the surface, and the above address is returned to OpenGL.
- Subsequent OpenGL can store the edited video frame to the memory corresponding to the address of the surface.
- OpenGL will also apply for a storage block from the GPU, that is, a piece of video memory (video memory 401 ).
- This video memory can be used to cache video to be edited.
- the above-mentioned video memory 401 can be a texture (texture) or a frame buffer object (Frame Buffer Object) in OpenGL.
- the GPU may return information indicating that the application is successful and the address of the video memory to OpenGL.
- OpenGL may return confirmation information to the APP. The confirmation message may indicate that OpenGL has completed initialization.
- APP can send a request to MediaCodec to create a decoder, and the decoder request is used to create a decoder.
- MediaCodec may create a decoder in response to the above request. The subsequent decoder can determine which type of video to decode according to the format of the input video to be decoded.
- the decoder when creating a decoder, 22) the decoder will also apply for a piece of memory (denoted as BufferQueue) from the memory.
- the memory can be used for buffering video data, and can transmit the decoded video data to the application.
- the memory may allocate a section of memory space for the decoder as the above BufferQueue for use by the decoder.
- the memory After the application is successful, 24) the memory will return the address of the BufferQueue to the decoder. Further, 25) the decoder may return confirmation information indicating successful creation of the decoder to the APP.
- the APP can also create a decoder first, and then create an encoder. This embodiment of the present application does not limit this.
- 1) to 25) shown in Figure 5 describe in detail the process of APP initialization after the operation of saving the video is detected, including the creation of encoder, surface, decoder, data carousel and initialization of the working environment of OpenGL.
- the electronic device 100 can start to edit and save the video.
- the video editing application can send the video to be edited and the information describing the video to be edited to the decoder, and the information describing the video to be edited can be It carries the bit depth and color format of the video (step 1, that is, the gray circle mark 1: 1). This is because the video in the APP is a packaged video.
- the APP needs to decapsulate the above video into a frame-by-frame image, that is, a video frame, so that the subsequent rendering of the video frame can be performed to realize the user-specified video editing.
- the decoder After receiving the above-mentioned video to be edited, first, the decoder can identify the above-mentioned information describing the video to be edited, including the bit depth, color coding format, etc. of the video. According to the above information, the decoder can determine the decoding method suitable for the above-mentioned type of video to be edited, and then decode the above-mentioned video to be edited into a frame-by-frame image, that is, a video frame (step 2, refer to the above-mentioned step 1 in Figure 4 , refer to Step 1 for other subsequent steps, and will not go into details).
- a video editing application may send an HDR video (video to be edited) with a bit depth of 10 bits and a color format of YUV format to the decoder.
- the information describing the video to be edited may include the aforementioned 10-bit bit depth and color format (YUV format).
- the decoder can obtain the information of the video to be edited, and then determine the type (10bitYUV) of the video to be edited. Then, the decoder can decode the video in the 10bitYUV format mentioned above. After being decoded by the decoder, the decoder can output the video frame of the video to be edited (video frame to be edited).
- the format of each frame of video is also 10bitYUV.
- the video frame sequence output by the decoder can be sent to the system library OpenGL (step 3).
- step 4 when receiving the video frame sequence sent by the decoder, when the color coding format of the above video frame sequence is YUV, OpenGL
- the above-mentioned received video frames in YUV format to be edited can be converted into video frames in RGB format.
- OpenGL can normalize video frames with a bit depth of 10 bits and convert them into video frames in floating-point (float) RGB format.
- OpenGL In the process of processing video frames, the video memory of the GPU is used to carry the processed video frames, and OpenGL is mainly used to send calculation logic to OpenGL to guide the GPU to perform image calculations. Therefore, after obtaining the video frame to be edited in floatRGB format, OpenGL will store the video frame to be edited in the GPU.
- OpenGL pre-applies for a piece of video memory (video memory 401 ) from the GPU during initialization. At this time, OpenGL can write the video frame to be edited in floatRGB format into the above-mentioned pre-applied video memory, that is, into the video memory 401 (step 5).
- Step 6 After successful writing, OpenGL can return writing success to the APP.
- Step 7 the APP can send the user's editing operation recorded in S202 to OpenGL.
- OpenGL can use the above-mentioned LUT filter to render the video frame to be edited.
- the APP may record the editing operation using the LUT4 green filter.
- the above editing operation is not limited to adding a LUT filter, which is not limited in this embodiment of the present application.
- the calculation logic corresponding to different editing operations is preset in OpenGL. Taking the editing operation of rendering video with the LUT4 filter as an example, the calculation logic corresponding to the above editing operation is: set the gray value of each pixel in the video frame to 128 ( The above calculation logic is an exemplary example). (Step 8) After receiving the editing operation issued by the APP, OpenGL can determine the corresponding calculation logic according to the above-mentioned editing operation, and then, OpenGL can issue the above-mentioned calculation logic to the GPU to instruct the GPU to perform the operation corresponding to the above-mentioned editing operation The video frame calculation.
- Step 9 After receiving the calculation logic issued by OpenGL, the GPU may sequentially execute the calculation operations indicated by the above calculation logic, and then the GPU may obtain the processed video frame. For example, after receiving the calculation logic of setting the grayscale value of each pixel in the video frame to 128, the GPU may set the grayscale value of the pixel in the video frame to be processed to 128. At this time, the processed video frame can have the dark gray display effect of the LUT4 filter.
- the above process of setting the grayscale value of the video frame may be referred to as rendering the video frame using LUT4.
- the GPU can obtain the edited video frame, which is a video frame having the above-mentioned visual effect of the LUT filter.
- the data format of the video frame to be edited is floatRGB, and at this time, the data format of the rendered video frame is also floatRGB.
- OpenGL in order to enable subsequent output of edited video frames in 10bitYUV format, after obtaining the edited video frames in floatRGB format, OpenGL needs to convert the encoding format and setting data format of the edited video frames.
- the above data format refers to the format of data describing one color channel (R, G, B, A) of one pixel.
- the binary bits used to describe a color channel are 8 bits, that is, 1 byte; while in a video with a bit depth of 10 bits, the binary bits used to describe a color channel are 16 bits, that is, 2 bytes . Since the output edited video still uses the existing reading function (readpixel) in OpenGL to output 8bit video, and readpixel only supports the output of color channels in 1byte format, that is, the output data is an 8-bit integer. Therefore, the edited image can be edited through OpenGL. Then, the 2byte data describing a color channel is split into two pieces of 1byte data, and then the readpixel function is called to output the above two pieces of 1byte data in sequence, so as to achieve the effect of outputting 2byte data.
- the existing reading function readpixel
- readpixel actually directly outputs each pixel point through the above-mentioned processed video frame, instead of calling a color channel that outputs one pixel point at a time.
- the embodiment of the present application uses one color channel of one pixel as an example to illustrate the process of outputting video frames by readpixel.
- FIG. 6A to FIG. 6C show the above adjustment process.
- FIG. 6A exemplarily shows the process of OpenGL converting a video frame in RGB format into a video frame in YUV format.
- the size of the video frame is 2160*3180 (width*height).
- the size of the video frame 2160*3180 indicates that the number of X is 2160*3180.
- one X can represent one pixel, and one X is composed of 4 color channels (R, G, B, A).
- Each color channel occupies an 8-bit binary (8bit) storage unit.
- the value stored in each color channel is the value (color value) of the color channel.
- the data stored in (R, G, B, A) is float type data.
- a Y can represent a brightness (Luminance or Luma) that describes a pixel, that is, a grayscale value; a set of UVs can represent the chromaticity (Chrominance or Chroma) of 4 pixels.
- the YUV encoding format used here is specifically YUV420. YUV420 records Y first, then UV.
- the conversion formula used for converting the RGB format to the YUV format is:
- the values in the transposition matrix may be different from the values shown above.
- a set of (Y, U, V) can be calculated from an X (R, G, B, A). Further, OpenGL can combine U, V in 4 groups (Y, U, V) into a group of U, V, and use this group of U, V to represent U in the above 4 groups (Y, U, V), V.
- a P can represent the 32-bit storage unit provided by the above four color channels (R, G, B, A).
- One P can store two Ys, or a group (U, V).
- OpenGL provides the function readPixel to output pixels.
- readPixel When readPixel reads data, it will save the float value *255 in each color channel in the pixel and save it as an integer.
- FIG. 6C exemplarily shows the above process.
- the upper eight bits "0000 0001” can be converted to a float (float1): 0.003921 (1/255); the lower eight bits “0100 0000” can also be converted to a float (float2): 0.250980 (64/255).
- OpenGL can call readPixel twice to output the above float1 and float2 respectively.
- ReadPixel output float1 can get 0000 0001;
- ReadPixel output float2 can get 0100 0000.
- OpenGL also realizes the function of restoring the edited video frame in floatRGB format to the video frame output in 10bitYUV format.
- OpenGL When performing RGB conversion to YUV, OpenGL will also return the width and height adapted to the Surface according to the video width and height.
- the adapted width and height refer to the width and height after being filled according to the original width and height of the video. This is because the chip platform has requirements for the width and height of videos in 10bitYUV format. The requirement is that the width of the video frame must be divisible by 128; the height must be divisible by 32.
- the width of the above video frame 1080 cannot be divisible by 128; 4770 cannot be divisible by 32.
- OpenGL needs to recalculate the size of the video frame to meet the requirements of the chip platform.
- the width greater than 1080 and divisible by 128 is 1152; the height greater than 4770 and divisible by 32 is 4800.
- OpenGL will resize the aforementioned video frame whose original size is 1080*4770 to 1152*4800. Among them, the width is increased from the original 1080 to 1152; the height is increased from the original 4770 to 4800.
- the added pixels can be randomly filled.
- "O" in FIG. 6D may represent randomly filled data points.
- the above 1152*4800 can be called the adapted width and height.
- OpenGL can return the above adapted width and height to Surface.
- the surface may receive the edited video frame fetched from the video memory 401 according to the above video frame size.
- Step 10 After converting the encoding format and setting the data format, the GPU may return to OpenGL that the processing is completed, that is, the rendering of the video frame is completed. At the same time, the GPU can also return to OpenGL the video memory address for storing the above-mentioned rendered video frame.
- the video memory address returned by the GPU here may be the address of the aforementioned video memory 401 that receives the video frame to be edited, or the address of other video memory spaces in the GPU. That is to say, the video memory space where the GPU stores the rendered video frames may be the original video memory 401 for storing the video to be processed, or other video memory spaces in the GPU.
- OpenGL can return to the APP the video memory address where the processing is completed and the above-mentioned rendered video frame is stored.
- the APP can obtain the rendered video frame from the above video memory address, and write the video frame into the surface requested by the encoder for the encoder to encode the rendered video frame. Output the edited video.
- APP can call JNI.
- JNI can include two parameters: memory address and surface address.
- the video memory address can indicate which storage space of the GPU JNI obtains the edited video frame from;
- the surface address can indicate which storage space the JNI stores the acquired edited video frame into the internal memory.
- the APP may pass the video memory address A1 and the surface address A2 to the JNI.
- the above-mentioned video memory address A1 is the address of the video memory 401
- the above-mentioned surface address A2 is the address of the surface applied by the encoder in FIG. 5 .
- JNI may also include a bit depth parameter.
- JNI can set the bit depth of the video frame supported by the surface according to the above bit depth parameters.
- the bit depth parameter of JNI can be set to 10 bits.
- JNI can set the bit depth of the video frame supported by the surface to 10 bits.
- the JNI may not include the above bit depth parameter.
- the JNI when the JNI is called by the APP, the JNI can set the bit depth of the video frame supported by the surface to 10 bits by default, without an indication of the bit depth parameter.
- the JNI can first set the bit depth of the video frame supported by the surface to 10bit, and the color coding format to YUV format.
- the encoder since the encoder can set the color coding format of the video frame it supports to carry according to the color coding format of the video frame supported by the surface, refer to the introduction of 8) in FIG. 5 . Therefore, after setting the surface to 10bitYUV, the encoder can set the color encoding format of the video frame it supports encoding to YUV. In this way, the surface can carry video frames in 10bitYUV format, and further, the encoder can encode video frames in 10bitYUV format. In this way, the encoder can identify the color value representing one color channel in a 10-bit (ie 2 byte) reading manner. Understandably, after the bit depth of the surface is set to 10bit, the surface can receive 8bit video frames output by the GPU.
- Step 14 After setting the format (bit depth, color coding format) of the video frame supported by the surface, JNI can send a request to the memory to apply for a block of memory (denoted as a graphics buffer). In response to the above request, the memory can be JNI allocates a piece of memory space (that is, a graphics buffer), and then the memory can return the memory address of the graphics buffer to JNI. JNI can then use this graphics buffer to receive the edited video frames output by the GPU.
- a graphics buffer that is, a graphics buffer
- JNI can call the read function (readpixel) provided by OpenGL.
- Readpixel can output float type data as 8-bit integer.
- the color value of a color channel of a pixel stored in the GPU is 0.31313131, and the Readpixel function is called to output the color value of the above color channel, and the integer 80 described in 8-bit binary can be obtained, that is, 01010000.
- JNI When calling Readpixel, JNI can transfer the video memory address and the address of the graphics buffer to OpenGL.
- OpenGL can execute Readpixel to read the edited video frame from the GPU storage space indicated by the video memory address. (Step 16) Further, write the above video frame into the graphics buffer indicated by the graphics buffer address.
- OpenGL also converts the data format of the rendered video frame stored in the GPU, refer to step 9 Introduction, no more details here.
- the 16-bit binary number output by calling Readpixel twice is the 10-bit integer corresponding to the rendered float data, thus realizing the ability to output video frames with a 10-bit bit depth.
- the JNI may input the edited video frame buffered in the graphics buffer to the surface address to indicate the surface.
- the encoder can encode the edited video stored in the surface, thereby outputting the edited video to the APP.
- the JNI may not apply for a graphics buffer, but directly sends the extracted edited video to the surface.
- the encoder can encode the edited video frames (10bitYUV) carried in the surface, and then encapsulate the edited video frames frame by frame into 10bitYUV format Video, that is, the edited video. (Step 19) Then, the encoder can return the encapsulated video in 10bitYUV format to the video editing application.
- the video editing application may display or save the edited video.
- the electronic device 100 completes the process of editing and saving the 10bitHDR video.
- the video to be edited can be a LOG video, and the editing operation can be adding a LUT filter.
- the edited video can be called an HDR video.
- FIG. 7 exemplarily shows the above-mentioned flow chart of sending the video to be edited from the video editing application (APP) to the decoder and sending back the edited video from the encoder.
- the data interaction between modules in FIG. 7 corresponds to the steps marked as 1-19 in FIG. 4, and will not be repeated here.
- FIG. 8 exemplarily shows a schematic diagram of a hardware structure of the electronic device 100 .
- the electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (universal serial bus, USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, and an antenna 2 , mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone jack 170D, sensor module 180, button 190, motor 191, indicator 192, camera 193, display screen 194, and A subscriber identification module (subscriber identification module, SIM) card interface 195 and the like.
- SIM subscriber identification module
- the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, bone conduction sensor 180M, etc.
- the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the electronic device 100 .
- the electronic device 100 may include more or fewer components than shown in the figure, or combine certain components, or separate certain components, or arrange different components.
- the illustrated components can be realized in hardware, software or a combination of software and hardware.
- the processor 110 may include one or more processing units, for example: the processor 110 may include an application processor (application processor, AP), a modem processor, a graphics processing unit (graphics processing unit, GPU), an image signal processor (image signal processor, ISP), controller, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural network processor (neural-network processing unit, NPU), etc. Wherein, different processing units may be independent devices, or may be integrated in one or more processors.
- application processor application processor, AP
- modem processor graphics processing unit
- GPU graphics processing unit
- image signal processor image signal processor
- ISP image signal processor
- controller video codec
- digital signal processor digital signal processor
- baseband processor baseband processor
- neural network processor neural-network processing unit
- the controller can generate an operation control signal according to the instruction opcode and timing signal, and complete the control of fetching and executing the instruction.
- a memory may also be provided in the processor 110 for storing instructions and data.
- the memory in processor 110 is a cache memory.
- the memory may hold instructions or data that the processor 110 has just used or recycled. If the processor 110 needs to use the instruction or data again, it can be called directly from the memory. Repeated access is avoided, and the waiting time of the processor 110 is reduced, thus improving the efficiency of the system.
- processor 110 may include one or more interfaces.
- the interface may include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, a universal asynchronous transmitter (universal asynchronous receiver/transmitter, UART) interface, mobile industry processor interface (mobile industry processor interface, MIPI), general-purpose input and output (general-purpose input/output, GPIO) interface, subscriber identity module (subscriber identity module, SIM) interface, and /or universal serial bus (universal serial bus, USB) interface, etc.
- I2C integrated circuit
- I2S integrated circuit built-in audio
- PCM pulse code modulation
- PCM pulse code modulation
- UART universal asynchronous transmitter
- MIPI mobile industry processor interface
- GPIO general-purpose input and output
- subscriber identity module subscriber identity module
- SIM subscriber identity module
- USB universal serial bus
- the I2C interface is a bidirectional synchronous serial bus, including a serial data line (serial data line, SDA) and a serial clock line (derail clock line, SCL).
- processor 110 may include multiple sets of I2C buses.
- the processor 110 can be respectively coupled to the touch sensor 180K, the charger, the flashlight, the camera 193 and the like through different I2C bus interfaces.
- the processor 110 may be coupled to the touch sensor 180K through the I2C interface, so that the processor 110 and the touch sensor 180K communicate through the I2C bus interface to realize the touch function of the electronic device 100 .
- the I2S interface can be used for audio communication.
- processor 110 may include multiple sets of I2S buses.
- the processor 110 may be coupled to the audio module 170 through an I2S bus to implement communication between the processor 110 and the audio module 170 .
- the audio module 170 can transmit audio signals to the wireless communication module 160 through the I2S interface, so as to realize the function of answering calls through the Bluetooth headset.
- the PCM interface can also be used for audio communication, sampling, quantizing and encoding the analog signal.
- the audio module 170 and the wireless communication module 160 may be coupled through a PCM bus interface.
- the audio module 170 can also transmit audio signals to the wireless communication module 160 through the PCM interface, so as to realize the function of answering calls through the Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
- the UART interface is a universal serial data bus used for asynchronous communication.
- the bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication.
- a UART interface is generally used to connect the processor 110 and the wireless communication module 160 .
- the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to realize the Bluetooth function.
- the audio module 170 can transmit audio signals to the wireless communication module 160 through the UART interface, so as to realize the function of playing music through the Bluetooth headset.
- the MIPI interface can be used to connect the processor 110 with peripheral devices such as the display screen 194 and the camera 193 .
- MIPI interface includes camera serial interface (camera serial interface, CSI), display serial interface (display serial interface, DSI), etc.
- the processor 110 communicates with the camera 193 through the CSI interface to realize the shooting function of the electronic device 100 .
- the processor 110 communicates with the display screen 194 through the DSI interface to realize the display function of the electronic device 100 .
- the GPIO interface can be configured by software.
- the GPIO interface can be configured as a control signal or as a data signal.
- the GPIO interface can be used to connect the processor 110 with the camera 193 , the display screen 194 , the wireless communication module 160 , the audio module 170 , the sensor module 180 and so on.
- the GPIO interface can also be configured as an I2C interface, I2S interface, UART interface, MIPI interface, etc.
- the USB interface 130 is an interface conforming to the USB standard specification, specifically, it can be a Mini USB interface, a Micro USB interface, a USB Type C interface, and the like.
- the USB interface 130 can be used to connect a charger to charge the electronic device 100 , and can also be used to transmit data between the electronic device 100 and peripheral devices. It can also be used to connect headphones and play audio through them. This interface can also be used to connect other electronic devices, such as AR devices.
- the interface connection relationship between the modules shown in the embodiment of the present invention is only a schematic illustration, and does not constitute a structural limitation of the electronic device 100 .
- the electronic device 100 may also adopt different interface connection manners in the foregoing embodiments, or a combination of multiple interface connection manners.
- the charging management module 140 is configured to receive a charging input from a charger.
- the charger may be a wireless charger or a wired charger.
- the charging management module 140 can receive charging input from the wired charger through the USB interface 130 .
- the charging management module 140 may receive a wireless charging input through a wireless charging coil of the electronic device 100 . While the charging management module 140 is charging the battery 142 , it can also provide power for electronic devices through the power management module 141 .
- the power management module 141 is used for connecting the battery 142 , the charging management module 140 and the processor 110 .
- the power management module 141 receives the input from the battery 142 and/or the charging management module 140 to provide power for the processor 110 , the internal memory 121 , the display screen 194 , the camera 193 , and the wireless communication module 160 .
- the power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle times, and battery health status (leakage, impedance).
- the power management module 141 may also be disposed in the processor 110 .
- the power management module 141 and the charging management module 140 may also be set in the same device.
- the wireless communication function of the electronic device 100 can be realized by the antenna 1 , the antenna 2 , the mobile communication module 150 , the wireless communication module 160 , a modem processor, a baseband processor, and the like.
- Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals.
- Each antenna in electronic device 100 may be used to cover single or multiple communication frequency bands. Different antennas can also be multiplexed to improve the utilization of the antennas.
- Antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
- the antenna may be used in conjunction with a tuning switch.
- the mobile communication module 150 can provide wireless communication solutions including 2G/3G/4G/5G applied on the electronic device 100.
- the mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (low noise amplifier, LNA) and the like.
- the mobile communication module 150 can receive electromagnetic waves through the antenna 1, filter and amplify the received electromagnetic waves, and send them to the modem processor for demodulation.
- the mobile communication module 150 can also amplify the signals modulated by the modem processor, and convert them into electromagnetic waves through the antenna 1 for radiation.
- at least part of the functional modules of the mobile communication module 150 may be set in the processor 110 .
- at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be set in the same device.
- a modem processor may include a modulator and a demodulator.
- the modulator is used for modulating the low-frequency baseband signal to be transmitted into a medium-high frequency signal.
- the demodulator is used to demodulate the received electromagnetic wave signal into a low frequency baseband signal. Then the demodulator sends the demodulated low-frequency baseband signal to the baseband processor for processing.
- the low-frequency baseband signal is passed to the application processor after being processed by the baseband processor.
- the application processor outputs sound signals through audio equipment (not limited to speaker 170A, receiver 170B, etc.), or displays images or videos through display screen 194 .
- the modem processor may be a stand-alone device.
- the modem processor may be independent from the processor 110, and be set in the same device as the mobile communication module 150 or other functional modules.
- the wireless communication module 160 can provide wireless local area networks (wireless local area networks, WLAN) (such as wireless fidelity (Wireless Fidelity, Wi-Fi) network), bluetooth (bluetooth, BT), global navigation satellite, etc. applied on the electronic device 100.
- System global navigation satellite system, GNSS
- frequency modulation frequency modulation, FM
- near field communication technology near field communication, NFC
- infrared technology infrared, IR
- the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
- the wireless communication module 160 receives electromagnetic waves via the antenna 2 , frequency-modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110 .
- the wireless communication module 160 can also receive the signal to be sent from the processor 110 , frequency-modulate it, amplify it, and convert it into electromagnetic waves through the antenna 2 for radiation.
- the antenna 1 of the electronic device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the electronic device 100 can communicate with the network and other devices through wireless communication technology.
- the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (general packet radio service, GPRS), code division multiple access (code division multiple access, CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time division code division multiple access (time-division code division multiple access, TD-SCDMA), long term evolution (long term evolution, LTE), BT, GNSS, WLAN, NFC , FM, and/or IR techniques, etc.
- GSM global system for mobile communications
- GPRS general packet radio service
- code division multiple access code division multiple access
- CDMA broadband Code division multiple access
- WCDMA wideband code division multiple access
- time division code division multiple access time-division code division multiple access
- TD-SCDMA time-division code division multiple access
- the GNSS may include a global positioning system (global positioning system, GPS), a global navigation satellite system (global navigation satellite system, GLONASS), a Beidou navigation satellite system (beidou navigation satellite system, BDS), a quasi-zenith satellite system (quasi -zenith satellite system (QZSS) and/or satellite based augmentation systems (SBAS).
- GPS global positioning system
- GLONASS global navigation satellite system
- Beidou navigation satellite system beidou navigation satellite system
- BDS Beidou navigation satellite system
- QZSS quasi-zenith satellite system
- SBAS satellite based augmentation systems
- the electronic device 100 realizes the display function through the GPU, the display screen 194 , and the application processor.
- the GPU is a microprocessor for image processing, and is connected to the display screen 194 and the application processor. GPUs are used to perform mathematical and geometric calculations for graphics rendering.
- Processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
- displaying the user interface shown in FIG. 1A-FIG. 1K by the electronic device 100 may be completed through a GPU and a display screen 194 .
- the electronic device 100 uses OpenGL to edit the video, and the process of saving the edited video as a 10bit video also depends on the GPU and the display screen 194.
- the display screen 194 is used to display images, videos and the like.
- the display screen 194 includes a display panel.
- the display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active matrix organic light emitting diode or an active matrix organic light emitting diode (active-matrix organic light emitting diode, AMOLED), flexible light-emitting diode (flex light-emitting diode, FLED), Miniled, MicroLed, Micro-oLed, quantum dot light emitting diodes (quantum dot light emitting diodes, QLED), etc.
- the electronic device 100 may include 1 or N display screens 194 , where N is a positive integer greater than 1.
- the electronic device 100 can realize the shooting function through the ISP, the camera 193 , the video codec, the GPU, the display screen 194 and the application processor.
- the edited 10-bit video can be obtained by the electronic device 100 from other electronic devices through the wireless communication function, or it can be obtained by the electronic device 100 through the ISP, the camera 193, the video codec, the GPU , obtained by shooting on the display screen 194 .
- the ISP is used for processing the data fed back by the camera 193 .
- the light is transmitted to the photosensitive element of the camera through the lens, and the light signal is converted into an electrical signal, and the photosensitive element of the camera transmits the electrical signal to the ISP for processing, and converts it into an image visible to the naked eye.
- ISP can also perform algorithm optimization on image noise, brightness, and skin color.
- ISP can also optimize the exposure, color temperature and other parameters of the shooting scene.
- the ISP may be located in the camera 193 .
- Camera 193 is used to capture still images or video.
- the object generates an optical image through the lens and projects it to the photosensitive element.
- the photosensitive element may be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor.
- CMOS complementary metal-oxide-semiconductor
- the photosensitive element converts the light signal into an electrical signal, and then transmits the electrical signal to the ISP to convert it into a digital image signal.
- the ISP outputs the digital image signal to the DSP for processing.
- DSP converts digital image signals into standard RGB, YUV and other image signals.
- the electronic device 100 may include 1 or N cameras 193 , where N is a positive integer greater than 1.
- Digital signal processors are used to process digital signals. In addition to digital image signals, they can also process other digital signals. For example, when the electronic device 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the energy of the frequency point.
- Video codecs are used to compress or decompress digital video.
- the electronic device 100 may support one or more video codecs.
- the electronic device 100 can play or record videos in various encoding formats, for example: moving picture experts group (moving picture experts group, MPEG) 1, MPEG2, MPEG3, MPEG4 and so on.
- MPEG moving picture experts group
- the NPU is a neural-network (NN) computing processor.
- NN neural-network
- Applications such as intelligent cognition of the electronic device 100 can be realized through the NPU, such as image recognition, face recognition, speech recognition, text understanding, and the like.
- the internal memory 121 may include one or more random access memories (random access memory, RAM) and one or more non-volatile memories (non-volatile memory, NVM).
- RAM random access memory
- NVM non-volatile memory
- Random access memory can include static random-access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (synchronous dynamic random access memory, SDRAM), double data rate synchronous Dynamic random access memory (double data rate synchronous dynamic random access memory, DDR SDRAM, such as the fifth generation DDR SDRAM is generally called DDR5SDRAM), etc.
- Non-volatile memory may include magnetic disk storage devices, flash memory (flash memory).
- flash memory can include NOR FLASH, NAND FLASH, 3D NAND FLASH, etc., and according to the potential order of storage cells, it can include single-level cell (SLC), multi-level cell (multi-level cell) , MLC), triple-level cell (TLC), quad-level cell (QLC), etc.
- SLC single-level cell
- MLC multi-level cell
- TLC triple-level cell
- QLC quad-level cell
- UFS universal flash storage
- eMMC Embedded multimedia memory card
- the random access memory can be directly read and written by the processor 110, and can be used to store executable programs (such as machine instructions) of an operating system or other running programs, and can also be used to store data of users and application programs.
- the non-volatile memory can also store executable programs and data of users and application programs, etc., and can be loaded into the random access memory in advance for the processor 110 to directly read and write.
- the internal memory 121 can support the electronic device 100 to apply for a surface and a conveyor bufferqueue from the memory.
- the external memory interface 120 can be used to connect an external non-volatile memory, so as to expand the storage capacity of the electronic device 100 .
- the external non-volatile memory communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, files such as music and video are stored in an external non-volatile memory.
- the electronic device 100 can collect sound through the microphone 170C when shooting a 10-bit video.
- the speaker 170A or the speaker connected to the earphone interface 170D can support playing the audio in the video.
- the electronic device 100 can implement audio functions through the audio module 170 , the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor. Such as music playback, recording, etc.
- the audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signal.
- the audio module 170 may also be used to encode and decode audio signals.
- the audio module 170 may be set in the processor 110 , or some functional modules of the audio module 170 may be set in the processor 110 .
- Speaker 170A also referred to as a "horn” is used to convert audio electrical signals into sound signals.
- Electronic device 100 can listen to music through speaker 170A, or listen to hands-free calls.
- Receiver 170B also called “earpiece” is used to convert audio electrical signals into sound signals.
- the microphone 170C also called “microphone” or “microphone”, is used to convert sound signals into electrical signals.
- the user can put his mouth close to the microphone 170C to make a sound, and input the sound signal to the microphone 170C.
- the electronic device 100 may be provided with at least one microphone 170C.
- the electronic device 100 may be provided with two microphones 170C, which may also implement a noise reduction function in addition to collecting sound signals. In some other embodiments, the electronic device 100 can also be provided with three, four or more microphones 170C to collect sound signals, reduce noise, identify sound sources, and realize directional recording functions, etc.
- the earphone interface 170D is used for connecting wired earphones.
- the earphone interface 170D can be a USB interface 130, or a 3.5mm open mobile terminal platform (OMTP) standard interface, or a cellular telecommunications industry association of the USA (CTIA) standard interface.
- OMTP open mobile terminal platform
- CTIA cellular telecommunications industry association of the USA
- the pressure sensor 180A is used to sense the pressure signal and convert the pressure signal into an electrical signal.
- pressure sensor 180A may be disposed on display screen 194 .
- pressure sensors 180A such as resistive pressure sensors, inductive pressure sensors, and capacitive pressure sensors.
- a capacitive pressure sensor may be comprised of at least two parallel plates with conductive material.
- the electronic device 100 determines the intensity of pressure according to the change in capacitance.
- the electronic device 100 detects the intensity of the touch operation according to the pressure sensor 180A.
- the electronic device 100 may also calculate the touched position according to the detection signal of the pressure sensor 180A.
- touch operations acting on the same touch position but with different touch operation intensities may correspond to different operation instructions. For example: when a touch operation with a touch operation intensity less than the first pressure threshold acts on the short message application icon, an instruction to view short messages is executed. When a touch operation whose intensity is greater than or equal to the first pressure threshold acts on the icon of the short message application, the instruction of creating a new short message is executed.
- the gyro sensor 180B can be used to determine the motion posture of the electronic device 100 .
- the angular velocity of the electronic device 100 around three axes may be determined by the gyro sensor 180B.
- the gyro sensor 180B can be used for image stabilization. Exemplarily, when the shutter is pressed, the gyro sensor 180B detects the shaking angle of the electronic device 100, calculates the distance that the lens module needs to compensate according to the angle, and allows the lens to counteract the shaking of the electronic device 100 through reverse movement to achieve anti-shake.
- the gyro sensor 180B can also be used for navigation and somatosensory game scenes.
- the air pressure sensor 180C is used to measure air pressure.
- the electronic device 100 calculates the altitude based on the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.
- the magnetic sensor 180D includes a Hall sensor.
- the electronic device 100 may use the magnetic sensor 180D to detect the opening and closing of the flip leather case.
- the electronic device 100 when the electronic device 100 is a clamshell machine, the electronic device 100 can detect opening and closing of the clamshell according to the magnetic sensor 180D.
- features such as automatic unlocking of the flip cover are set.
- the acceleration sensor 180E can detect the acceleration of the electronic device 100 in various directions (generally three axes).
- the magnitude and direction of gravity can be detected when the electronic device 100 is stationary. It can also be used to identify the posture of electronic devices, and can be used in applications such as horizontal and vertical screen switching, pedometers, etc.
- the distance sensor 180F is used to measure the distance.
- the electronic device 100 may measure the distance by infrared or laser. In some embodiments, when shooting a scene, the electronic device 100 may use the distance sensor 180F for distance measurement to achieve fast focusing.
- Proximity light sensor 180G may include, for example, light emitting diodes (LEDs) and light detectors, such as photodiodes.
- the light emitting diodes may be infrared light emitting diodes.
- the electronic device 100 emits infrared light through the light emitting diode.
- Electronic device 100 uses photodiodes to detect infrared reflected light from nearby objects. When sufficient reflected light is detected, it may be determined that there is an object near the electronic device 100 . When insufficient reflected light is detected, the electronic device 100 may determine that there is no object near the electronic device 100 .
- the electronic device 100 can use the proximity light sensor 180G to detect that the user is holding the electronic device 100 close to the ear to make a call, so as to automatically turn off the screen to save power.
- the proximity light sensor 180G can also be used in leather case mode, automatic unlock and lock screen in pocket mode.
- the ambient light sensor 180L is used for sensing ambient light brightness.
- the electronic device 100 can adaptively adjust the brightness of the display screen 194 according to the perceived ambient light brightness.
- the ambient light sensor 180L can also be used to automatically adjust the white balance when taking pictures.
- the ambient light sensor 180L can also cooperate with the proximity light sensor 180G to detect whether the electronic device 100 is in the pocket, so as to prevent accidental touch.
- the fingerprint sensor 180H is used to collect fingerprints.
- the electronic device 100 can use the collected fingerprint characteristics to implement fingerprint unlocking, access to application locks, take pictures with fingerprints, answer incoming calls with fingerprints, and the like.
- the temperature sensor 180J is used to detect temperature.
- the electronic device 100 uses the temperature detected by the temperature sensor 180J to implement a temperature treatment strategy. For example, when the temperature reported by the temperature sensor 180J exceeds the threshold, the electronic device 100 may reduce the performance of the processor located near the temperature sensor 180J, so as to reduce power consumption and implement thermal protection.
- the electronic device 100 when the temperature is lower than another threshold, the electronic device 100 heats the battery 142 to prevent the electronic device 100 from being shut down abnormally due to the low temperature.
- the electronic device 100 boosts the output voltage of the battery 142 to avoid abnormal shutdown caused by low temperature.
- the touch sensor 180K is also called “touch device”.
- the touch sensor 180K can be disposed on the display screen 194, and the touch sensor 180K and the display screen 194 form a touch screen, also called a “touch screen”.
- the touch sensor 180K is used to detect a touch operation on or near it.
- the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
- Visual output related to the touch operation can be provided through the display screen 194 .
- the touch sensor 180K may also be disposed on the surface of the electronic device 100 , which is different from the position of the display screen 194 .
- the electronic device 100 detects whether there is a user operation on the display screen 194 of the electronic device 100 through the touch sensor 180K. After the touch sensor 180K detects the above-mentioned user operation, the electronic device 100 can execute the operation indicated by the above-mentioned user operation, and then edit and save the 10-bit video.
- the bone conduction sensor 180M can acquire vibration signals. In some embodiments, the bone conduction sensor 180M can acquire the vibration signal of the vibrating bone mass of the human voice. The bone conduction sensor 180M can also contact the human pulse and receive the blood pressure beating signal. In some embodiments, the bone conduction sensor 180M can also be disposed in the earphone, combined into a bone conduction earphone.
- the audio module 170 can analyze the voice signal based on the vibration signal of the vibrating bone mass of the vocal part acquired by the bone conduction sensor 180M, so as to realize the voice function.
- the application processor can analyze the heart rate information based on the blood pressure beating signal acquired by the bone conduction sensor 180M, so as to realize the heart rate detection function.
- the keys 190 include a power key, a volume key and the like.
- the key 190 may be a mechanical key. It can also be a touch button.
- the electronic device 100 can receive key input and generate key signal input related to user settings and function control of the electronic device 100 .
- the motor 191 can generate a vibrating reminder.
- the motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback.
- touch operations applied to different applications may correspond to different vibration feedback effects.
- the motor 191 may also correspond to different vibration feedback effects for touch operations acting on different areas of the display screen 194 .
- Different application scenarios for example: time reminder, receiving information, alarm clock, games, etc.
- the touch vibration feedback effect can also support customization.
- the indicator 192 can be an indicator light, and can be used to indicate charging status, power change, and can also be used to indicate messages, missed calls, notifications, and the like.
- the SIM card interface 195 is used for connecting a SIM card.
- the SIM card can be connected and separated from the electronic device 100 by inserting it into the SIM card interface 195 or pulling it out from the SIM card interface 195 .
- the electronic device 100 may support 1 or N SIM card interfaces, where N is a positive integer greater than 1.
- SIM card interface 195 can support Nano SIM card, Micro SIM card, SIM card etc. Multiple cards can be inserted into the same SIM card interface 195 at the same time. The types of the multiple cards may be the same or different.
- the SIM card interface 195 is also compatible with different types of SIM cards.
- the SIM card interface 195 is also compatible with external memory cards.
- the electronic device 100 interacts with the network through the SIM card to implement functions such as calling and data communication.
- the electronic device 100 adopts an eSIM, that is, an embedded SIM card.
- the eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100 .
- the electronic device 100 can provide users with the ability to edit 10-bit bit-depth video (HDR10, HLG, LOG gray film), and save the edited video as a 10-bit bit-depth video. In this way, the electronic device 100 not only satisfies the user's requirement for editing 10-bit videos, but also ensures that the edited and saved videos are still 10-bit videos, and the quality of the edited videos will not be reduced.
- 10-bit bit-depth video HDR10, HLG, LOG gray film
- the video selected by the user to edit shown in FIG. 1C may be referred to as a first video; the edited and saved video shown in FIG. 1K may be referred to as a second video.
- Any frame in the first video may be called a first video frame, and the video frame obtained after the first video frame is processed through step 4-step 17 in FIG. 4 may be called a second video frame.
- the operation of the user clicking the save control shown in Figure 1G can be called the first editing operation; for the second editing operation.
- the color value of any color channel of any pixel in the video selected by the user for editing may be called the first color value (10bit integer).
- the obtained color value of one color channel may be called the seventh color value.
- Splitting the above 101000000 to obtain 00000001 and 01000000 may be referred to as splitting the sixth color value into N integer data of the second bit depth in units of the second bit depth.
- the floating-point data corresponding to the two integer data of the second bit depth is the above-mentioned two third color values.
- step 17 when the surface carries the above-mentioned two fifth color values in 10 bits, the integer data formed by the combination of the above-mentioned two fifth color values can be called the fourth color value, that is, the above-mentioned 00000001 and 01000000 are recombined to form 0000000101000000.
- the Surface can be called the first memory, and the graphics buffer can be called the second memory.
- UI user interface
- the term "user interface (UI)" in the specification, claims and drawings of this application is a medium interface for interaction and information exchange between an application program or an operating system and a user, and it realizes the internal form of information Conversion to and from a form acceptable to the user.
- the user interface of the application program is the source code written in specific computer languages such as java and extensible markup language (XML). Such as pictures, text, buttons and other controls.
- Control also known as widget (widget)
- Typical controls include toolbar (toolbar), menu bar (menu bar), text box (text box), button (button), scroll bar (scrollbar), images and text.
- the properties and content of the controls in the interface are defined through labels or nodes.
- XML specifies the controls contained in the interface through nodes such as ⁇ Textview>, ⁇ ImgView>, and ⁇ VideoView>.
- a node corresponds to a control or property in the interface, and after the node is parsed and rendered, it is presented as the content visible to the user.
- many application programs, such as hybrid applications generally include web pages in their interfaces.
- a web page, also called a page, can be understood as a special control embedded in the application program interface.
- a web page is a source code written in a specific computer language, such as hyper text markup language (GTML), cascading style Tables (cascading style sheets, CSS), java scripts (JavaScript, JS), etc.
- GTML hyper text markup language
- cascading style Tables cascading style sheets, CSS
- JavaScript JavaScript
- JS java scripts
- the specific content contained in the web page is also defined by the tags or nodes in the source code of the web page.
- GTML defines the elements and attributes of the web page through ⁇ p>, ⁇ img>, ⁇ video>, and ⁇ canvas>.
- GUI graphical user interface
- all or part of them may be implemented by software, hardware, firmware or any combination thereof.
- software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
- the computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of the present application will be generated in whole or in part.
- the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server, or data center by wired (eg, coaxial cable, optical fiber, DSL) or wireless (eg, infrared, wireless, microwave, etc.) means.
- the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
- the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state hard disk), etc.
- the processes can be completed by computer programs to instruct related hardware.
- the programs can be stored in computer-readable storage media.
- When the programs are executed may include the processes of the foregoing method embodiments.
- the aforementioned storage medium includes: ROM or random access memory RAM, magnetic disk or optical disk, and other various media that can store program codes.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Television Signal Processing For Recording (AREA)
- Image Processing (AREA)
Abstract
Description
Claims (21)
- 一种视频编辑方法,应用于电子设备,其特征在于,所述方法包括:检测到作用于第一视频的第一编辑操作,所述第一编辑操用于编辑所述第一视频,所述第一视频的第一视频帧中的像素点的颜色通道的颜色值为第一颜色值,所述第一颜色值为整型数据,所述第一颜色值的位深为第一位深,所述第一视频帧为所述第一视频的任意视频帧;响应于所述第一编辑操作,基于所述第一颜色值生成第二颜色值,所述第二颜色值为浮点型数据;基于所述第二颜色值生成N个第三颜色值,所述N个第三颜色值为浮点型数据,所述N个第三颜色值的位深为第二位深,所述N为大于1的正整数;基于所述N个第三颜色值生成第四颜色值,所述第四颜色值的位深为所述第一位深,所述第四颜色值为整型数据;基于所述第四颜色值生成第二视频帧;基于所述第二视频帧生成第二视频。
- 根据权利要求1所述的方法,其特征在于,所述基于所述第二颜色值生成N个第三颜色值,包括:确定所述第二颜色值对应的第六颜色值,所述第六颜色值的位深为第一位深,所述第六颜色值为整型数据;以第二位深为单位,将所述第六颜色值拆分为N个所述第二位深的整型数据;根据所述N个所述第二位深的整型数据确定所述N个第三颜色值。
- 根据权利要求1或2所述的方法,其特征在于,所述电子设备包括图形处理器GPU、编码器和第一内存,所述基于所述N个第三颜色值生成第四颜色值,包括:所述GPU将所述N个第三颜色值写入所述第一内存,得到N个第五颜色值,所述N个第五颜色值为整型数据;所述编码器以所述第一位深从所述第一内存中读取所述N个第五颜色值得到所述第四颜色值。
- 根据权利要求3所述的方法,其特征在于,在所述GPU将所述N个第三颜色值写入所述第一内存之前,所述方法还包括:设置所述第一内存中承载的视频帧的位深为第一位深。
- 根据权利要求4所述的方法,其特征在于,所述电子设备包括Java原生接口JNI,所述设置所述第一内存中承载的视频帧的位深为第一位深,包括:所述JNI设置所述第一内存中承载的视频帧的位深为第一位深。
- 根据权利要求5所述的方法,其特征在于,所述GPU将所述N个第三颜色值写入所述第一内存,包括:所述JNI向所述GPU发送获取所述N个第三颜色值的请求;所述JNI接收所述GPU发送的所述N个第三颜色值;所述JNI将所述N个第三颜色值写入到所述第一内存。
- 根据权利要求1-6中任一项所述的方法,其特征在于,所述电子设备包括开放图形库OpenGL,所述基于所述第一颜色值生成第二颜色值,包括:所述OpenGL对所述第一颜色值进行归一化,确定第七颜色值,所述第七颜色值的为浮点型数据;所述OpenGL确定第二编辑操作的计算逻辑;所述OpenGL基于所述计算逻辑对所述第七颜色值进行处理,得到所述第二颜色值。
- 根据权利要求7所述的方法,其特征在于:所述第二编辑操作包括:变更视频帧数量的编辑操作、变更视频帧像素点数量的编辑操作和变更像素点颜色值的编辑操作中的一个或多个。
- 根据权利要求7或8所述的方法,其特征在于,所述电子设备包括编辑应用,所述OpenGL确定第二编辑操作的计算逻辑,包括:所述OpenGL通过所述编辑应用获取所述第二编辑操作;所述OpenGL基于所述第二编辑操作确定所述第二编辑操作对应的计算逻辑。
- 根据权利要求1-9中任一项所述的方法,其特征在于,所述电子设备包括解码器和编辑应用,所述检测到作用于第一视频的第一编辑操作,具体为:所述编辑应用检测到作用于第一视频的第一编辑操作;在检测到作用于第一视频的第一编辑操作之后,所述方法还包括:所述编辑应用向所述解码器发送所述第一视频;响应于接收所述第一视频,所述解码器将所述第一视频解码为M个原始视频帧,所述第一视频帧为所述M个原始视频帧中的任意一个,所述M为大于1的正整数。
- 根据权利要求1-10中任一项所述的方法,其特征在于,所述N等于2。
- 根据权利要求1-11中任一项所述的方法,其特征在于,所述第一位深为10比特;所述第二位深为8比特。
- 根据权利要求2所述的方法,其特征在于,所述以第二位深为单位,将所述第六颜色值拆分为所述N个第二位深的整型数据,包括:当所述第一位深为所述第二位深的正整数倍时,则所述N为所述正整数;当所述第一位深不能被所述第二位深整除时,则所述N为所述第一位深除所述第二位深的后向上取整得到的商。
- 根据权利要求6所述的方法,其特征在于,所述电子设备还包括第二内存,所述获取所述N个第三颜色值的请求中携带所述第二内存的地址,所述第二内存为所述JNI申请的用于存储数据的内存,所述方法还包括:响应于接收所述获取所述N个第三颜色值的请求,所述GPU向所述第二内存写入所述N个第三颜色值;所述JNI接收所述GPU发送的所述N个第三颜色值,具体包括:所述JNI的所述第二内存接收到所述GPU发送的所述N个第三颜色值;所述JNI将所述N个第三颜色值写入到所述第一内存,具体为:所述JNI将所述第二内存中存放的所述N个第三颜色值写入所述第一内存。
- 根据权利要求14所述的方法,其特征在于,所述电子设备包括开放图形库OpenGL,所述JNI向所述GPU发送获取所述N个第三颜色值的请求,包括:所述JNI向所述OpenGL发送获取所述N个第三颜色值的第一请求;所述OpenGL向所述GPU发送获取所述N个第三颜色值的第二请求;所述响应于接收所述获取所述N个第三颜色值的请求,所述GPU向所述第二内存写入所述N个第三颜色值,具体为:响应于所述第二请求,所述GPU向所述OpenGL发送所述N个第三颜色值;所述OpenGL将所述N个第三颜色值写入所述第二内存。
- 根据权利要求7-9中任一项所述的方法,其特征在于,所述解码器将所述第一视频解码为M个原始视频帧之后,所述方法还包括,所述解码器将所述M个原始视频帧发送给所述OpenGL;在所述OpenGL确定第二编辑操作的计算逻辑之前,所述方法还包括:所述OpenGL将所述第一视频帧的颜色编码格式设置为RGB颜色格式。
- 根据权利要求7-16中任一项所述的方法,其特征在于,所述第一视频包括高动态范围HDR视频、LOG视频中的一个。
- 根据权利要求17所述的方法,其特征在于:当所述第二编辑操作为所述变更视频帧数量的编辑操作和/或变更视频帧像素点数量的编辑操作时:所述第二视频为HDR视频,所述第二视频为HDR视频;或者所述第二视频为LOG视频,所述第二视频为LOG视频;当所述第二编辑操作为变更像素点颜色值的编辑操作时,所述第二视频为LOG视频,所述第二视频为HDR视频。
- 一种电子设备,其特征在于,包括一个或多个处理器和一个或多个存储器;其中, 所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得执行如权利要求1-18任一项所述的方法。
- 一种包含指令的计算机程序产品,其特征在于,当计算机程序产品在电子设备上运行时,使得电子设备执行如权利要求1-18任一项所述的方法。
- 一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得执行如权利要求1-18任一项所述的方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/250,169 US12334114B2 (en) | 2021-10-29 | 2022-08-25 | Video editing method and electronic device |
| EP22879666.0A EP4224870A4 (en) | 2021-10-29 | 2022-08-25 | VIDEO EDITING METHOD AND ELECTRONIC DEVICE |
| MX2024001612A MX2024001612A (es) | 2021-10-29 | 2022-08-25 | Metodo de edicion de video y dispositivo electronico. |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111276128.7A CN114173189B (zh) | 2021-10-29 | 2021-10-29 | 视频编辑方法、电子设备和存储介质 |
| CN202111276128.7 | 2021-10-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023071482A1 true WO2023071482A1 (zh) | 2023-05-04 |
Family
ID=80477828
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/114891 Ceased WO2023071482A1 (zh) | 2021-10-29 | 2022-08-25 | 视频编辑方法和电子设备 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12334114B2 (zh) |
| EP (1) | EP4224870A4 (zh) |
| CN (1) | CN114173189B (zh) |
| MX (1) | MX2024001612A (zh) |
| WO (1) | WO2023071482A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114173189B (zh) * | 2021-10-29 | 2023-02-07 | 荣耀终端有限公司 | 视频编辑方法、电子设备和存储介质 |
| WO2024244639A1 (zh) * | 2023-05-26 | 2024-12-05 | 荣耀终端有限公司 | 一种图像处理方法及电子设备 |
| CN117692714B (zh) * | 2023-07-11 | 2024-11-08 | 荣耀终端有限公司 | 视频显示方法、电子设备、计算机程序产品和存储介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015131330A1 (en) * | 2014-03-04 | 2015-09-11 | Microsoft Technology Licensing, Llc | Encoding strategies for adaptive switching of color spaces, color sampling rates and/or bit depths |
| CN108769677A (zh) * | 2018-05-31 | 2018-11-06 | 宁波大学 | 一种基于感知的高动态范围视频动态范围可分级编码方法 |
| CN109600618A (zh) * | 2018-12-19 | 2019-04-09 | 上海数迹智能科技有限公司 | 视频压缩方法、解压缩方法、装置、终端和介质 |
| CN110933416A (zh) * | 2019-11-12 | 2020-03-27 | 宁波大学 | 高动态范围视频自适应预处理方法 |
| CN111083516A (zh) * | 2019-12-31 | 2020-04-28 | 广州酷狗计算机科技有限公司 | 直播处理的方法和装置 |
| CN113489930A (zh) * | 2021-06-10 | 2021-10-08 | 中央广播电视总台 | 一种视频信号处理方法、装置及存储介质 |
| CN114173189A (zh) * | 2021-10-29 | 2022-03-11 | 荣耀终端有限公司 | 视频编辑方法和电子设备 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE60106301T2 (de) * | 2001-07-04 | 2005-10-20 | Okyz | Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten |
| US7969444B1 (en) * | 2006-12-12 | 2011-06-28 | Nvidia Corporation | Distributed rendering of texture data |
| WO2013048532A1 (en) * | 2011-10-01 | 2013-04-04 | Intel Corporation | Using a graphics engine to process print requests |
| US20140133832A1 (en) * | 2012-11-09 | 2014-05-15 | Jason Sumler | Creating customized digital advertisement from video and/or an image array |
| KR102187227B1 (ko) * | 2014-02-19 | 2020-12-04 | 삼성전자주식회사 | 컨텐츠 생성 방법 및 그 전자 장치 |
| US9679348B2 (en) * | 2014-05-15 | 2017-06-13 | Disney Enterprises, Inc. | Storage and compression methods for animated images |
| US10277771B1 (en) * | 2014-08-21 | 2019-04-30 | Oliver Markus Haynold | Floating-point camera |
| CN106791858B (zh) * | 2017-01-09 | 2019-06-04 | 国家新闻出版广电总局电影数字节目管理中心 | 一种高采样率rgb视频数据无损压缩方法 |
| US10109078B1 (en) * | 2017-04-10 | 2018-10-23 | Intel Corporation | Controlling coarse pixel size from a stencil buffer |
| US10388063B2 (en) * | 2017-06-30 | 2019-08-20 | Microsoft Technology Licensing, Llc | Variable rate shading based on temporal reprojection |
| CN107277616A (zh) * | 2017-07-21 | 2017-10-20 | 广州爱拍网络科技有限公司 | 视频特效渲染方法、装置及终端 |
| WO2019075702A1 (en) * | 2017-10-19 | 2019-04-25 | Tencent Technology (Shenzhen) Company Limited | METHODS AND SYSTEMS FOR PROCESSING GRAPHICS |
| CN108337516B (zh) * | 2018-01-31 | 2022-01-18 | 宁波大学 | 一种面向多用户的hdr视频动态范围可分级编码方法 |
| CN112235571B (zh) * | 2020-08-31 | 2023-04-07 | 咪咕文化科技有限公司 | 视频位深扩展方法、装置、电子设备及存储介质 |
| CN112087637A (zh) * | 2020-09-09 | 2020-12-15 | 中国电子科技集团公司第五十八研究所 | 一种高像素位深视频图像数据编解码处理方法 |
| CN119299814A (zh) * | 2021-10-09 | 2025-01-10 | 荣耀终端有限公司 | 一种图像处理方法及电子设备 |
-
2021
- 2021-10-29 CN CN202111276128.7A patent/CN114173189B/zh active Active
-
2022
- 2022-08-25 WO PCT/CN2022/114891 patent/WO2023071482A1/zh not_active Ceased
- 2022-08-25 EP EP22879666.0A patent/EP4224870A4/en active Pending
- 2022-08-25 US US18/250,169 patent/US12334114B2/en active Active
- 2022-08-25 MX MX2024001612A patent/MX2024001612A/es unknown
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015131330A1 (en) * | 2014-03-04 | 2015-09-11 | Microsoft Technology Licensing, Llc | Encoding strategies for adaptive switching of color spaces, color sampling rates and/or bit depths |
| CN108769677A (zh) * | 2018-05-31 | 2018-11-06 | 宁波大学 | 一种基于感知的高动态范围视频动态范围可分级编码方法 |
| CN109600618A (zh) * | 2018-12-19 | 2019-04-09 | 上海数迹智能科技有限公司 | 视频压缩方法、解压缩方法、装置、终端和介质 |
| CN110933416A (zh) * | 2019-11-12 | 2020-03-27 | 宁波大学 | 高动态范围视频自适应预处理方法 |
| CN111083516A (zh) * | 2019-12-31 | 2020-04-28 | 广州酷狗计算机科技有限公司 | 直播处理的方法和装置 |
| CN113489930A (zh) * | 2021-06-10 | 2021-10-08 | 中央广播电视总台 | 一种视频信号处理方法、装置及存储介质 |
| CN114173189A (zh) * | 2021-10-29 | 2022-03-11 | 荣耀终端有限公司 | 视频编辑方法和电子设备 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4224870A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250078871A1 (en) | 2025-03-06 |
| CN114173189B (zh) | 2023-02-07 |
| CN114173189A (zh) | 2022-03-11 |
| MX2024001612A (es) | 2024-02-28 |
| EP4224870A1 (en) | 2023-08-09 |
| US12334114B2 (en) | 2025-06-17 |
| EP4224870A4 (en) | 2024-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113726950B (zh) | 一种图像处理方法和电子设备 | |
| US11567623B2 (en) | Displaying interfaces in different display areas based on activities | |
| CN114222187B (zh) | 视频编辑方法和电子设备 | |
| CN109559270B (zh) | 一种图像处理方法及电子设备 | |
| WO2020253719A1 (zh) | 一种录屏方法及电子设备 | |
| CN109857401B (zh) | 电子设备的显示方法、图形用户界面及电子设备 | |
| WO2023071482A1 (zh) | 视频编辑方法和电子设备 | |
| CN116048933A (zh) | 一种流畅度检测方法 | |
| CN116193275A (zh) | 视频处理方法及相关设备 | |
| CN120077364A (zh) | 界面生成方法及电子设备 | |
| CN110096662A (zh) | 一种网页显示方法及相关装置 | |
| US20260030040A1 (en) | Interface generation method and electronic device | |
| CN118446882B (zh) | 一种图片背景和文字颜色适配方法及相关装置 | |
| CN117692714B (zh) | 视频显示方法、电子设备、计算机程序产品和存储介质 | |
| CN115482143A (zh) | 应用的图像数据调用方法、系统、电子设备及存储介质 | |
| CN116263971A (zh) | 图像帧的预测方法、电子设备及计算机可读存储介质 | |
| CN119767076B (zh) | 视频编辑方法和电子设备 | |
| HK40071387B (zh) | 视频编辑方法、电子设备和存储介质 | |
| HK40071387A (zh) | 视频编辑方法、电子设备和存储介质 | |
| CN117692723A (zh) | 视频编辑方法和电子设备 | |
| WO2024083009A1 (zh) | 界面生成方法及电子设备 | |
| WO2024046010A1 (zh) | 一种界面显示方法、设备及系统 | |
| CN116701307A (zh) | 阅读应用的界面显示方法和终端设备 | |
| WO2024061292A1 (zh) | 界面生成方法及电子设备 | |
| WO2025201357A1 (zh) | 一种图层合成方法及相关装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 18250169 Country of ref document: US |
|
| ENP | Entry into the national phase |
Ref document number: 2022879666 Country of ref document: EP Effective date: 20230502 |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22879666 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 18250169 Country of ref document: US |
|
| WWG | Wipo information: grant in national office |
Ref document number: 18250169 Country of ref document: US |
