A window fusion display optimization method based on frequency domain analysis
By constructing the benchmark image and frequency domain analysis, the window fusion display method in the virtual machine accurately screen out the window with different transparency, solve the problem of inaccurate display of transparent windows in the existing technology, and improve the accuracy of the user experience and display.
Patent Information
- Application Number
- CN202411717653.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-27
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2044-11-27
AI Technical Summary
When the converged mode of existing virtual machines displays transparent or translucent windows, it is impossible to accurately determine whether the window is visible to the user, resulting in a degradation of user experience.
By construct a specific reference image for the application window in the virtual machine, the relationship between the window image and the benchmark image is used to screen the window that is transparent, partially transparent, transparent, and transparent, and then determine its fusion display method. Specific steps include building a single background image with a single color, comparing window images and reference images, and using frequency domain analysis such as Fourier transformation and low -pass filter processing images to calculate the similarity and phase information of the image.
Accurately screen out the window of different transparency to avoid transmission of window data that is not needed in the virtual machine to the host, and improve the correctness and user experience of the window fusion display.
Abstract
Description
Technical Field
[0001] The invention belongs to the technical field of computer software development, and in particular relates to a window fusion display optimization method based on frequency domain analysis. Background Art
[0002] Existing virtual machines, such as VMware virtual machines, usually provide users with two application usage modes. One is the traditional mode displayed with a complete operating system, that is, the operating system running in the virtual machine displays the complete operating system desktop, and all applications in the operating system are displayed on the desktop; the other is a seamless mode or fusion mode that displays applications separately, that is, the operating system running in the virtual machine does not display the operating system desktop, and each application in the operating system is displayed on the host side in the form of an independent window, giving users the same experience as the application on the host. Among them, the implementation process of the fusion mode requires enumerating the main windows of all applications running on the virtual machine, and then transmitting the contents of all main windows set to visible attributes to the host side for rendering.
[0003] Normally, the operating system provides an API for determining whether a window is visible, such as the IsWindowVisible function under Windows. For transparent or semi-transparent windows, the operating system will determine that such windows are visible, but invisible or partially visible to the user. However, the actual use requirement of the fusion mode is to only display windows that are visible to the user. This results in that when the contents of such windows are transferred to the host machine for rendering according to the existing fusion mode, what is actually presented to the user is the desktop background of the operating system in the virtual machine displayed in such windows, which is different from the actual display effect. Such windows are more common in applications with special display effects, such as semi-transparent windows used to display shadow effects, fully transparent windows, etc. Using the existing fusion mode for display will significantly reduce the user experience. Summary of the invention
[0004] In view of this, the present invention provides a window fusion display optimization method based on frequency domain analysis, which constructs a specific benchmark image for the application window in the virtual machine, and filters whether the application window is visible to the user based on the relationship between the window image and the benchmark image, so as to determine the way of fusion display of the application window to realize the window fusion display of the application window in the virtual machine to the host machine.
[0005] The present invention provides a window fusion display optimization method based on frequency domain analysis, which specifically includes the following steps:
[0006] Step 1: forming a first window set from the main windows of all applications started in the virtual machine, and constructing a background image with a single color and the same size as the desktop;
[0007] Step 2: Select a window in the first window set as the current first window, and use the display data of the current first window as the first window image; use the same area in the background image as the current first window as the comparison area, add reference pixels in the comparison area, record the coordinates of the reference pixels to form a reference pixel set, and then set the obtained background image as the desktop background, and use the image of the comparison area as the reference image of the current first window;
[0008] Step 3: If the reference image is the same as the first window image, ignore the current first window and execute step 9; otherwise, if the first window image contains an Alpha channel, execute step 4; otherwise, execute step 5;
[0009] Step 4, remove the Alpha channel in the first window image, and compare it with the first window image. If they are the same, ignore the current first window and execute step 9; otherwise, execute step 5;
[0010] Step 5: If the values of the pixels in the reference pixel set in the first window image are the same, and the values of the pixels outside the reference pixel set are also the same, then the current first window is ignored and step 9 is executed; otherwise, step 6 is executed;
[0011] Step 6: Process the first window image and the reference image with a low-pass filter, perform Fourier transform to obtain the first window spectrum diagram and the reference spectrum diagram, perform spectrum centering on the first window spectrum diagram and the reference spectrum diagram, perform logarithmic transform, and then calculate the similarity between the first window spectrum diagram and the reference spectrum diagram. If the similarity is greater than a threshold, ignore the current first window and execute step 9, otherwise execute step 7;
[0012] Step 7: If the similarity between the phase information of the first window image and the reference image is greater than the threshold, the current first window is ignored and step 9 is executed; otherwise, the data of the current first window is transmitted to the host machine and step 8 is executed;
[0013] Step 8: The host machine creates a second window for the current first window, and renders the received data in the second window;
[0014] Step 9: Delete the current first window from the first window set. If the first window set is not empty, execute step 2. Otherwise, complete the window fusion display of the application in the virtual machine and end this process.
[0015] Furthermore, the method of adding reference pixels in the comparison area in step 2 is to randomly add a set number of pixels.
[0016] Furthermore, a color difference value between the reference pixel point and the background image is greater than a set threshold.
[0017] Furthermore, the color of the background image is set to pure white, and the color of the reference pixel is set to pure black.
[0018] Furthermore, the display data of the current first window in step 2 is obtained by obtaining a window handle of the current first window, and using the window handle to obtain the display data in the window.
[0019] Furthermore, the determination of whether the reference image is identical to the first window image is implemented by using hardware acceleration instructions.
[0020] Furthermore, the method for calculating the similarity between the first window spectrum graph and the benchmark spectrum graph in step 6 is: performing threshold processing on the first window spectrum graph and the benchmark spectrum graph, and only retaining the parts with higher energy; calculating the mean square error or structural similarity index between the first window spectrum graph and the benchmark spectrum graph as the similarity between the two spectrum graphs. Beneficial Effects
[0021] The present invention establishes a reference image of a single background color including reference pixels for a window in a virtual machine according to the size of the window, selects a fully transparent window according to whether the window image is identical to the reference image, selects a partially transparent window according to whether the window image contains an Alpha channel and whether the window image is identical to the original image after removing the Alpha channel, selects a window with uniform transparency according to whether the values between reference pixels and pixels other than the reference pixels in the window image are the same, selects a window with a transparency relationship based on the similarity of the frequency spectrum and pixel phases of the two images, and finally does not transmit the fully transparent window, the partially transparent window, the window with uniform transparency and the window with a transparency relationship to the host machine, so as to ensure the correctness of the application window fusion display process in the virtual machine. DETAILED DESCRIPTION
[0022] The present invention is described in detail with reference to the following embodiments.
[0023] The present invention provides a window fusion display optimization method based on frequency domain analysis, the core idea of which is: obtaining the main window of an application started in a virtual machine as a first window, obtaining a first window image according to display data of the first window, establishing a reference image of a single background color containing reference pixels for the first window according to its size, judging whether the first window is a fully transparent window according to whether the first window image is the same as the reference image, and on this basis, judging whether the first window is a partially transparent window according to whether the first window image contains an Alpha channel and whether it is the same as the original image after removing the Alpha channel, and then judging whether the first window is a window with uniform transparency according to whether the values between reference pixels and pixels other than the reference pixels in the first window image are the same, and then determining the transparency relationship between the two images based on the similarity of the frequency spectrum diagrams and pixel phases of the two images, and finally not transmitting the display data of the fully transparent window, the partially transparent window, the window with uniform transparency and the window with a transparency relationship to the host machine to ensure the correctness of the window fusion display.
[0024] The present invention provides a window fusion display optimization method based on frequency domain analysis, which specifically includes the following steps:
[0025] Step 1: record the operating system running in the virtual machine as the first operating system, and record the desktop of the first operating system as the first desktop; obtain the main windows of all currently started applications in the virtual machine to form a first window set, and construct a background image with a single color and the same size as the first desktop.
[0026] In the case where the first operating system is a Windows system, the method for obtaining the main windows of all currently started applications in the virtual machine is: calling FindWindow or EnumWindow to enumerate all windows.
[0027] Step 2: Select a window in the first window set as the current first window, and use the display data of the current first window as the first window image.
[0028] The first window image may be obtained by obtaining the window handle of each current window and then using the window handle to obtain display data in the window.
[0029] Step 3: The area in the background image with the same position and size as the current first window is used as a comparison area, a set number of reference pixels are randomly added to the comparison area, and the coordinates of the reference pixels are recorded to form a reference pixel set, and then the obtained background image is set as the desktop background of the first desktop, and the image of the comparison area is used as the reference image of the current first window. The color difference between the reference pixel and the background image is greater than a set threshold.
[0030] In order to further improve the comparison accuracy, the present invention sets the color of the background image to pure white and the color of the reference pixel point to pure black.
[0031] Step 4, determine whether the reference image is the same as the first window image. If they are the same, it means that the current first window is a fully transparent window, then ignore the content of the current first window and do not transmit the content to the host machine and execute step 10; otherwise, determine whether the first window image contains an Alpha channel. If so, execute step 5, otherwise execute step 6.
[0032] In order to improve execution efficiency, the method of determining whether the reference image is the same as the first window image may be implemented by using hardware acceleration instructions.
[0033] Step 5, remove the Alpha channel in the first window image and compare it with the first window image. If they are the same, it means that the first window is a partially transparent window, then ignore the current content of the first window and do not transmit the content to the host machine and execute step 10; otherwise, execute step 6.
[0034] In a 24-bit color or 32-bit color bitmap, the Alpha channel usually exists as the fourth color channel. In a 32-bit color bitmap, the first three bytes represent red, green, and blue, respectively, and the fourth byte represents the Alpha channel, which is used to indicate transparency. An Alpha value of 0 indicates complete transparency, and an Alpha value of 255 indicates complete opacity. Based on this, the method for removing the Alpha channel in the first window image can be: extract the first three bytes of data for each pixel in the first window image.
[0035] Step 6, obtain the value of each pixel in the first window image. If the values of each pixel within the reference pixel set are the same, and the values of each pixel outside the reference pixel set are also the same, it means that the first window is a window with uniform transparency rather than a window with gradual transparency, that is, a non-gradient shadow window. In this case, ignore the content of the current first window and do not transmit the content to the host machine and execute step 10; otherwise, execute step 7.
[0036] Step 7: Use a low-pass filter to process the first window image and the reference image, then perform Fourier transform on the obtained image to obtain a spectrum diagram recorded as the first window spectrum diagram and the reference spectrum diagram, perform spectral centering on the first window spectrum diagram and the reference spectrum diagram, and then perform logarithmic transformation, and then calculate the similarity between the obtained first window spectrum diagram and the reference spectrum diagram. If the similarity is greater than a threshold, ignore the content of the current first window and do not transmit the content to the host machine and execute step 10; otherwise, execute step 8.
[0037] The process of performing Fourier transform on the first window image and the reference image includes: firstly performing two-dimensional fast Fourier transform (2D-FFT) on the first window image and the reference image respectively to obtain corresponding frequency domain representations; and then calculating the spectrum diagram according to the frequency domain representation, that is, the amplitude of the Fourier transform result.
[0038] Since the low-frequency components in the Fourier transform result are located at the four corners of the spectrum, while the high-frequency components are concentrated in the center, directly comparing the FFT results of the two images may not be intuitive enough. Therefore, it is necessary to center the spectrum graph, that is, to transfer the low-frequency components in the spectrum graph to the center of the spectrum so that the DC component (zero-frequency component) is located in the center of the spectrum graph.
[0039] The similarity between the first window spectrum graph and the reference spectrum graph obtained by calculation includes the following steps:
[0040] Step 7.1, since the reference spectrum graph is a pure color background image containing random black dots, in order to improve the accuracy of similarity calculation, the present invention performs threshold processing on the first window spectrum graph and the reference spectrum graph, retaining only the parts with higher energy, so as to ignore some unimportant high-frequency components;
[0041] Step 7.2: Calculate the mean square error (MSE) or structural similarity index (SSIM) between the first window spectrum and the reference spectrum to obtain the similarity between the two spectrums.
[0042] Step 8: extract the phase information of the first window image and the reference image, and calculate the similarity of the phase information of the first window image and the reference image. If the similarity is high, it means that there is a high possibility that there is a transparent relationship between the two. In this case, ignore the data of the current first window and do not transmit the data to the host machine and execute step 10. Otherwise, transmit the data of the current first window to the host machine and execute step 9.
[0043] Step 9: The host machine creates a second window for the current first window, and renders the received data in the second window.
[0044] Step 10: Delete the current first window from the first window set. If the first window set is not empty, execute step 2; otherwise, complete the window fusion display of the application in the virtual machine and end this process. Example
[0045] In this embodiment, a window fusion display optimization method based on frequency domain analysis provided by the present invention is used to realize the window fusion display of Windows applications in a virtual machine on a host host, which specifically includes the following steps:
[0046] S1. Enumerate the main windows of all current applications in the virtual machine to form a first window set, and obtain the window handle of each window.
[0047] S2. Select a window in the first window set as the current first window, and record the display data of the current first window as imageWindow. ImageWindow is a graphic data structure, which is HBITMAP in Windows system.
[0048] Get the display data of the current first window through the window handle. The sample code in Windows system is as follows:
[0049] void CaptureWindowContent(HWND hwnd) {
[0050] HDC hdcScreen = GetDC(NULL);
[0051] HDC hdcWindow = GetWindowDC(hwnd);
[0052] RECT rect;
[0053] GetWindowRect(hwnd, &rect);
[0054] int width = rect.right - rect.left;
[0055] int height = rect.bottom - rect.top;
[0056] HDC hdcBitmap = CreateCompatibleDC(hdcScreen);
[0057] HBITMAP hbmBitmap = CreateCompatibleBitmap(hdcScreen, width,height);
[0058] HGDIOBJ hbmOld = SelectObject(hdcBitmap, hbmBitmap);
[0059] / / Copy the window contents to the device context
[0060] PrintWindow(hwnd, hdcBitmap, PW_CLIENTONLY);
[0061] / / Save or process the bitmap...
[0062] / / For example, you can save it to a file or display it in another window
[0063] / / Clean up resources
[0064] SelectObject(hdcBitmap, hbmOld);
[0065] DeleteDC(hdcBitmap);
[0066] ReleaseDC(NULL, hdcScreen);
[0067] ReleaseDC(hwnd, hdcWindow);
[0068] DeleteObject(hbmBitmap);
[0069] }
[0070] S3. Create a pure white image of the size of the desktop for the current first window, and randomly generate no less than 100 pure black reference pixels in the corresponding area of the pure white image according to the position of the current first window, set the image as the desktop background, and record the coordinates of these random pixels in the array arrMarkPointPosition, where each element of arrMarkPointPosition corresponds to a coordinate; and save the content of the current first window area of the image as the reference image and record it as imageDesktop.
[0071] S4. Use hardware acceleration instructions to quickly determine whether imageWindow and imageDesktop are the same, where the hardware acceleration instructions are such as SSE or AVX instructions of SIMD instruction type. If they are the same, it means that this window is fully transparent, and the window is not passed to the Host for rendering, and S9 is executed; if they are different, it is determined whether imageWindow contains an Alpha channel, if so, S5 is executed, otherwise S6 is executed.
[0072] The way to determine whether imageWindow contains an Alpha channel is to check the bmBitsPixel member in the HBITMAP structure. This member represents the number of bits per pixel. If bmBitsPixel is equal to 32 bits, imageWindow contains an Alpha channel.
[0073] Use SIMD instructions for judgment. The following are sample codes using SSE instructions and AVX instructions respectively:
[0074] SSE Instruction Examples
[0075] bool areMemoryRegionsEqual(const void* mem1, const void* mem2, size_tsize) {
[0076] const char* p1 = static_cast<const char*> (mem1);
[0077] const char* p2 = static_cast<const char*> (mem2);
[0078] size_t remaining = size;
[0079] / / Process memory in units of 16 bytes
[0080] while (remaining >= 16) {
[0081] __m128i data1 = _mm_load_si128(reinterpret_cast<const __m128i*> (p1));
[0082] __m128i data2 = _mm_load_si128(reinterpret_cast<const __m128i*> (p2));
[0083] __m128i comparison = _mm_cmpeq_epi8(data1, data2);
[0084] int mask = _mm_movemask_epi8(comparison);
[0085] if (mask != 0xFFFF) {
[0086] return false; / / The memory areas are not the same
[0087] }
[0088] p1 += 16;
[0089] p2 += 16;
[0090] remaining -= 16;
[0091] }
[0092] / / Process the remaining bytes
[0093] for (size_t i = 0; i < remaining; ++i) {
[0094] if (p1[i] != p2[i]) {
[0095] return false; / / The memory areas are not the same
[0096] }
[0097] }
[0098] return true; / / The memory area is the same
[0099] }
[0100] Using AVX instructions, larger data blocks (32 bytes) can be processed. The sample code is as follows:
[0101] bool areMemoryRegionsEqualAVX(const void* mem1, const void* mem2,size_t size) {
[0102] const char* p1 = static_cast<const char*> (mem1);
[0103] const char* p2 = static_cast<const char*> (mem2);
[0104] size_t remaining = size;
[0105] / / Process memory in units of 32 bytes
[0106] while (remaining >= 32) {
[0107] __m256i data1 = _mm256_load_si256(reinterpret_cast<const __m256i*> (p1));
[0108] __m256i data2 = _mm256_load_si256(reinterpret_cast<const __m256i*> (p2));
[0109] __m256i comparison = _mm256_cmpeq_epi8(data1, data2);
[0110] int mask = _mm256_movemask_epi8(comparison);
[0111] if (mask != 0xFFFFFFFF) {
[0112] return false; / / The memory areas are not the same
[0113] }
[0114] p1 += 32;
[0115] p2 += 32;
[0116] remaining -= 32;
[0117] }
[0118] / / Process the remaining bytes
[0119] for (size_t i = 0; i < remaining; ++i) {
[0120] if (p1[i] != p2[i]) {
[0121] return false; / / The memory areas are not the same
[0122] }
[0123] }
[0124] return true; / / The memory area is the same
[0125] }
[0126] S5. Compare the bitmap data of imageDesktop and imageWindow without alpha channel. If they are the same, it means that this window has a partially transparent shadow effect, and it is not transferred to the Host for rendering, and the current loop step is skipped to execute S9; otherwise, execute S6.
[0127] S6. Traverse the points on arrMarkPointPosition in imageWindow. If the values of these points are equal and the values of the other points in imageWindow are also equal, it means that this window is a non-gradient shadow window, that is, a shadow with uniform transparency. It is not passed to the Host for rendering, and the current loop step is skipped to execute S9; otherwise, execute S7.
[0128] S7, based on frequency domain analysis, determine whether it is a gradient shadow. If it is a gradient shadow, it is not transmitted to the Host for rendering, and the current loop step is skipped to execute S9. The specific steps are as follows:
[0129] S7.1. Read two images to be compared, imageWindow and imageDesktop, which are denoted as image A and image B.
[0130] S7.2. Apply a low-pass filter to image A and image B before performing Fourier transform to reduce the influence of high-frequency noise, that is, reduce the influence of the white background to focus more on the features of the low-frequency area.
[0131] S7.3. Perform two-dimensional fast Fourier transform (2D-FFT) on image A and image B respectively to obtain their frequency domain representations.
[0132] S7.4. Calculate the spectrum of each image, that is, the amplitude of the Fourier transform result, to obtain a complex array, where each element of the complex array represents the amplitude and phase of a specific frequency in the image.
[0133] S7.5. Execute spectrum centralization. The specific steps are as follows:
[0134] S7.5.1. Determine the size of the Fourier transform result, that is, the number of rows and columns of the transformation matrix (M*N);
[0135] S7.5.2. Create a center index and calculate the index of the center of the spectrum. For an M*N matrix, if M and N are even numbers, the center index is (M / 2, N / 2); if M and N are odd numbers, the center index is ((M+1) / 2, (N+1) / 2);
[0136] S7.5.3. Center the spectrum, that is, each element in the spectrum matrix is moved to a new position centered on the center index. Specifically, the element in the upper left corner needs to be moved to the center, the element in the upper right corner needs to be moved to the lower left corner, the element in the lower left corner needs to be moved to the upper right corner, and the element in the lower right corner needs to be moved to the center;
[0137] S7.5.4, fill the boundary. During the centering process, some elements will be moved outside the spectrum matrix. In order to keep the size of the matrix unchanged, these elements need to be copied or moved to the other side of the matrix. For example, copy the elements at the top of the matrix to the bottom, and copy the elements on the left side of the matrix to the right.
[0138] S7.5.5, handle the boundary case, if M and N are odd numbers, there will be an element after centering that has no corresponding element to copy, this element is usually the zero frequency component, which can be processed separately;
[0139] S7.6. Perform a logarithmic transformation on the spectrum to enhance the contrast between high-frequency and low-frequency components in the spectrum. That is, take the logarithm of the centered spectrum to enhance the low-amplitude components in the spectrum to make the details more obvious.
[0140] S7.7. Calculate the similarity of the spectrograms of the two images to determine whether the image can be generated by transparency by comparing the similarity of the spectrograms. The specific steps are as follows:
[0141] S7.7.1. Calculate the similarity between the spectrograms of image A and image B by calculating the mean square error (MSE) or structural similarity index (SSIM) of the two spectra.
[0142] S7.7.2. If the similarity measure exceeds the preset threshold, it is considered that the two images have similar features in the frequency domain, that is, there is a transparency relationship, and they are not passed to the Host for rendering, and the current loop step is skipped to execute S9; otherwise, execute S7.7.3.
[0143] S7.7.3. Perform a phase consistency check, that is, check whether the phase information of each pixel in the two images is consistent. Because the transparency process does not change the phase information, the relationship between the two images can be judged. The specific steps are as follows: extract the phase information of image A and image B, and calculate the consistency measure between the phase information of the two images. If the phase consistency is high, it indicates that the two images may have a transparency relationship. In this case, they will not be passed to the Host for rendering, and the current loop will be skipped to execute S9; otherwise, they will be passed to the Host for normal rendering.
[0144] S8. On the host side, a corresponding window is created for each application in the virtual machine, and the window content of the corresponding application transmitted from the virtual machine is rendered in the window.
[0145] S9. Delete the current first window from the first window set. If the first window set is not empty, execute step 2. Otherwise, complete the window fusion display of the application in the virtual machine and end this process.
[0146] In summary, the above are only preferred embodiments of the present invention and are not intended to limit the protection scope of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the protection scope of the present invention.
Claims
1. A window fusion display optimization method based on frequency domain analysis, characterized in that: The specific steps include: Step 1: forming a first window set from the main windows of all applications started in the virtual machine, and constructing a background image with a single color and the same size as the desktop; Step 2: Select a window in the first window set as the current first window, and use the display data of the current first window as the first window image; The same area in the background image as the current first window is used as a comparison area, reference pixels are added in the comparison area, the coordinates of the reference pixels are recorded to form a reference pixel set, the obtained background image is then set as the desktop background, and the image in the comparison area is used as the reference image of the current first window; Step 3: If the reference image is the same as the first window image, ignore the current first window and execute step 9; otherwise, if the first window image contains an Alpha channel, execute step 4; otherwise, execute step 5; Step 4, remove the Alpha channel in the first window image, and compare it with the first window image. If they are the same, ignore the current first window and execute step 9; otherwise, execute step 5; Step 5: If the values of the pixels in the reference pixel set in the first window image are the same, and the values of the pixels outside the reference pixel set are also the same, then the current first window is ignored and step 9 is executed; Otherwise, proceed to step 6; Step 6: Process the first window image and the reference image with a low-pass filter, perform Fourier transform to obtain the first window spectrum diagram and the reference spectrum diagram, perform spectrum centering on the first window spectrum diagram and the reference spectrum diagram, perform logarithmic transform, and then calculate the similarity between the first window spectrum diagram and the reference spectrum diagram. If the similarity is greater than a threshold, ignore the current first window and execute step 9, otherwise execute step 7; Step 7: If the similarity between the phase information of the first window image and the reference image is greater than the threshold, the current first window is ignored and step 9 is executed; otherwise, the data of the current first window is transmitted to the host machine and step 8 is executed; Step 8: The host machine creates a second window for the current first window, and renders the received data in the second window; Step 9: Delete the current first window from the first window set. If the first window set is not empty, execute step 2. Otherwise, complete the window fusion display of the application in the virtual machine and end this process.
2. The window fusion display optimization method according to claim 1, characterized in that: The method of adding reference pixels in the comparison area in step 2 is to randomly add a set number of pixels.
3. The window fusion display optimization method according to claim 1, characterized in that: The color difference between the reference pixel and the background image is greater than a set threshold.
4. The window fusion display optimization method according to claim 3, characterized in that: The color of the background image is set to pure white, and the color of the reference pixel is set to pure black.
5. The window fusion display optimization method according to claim 1, characterized in that: The method for acquiring the display data of the current first window in step 2 is: acquiring the window handle of the current first window, and using the window handle to acquire the display data in the window.
6. The window fusion display optimization method according to claim 1, characterized in that: The method for determining whether the reference image is identical to the first window image is implemented by using hardware acceleration instructions.
7. The window fusion display optimization method according to claim 1, characterized in that: The method of calculating the similarity between the first window spectrum graph and the reference spectrum graph in step 6 is: performing threshold processing on the first window spectrum graph and the reference spectrum graph, and only retaining the portion with higher energy; The mean square error or structural similarity index between the first window spectrogram and the reference spectrogram is calculated as the similarity between the two spectrograms.
Citation Information
Patent Citations
Virtual desktop fusion method between desktop virtualized customer side and virtual desktop
CN102541624A
Remote application virtualization method and device
CN114253648A