Image display method, program product, substrate management controller and system
By adopting adaptive selection of interlaced and progressive scans in the BMC system, the image changes are analyzed, and the problem of insufficient memory bandwidth is solved, and the display quality and user experience are improved.
Patent Information
- Application Number
- CN202510661944.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-22
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2045-05-22
AI Technical Summary
When the BMC system is loading high, the system memory usage rate is high, resulting in insufficient video memory bandwidth, display screens and image tearing, which affects the user experience.
Use interlaced scanning to read image data from the video memory, and analyze image changes through preset buffers. Adaptively select the display method of interlaced or progressive scanning to reduce the amount of video memory read and avoid display problems.
On the basis of not affecting the display effect, reduce BMC's video memory bandwidth needs, improve user experience, and reduce display problems such as image tear and jagged.
Smart Images

Figure CN120179200B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of servers, and in particular to an image display method, a program product, a baseboard management controller and a system. Background Art
[0002] Currently, images displayed on a server's local display or remote pages are processed by the integrated graphics card within the BMC (Baseboard Management Controller) before being output to a local monitor or web page. The video memory used by the integrated graphics card typically uses a portion of the BMC system's reserved system memory. In a BMC system, system memory is often used not only for video memory but also for CPU (Central Processing Unit) computing, networking, and operating system kernel operations. Therefore, when the BMC system is heavily loaded and memory usage is high, insufficient memory bandwidth can occur, resulting in display artifacts and image tearing, impacting the visual experience. Therefore, to avoid impacting other BMC services, reducing the bandwidth required for display is a direct way to mitigate insufficient memory bandwidth.
[0003] Related technologies often reduce the bandwidth required for BMC display by reducing the CPU's consumption of video memory read and write resources, thereby conserving video memory bandwidth. This approach, for example, reduces the display frame rate and resolution. However, this approach can affect the user's viewing experience. Therefore, how to reduce the video memory bandwidth required for BMC display while minimizing the impact on display quality and improving the user experience is an urgent issue. Summary of the Invention
[0004] The object of the present invention is to provide an image display method, a computer program product, a baseboard management controller, and a baseboard management controller system, so as to reduce the video memory bandwidth required for BMC display without affecting the display effect as much as possible, thereby improving the user experience.
[0005] To solve the above technical problems, the present invention provides an image display method applied to a baseboard management controller, comprising:
[0006] Using interlaced scanning, the first field data and the second field data of each frame of the image to be displayed are sequentially read from the video memory; wherein the first field data is odd field data or even field data;
[0007] When reading the first field data of the current frame image from the video memory in the interlaced scanning mode, obtaining the image change of the current frame image according to the historical image data stored in the preset buffer; wherein the current frame image is any frame of the image to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image;
[0008] If the image change is not obvious, output the first field data of the current frame image to display the first field interlaced scan image on the local display and / or the remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image;
[0009] If the image change is an obvious picture change, the first field progressive scan image corresponding to the current frame image is output to display the first field progressive scan image on the local display and / or the remote page; wherein the first field progressive scan image is an image generated based on the historical image data and the first field data of the current frame image.
[0010] On the other hand, the historical image data includes a first frame image and a second frame image before the current frame image, the first frame image is continuous with the current frame image, and the second frame image is continuous with the first frame image.
[0011] On the other hand, obtaining the image change of the current frame image according to the historical image data stored in the preset buffer includes:
[0012] Performing pixel block matching on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information of each pair of matched pixel blocks; wherein each pair of matched pixel blocks includes two matched pixel blocks of the preset pixel block size in the first frame image and the second frame image;
[0013] An image change condition of the current frame image is determined according to the motion vector information.
[0014] On the other hand, performing pixel block matching on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information of each pair of matching pixel blocks includes:
[0015] Calculating the absolute value of the difference between the pixel values at the same position between the first frame image and the second frame image to obtain a difference image;
[0016] Determining a target transformation area based on the difference image and a pixel difference threshold; wherein the target transformation area includes pixel locations in the difference image whose pixel values are greater than the pixel difference threshold;
[0017] According to the target transformation area, pixel blocks of the first frame image and the second frame image are matched according to the preset pixel block size to obtain motion vector information of each pair of matching pixel blocks; wherein at least one pixel block in each pair of matching pixel blocks is within the target transformation area.
[0018] On the other hand, determining the image change of the current frame image according to the motion vector information includes:
[0019] Calculating the average displacement degree of all the matching pixel blocks according to the motion vector information;
[0020] If the average displacement degree is not greater than the displacement degree threshold, determining that the image change condition is that the picture change is not obvious;
[0021] If the average displacement degree is greater than the displacement degree threshold, it is determined that the image change condition is that the picture change is obvious.
[0022] On the other hand, the motion vector information of each pair of matching pixel blocks includes a horizontal motion vector and a vertical motion vector; the horizontal motion vector in the motion vector information of the current pair of matching pixel blocks is x b -x a , the vertical motion vector in the motion vector information of the current matching pixel block is y b -y a , the coordinates of the pixel block in the first frame image in the current matching pixel block are (x b ,y b ), the coordinates of the pixel block in the second frame image in the current pair of matching pixel blocks are (x a ,y a ).
[0023] On the other hand, the preset buffer includes a first buffer, a second buffer, a third buffer and a fourth buffer, the first buffer is used to store the first field data of the first frame image, the second buffer is used to store the second field data of the first frame image, the third buffer is used to store the first field data of the second frame image, and the fourth buffer is used to store the second field data of the second frame image.
[0024] In another aspect, the method further comprises:
[0025] When the second field data of the current frame image is read from the video memory using the interlaced scanning method, the second field data of the current frame image is output to display the second field interlaced scan image on the local display and / or the remote page; wherein the second field interlaced scan image includes the first field data and the second field data of the current frame image.
[0026] In another aspect, the first field data is odd field data, and the second field data is even field data.
[0027] On the other hand, outputting the first field data of the current frame image includes:
[0028] sequentially outputting pixel data of each row of the first field data of the current frame image to the local display via a video graphics array interface;
[0029] Correspondingly, the first field progressive scan image corresponding to the current frame image is output, including:
[0030] The pixel data of each line of the first field progressive scan image is output line by line to the local display through the video graphics array interface.
[0031] On the other hand, sequentially outputting pixel data of each row of the first field data of the current frame image to the local display through the video graphics array interface includes:
[0032] Generate an image timing sequence corresponding to the first field data of the current frame image;
[0033] According to the image timing, pixel data of each row of the first field data of the current frame image is sequentially output to the local display through the video graphics array interface.
[0034] On the other hand, the first field progressive scan image includes first field data of the current frame image and second field prediction data, and the second field prediction data is interpolation data calculated based on the historical image data or the historical image data and the first field data of the current frame image.
[0035] On the other hand, the historical image data includes a first frame image and a second frame image before the current frame image; and outputting a first field progressive scan image corresponding to the current frame image includes:
[0036] The second field prediction data is calculated based on the first frame image, the second frame image, the first field data of the current frame image, and the motion vector information of each pair of matching pixel blocks; wherein each pair of the matching pixel blocks includes two pixel blocks of a preset pixel block size matched after pixel block matching in the first frame image and the second frame image.
[0037] On the other hand, calculating the second field prediction data according to the first frame image, the second frame image, the first field data of the current frame image, and the motion vector information of each pair of matching pixel blocks includes:
[0038] If the pixel position of the current pixel in the second field prediction data is not in the matching pixel block in the first frame image or the second frame image, or the pixel position of the current pixel is in the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is not 0, then pass B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , calculate the pixel value of the current pixel in the second field prediction data; wherein the current pixel h is any pixel in the second field prediction data, B2' h is the pixel value of the current pixel in the second field prediction data, A 1h is the pixel value of the current pixel point in the first field data of the first frame image, A 0h is the pixel value of the current pixel point in the first field data of the second frame image, B 0h is the pixel value of the current pixel point in the second field data of the second frame image, A 2h is the pixel value of the current pixel point in the first field data of the current frame image, B 1h is the pixel value of the pixel point position of the current pixel point in the second field data of the first frame image;
[0039] If the pixel position of the current pixel in the second field prediction data is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is 0, then B2' h =(A 1h / (A 1h +A 0h ))*B 0h(x-x0) +(A 2h / (A 1h +A 2h ))*B 1h(x-x0) , calculate the pixel value of the current pixel in the second field prediction data; where B 0h(x-x0) is the pixel value of the moving pixel point corresponding to the current pixel point in the second field data of the second frame image, B 1h(x-x0)It is the pixel value of the moving pixel position h(x-x0) corresponding to the current pixel point in the second field data of the first frame image, and the moving pixel position corresponding to the current pixel point is the pixel position corresponding to the difference between the horizontal coordinate of the current pixel point and the horizontal moving vector x0 in the moving vector information corresponding to the matching pixel block.
[0040] The present invention also provides a computer program product, comprising a computer program / instruction, which implements the steps of the image display method as described above when executed by a processor.
[0041] The present invention also provides a baseboard management controller, comprising:
[0042] memory for storing computer programs;
[0043] A processor is used to implement the steps of the image display method as described above when executing the computer program.
[0044] In addition, the present invention also provides a substrate management controller system, comprising: a control module, a preset buffer, a motion detection module, a pixel value prediction module and an output module; wherein,
[0045] The control module is used to sequentially read the first field data and the second field data of each frame of the image to be displayed from the video memory in an interlaced scanning manner; wherein the first field data is odd field data or even field data;
[0046] The motion detection module is configured to, under the control of the control module, obtain image changes of the current frame image based on historical image data stored in a preset buffer when reading the first field data of the current frame image from the video memory using the interlaced scanning method; wherein the current frame image is any frame of the image to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image;
[0047] The output module is configured to, under the control of the control module, output the first field data of the current frame image when the image change condition is that the picture change is not obvious, so as to display the first field interlaced scan image on the local display and / or the remote page; and output the first field progressive scan image corresponding to the current frame image when the image change condition is that the picture change is obvious, so as to display the first field progressive scan image on the local display and / or the remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image;
[0048] The pixel value prediction module is used to generate the first field progressive scan image according to the historical image data and the first field data of the current frame image under the control of the control module when the image change situation is obvious.
[0049] An image display method provided by the present invention is applied to a baseboard management controller, comprising: using an interlaced scanning method to sequentially read the first field data and the second field data of each frame of an image to be displayed from a video memory; wherein the first field data is odd field data or even field data; when using the interlaced scanning method to read the first field data of the current frame image from the video memory, obtaining the image change of the current frame image based on the historical image data stored in a preset buffer; wherein the current frame image is any frame of the image to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image; if the image change is that the picture change is not obvious, outputting the first field data of the current frame image to display the first field interlaced scan image on a local display and / or a remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image; if the image change is that the picture change is obvious, outputting the first field progressive scan image corresponding to the current frame image to display the first field progressive scan image on a local display and / or a remote page; wherein the first field progressive scan image is an image generated based on the historical image data and the first field data of the current frame image.
[0050] As can be seen, the present invention, when reading the first field data of the current frame image from the video memory using an interlaced scanning method, obtains the image change status of the current frame image based on the historical image data stored in a preset buffer. This can analyze and determine the degree of change in the current image and adaptively select the interlaced scanning or progressive scanning display mode. This reduces the reading behavior of the video memory through interlaced scanning, and reduces display problems such as aliasing and tearing through progressive scanning. It can reduce the video memory bandwidth required for the BMC display without affecting the display effect as much as possible, thereby improving the user experience. In addition, the present invention also provides a computer program product, a baseboard management controller, and a baseboard management controller system, which also have the above-mentioned beneficial effects. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
[0052] Figure 1Schematic diagram of progressive scanning in related art, wherein (a) is vertical scanning of progressive scanning, and (b) is horizontal scanning of progressive scanning;
[0053] Figure 2 Schematic diagram of interlaced scanning in the related art, wherein (a) is a vertical scan of interlaced scanning, (b) is a horizontal scan field 1 of interlaced scanning, and (c) is a horizontal scan field 2 of interlaced scanning;
[0054] Figure 3 A flowchart of an image display method provided by an embodiment of the present invention;
[0055] Figure 4 A diagram showing an image transformation provided by an embodiment of the present invention;
[0056] Figure 5 A display diagram of an interlaced scanning output provided by an embodiment of the present invention;
[0057] Figure 6 A display diagram of a line-by-line scan output provided by an embodiment of the present invention;
[0058] Figure 7 A schematic flow chart of another image display method provided by an embodiment of the present invention;
[0059] Figure 8 A structural block diagram of an image display device provided by an embodiment of the present invention;
[0060] Figure 9 A schematic structural diagram of a baseboard management controller provided by an embodiment of the present invention;
[0061] Figure 10 This is a structural diagram of a baseboard management controller system provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0062] To make the objectives, technical solutions, and advantages of the embodiments of the present invention more clear, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts shall fall within the scope of protection of the present invention.
[0063] It is understood that progressive scanning is the process of scanning each frame of an image line by line, such as Figure 1 The levels shown in (b) are from left to right, as Figure 1The vertical scanning shown in (a) is from top to bottom in the order of lines. Interlaced scanning is a frame of image scanned twice, that is, divided into two fields; Figure 2 (a) is shown vertically from top to bottom, as shown in Figure 2 The first field shown in (b) scans odd-numbered lines 1, 3, and 5, which are called odd fields. Figure 2 The second field shown in (c) scans even-numbered lines, such as 2, 4, and 6, and is called an even field. The odd and even fields together form a complete image. Due to the different scanning methods, the amount of pixel data transmitted per field varies. For example, for a 640x480 resolution image, progressive scanning transmits 640x480 pixels per field, while interlaced scanning transmits 640x240 pixels per field. Therefore, interlaced scanning significantly reduces the bandwidth required for image transmission.
[0064] That is, compared to progressive scanning, interlaced scanning by the BMC can effectively reduce pixel density, reducing the amount of data read from the video memory by half, resulting in better bandwidth optimization. However, interlaced scanning can introduce some display issues with image transmission, such as image tearing and aliasing. Therefore, embodiments of the present invention analyze and determine the degree of change in the current image and adaptively select interlaced scanning or interpolated progressive scanning for display. This reduces video memory reads through interlaced scanning, and reduces display issues such as aliasing and tearing through progressive scanning. This reduces the video memory bandwidth required for BMC display without significantly impacting the display quality, thereby improving the user experience.
[0065] For details, please refer to Figure 3 , Figure 3 This is a flow chart of an image display method provided by an embodiment of the present invention. The method is applied to a baseboard management controller and includes:
[0066] Step 101: Using an interlaced scanning method, read the first field data and the second field data of each frame of the image to be displayed from the video memory in sequence.
[0067] The first field data is odd field data or even field data.
[0068] It is understood that in this embodiment, when the BMC (baseboard management controller) reads each frame of image to be displayed from the video memory, it may sequentially scan and read the first field data and the second field data of the frame of image to be displayed using an interlaced scanning method. The first field data may be the first field data read by the interlaced scanning method, and the second field data may be the last field data read by the interlaced scanning method.
[0069] Correspondingly, this embodiment does not limit the specific data content of the first field data and the second field data. For example, the first field data can be odd field data (i.e., data of an odd row) or even field data (i.e., data of an even row); accordingly, when the first field data is odd field data, the second field data is even field data; when the first field data is even field data, the second field data is odd field data.
[0070] Accordingly, the image to be displayed in this embodiment may be an image that needs to be stored in the video memory and displayed via the local display and / or remote display function of the BMC. That is, when the local display function and / or remote display function are activated, the BMC may sequentially read the first field data and second field data of each frame of the image to be displayed from the video memory using an interlaced scanning method to display the corresponding image on the local display and / or remote page.
[0071] Step 102: when reading the first field data of the current frame image from the video memory in an interlaced scanning manner, obtaining image changes of the current frame image according to historical image data stored in a preset buffer.
[0072] The current frame image is any frame of image to be displayed, and the historical image data includes at least two frames of image to be displayed before the current frame image.
[0073] It should be noted that, in this embodiment, when the BMC reads the first field data (e.g., odd-numbered field data) of the current frame of image to be displayed (i.e., the current frame image) from the video memory using an interlaced scanning method, it can determine the image change of the current frame image based on the historical image data stored in the preset buffer, that is, estimate the picture change of the current frame image compared with the previous frame image, so as to output corresponding content through steps 103 and 104.
[0074] Correspondingly, the historical image data in this embodiment may include all or part of the images to be displayed for at least two frames preceding the current frame image. The specific content of the historical image data can be customized by the designer based on practical scenarios and user needs. For example, the historical image data may include all of the images to be displayed for at least two frames preceding the current frame image; the historical image data may also include part of the images to be displayed for at least two frames preceding the current frame image (such as the respective second field data). For example, the historical image data may include the first and second frames preceding the current frame image, where the first frame image is continuous with the current frame image, and the second frame image is continuous with the first frame image. That is, the historical image data includes the two frames preceding the current frame image and continuous with the current frame image. The historical image data may also include more frames to improve the accuracy of predicting image changes in the current frame image. This embodiment does not impose any restrictions on this.
[0075] Accordingly, the preset buffer in this embodiment can be a pre-set buffer for storing historical image data. The specific number and specifications of the preset buffer in this embodiment can be set by the designer according to practical scenarios and user needs. For example, when the historical image data includes all images to be displayed for the two frames before the current frame image, the number of preset buffers can be 4 to store the first field data and the second field data of the two frames to be displayed respectively; when the historical image data includes all images to be displayed for the three frames before the current frame image, the number of preset buffers can be 6; when the historical image data also includes the second field data of the two frames before the current frame image, the number of preset buffers can be 2. This embodiment does not impose any restrictions on this.
[0076] For example, when the historical image data includes the first and second frames preceding the current frame, the preset buffers include a first buffer (M1), a second buffer (M2), a third buffer (M3), and a fourth buffer (M4). The first buffer is used to store the first field data of the first frame, the second buffer is used to store the second field data of the first frame, the third buffer is used to store the first field data of the second frame, and the fourth buffer is used to store the second field data of the second frame. In other words, the four fields of data of the second frame and the first frame, which are read from the video memory in an interlaced scanning manner, can be sequentially stored in the four preset buffers M3, M4, M1, and M2. Among them, M1 and M3 can store the first field data (such as odd field data), and M2 and M4 can store the second field data. Each preset buffer can store one field of interlaced scanning data to facilitate the updating of the data stored in each preset buffer.
[0077] Correspondingly, when BMC starts to read the first field data (A2) of the current frame image from the video memory, the four preset buffers M3, M4, M1 and M2 store the first field data (A0) and the second field data (B0) of the second frame image and the first field data (A1) and the second field data (B1) of the first frame image in sequence; correspondingly, when BMC starts to read the second field data (B2) of the current frame image from the video memory, these four preset buffers can store the second field data (B0) of the second frame image, the first field data (A1) and the second field data (B1) of the first frame image and the first field data (A2) of the current frame image, that is, A0 in M3 is replaced by A2; when the first field data (A3) of the next frame image is read in, the read B2 can be stored in M4, replacing B0 which has been stored the longest.
[0078] Correspondingly, when the first field data of the current frame image is read from the video memory using interlaced scanning, A0 and B0 in M3 and M4 are merged to obtain the second frame image (S2), and A1 and B1 in M1 and M2 are merged to obtain the first frame image (S1).
[0079] It can be understood that the specific method of obtaining the image change of the current frame image based on the historical image data stored in the preset buffer in this step can be set by the designer according to the practical scenario and user needs, such as performing pixel block matching on the first frame image and the second frame image according to a preset pixel block size (such as 8*8) to obtain the motion vector information of each pair of matching pixel blocks; according to the motion vector information, determining the image change of the current frame image; wherein, each pair of matching pixel blocks includes two pixel blocks of the preset pixel block size matched in the first frame image and the second frame image.
[0080] Accordingly, the above-mentioned process of performing pixel block matching on the first frame image and the second frame image according to the preset pixel block size to obtain the motion vector information of each pair of matching pixel blocks can be directly performed on the first frame image and the second frame image according to the preset pixel block size to obtain the motion vector information of each pair of matching pixel blocks. In order to reduce the computational complexity of pixel block matching, the process can also include calculating the absolute value of the difference between the pixel values at the same position between the first frame image and the second frame image to obtain a difference image; determining the target transformation area based on the difference image and a pixel difference threshold; wherein the target transformation area includes the pixel positions in the difference image whose pixel values are greater than the pixel difference threshold; based on the target transformation area, performing pixel block matching on the first frame image and the second frame image according to the preset pixel block size to obtain the motion vector information of each pair of matching pixel blocks; wherein, at least one pixel block in each pair of matching pixel blocks is within the target transformation area, such as the pixel block in the second frame image in each pair of matching pixel blocks is within the target transformation area, or the pixel block in the first frame image in each pair of matching pixel blocks is within the target transformation area.
[0081] For example, by calculating the difference image C1=|S2-S1| between the pixels of the second frame image (S2) and the first frame image (S1), and using the pixel difference threshold H, the position in the difference image C1 that is greater than H is considered to be the part of the image transformation, so as to determine the area that needs pixel block matching (i.e., the target transformation area). Figure 4 As shown in the figure, in the process of the window moving from position A to position B, the CPU refreshes 2 frames of images to be displayed. It can be seen that the area with the largest image change (i.e., the largest pixel difference change) (i.e., the target transformation area) is Figure 4The white window part in the middle and the shadow part change little; therefore, 8*8 (i.e., the preset pixel block size) pixel block matching can be performed on the target transformation area with large image changes; for the target transformation area that is less than an integer multiple of 8*8, the bottom can be cropped and then divided into blocks for pixel block matching. For the pixel blocks in the second frame image that match the corresponding pixel blocks in the first frame image, the two pixel blocks can be used as a pair of matching pixel blocks. By recording the motion vector information of each pair of matching pixel blocks, the moving position of each pixel point in the matching pixel block can be marked.
[0082] Correspondingly, the specific content of the motion vector information of each pair of matching pixel blocks can be set by the designer according to the practical scenario and user needs. For example, the motion vector information of each pair of matching pixel blocks includes a horizontal motion vector and a vertical motion vector; the horizontal motion vector in the motion vector information of the current pair of matching pixel blocks is x b -x a (or x a -x b ), the vertical motion vector in the motion vector information of the current matching pixel block is y b -y a (or y a -y b ), the coordinates of the pixel block in the first frame image of the current matching pixel block are (x b ,y b ), such as the coordinates of the upper left corner pixel; the coordinates of the pixel block in the second frame image in the current matching pixel block are (x a ,y a ), to use the coordinates of each pair of matching pixel blocks to express the moving position of each pixel point inside; for example, an 8*8 pixel block A (x a ,y a ), matches an 8*8 pixel block B(x b ,y b ), then the motion vector information corresponding to the marked pixel block A is (x b -x a ,y b -y a ), which is used to record the relative movement direction of pixel block A; after matching all pixel blocks, a motion vector table (V) is generated, and the moving direction vector (i.e., motion vector information) of the matched pixel blocks is recorded in the vector table V.
[0083] Accordingly, for pixel blocks in the second frame image that are not matched to appropriate pixel blocks in the first frame image, the corresponding motion vector information may be recorded as (0, 0) in the motion vector table, indicating no displacement operation.
[0084] The specific method for determining the image change of the current frame image based on the motion vector information can be set by the designer according to practical scenarios and user needs. For example, the BMC can calculate the average displacement of all matching pixel blocks based on the motion vector information; if the average displacement is not greater than the displacement threshold, the image change is determined to be insignificant; if the average displacement is greater than the displacement threshold, the image change is determined to be significant. For example, for the motion vector information corresponding to all matched pixel blocks in the motion vector table (such as pixel block B above), the average displacement is calculated according to the following formula:
[0085] .
[0086] In the above formula, W is the average displacement degree, Xij is the displacement degree corresponding to the pixel block in the i-th row and j-th column, , the motion vector information corresponding to the pixel block in row i and column j is (x b -x a ,y b -y a ), m is the number of rows of pixel blocks in the first frame image or the second frame image, and n is the number of columns of pixel blocks in the first frame image or the second frame image.
[0087] Correspondingly, when the average displacement degree W is greater than the preset displacement degree threshold, it is considered that the image change is large and subsequent interpolation and line-by-line scanning output operations need to be performed through step 104; otherwise, step 103 is performed to directly output the first field data of the current frame image.
[0088] In other embodiments, based on the historical image data stored in a preset buffer, the process of obtaining the image change status of the current frame image may include: calculating the absolute value of the difference between the pixel values at the same position between the first frame image and the second frame image to obtain a difference image; determining the image change status of the current frame image based on the difference image and the pixel difference threshold, if there is no target pixel point in the difference image, determining that the image change status is that the picture change is not obvious; wherein, the target pixel point is a pixel point whose pixel value is greater than the pixel difference threshold; if there is a target pixel point in the difference image, determining whether the number of target pixel points is greater than the number threshold; if it is not greater than the number threshold, determining that the image change status is that the picture change is not obvious; if it is greater than the number threshold, determining that the image change status is that the picture change is obvious.
[0089] Step 103: If the image change is not obvious, the first field data of the current frame image is output to display the first field interlaced scan image on the local display and / or remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image.
[0090] It can be understood that in this embodiment, when the image change of the current frame image is not obvious, that is, the current image changes slightly and is a quasi-static image, the first field data of the current frame image is output to the local display and / or the remote web page, and the local display and / or the remote web page displays the image (that is, the first field interlaced scan image) composed of the first field data of the current frame image and the second field data of the previous frame image (such as the above-mentioned first frame image).
[0091] like Figure 5 As shown, A2 can represent the first field data of the current frame image, B2 can represent the second field data of the current frame image, A1 can represent the first field data of the first frame image before the current frame image (i.e., the previous frame image), B1 can represent the second field data of the first frame image before the current frame image (i.e., the previous frame image), B0 can represent the second field data of the second frame image before the current frame image, and B0 / A1 can indicate that the image displayed on the local display at this time is a combination of B0 and A1; when the image change of the current frame image is not obvious, a normal interlaced scanning output mode is adopted, and A1, B1, A2 and B2 are output in sequence through the VGA (Video Graphic Array) interface, so that the local display actually displays the images as B0 / A1, A1 / B1, B2 / A2 and A2 / B2 accordingly.
[0092] Correspondingly, the specific method for the BMC to output the first field data of the current frame image in this step can be set by the designer according to the practical scenario and user needs. For example, it can be implemented in the same or similar manner as the local display output and remote display output methods of the BMC in the related art. For example, when outputting the first field data of the current frame image to the local display, since the BMC's VGA reads data from the video memory in rows, a read-while-output method is adopted, that is, each time a row of pixels is read, a row will be output according to the VGA interface timing. In this step, the BMC can output the data to the local display through the VGA interface. The device sequentially outputs pixel data of each row of the first field data of the current frame image, such as the BMC can generate an image timing corresponding to the first field data of the current frame image; according to the image timing, the pixel data of each row of the first field data of the current frame image is sequentially output to the local display through the video graphics array interface; for example, the BMC stores the first field data of the current frame image read from the video memory in an interlaced scanning manner into the corresponding area of the video memory, and uses the image timing corresponding to the first field data of the current frame image (i.e., the interlaced scanning timing) to output the first field data of the current frame image in the video memory in an odd-even field manner through the VGA interface.
[0093] Step 104: If the image change is obvious, the first field progressive scan image corresponding to the current frame image is output to display the first field progressive scan image on the local display and / or remote page; wherein the first field progressive scan image is an image generated based on the historical image data and the first field data of the current frame image.
[0094] It can be understood that in this embodiment, when the image change of the current frame image is obvious, that is, when the current image changes greatly, a complete frame of image (that is, the first field progressive scan image) generated by using historical image data and the first field data of the current frame image is output to the local display and / or the remote web page to complete the image interpolation and progressive scan output operations.
[0095] Correspondingly, the specific content of the first field progressive scan image in this step, that is, the specific method of generating the first field progressive scan image based on the historical image data and the first field data of the current frame image, can be set by the designer according to the practical scenario and user needs. For example, the first field progressive scan image can include the first field data of the current frame image and the second field prediction data, and the second field prediction data is the interpolation data calculated based on the historical image data or the historical image data and the first field data of the current frame image; that is, the first field progressive scan image can include the complete first field data of the current frame image and the estimated second field data (i.e., the second field prediction data); the first field progressive scan image can also include part of the first field data of the current frame image, another part of the estimated adjusted first field data and the estimated second field data (i.e., the second field prediction data), so as to improve the display effect by estimating and adjusting part of the first field data.
[0096] like Figure 6As shown, A2 can represent the first field data of the current frame image, B2 can represent the second field data of the current frame image, A1 can represent the first field data of the first frame image before the current frame image (i.e., the previous frame image), B1 can represent the second field data of the first frame image before the current frame image (i.e., the previous frame image), B0 can represent the second field data of the second frame image before the current frame image, and B0 / A1 can indicate that the image displayed on the local display at this time is a combination of B0 and A1. When the image change of the current frame image is significant, the output timing is changed to a progressive scan output timing, and the output pixel value data volume is doubled that of the previous field B1. Among them, B2' is the second field prediction data. Then, the interlaced scan B2 output is resumed in the next field. If the image change of the new current frame image is determined to be significant, the output timing can be changed to a progressive scan output timing to output the corresponding first field progressive scan image, and then the interlaced scan output of the corresponding second field data is continued in the next field. That is to say, in this embodiment, the progressive scan output and the interlaced scan output are performed alternately. After each progressive output of the first field of progressive scan image, the next field will be output interlaced; and each prediction is for the second field data of a frame of image to be displayed; if the image change of the current frame image is not obvious, the first field data is directly output using interlaced scanning. Only when the picture change is obvious, the output mode is modified, and the interlaced scan output is changed to the progressive scan output.
[0097] Accordingly, when the first field progressive scan image includes the first field data of the current frame image and the second field prediction data, this step may include a prediction calculation process for the second field prediction data. For example, when the historical image data includes the first frame image and the second frame image before the current frame image, the prediction calculation process for the second field prediction data may include: calculating the second field prediction data based on the first frame image, the second frame image and the first field data of the current frame image; for example, by B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , calculate the pixel value of the current pixel in the second field prediction data; wherein the current pixel is any pixel in the second field prediction data, h in the above formula can represent the current pixel, B2' h is the pixel value of the current pixel in the second field prediction data, A 1h is the pixel value of the current pixel point in the first field data of the first frame image, A 0his the pixel value of the current pixel point in the first field data of the second frame image, B 0h A is the pixel value of the current pixel point in the second field data of the second frame image, 2h is the pixel value of the current pixel point in the first field data of the current frame image, B 1h is the pixel value of the pixel position of the current pixel in the second field data of the first frame image.
[0098] Correspondingly, in order to improve the prediction accuracy of the second field prediction data, the prediction calculation process of the above-mentioned second field prediction data may include: calculating the second field prediction data based on the first frame image, the second frame image, the first field data of the current frame image and the motion vector information of each pair of matching pixel blocks; wherein each pair of matching pixel blocks includes two pixel blocks of a preset pixel block size matched after pixel block matching in the first frame image and the second frame image. For example, if the pixel position of the current pixel point in the second field prediction data is not within the matching pixel block in the first frame image or the second frame image, or the pixel position of the current pixel point is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is not 0, then through B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , calculate the pixel value of the current pixel in the second field prediction data; if the pixel position of the current pixel in the second field prediction data is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is 0, then pass B2' h =(A 1h / (A 1h +A 0h ))*B 0h(x-x0) +(A 2h / (A 1h +A 2h ))*B 1h(x-x0) , calculate the pixel value of the current pixel in the second field prediction data; where B 0h(x-x0) is the pixel value of the moving pixel point corresponding to the current pixel point in the second field data of the second frame image, B 1h(x-x0)It is the pixel value of the moving pixel position h(x-x0) corresponding to the current pixel point in the second field data of the first frame image. The moving pixel position corresponding to the current pixel point is the pixel position corresponding to the difference between the horizontal coordinate of the current pixel point and the horizontal moving vector x0 in the moving vector information corresponding to the matching pixel block.
[0099] For example, when the BMC's VGA reads the first field data (A2) of the current frame image from the video memory row by row, the first field data of the current frame image read will overwrite the first field data (A0) of the second frame image in the preset buffer. During the prediction calculation process of the above-mentioned second-field prediction data, the pixel rows that need to be overwritten in the first field data of the second frame image can be read and saved to avoid being overwritten when A2 is written; when predicting, the motion vector table V obtained by the previous image change detection can be used. The data in V is that each pair of 8*8 matching pixel blocks has a motion vector information (x, y). When predicting a pixel point in the second-field prediction data, you can first confirm whether the pixel point falls inside the successfully matched pixel block (such as the matching pixel block in the second frame image). If it does not fall inside the successfully matched pixel block, then pass B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , predict and calculate the pixel value of the pixel point; if it falls within the successfully matched pixel block, where the motion vector information corresponding to this pixel block is (x0, y0), first confirm whether y0 is equal to 0. If it is not equal to 0, it is considered that the upper and lower ranges of the movement range are too large, or it can be solved through B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , predict and calculate the pixel value of the pixel point; if it is equal to 0, it is considered that the matched pixel block only moves in the left and right directions, so the pixel point calculation can be offset during prediction, which can be achieved by following B2' h =(A 1h / (A 1h +A 0h ))*B 0h(x-x0) +(A 2h / (A 1h +A 2h ))*B 1h(x-x0), predict and calculate the pixel value of the pixel point. By calculating the second field prediction data in the above manner, the first field progressive scan image can be obtained to complete the progressive scan output of this field, such as outputting the pixel data of each row of the first field progressive scan image to the local display line by line through the video graphics array interface. For example, the BMC can generate the image timing corresponding to the first field progressive scan image; according to the image timing, the pixel data of each row of the first field progressive scan image is output to the local display in sequence through the video graphics array interface; for example, the BMC uses the first field data of the current frame image read from the video memory using the interlaced scanning method to generate the first field progressive scan image and store it in the corresponding area of the video memory, and uses the image timing corresponding to the first field progressive scan image (i.e., progressive scan timing) to output the first field progressive scan image in the video memory through the VGA interface.
[0100] For example, if Figure 7 As shown, after the BMC is powered on, the four fields of data of the previous two frames of images can be read from the video memory in an interlaced scanning manner and stored in four preset buffers; each preset buffer stores one field of interlaced scanning data; when reading the first field data of the current frame of image from the video memory, the data in the corresponding preset buffers can be merged to obtain the previous two frames of image, and calculate whether the degree of change of the previous two frames of image is greater than a threshold; if it does not exceed the threshold, it is considered that the current image has not changed significantly and is a quasi-static image, and the first field data of the current frame of image can continue to be read from the video memory in an interlaced scanning manner and placed in the video memory, and then the first field data in the video memory is output according to the odd-even field method using the interlaced scanning timing; if it exceeds the threshold, it can be considered that the previous two frames of image have changed too much, and at this time, the video memory is continued to be read in an interlaced scanning manner, and the display timing is output in a progressive scanning manner to output the current frame that is predicted, interpolated and completed.
[0101] It should be noted that the method provided in this embodiment may further include: when reading the second field data of the current frame image from the video memory in an interlaced scanning manner, outputting the second field data of the current frame image to display the second field interlaced scan image on the local display and / or remote page; wherein the second field interlaced scan image includes the first field data and the second field data of the current frame image. Figure 5 and Figure 6 As shown, when the BMC reads the second field data (B2) of the current frame image from the video memory in an interlaced scanning manner, it adopts a normal interlaced scanning output mode and outputs B2 through the VGA timing, so that the local display actually displays the image as A2 / B2, that is, the second field interlaced scanning image composed of the first field data (A2) and the second field data (B2) of the current frame image.
[0102] In this embodiment, the embodiment of the present invention obtains the image change of the current frame image based on the historical image data stored in the preset buffer when reading the first field data of the current frame image from the video memory using the interlaced scanning method. It can analyze and determine the degree of change of the current image to adaptively select the interlaced scanning or progressive scanning display mode, thereby reducing the reading behavior of the video memory through interlaced scanning and reducing display problems such as aliasing and tearing through progressive scanning. It can reduce the video memory bandwidth required for the BMC display without affecting the display effect as much as possible, thereby improving the user experience.
[0103] Corresponding to the above method embodiment, an embodiment of the present invention further provides an image display device. The image display device described below and the image display method described above can refer to each other.
[0104] Please refer to Figure 8 , Figure 8 This is a structural block diagram of an image display device provided by an embodiment of the present invention. The device is applied to a baseboard management controller and may include:
[0105] The interlaced scanning unit 10 is used to sequentially read the first field data and the second field data of each frame of the image to be displayed from the video memory in an interlaced scanning manner; wherein the first field data is odd field data or even field data;
[0106] The change detection unit 20 is configured to obtain image changes of the current frame image based on historical image data stored in a preset buffer when reading the first field data of the current frame image from the video memory using an interlaced scanning method; wherein the current frame image is any frame to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image;
[0107] The first output unit 30 is configured to output the first field data of the current frame image if the image change is not obvious, so as to display the first field interlaced scan image on the local display and / or the remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image;
[0108] The second output unit 40 is used to output the first field progressive scan image corresponding to the current frame image if the image change is obvious, so as to display the first field progressive scan image on the local display and / or remote page; wherein the first field progressive scan image is an image generated based on the historical image data and the first field data of the current frame image.
[0109] In some embodiments, the historical image data includes a first frame image and a second frame image before the current frame image, the first frame image is continuous with the current frame image, and the second frame image is continuous with the first frame image.
[0110] In some embodiments, the transformation detection unit 20 may include:
[0111] a matching subunit, configured to perform pixel block matching on the first frame image and the second frame image according to a preset pixel block size, and obtain motion vector information of each pair of matched pixel blocks; wherein each pair of matched pixel blocks includes two matched pixel blocks of the preset pixel block size in the first frame image and the second frame image;
[0112] The determination subunit is used to determine the image change of the current frame image according to the motion vector information.
[0113] In some embodiments, the matching subunit can be specifically used to calculate the absolute value of the difference between the pixel values at the same position between the first frame image and the second frame image to obtain a difference image; determine the target transformation area based on the difference image and the pixel difference threshold; based on the target transformation area, perform pixel block matching on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information for each pair of matching pixel blocks; wherein the target transformation area includes the pixel point positions in the difference image whose pixel values are greater than the pixel difference threshold, and at least one pixel block in each pair of matching pixel blocks is within the target transformation area.
[0114] In some embodiments, the determination subunit can be specifically used to calculate the average displacement degree of all pairs of matching pixel blocks based on the motion vector information; if the average displacement degree is not greater than the displacement degree threshold, it is determined that the image change situation is that the picture change is not obvious; if the average displacement degree is greater than the displacement degree threshold, it is determined that the image change situation is that the picture change is obvious.
[0115] In some embodiments, the motion vector information of each pair of matching pixel blocks includes a horizontal motion vector and a vertical motion vector; the horizontal motion vector in the motion vector information of the current pair of matching pixel blocks is x b -x a , the vertical motion vector in the motion vector information of the current matching pixel block is y b -y a , the coordinates of the pixel block in the first frame image in the current matching pixel block are (x b ,y b ), the coordinates of the pixel block in the second frame image in the current matching pixel block are (x a ,y a ).
[0116] In some embodiments, the preset buffer includes a first buffer, a second buffer, a third buffer and a fourth buffer, the first buffer is used to store the first field data of the first frame image, the second buffer is used to store the second field data of the first frame image, the third buffer is used to store the first field data of the second frame image, and the fourth buffer is used to store the second field data of the second frame image.
[0117] In some embodiments, the apparatus may further include:
[0118] The third output unit is used to output the second field data of the current frame image when reading the second field data of the current frame image from the video memory using an interlaced scanning method, so as to display the second field interlaced scan image on the local display and / or the remote page; wherein the second field interlaced scan image includes the first field data and the second field data of the current frame image.
[0119] In some embodiments, the first field data is odd field data, and the second field data is even field data.
[0120] In some embodiments, the first output unit 30 may be specifically configured to sequentially output pixel data of each row of the first field data of the current frame image to the local display via a video graphics array interface;
[0121] Correspondingly, the second output unit 40 may be specifically configured to output pixel data of each line of the first field progressive scan image to the local display line by line through the video graphics array interface.
[0122] In some embodiments, the first output unit 30 may include:
[0123] A timing generation subunit, configured to generate an image timing corresponding to the first field data of a current frame image;
[0124] The output subunit is used to sequentially output pixel data of each row of the first field data of the current frame image to the local display through the video graphics array interface according to the image timing.
[0125] In some embodiments, the first field progressive scan image includes first field data of the current frame image and second field prediction data, where the second field prediction data is interpolated data calculated based on historical image data or historical image data and first field data of the current frame image.
[0126] In some embodiments, the historical image data includes a first frame image and a second frame image before the current frame image; the second output unit 40 may include:
[0127] The interpolation prediction subunit is used to calculate the second field prediction data based on the first frame image, the second frame image, the first field data of the current frame image and the motion vector information of each pair of matching pixel blocks; wherein each pair of matching pixel blocks includes two pixel blocks of a preset pixel block size matched after pixel block matching in the first frame image and the second frame image.
[0128] In some embodiments, the interpolation prediction subunit may be specifically configured to, if the pixel position of the current pixel in the second field prediction data is not within the matching pixel block in the first frame image or the second frame image, or the pixel position of the current pixel is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is not 0, then pass B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , calculate the pixel value of the current pixel in the second field prediction data; where the current pixel h is any pixel in the second field prediction data, B2' h is the pixel value of the current pixel in the second field prediction data, A 1h is the pixel value of the current pixel point in the first field data of the first frame image, A 0h is the pixel value of the current pixel point in the first field data of the second frame image, B 0h A is the pixel value of the current pixel point in the second field data of the second frame image, 2h is the pixel value of the current pixel point in the first field data of the current frame image, B 1h The pixel value of the pixel point position of the current pixel point in the second field data of the first frame image;
[0129] If the pixel position of the current pixel in the second field prediction data is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is 0, then B2' h =(A 1h / (A 1h +A 0h ))*B 0h(x-x0) +(A 2h / (A 1h +A 2h ))*B 1h(x-x0) , calculate the pixel value of the current pixel in the second field prediction data; where B 0h(x-x0) is the pixel value of the moving pixel point corresponding to the current pixel point in the second field data of the second frame image, B 1h(x-x0)It is the pixel value of the moving pixel position h(x-x0) corresponding to the current pixel point in the second field data of the first frame image. The moving pixel position corresponding to the current pixel point is the pixel position corresponding to the difference between the horizontal coordinate of the current pixel point and the horizontal moving vector x0 in the moving vector information corresponding to the matching pixel block.
[0130] In this embodiment, when the first field data of the current frame image is read from the video memory in an interlaced scanning manner through the transformation detection unit 20, the embodiment of the present invention obtains the image change of the current frame image based on the historical image data stored in the preset buffer, and can analyze and determine the degree of change of the current image to adaptively select the interlaced scanning or progressive scanning display mode, thereby reducing the reading behavior of the video memory through interlaced scanning, and reducing display problems such as aliasing and tearing through progressive scanning, and can reduce the video memory bandwidth required for the BMC display without affecting the display effect as much as possible, thereby improving the user experience.
[0131] Corresponding to the above method embodiment, an embodiment of the present invention further provides a computer program product. The computer program product described below and the image display method described above can be referred to in correspondence with each other.
[0132] A computer program product includes a computer program / instruction, which, when executed by a processor, implements the steps of the image display method provided by the above method embodiment.
[0133] Corresponding to the above method embodiment, an embodiment of the present invention further provides a baseboard management controller. The baseboard management controller described below and the image display method described above can refer to each other.
[0134] Please refer to Figure 9 , Figure 9 This is a schematic diagram of the structure of a baseboard management controller provided by an embodiment of the present invention. The baseboard management controller may include:
[0135] Memory D1, for storing computer programs;
[0136] The processor D2 is configured to implement the steps of the image display method provided in the above method embodiment when executing a computer program.
[0137] Corresponding to the above method embodiment, an embodiment of the present invention further provides a computer-readable storage medium. The computer-readable storage medium described below and the image display method described above can refer to each other.
[0138] A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps of the image display method of the above method embodiment.
[0139] The computer-readable storage medium may be a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, which may store program codes.
[0140] Corresponding to the above method embodiment, an embodiment of the present invention further provides a baseboard management controller system. The baseboard management controller system described below and the image display method described above can be referred to in correspondence with each other.
[0141] Please refer to Figure 10 , Figure 10 This is a structural diagram of a baseboard management controller system provided by an embodiment of the present invention. The baseboard management controller system may include: a control module 100, a preset buffer 200, a motion detection module 300, a pixel value prediction module 400 and an output module 500; wherein,
[0142] The control module 100 is configured to sequentially read the first field data and the second field data of each frame of an image to be displayed from the video memory in an interlaced scanning manner; wherein the first field data is odd field data or even field data;
[0143] The motion detection module 300 is configured to, under the control of the control module 100, obtain image changes of the current frame image based on the historical image data stored in the preset buffer 200 when reading the first field data of the current frame image from the video memory using an interlaced scanning method; wherein the current frame image is any frame to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image;
[0144] The output module 500 is configured to, under the control of the control module 100, output the first field data of the current frame image when the image change is not obvious, so as to display the first field interlaced scan image on the local display and / or the remote page; and output the first field progressive scan image corresponding to the current frame image when the image change is obvious, so as to display the first field progressive scan image on the local display and / or the remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image;
[0145] The pixel value prediction module 400 is used to generate a first field progressive scan image based on the historical image data and the first field data of the current frame image under the control of the control module 100 when the image change is obvious.
[0146] It is understood that the various modules in this embodiment may be hardware modules provided in a BMC system. The control module 100 in this embodiment may be a control center that coordinates and controls data exchange between the various modules. The preset buffer 200 in this embodiment may be a buffer for storing interlaced historical image data.
[0147] In some embodiments, the historical image data includes a first frame image and a second frame image before the current frame image, the first frame image is continuous with the current frame image, and the second frame image is continuous with the first frame image.
[0148] In some embodiments, obtaining the image change of the current frame image according to the historical image data stored in the preset buffer 200 includes:
[0149] Performing pixel block matching on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information for each pair of matched pixel blocks; wherein each pair of matched pixel blocks includes two matched pixel blocks of the preset pixel block size in the first frame image and the second frame image;
[0150] According to the motion vector information, the image change of the current frame image is determined.
[0151] In some embodiments, pixel block matching is performed on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information of each pair of matching pixel blocks, including:
[0152] Calculating the absolute value of the difference between the pixel values at the same position between the first frame image and the second frame image to obtain a difference image;
[0153] Determining a target transformation region based on the difference image and the pixel difference threshold; wherein the target transformation region includes pixel locations in the difference image whose pixel values are greater than the pixel difference threshold;
[0154] According to the target transformation area, pixel blocks of the first frame image and the second frame image are matched according to a preset pixel block size to obtain motion vector information of each pair of matching pixel blocks; wherein at least one pixel block in each pair of matching pixel blocks is within the target transformation area.
[0155] Correspondingly, such as Figure 10 As shown, the system provided by this embodiment may further include a motion vector control module 600 for storing motion vector information of each pair of matching pixel blocks.
[0156] In some embodiments, determining the image change of the current frame image according to the motion vector information includes:
[0157] According to the motion vector information, the average displacement degree of all matching pixel blocks is calculated;
[0158] If the average displacement degree is not greater than the displacement degree threshold, it is determined that the image change is not obvious;
[0159] If the average displacement degree is greater than the displacement degree threshold, it is determined that the image change is an obvious picture change.
[0160] In some embodiments, the motion vector information of each pair of matching pixel blocks includes a horizontal motion vector and a vertical motion vector; the horizontal motion vector in the motion vector information of the current pair of matching pixel blocks is x b -x a , the vertical motion vector in the motion vector information of the current matching pixel block is y b -y a , the coordinates of the pixel block in the first frame image in the current matching pixel block are (x b ,y b ), the coordinates of the pixel block in the second frame image in the current matching pixel block are (x a ,y a ).
[0161] In some embodiments, the preset buffer includes a first buffer, a second buffer, a third buffer and a fourth buffer, the first buffer is used to store the first field data of the first frame image, the second buffer is used to store the second field data of the first frame image, the third buffer is used to store the first field data of the second frame image, and the fourth buffer is used to store the second field data of the second frame image.
[0162] In some embodiments, the output module 500 is also used to output the second field data of the current frame image when reading the second field data of the current frame image from the video memory in an interlaced scanning manner according to the control of the control module 100, so as to display the second field interlaced scan image on the local display and / or remote page; wherein the second field interlaced scan image includes the first field data and the second field data of the current frame image.
[0163] In some embodiments, the first field data is odd field data, and the second field data is even field data.
[0164] In some embodiments, outputting first field data of a current frame image includes:
[0165] Outputting pixel data of each row of the first field data of the current frame image to the local display in sequence through the video graphics array interface;
[0166] Correspondingly, the first field progressive scan image corresponding to the current frame image is output, including:
[0167] The pixel data of each line of the first field progressive scan image is output line by line to the local display through the video graphics array interface.
[0168] In some embodiments, sequentially outputting pixel data of each row of the first field data of the current frame image to the local display via the video graphics array interface includes:
[0169] Generate an image timing sequence corresponding to the first field data of the current frame image;
[0170] According to the image timing, pixel data of each row of the first field data of the current frame image is sequentially output to the local display through the video graphics array interface.
[0171] like Figure 10 As shown, the output module 500 may include a timing generation module and a selection module. The timing generation module may be used to generate an image timing for progressive scan output or interlaced scan output; the selection module may select the image timing for progressive scan output or interlaced scan output output by the timing generation module, and output it to the video graphics array interface, so as to sequentially output pixel data of each row of the first field data of the current frame image to the local display through the video graphics array interface.
[0172] In some embodiments, the first field progressive scan image includes the first field data of the current frame image and the second field prediction data, and the pixel value prediction module 400 can be specifically used to calculate the second field prediction data based on the historical image data or the historical image data and the first field data of the current frame image.
[0173] In some embodiments, the historical image data includes a first frame image and a second frame image before the current frame image; and the second field prediction data calculated based on the historical image data or the historical image data and the first field data of the current frame image includes:
[0174] Second field prediction data is calculated based on the first frame image, the second frame image, the first field data of the current frame image, and the motion vector information of each pair of matching pixel blocks; wherein each pair of matching pixel blocks includes two pixel blocks of a preset pixel block size matched after pixel block matching in the first frame image and the second frame image.
[0175] In some embodiments, the second field prediction data is calculated based on the first frame image, the second frame image, the first field data of the current frame image, and the motion vector information of each pair of matching pixel blocks, including:
[0176] If the pixel position of the current pixel in the second field prediction data is not in the matching pixel block in the first frame image or the second frame image, or the pixel position of the current pixel is in the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is not 0, then pass B2' h =(A 1h / (A 1h +A0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , calculate the pixel value of the current pixel in the second field prediction data; where the current pixel h is any pixel in the second field prediction data, B2' h is the pixel value of the current pixel in the second field prediction data, A 1h is the pixel value of the current pixel point in the first field data of the first frame image, A 0h is the pixel value of the current pixel point in the first field data of the second frame image, B 0h A is the pixel value of the current pixel point in the second field data of the second frame image, 2h is the pixel value of the current pixel point in the first field data of the current frame image, B 1h The pixel value of the pixel point position of the current pixel point in the second field data of the first frame image;
[0177] If the pixel position of the current pixel in the second field prediction data is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is 0, then B2' h =(A 1h / (A 1h +A 0h ))*B 0h(x-x0) +(A 2h / (A 1h +A 2h ))*B 1h(x-x0) , calculate the pixel value of the current pixel in the second field prediction data; where B 0h(x-x0) is the pixel value of the moving pixel point corresponding to the current pixel point in the second field data of the second frame image, B 1h(x-x0) It is the pixel value of the moving pixel position h(x-x0) corresponding to the current pixel point in the second field data of the first frame image. The moving pixel position corresponding to the current pixel point is the pixel position corresponding to the difference between the horizontal coordinate of the current pixel point and the horizontal moving vector x0 in the moving vector information corresponding to the matching pixel block.
[0178] In this embodiment, when the motion detection module 300 reads the first field data of the current frame image from the video memory using an interlaced scanning method, the embodiment of the present invention obtains the image change of the current frame image based on the historical image data stored in the preset buffer, and can analyze and determine the degree of change of the current image to adaptively select the interlaced scanning or progressive scanning display mode, thereby reducing the reading behavior of the video memory through interlaced scanning, and reducing display problems such as aliasing and tearing through progressive scanning, and can reduce the video memory bandwidth required for the BMC display without affecting the display effect as much as possible, thereby improving the user experience.
[0179] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. References to the common and similar parts between the various embodiments are sufficient. The apparatus, computer program product, computer-readable storage medium, baseboard management controller, and system disclosed in the embodiments are described briefly because they correspond to the methods disclosed in the embodiments. For relevant details, refer to the method description.
[0180] The above is a detailed introduction to an image display method, a computer program product, a baseboard management controller, and a baseboard management controller system provided by the present invention. Specific examples are used herein to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only intended to help understand the method of the present invention and its core concept. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present invention, several improvements and modifications can be made to the present invention, and these improvements and modifications also fall within the scope of protection of the present invention.
Claims
1. An image display method, characterized in that: Applicable to baseboard management controllers, including: Adopting an interlaced scanning method, the first field data and the second field data of each frame of the image to be displayed are sequentially read from the video memory; wherein the first field data is odd field data or even field data; when the first field data is odd field data, the second field data is even field data; when the first field data is even field data, the second field data is odd field data; When reading the first field data of the current frame image from the video memory in the interlaced scanning mode, obtaining the image change of the current frame image according to the historical image data stored in the preset buffer; wherein the current frame image is any frame of the image to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image; If the image change is not obvious, output the first field data of the current frame image to display the first field interlaced scan image on the local display and / or the remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image; If the image change is an obvious picture change, outputting a first field progressive scan image corresponding to the current frame image, so as to display the first field progressive scan image on the local display and / or the remote page; wherein the first field progressive scan image is an image generated based on the historical image data and the first field data of the current frame image; The first field progressive scan image includes the first field data of the current frame image and the second field prediction data, and the second field prediction data is interpolated data calculated based on the historical image data and the first field data of the current frame image; The historical image data includes the first frame image and the second frame image before the current frame image; outputting the first field progressive scan image corresponding to the current frame image includes: Second field prediction data is calculated based on the first frame image, the second frame image and the first field data of the current frame image.
2. The image display method according to claim 1, wherein: The historical image data includes a first frame image and a second frame image before the current frame image, the first frame image is continuous with the current frame image, and the second frame image is continuous with the first frame image.
3. The image display method according to claim 2, wherein: According to the historical image data stored in the preset buffer, the image change of the current frame image is obtained, including: Performing pixel block matching on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information of each pair of matched pixel blocks; wherein each pair of matched pixel blocks includes two matched pixel blocks of the preset pixel block size in the first frame image and the second frame image; An image change condition of the current frame image is determined according to the motion vector information.
4. The image display method according to claim 3, wherein: Performing pixel block matching on the first frame image and the second frame image according to a preset pixel block size to obtain motion vector information of each pair of matching pixel blocks includes: Calculating the absolute value of the difference between the pixel values at the same position between the first frame image and the second frame image to obtain a difference image; Determining a target transformation area based on the difference image and a pixel difference threshold; wherein the target transformation area includes pixel locations in the difference image whose pixel values are greater than the pixel difference threshold; According to the target transformation area, pixel blocks of the first frame image and the second frame image are matched according to the preset pixel block size to obtain motion vector information of each pair of matching pixel blocks; wherein at least one pixel block in each pair of matching pixel blocks is within the target transformation area.
5. The image display method according to claim 3, wherein: Determining an image change condition of a current frame image according to the motion vector information includes: Calculating the average displacement degree of all the matching pixel blocks according to the motion vector information; If the average displacement degree is not greater than the displacement degree threshold, determining that the image change condition is that the picture change is not obvious; If the average displacement degree is greater than the displacement degree threshold, it is determined that the image change condition is that the picture change is obvious.
6. The image display method according to claim 3, wherein: The motion vector information of each pair of matching pixel blocks includes a horizontal motion vector and a vertical motion vector; the horizontal motion vector in the motion vector information of the current pair of matching pixel blocks is x b -x a , the vertical motion vector in the motion vector information of the current matching pixel block is y b -y a , the coordinates of the pixel block in the first frame image in the current matching pixel block are (x b ,y b ), the coordinates of the pixel block in the second frame image in the current pair of matching pixel blocks are (x a ,y a ).
7. The image display method according to claim 2, wherein: The preset buffer includes a first buffer, a second buffer, a third buffer and a fourth buffer. The first buffer is used to store the first field data of the first frame image, the second buffer is used to store the second field data of the first frame image, the third buffer is used to store the first field data of the second frame image, and the fourth buffer is used to store the second field data of the second frame image.
8. The image display method according to claim 1, wherein: Also includes: When the second field data of the current frame image is read from the video memory using the interlaced scanning method, the second field data of the current frame image is output to display the second field interlaced scan image on the local display and / or the remote page; wherein the second field interlaced scan image includes the first field data and the second field data of the current frame image.
9. The image display method according to claim 1, wherein: The first field data is odd field data, and the second field data is even field data.
10. The image display method according to claim 1, wherein: Output the first field data of the current frame image, including: sequentially outputting pixel data of each row of the first field data of the current frame image to the local display via a video graphics array interface; Correspondingly, the first field progressive scan image corresponding to the current frame image is output, including: The pixel data of each line of the first field progressive scan image is output line by line to the local display through the video graphics array interface.
11. The image display method according to claim 10, wherein: Outputting pixel data of each row of the first field data of the current frame image to the local display in sequence through the video graphics array interface includes: Generate an image timing sequence corresponding to the first field data of the current frame image; According to the image timing, pixel data of each row of the first field data of the current frame image is sequentially output to the local display through the video graphics array interface.
12. The image display method according to claim 11, wherein: Calculating the second field prediction data according to the first frame image, the second frame image, and the first field data of the current frame image includes: The second field prediction data is calculated based on the first frame image, the second frame image, the first field data of the current frame image, and the motion vector information of each pair of matching pixel blocks; wherein each pair of the matching pixel blocks includes two pixel blocks of a preset pixel block size matched after pixel block matching in the first frame image and the second frame image.
13. The image display method according to claim 12, wherein: The second field prediction data is calculated based on the first frame image, the second frame image, the first field data of the current frame image, and the motion vector information of each pair of matching pixel blocks, including: If the pixel position of the current pixel in the second field prediction data is not in the matching pixel block in the first frame image or the second frame image, or the pixel position of the current pixel is in the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is not 0, then pass B2' h =(A 1h / (A 1h +A 0h ))*B 0h +(A 2h / (A 1h +A 2h ))*B 1h , calculate the pixel value of the current pixel in the second field prediction data; wherein the current pixel h is any pixel in the second field prediction data, B2' h is the pixel value of the current pixel in the second field prediction data, A 1h is the pixel value of the current pixel point in the first field data of the first frame image, A 0h is the pixel value of the current pixel point in the first field data of the second frame image, B 0h is the pixel value of the current pixel point in the second field data of the second frame image, A 2h is the pixel value of the current pixel point in the first field data of the current frame image, B 1h is the pixel value of the pixel point position of the current pixel point in the second field data of the first frame image; If the pixel position of the current pixel in the second field prediction data is within the matching pixel block in the first frame image or the second frame image and the vertical motion vector in the motion vector information corresponding to the matching pixel block is 0, then B2' h =(A 1h / (A 1h +A 0h ))*B 0h(x-x0) +(A 2h / (A 1h +A 2h ))*B 1h(x-x0) , calculate the pixel value of the current pixel in the second field prediction data; where B 0h(x-x0) is the pixel value of the moving pixel point corresponding to the current pixel point in the second field data of the second frame image, B 1h(x-x0) It is the pixel value of the moving pixel position h(x-x0) corresponding to the current pixel point in the second field data of the first frame image, and the moving pixel position corresponding to the current pixel point is the pixel position corresponding to the difference between the horizontal coordinate of the current pixel point and the horizontal moving vector x0 in the moving vector information corresponding to the matching pixel block.
14. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the image display method according to any one of claims 1 to 13 are implemented.
15. A baseboard management controller, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the image display method according to any one of claims 1 to 13 when executing the computer program.
16. A baseboard management controller system, characterized in that: include: control module, preset buffer, motion detection module, pixel value prediction module and output module; wherein, The control module is configured to sequentially read the first field data and the second field data of each frame of an image to be displayed from the video memory in an interlaced scanning manner; wherein the first field data is odd field data or even field data; when the first field data is odd field data, the second field data is even field data; and when the first field data is even field data, the second field data is odd field data; The motion detection module is configured to, under the control of the control module, obtain image changes of the current frame image based on historical image data stored in a preset buffer when reading the first field data of the current frame image from the video memory using the interlaced scanning method; wherein the current frame image is any frame of the image to be displayed, and the historical image data includes at least two frames of images to be displayed before the current frame image; The output module is configured to, under the control of the control module, output the first field data of the current frame image when the image change condition is that the picture change is not obvious, so as to display the first field interlaced scan image on the local display and / or the remote page; and output the first field progressive scan image corresponding to the current frame image when the image change condition is that the picture change is obvious, so as to display the first field progressive scan image on the local display and / or the remote page; wherein the first field interlaced scan image includes the first field data of the current frame image and the second field data of the previous frame image; a pixel value prediction module, configured to generate the first field progressive scan image based on the historical image data and the first field data of the current frame image under the control of the control module when the image change condition is that the picture change is obvious; The first field progressive scan image includes the first field data of the current frame image and the second field prediction data, and the second field prediction data is interpolated data calculated based on the historical image data and the first field data of the current frame image; The historical image data includes the first frame image and the second frame image before the current frame image; the output module is further used to calculate the second field prediction data based on the first frame image, the second frame image and the first field data of the current frame image.
Citation Information
Patent Citations
Liquid crystal display driving method, time sequence control device and liquid crystal display device
CN102968971A
Video scanning mode detection, correction method and video play method and device
CN108134938A