Viewpoint image warping system and method
Patent Information
- Application Number
- JP2023579044
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-23
- Filing Date
- 2022-06-01
- Publication Date
- 2025-03-04
- Estimated Expiration
- 2042-06-01
Smart Images

Figure 0007639189000001 
Figure 0007639189000002 
Figure 0007639189000003
Abstract
Description
[Background technology]
[0001] FIELD OF THE DISCLOSURE This disclosure relates generally to image processing, and more particularly to image warping operations that compensate for changes in viewpoint.
[0002] This section is intended to introduce the reader to various aspects of technology that may be related to various aspects of the present disclosure, which are described and / or claimed below. This discussion is believed to be helpful in providing the reader with background information to better understand the various aspects of the present disclosure. As such, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
[0003] Electronic devices often use one or more electronic displays to present visual information, such as text, still images, and / or video, by displaying one or more images. For example, such electronic devices may include computers, mobile phones, portable media devices, tablets, televisions, virtual reality headsets, and vehicle dashboards, among others. To display images, an electronic display may control the illumination of its display pixels based at least in part on corresponding image data.
[0004] An image may be represented by image data that defines a region having a particular resolution or distribution of pixel values. However, in some cases, it may be desirable to change the resolution or distribution of pixel values to accommodate different display scenarios. For example, the image data may be warped to account for the surrounding environment, display characteristics, the viewer's point-of-view (POV), and other factors that may distort the image perceived by the viewer. Thus, before being displayed, the image data may be processed to warp the image using a desired change to the amount or distribution of pixel values such that the perceived image is not distorted. However, at least in some cases, when warping for changes in POV, objects for which no image data is present may be made to appear, which may lead to image artifacts. Summary of the Invention
[0005] A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with an overview of these specific embodiments, and that these aspects are not intended to limit the scope of the present disclosure. In fact, the present disclosure may encompass a variety of aspects that are not set forth below.
[0006] In some scenarios, images may appear distorted when perceived by a viewer due to differences between the perspective in which the image was captured or rendered and the viewer's point of view (POV) / perspective. Furthermore, the viewer's POV (e.g., determined based on position and / or eye tracking) relative to the display may change how the viewer perceives the image. For example, in an augmented reality, virtual reality, or mixed reality device, images may be captured in advance or in real time and displayed to the viewer, with or without augmentation, as if the image were real. However, the image may have been captured with a different POV than the viewer would normally experience. For example, an object may appear shorter, taller, wider, smaller, or out of perspective relative to itself or other objects if the image is left uncorrected. Thus, before being displayed, the image data may be processed to warp the image so that the perceived image has reduced or no distortion.
[0007] POV warping can help alter image data so that when the image is displayed, it is seen from a perspective that matches the viewer's perspective. Such POV warping can also shift the relative positions of objects, generating one or more occlusion regions in the image. For example, a foreground object may shift in POV warping such that after warping, a portion of the object or background that was not previously part of the input image becomes visible. Thus, in some embodiments, occlusion regions may be filled by blending, generating new pixel values, or capturing additional images (e.g., from additional cameras). Additionally or alternatively, in some embodiments, machine learning (e.g., deep learning) may be utilized in filling occlusion regions to estimate missing pixel values.
[0008] Additionally, in some embodiments, the correction for POV warping may utilize a pixel grid to map pixel locations in the input image data to warped locations corrected for the viewer's POV. During generation of the pixel grid, occlusions may be identified as invalid regions that have no associated input image data. Because occlusion regions are filled with fill data, the invalid regions may be ignored when warping and fetching image data to increase operational efficiency. [Brief description of the drawings]
[0009] The various aspects of the disclosure may be better understood upon reading the following detailed description and upon reference to the drawings, in which:
[0010] [Figure 1] FIG. 1 is a block diagram of an electronic device including an electronic display according to one embodiment.
[0011] [Diagram 2] 2 is an example of the electronic device of FIG. 1 in the form of a handheld device, according to one embodiment.
[0012] [Diagram 3] 2 is another example of the electronic device of FIG. 1 in the form of a tablet device, according to one embodiment.
[0013] [Figure 4] 2 is another example of the electronic device of FIG. 1 in the form of a computer, according to one embodiment.
[0014] [Diagram 5] 2 is another example of the electronic device of FIG. 1 in the form of a watch, according to one embodiment.
[0015] [Figure 6] 2 is a block diagram of a display pipeline of the electronic device of FIG. 1 including a warping compensation block according to one embodiment.
[0016] [Figure 7] FIG. 2 is a block diagram of a warping processing block according to one embodiment.
[0017] [Figure 8] FIG. 2 is a schematic diagram of point of view (POV) warping from a source frame to a POV warped frame according to one embodiment.
[0018] [Figure 9] 1 is a flowchart of an exemplary process for determining POV warped image data according to one embodiment.
[0019] [Figure 10] FIG. 2 is a schematic diagram of a base partition of a hierarchical grid according to one embodiment.
[0020] [Figure 11] 11 is an exemplary process for determining partitions for the hierarchical grid of FIG. 10 according to one embodiment.
[0021] [Figure 12]11 is an exemplary process for determining partitions for the hierarchical grid of FIG. 10 according to one embodiment.
[0022] [Figure 13] FIG. 11 is a schematic diagram of an exemplary process for determining partitions for the hierarchical grid of FIG. 10 according to one embodiment.
[0023] [Figure 14] 4 is a schematic diagram of an exemplary hierarchical interpolation process according to one embodiment;
[0024] [Figure 15] FIG. 2 is a schematic diagram of a hierarchical grid having multiple base partitions according to one embodiment.
[0025] [Figure 16] 1 is a flowchart of an exemplary process for using a hierarchical grid in mapping warping operations from a source frame to a warped frame according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] One or more specific embodiments of the present disclosure are described below. The described embodiments are merely examples of the techniques disclosed herein. In addition, in order to provide a concise description of the embodiments, not all features of an actual implementation are shown herein. As in any engineering or design project, it should be understood that in the development of any such actual implementation, many implementation-specific decisions must be made to achieve the developer's specific goals, such as compliance with system-related and business-related constraints that may vary from implementation to implementation. Moreover, it should be understood that such development efforts may be complex and time-consuming, but may nevertheless be a routine task of design, fabrication, and manufacture for those skilled in the art having the benefit of this disclosure.
[0027] When introducing elements of various embodiments of the present disclosure, the articles "a," "an," and "the" are intended to mean that there are one or more elements. The terms "comprising," "including," and "having" are intended to be inclusive and mean that there may be additional elements other than the listed elements. In addition, it should be understood that references to "one embodiment" or "embodiments" of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. Moreover, the phrase A "based on" B is intended to mean that A is based at least in part on B. Also, the term "or" is intended to be inclusive (e.g., logical OR) and not exclusive (e.g., exclusive OR). In other words, the phrase A "or" B is intended to mean either A, B, or both A and B.
[0028] Electronic devices often use electronic displays to present visual information. Such electronic devices may include computers, mobile phones, portable media devices, tablets, televisions, virtual reality headsets, and vehicle dashboards, among others. Electronic displays may take the form of Liquid Crystal Displays (LCDs), Light Emitting Diode (LED) displays, Organic Light Emitting Diode (OLED) displays, plasma displays, and the like.
[0029] To display an image, an electronic display controls the luminance (and, consequently, color) of its display pixels based on corresponding image data received at a particular resolution. For example, an image data source may provide the image data as a stream of pixel data, where the data for each pixel indicates a target luminance (e.g., brightness and / or color) for one or more display pixels located at the corresponding pixel location. In some embodiments, the image data may indicate luminance for each color component, e.g., via red component image data, blue component image data, and green component image data, collectively referred to as RGB image data (e.g., RGB, sRGB). Additionally or alternatively, the image data may be represented by a luminance channel and one or more chrominance channels (e.g., YCbCr, YUV, etc.), grayscale (e.g., gray levels), or other color standards. It should be understood that a luminance channel as disclosed herein may encompass linear, non-linear, and / or gamma corrected luminance values.
[0030] In some scenarios, an image to be displayed may appear distorted when perceived by a viewer if not altered. The distortion may be due to environmental effects, display attributes, the viewer's point of view (POV) perspective, image processing warping such as shifting and scaling, and / or other distortion factors. For example, a display may include an opaque or transparent screen with curved edges and / or lens effects that may distort the image if displayed without correction. Furthermore, the viewer's POV (e.g., determined based on position and / or eye tracking) relative to the display may change how the viewer perceives the image. For example, in an Augmented Reality (AR), Virtual Reality (VR), or Mixed Reality (MR) device, an image may be captured in advance or in real time and displayed to the viewer with or without augmentation as if the image were real. However, the image may have been captured with a different POV than the viewer would normally experience if the image were real. For example, an object may appear shorter, taller, wider, smaller, or out of perspective relative to itself or other objects. Thus, before being displayed, the image data may be processed to warp the image so that the perceived image has reduced or no distortion.
[0031] POV warping may result in one or more occlusion regions in an image. For example, a foreground object may shift in POV warping such that after warping, an object or a portion of the background that was not previously part of the input image becomes visible. Thus, in some embodiments, the occlusion regions may be filled by blending, generating new pixel values, capturing additional images (e.g., from additional cameras), etc. Additionally or alternatively, in some embodiments, machine learning (e.g., deep learning) may be used to estimate missing pixel values in filling the occlusion regions.
[0032] In some embodiments, some types of warping, e.g., correction for POV warping, may utilize a pixel grid to map pixel locations in the input image data to warped locations corrected for the viewer's POV. However, warping using a coarser grid may result in image artifacts, while finer grid warping may tax processing bandwidth and / or require additional time. To avoid image artifacts and increase efficiency, the hierarchical grid may have variable grid partition sizes when performing the warping operation. In some embodiments, the hierarchical grid may have a quadtree grid structure determined by iteratively dividing the grid partition into quarters depending on image statistics associated with corresponding portions of the image data. For example, the hierarchical grid may be determined by starting with a 64x64 pixel partition. Depending on the image statistics (e.g., homogeneity, occlusion, perceived depth, edges, or other image features that may require finer warping calculations), that particular 64x64 partition of the grid may remain a full partition or the partition may be divided into four 32x32 pixel partitions. Each new partition may be kept or further divided depending on image statistics until a desired granularity is reached. Additionally, some partitions may be designated as invalid by being outside the active area of the display or as containing occlusions. As described herein, invalid regions may be ignored in warping to reduce bandwidth and may be filled separately (e.g., in the active area) as needed.
[0033] With the coordinate mapping of each partition to the input image data, hierarchical interpolation may be used to determine the coordinates of each grid point. For example, coordinates corresponding to a 32×32 pixel partition may be interpolated from the 64×64 partition coordinates. Then, coordinates corresponding to a 16×16 pixel partition may be interpolated from the 32×32 partition coordinates, and so on until the coordinate mapping for each grid point has been determined. Additionally, at each stage of interpolation, if the partition-sized coordinates are available (e.g., the grid was divided into partitions smaller than 64×64 partitions), the coordinates of the corresponding pixel may already have been calculated as part of the grid and may be used directly instead of being interpolated.
[0034] By reducing warping calculations in partitions with low probability of artifacts and performing finer warping operations in specific regions based on image statistics, processing time and / or bandwidth usage may be reduced while maintaining image quality. Moreover, the reduced processing time may provide real-time or extended feedback to changes in the user's position / POV. As will be appreciated, the grid size is an example and not a limitation. Furthermore, the disclosed techniques for pixel grids may be used for any of a number of different image processing operations, including but not limited to warping such as POV warping, geometric distortion warping, temporal warping, etc. Indeed, other image processing operations may utilize hierarchical grid structures for improved efficiency and / or reduced processing time. Thus, to improve image quality and / or increase efficiency, the present disclosure provides techniques for general hierarchical grids and for extended POV warping.
[0035] One embodiment of an electronic device 10 utilizing a hierarchical grid is shown in Figure 1. As described in more detail below, electronic device 10 may be any suitable electronic device, such as a handheld electronic device, a tablet electronic device, a notebook computer, etc. It should therefore be noted that Figure 1 is merely one example of a particular implementation and is intended to illustrate the types of components that may be present within electronic device 10.
[0036] The electronic device 10 may include one or more electronic displays 12, input devices 14, input / output (I / O) ports 16, a processor core complex 18 having one or more processors or processor cores, a local memory 20, a main memory storage device 22, a network interface 24, a power supply 26, and image processing circuitry 28. The various components shown in FIG. 1 may include hardware elements (e.g., circuitry), software elements (e.g., a tangible, non-transitory computer-readable medium that stores instructions), or a combination of both hardware and software elements. As will be appreciated, it should be noted that the various components may be combined into fewer components or separated into additional components. For example, the local memory 20 and the main memory storage device 22 may be included in a single component. Additionally, image processing circuitry 28 (e.g., a graphics processing unit, a display image processing pipeline, etc.) may be included in the processor core complex 18.
[0037] Processor core complex 18 may be operatively coupled to a local memory 20 and a main memory storage device 22. The local memory 20 and / or the main memory storage device 22 may include tangible, non-transitory computer-readable media that store instructions executable by processor core complex 18 and / or data to be processed by processor core complex 18. For example, the local memory 20 may include Random Access Memory (RAM), and the main memory storage device 22 may include Read Only Memory (ROM), rewriteable non-volatile memory such as flash memory, a hard drive, an optical disk, and / or the like.
[0038] Processor core complex 18 may execute instructions stored in local memory 20 and / or main memory storage device 22 to perform operations such as generating source image data. Thus, processor core complex 18 may include one or more general purpose microprocessors, one or more Application Specific Processors (ASICs), one or more Field Programmable Logic arrays (FPGAs), or any combination thereof.
[0039] For example, network interface 24 may connect electronic device 10 to a Personal Area Network (PAN), such as a Bluetooth network, a Local Area Network (LAN), such as an 802.11x Wi-Fi network, and / or a Wide Area Network (WAN), such as a 4G, LTE, or 5G cellular network. In this manner, network interface 24 may enable electronic device 10 to transmit image data to and / or receive image data from the network.
[0040] Power supply 26 may provide power to operate processor core complex 18 and / or other components within electronic device 10. Thus, power supply 26 may include any suitable energy source, such as a rechargeable Lithium polymer (Li-poly) battery and / or an alternating current (AC) power converter.
[0041] I / O ports 16 may enable electronic device 10 to interface with various other electronic devices. Input devices 14 may enable a user to interact with electronic device 10. For example, input devices 14 may include buttons, a keyboard, a mouse, a trackpad, etc. Additionally or alternatively, electronic display 12 may include touch-sensing components that enable user input to electronic device 10 by detecting the occurrence and / or location of an object touching its screen (e.g., the surface of electronic display 12).
[0042] Electronic display 12 may display an operating system Graphical User Interface (GUI), an application interface, text, still images, or video content. To facilitate displaying images, electronic display 12 may include a display panel having one or more display pixels. In addition, each display pixel may include one or more sub-pixels that each control the brightness of a color component (e.g., red, blue, or green). As used herein, a display pixel may refer to a collection of sub-pixels (e.g., red, green, and blue sub-pixels) or may refer to a single sub-pixel.
[0043] As described above, electronic display 12 may display images by controlling brightness of sub-pixels based at least in part on corresponding image data. In some embodiments, the image data may be received from another electronic device, for example, via network interface 24 and / or I / O ports 16. Additionally or alternatively, the image data may be generated by processor core complex 18 and / or image processing circuitry 28. Moreover, in some embodiments, electronic device 10 may include multiple electronic displays 12 and / or perform image processing (e.g., via image processing circuitry 28) for one or more external electronic displays 12, such as those connected via network interface 24 and / or I / O ports 16.
[0044] The electronic device 10 can be any suitable electronic device. For illustrative purposes, one example of a suitable electronic device 10, specifically a handheld device 10A, is shown in FIG. In some embodiments, handheld device 10A may be a portable telephone, a media player, a personal data organizer, a handheld gaming platform, and / or the like. For example, handheld device 10A may be a smartphone, such as an iPhone® model available from Apple Inc.
[0045] Handheld device 10A may include an enclosure 30 (e.g., housing) that, for example, protects internal components from physical damage and / or shields them from electromagnetic interference. In addition, enclosure 30 may at least partially enclose electronic display 12. In the illustrated embodiment, electronic display 12 displays a graphical user interface (GUI) 32 having an array of icons 34. By way of example, when an icon 34 is selected, either by input device 14 or a touch-sensitive component of electronic display 12, an application program may be launched.
[0046] Further, the input device 14 may be provided through an opening in the enclosure 30. As mentioned above, the input device 14 may allow a user to interact with the handheld device 10A. For example, the input device 14 may allow a user to activate or deactivate the handheld device 10A, navigate the user interface to a home screen, navigate the user interface to a user-configurable application screen, activate a voice recognition function, provide volume control, and / or toggle between a vibration mode and a ring mode. Moreover, the I / O ports 16 are also opened through the enclosure 30. In addition, the electronic device may include one or more cameras 36 for capturing photos or videos. In some embodiments, the cameras 36 may be used in conjunction with virtual reality or augmented reality visualization on the electronic display 12.
[0047] Another example of a suitable electronic device 10, specifically a tablet device 10B, is shown in FIG. 3. By way of example, the tablet device 10B may be an iPad® model available from Apple Inc. A further example of a suitable electronic device 10, specifically a computer 10C, is shown in FIG. 4. By way of example, the computer 10C may be a Macbook® or iMac® model available from Apple Inc. Another example of a suitable electronic device 10, specifically a watch 10D, is shown in FIG. 5. By way of example, the watch 10D may be an Apple Watch® model available from Apple Inc. As shown, the tablet device 10B, the computer 10C, and the watch 10D each also include an electronic display 12, an input device 14, an I / O port 16, and an enclosure 30.
[0048] As described above, electronic display 12 may display an image based at least in part on image data. Before being used to display a corresponding image on electronic display 12, the image data may be processed, for example, via image processing circuitry 28. Generally, image processing circuitry 28 may process the image data for display on one or more electronic displays 12. For example, image processing circuitry 28 may include a display pipeline, Memory-to-memory Scaler and Rotator (MSR) circuitry, warping compensation circuitry, or additional hardware or software means for processing image data. The image data may be processed by image processing circuitry 28 to reduce or remove image artifacts, compensate for one or more different software or hardware related effects, and / or format the image data for display on one or more electronic displays 12. As will be appreciated, the techniques may be implemented in stand-alone circuitry, software, and / or firmware and may be considered to be part of, separate from, and / or in parallel with the display pipeline or MSR circuitry.
[0049] For illustrative purposes, a portion of electronic device 10 including image processing circuitry 28 is shown in Figure 6. In some embodiments, image processing circuitry 28 may be implemented by circuitry within electronic device 10, circuitry within electronic display 12, or a combination thereof. For example, image processing circuitry 28 may be included in processor core complex 18, a Timing CONtroller (TCON) within electronic display 12, or any combination thereof. As will be appreciated, although image processing is described herein as being performed via a number of image data processing blocks, embodiments may include hardware or software components for performing the techniques described herein.
[0050] The electronic device 10 may also include a controller 42 in communication with the image data source 38, the display panel 40, and / or the image processing circuitry 28. In some embodiments, the display panel 40 of the electronic display 12 may be a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, or any other suitable type of display panel 40. In some embodiments, the controller 42 may control the operation of the image processing circuitry 28, the image data source 38, and / or the display panel 40. To facilitate controlling the operation, the controller 42 may include a controller processor 44 and / or a controller memory 46. In some embodiments, the controller processor 44 may be included in the processor core complex 18, the image processing circuitry 28, a timing controller within the electronic display 12, a separate processing module, or any combination thereof, and execute instructions stored in the controller memory 46. Additionally, in some embodiments, the controller memory 46 may be included in the local memory 20, the main memory storage device 22, a separate tangible, non-transitory computer readable medium, or any combination thereof.
[0051] The image processing circuitry 28 may receive source image data 48 from an image data source 38, which corresponds to a desired image to be displayed on the electronic display 12. The source image data 48 may indicate target characteristics (e.g., pixel data) corresponding to the desired image using any suitable source format, such as 8-bit fixed-point αRGB format, 10-bit fixed-point αRGB format, signed 16-bit floating-point αRGB format, 8-bit fixed-point YCbCr format, 10-bit fixed-point YCbCr format, 12-bit fixed-point YCbCr format, and / or the like. In some embodiments, the image data source 38 may be included in the processor core complex 18, the image processing circuitry 28, or a combination thereof. Furthermore, the source image data 48 may exist in a linear color space, a gamma-corrected color space, or any other suitable color space. As used herein, pixel or pixel data may refer to a grouping of sub-pixels (e.g., individual color component pixels such as red, green, and blue), or to the sub-pixels themselves.
[0052] As mentioned above, the image processing circuitry 28 may operate to process source image data 48 received from an image data source 38. The data source 38 may include captured images from the camera 36, images stored in memory, graphics generated by the processor core complex 18, or a combination thereof. The image processing circuitry 28 may include one or more sets of image data processing blocks 50 (e.g., circuitry, modules, or processing stages), such as a warping processing block 52. As will be appreciated, multiple other processing blocks 54 may also be incorporated into the image processing circuitry 28, such as a color management block, a dither block, a rotation block, etc. Furthermore, in some embodiments, multiple warping processing blocks 52 may be used to provide separate warping operations for different applications of the image processing circuitry 28. For example, different warping processing blocks 52 may be used for image data from different image data sources 38 (e.g., captured images, graphically generated images, etc.). The image data processing block 50 may receive and process the source image data 48 and output display image data 56 in a format (e.g., digital format and / or resolution) interpretable by the display panel 40. Furthermore, the functions (e.g., operations) performed by the image processing circuitry 28 may be distributed among the various image data processing blocks 50, and there may or may not be a logical separation between the image data processing blocks 50, as the term “block” is used herein.
[0053] The warping processing block 52 may facilitate improving the perceived image quality by altering the amount (e.g., resolution) or distribution (e.g., shape, relative size, perspective, etc.) of pixel values to account for different display scenarios during one or more warping operations. For illustrative purposes, FIG. 7 is a block diagram 58 of the warping processing block 52 including a point of view (POV) warping sub-block 60 and a hierarchical grid interpolation sub-block 62. In general, the warping processing block 52 may receive input image data 64 and generate processed image data 66 by applying one or more warpings to the input image data 64. As will be appreciated, the warping processing block 52 may include other warping sub-blocks for geometric warping, lens correction warping, temporal warping, etc. Moreover, the POV warping sub-block 60 may be combined (e.g., stacked) with one or more other warpings to form a combined warping operation.
[0054] The POV warping sub-block 60 may provide compensation for the viewer's POV (e.g., determined based on position, eye relief, and / or focus) relative to the display, as compared to the capture of the image to be displayed, for example, via one or more cameras 36. Moreover, the viewer's POV may be monitored by any suitable method, such as eye tracking. In addition, the viewer's height may be determined based on user input or a relative height difference between the electronic device 10 and the viewer's estimated position relative to the electronic device 10.
[0055] As a non-limiting example, an augmented reality, virtual reality, or mixed reality device may capture an image previously or in real time and display the image to a viewer, with or without augmentation, as if the image were physically within the viewer's field of view. However, the image may have been captured in a perspective different from what the viewer would normally experience, which may change how the viewer perceives the image. For example, an object may appear shorter, taller, wider, smaller, or out of perspective relative to itself or other objects. Thus, in some embodiments, the POV warping sub-block 60 may warp the image data before it is displayed, so that the perceived image has reduced or no distortion.
[0056] In some scenarios, POV warping 68 from a source frame 70 (aka source space) to a POV warped frame 72 (aka warped space) may result in one or more occlusion regions 74 in an image 76, as shown in Figure 8. For example, a foreground object 78 may shift in POV warping 68 such that after POV warping 68, a portion of the foreground object or background 80 that was not previously part of the image 76 becomes visible. Thus, after POV warping 68, there may be portions of the POV warped frame 72 that do not have a mapping to the input image data 64 in the source frame 70.
[0057] In some embodiments, the warping process block 52 may generate image data for filling the occlusion regions 74 in the POV warped frame 72. For example, the occlusion regions 74 may be filled by blending pixel values around the occlusion regions 74 or by using image data from additional image captures, such as images captured at another time (e.g., before or after the original capture), from one or more different angles, and / or by additional image capture devices (e.g., cameras 36) having different perspectives. For example, in some embodiments, the stereo cameras 36 provide perspectives that may be combined to reduce or eliminate each other's occlusion regions 74. In such a case, the input image data 64 from the second camera 36 may be POV warped 68 into the POV warped frame 72, and the portions corresponding to the occlusion regions 74 may be used as fill data. Additionally or alternatively, in some embodiments, the warping processing block 52 may estimate pixel values of the occlusion region 74 and generate new pixel values to fill by utilizing painting algorithms and / or machine learning (e.g., deep learning).
[0058] Additionally, in some embodiments, sampling or resampling may be performed using a window 82 that overlaps or abuts the edge of the occlusion region 74. In some scenarios, filtering across the boundary of the occlusion region 74 may result in artifacts 84. Thus, in some embodiments, filtering may be reduced or eliminated for areas around the occlusion region 74.
[0059] 9 is a flow chart of an exemplary process 86 performed by the warping processing block 52. In general, the warping processing block 52 may receive input image data 64 and / or image statistics indicative of the input image data 64 (process block 88). The warping processing block 52 may also apply a POV warping 68 to a pixel grid to generate a mapping of pixel locations in the source frame 70 to pixel locations in the POV warped frame 72 (process block 90). The input image data 64 may be mapped to the POV warped frame 72 according to the warped pixel grid coordinate values (process block 92). In addition, fill data for the occlusion regions 74 may be determined (process block 94). The fill data and the warped image data in the POV warped frame 72 may be combined (e.g., blended) to generate processed image data 66 (process block 96), which may then be output to other processing blocks 54 and / or the display panel 40 (process block 98).
[0060] In some embodiments, to apply different types of warping, for example, POV warping 68 and / or warping processing block 52 may utilize a pixel grid to map pixel locations in source frame 70 to locations in POV warped frame 72 that are corrected for the viewer's POV. Performing warping on a pixel grid may increase efficiency by creating a mapping of pixel coordinates without fetching or processing all input image data. For example, after POV warping 68 or other warping operations, certain image data may become unnecessary, which may increase efficiency by reducing or eliminating fetching and / or processing of unused data. In general, the pixel grid may include grid points that define a mapping to coordinates of input image data 64 in source frame 70 (i.e., source space). The mapping may be generated based on POV warping 68, which may be implemented in software or hardware. After determining the mapping, portions of input image data 64 that correspond to the coordinate mapping of the grid points may be fetched to resolve the pixel grid and generate image 76 in POV warped frame 72.
[0061] In some scenarios, warping using a coarser grid may result in one or more image artifacts, such as blurring. On the other hand, warping using a finer grid may provide improved sharpness and reduced image artifacts, but the finer grid may tax processing bandwidth and / or require additional time to render. Thus, in some embodiments, the warping processing block 52 may utilize a hierarchical grid 100, as shown in FIG. 10. The hierarchical grid 100 may have variable sized grid partitions 102A, 102B, 102C, 102D (collectively referred to as 102) when performing the warping operation. For example, each warped grid partition 102 may correlate a single pixel coordinate in the source frame 70 to a single pixel in the warped frame (e.g., POV warped frame 72), such as a corner or center grid point of the grid partition 102. Depending on the granularity of the grid partition 102, the coordinates that map to the source frame 70 for some of the other grid points within the grid partition 102 (e.g., a larger number for coarser / larger grid partitions 102, and a smaller number for finer / smaller grid partitions 102) may be interpolated (e.g., by the hierarchical grid interpolation sub-block 62).
[0062] In some embodiments, the hierarchical grid 100 may have a quadtree grid structure determined by iteratively splitting or merging the grid partitions 102 into quarters depending on image statistics associated with corresponding portions of the input image data 64. For example, the hierarchical grid 100 may be determined via a top-down split 104 starting with a uniform grid 106 of a relatively large grid partition 102. The coarse uniform grid 106 may go through zero, one, or more intermediate split partition stages 108 before arriving at the hierarchical grid 100. Additionally or alternatively, the hierarchical grid 100 may be generated by bottom-up merging 110. The bottom-up merging 110 may start with a uniform grid 112 of a relatively small grid partition 102 that may go through zero, one, or more intermediate merging partition stages 114 before arriving at the hierarchical grid 100. Moreover, the top-down split 104 and / or the bottom-up merging 110 may be accomplished iteratively or in a single pass. Additionally, the base partition 116 may be set according to the desired maximum granularity at which the coarse uniform grid 106 may begin during the top-down splitting 104. Similarly, in some embodiments, the bottom-up merging 110 may not merge to include grid partitions 102 larger than the base partition 116. Although described herein as having a quadtree grid structure, the hierarchical grid 100 may use any suitable structure depending on the implementation. For example, the structure of the hierarchical grid may branch into halves, quarters, eighths, or any suitable fraction at each hierarchical layer / level.
[0063] For further illustration, FIG. 13 is a top-down division 104 of a 64×64 base partition 116 according to FIG. 10. As will be appreciated, the size of the base partition 116 (e.g., 64×64), the minimum partition 102 (e.g., 4×4 grid partition 102D), and / or the step size of the division or merging may vary depending on the implementation, such as bandwidth and / or image quality requirements. In general, depending on the image statistics of the corresponding input image data 64 (e.g., homogeneity, occlusion, active area location, perceived depth, edges, and / or other image features that may require finer warping calculations), a particular base partition 116 may be left as is or divided into four 32×32 grid partitions 102A. Each new grid partition 102 may be maintained or may be further divided depending on the image statistics until no further division is desired or until the minimum partition 102 is achieved. For example, if the grid partition 102 is generally homogeneous and has no occlusion regions 74, the grid partition 102 may be maintained, but if the grid partition 102 has occlusions, is significantly inhomogeneous (e.g., relative to set or calculated parameters), or contains edges or changes in perceived depth that are greater than a set or calculated threshold amount, the grid partition 102 may be split to provide greater granularity in such regions of interest. In the illustrated example, one 32x32 grid partition 102A is split into four 16x16 grid partitions 102B, and one of the 16x16 grid partitions 102B is split into four 8x8 grid partitions 102C.
[0064] In addition to adjusting the granularity based on image statistics of the region of interest for the input image data 64, the hierarchical grid 100 may be partitioned based on an active area of the display 12. For example, the input image data 64 may include portions of the image 76 that are outside of a displayed portion of the image 76 (e.g., an active area). In some embodiments, grid partitions 102 of the hierarchical grid 100 that are outside of the active area and / or that correspond to an occlusion area 74 may be designated as invalid areas 118 or partitions. In some embodiments, the invalid areas 118 may be ignored in the warping (e.g., the corresponding input image data 64 is not fetched) to reduce bandwidth usage and increase speed and efficiency.
[0065] When warping (e.g., POV warping 68, geometric warping, temporal warping, etc.) is applied to the hierarchical grid 100 by the POV warping sub-block 60 or the hierarchical grid interpolation sub-block 62, at least one characteristic grid point of each grid partition 102 is mapped to pixel coordinates in the source frame 70 of the input image data 64. The mapping may be calculated in hardware or software based on POV parameters corresponding to the viewer's eye position, eye relief, eye focus, and / or other POV calculations relative to the display 12, the image capture mechanism (e.g., the camera 36), or the object of interest. As will be appreciated, depending on the implementation, more than one characteristic grid point may be mapped per grid partition 102. Moreover, the characteristic grid points may be aligned to edges, corners, or centers of the grid partitions 102 for convenience of reference. For example, the characteristic grid point may be the top left corner grid point of each grid partition 102 and may be mapped to coordinates in the source frame 70 (e.g., "x" and "y" coordinates relative to the pixel grid of the input image data 64). Furthermore, while the characteristic grid point mapping for each grid partition 102 is known (e.g., calculated), additional grid points for the grid partition 102 may be unknown from the partition mapping. Thus, the hierarchical grid interpolation sub-block 62 may perform hierarchical interpolation between the known characteristic grid point coordinate mappings to determine the coordinates of the remaining grid point mappings.
[0066] FIG. 14 is a schematic diagram 120 of hierarchical interpolation starting from a base partition 116 (e.g., a 64×64 grid partition). If the base partition 116 is not divided into smaller grid partitions 102, the known x and y coordinate mappings of the characteristic grid points of the multiple surrounding base partitions 116 may be used to interpolate intermediate points between the known coordinate mappings of the characteristic grid points. Due to the construction of the hierarchical grid 100, such intermediate points may be aligned with the characteristic grid points of the next layer of 32×32 grid partitions 102A. Thus, the characteristic grid points of the 32×32 grid partitions 102A and the base partition 116 may be determined. Further, the characteristic grid points of the base partition 116 and the 32×32 grid partitions 102A may be interpolated to determine the characteristic grid points of the 16×16 grid partitions 102B, etc., until the characteristic grid points of the smallest grid partition (e.g., the 4×4 grid partition 102D) are determined. However, if the base partition 116 has already been divided into smaller grid partitions 102, then at least some of the characteristic grid points of the smaller grid partitions may already have been calculated and therefore may be used to complete the warped grid without interpolation. Indeed, at each layer of hierarchical interpolation, known values may be input from the respective grid partitions (e.g., 102A-102D) and unknown values may be interpolated. In some embodiments, the iterative interpolation may utilize previously interpolated coordinate mappings to interpolate additional coordinate mappings.
[0067] Further, the interpolation may continue until the coordinate mapping is interpolated for the 1×1 grid partition size and mapping is completed for each pixel location in the warped grid of the source frame 70 to the input image data 64. As will be appreciated, any suitable method for interpolation may be used to interpolate the coordinate mapping, such as bilinear or hyperbolic interpolation. In some embodiments, a more accurate interpolation (e.g., hyperbolic interpolation) may be used in determining the upper layer interpolations, such as the 32×32 grid point interpolation and the 16×16 grid point interpolation, while the lower layer interpolations, such as the 1×1 grid interpolation, may use a more efficient interpolation method, such as bilinear interpolation. As will be appreciated, although described herein as using “x” and “y” coordinates, any suitable coordinate system may be used to map the input image data 64 to the warped image data, such as the POV warped frame 72. Furthermore, in some embodiments, the interpolation of the “x” and “y” coordinates may be processed separately, allowing for parallel processing of the interpolation.
[0068] To further help explain hierarchical interpolation, Figure 15 is a schematic diagram of a hierarchical grid 100 having a number of base partitions 116. As discussed above, the mapping of characteristic grid points 122 of the base partitions 116 is performed by applying a 3D interpolation method from a source frame 70 to a destination frame (e.g., POV warping). rearThe characteristic grid points 124 of the 32×32 grid partition 102A and the base partition 116 may be calculated based on the warping of the base partition 116 to the 32×32 grid partition 102B (frame 72 or other post-warping frame). If the base partition 116 is not divided into smaller grid partitions 102, then known x and y coordinate mappings of the characteristic grid points 122 of the base partition 116 may be used to interpolate grid points halfway between the grid points 122. Due to the construction of the hierarchical grid 100, such interpolated grid points may be aligned to the characteristic grid points 124 of the next tier of grid partitions 102, such as the 32×32 grid partition 102A. Thus, the characteristic grid points 124 of the 32×32 grid partition 102A and the base partition 116 may be known after the first level of interpolation. Additionally, if one or more of the base partitions 116 are divided into the 32×32 grid partition 102A or smaller grid partitions 102B-102D, then some of the characteristic grid points 124 of the 32×32 grid partition 102A may already be known from the warping calculations. In some embodiments, interpolation to previously calculated grid points may be skipped or performed, and may be ignored in favor of the grid points for which the warping calculations have been performed.
[0069] The characteristic grid points 122 of the base partition 116 and the characteristic grid points 124 of the 32×32 grid partition 102A may be used to interpolate the characteristic grid points 126 of the 16×16 grid partition 102B. As with the 32×32 grid partition 102A, one or more base partition If 116 is divided into a 16×16 grid partition 102B or smaller grid partitions 102C, 102D, then some of the characteristic grid points 126 of the 16×16 grid partition 102B may already be known from the warping calculation. The iterative interpolation may continue at each layer of the hierarchical interpolation until the mapping of each grid point has been determined, either by a warping operation or by interpolation.
[0070] Additionally, although shown as the top left most grid point, it will be understood that any relative location within the base partition 116 and grid partition 102 may be used as the characteristic grid points 122, 124, 126. Further, as noted above, although the base partition 116 is illustrated by a 64×64 grid partition, any appropriately sized base partition 116 may be utilized to perform iterative interpolation until each grid point is resolved.
[0071] 16 is a flow chart of an example process 128 that uses the hierarchical grid 100 in mapping a warping operation from a source frame 70 to a warped frame, such as the POV warped frame 72. Image processing circuitry 28, such as the warping processing block 52, may receive input image data 64 and / or image statistics based on the input image data 64 (process block 130). In some embodiments, the warping processing block 52 may determine the image statistics on the fly and / or receive the image statistics from another processing block 54. The image processing circuitry 28 may also determine the invalid regions 118 (process block 132) and the grid partitions 102 of the hierarchical grid 100 (process block 134). For example, regions that are outside of the occlusion regions 74 and / or the active region of the display 12 may be considered invalid, and in some embodiments, the input image data 64 corresponding to the invalid regions 118 may not be fetched to conserve bandwidth. Moreover, the grid partition 102 may be determined based on image statistics, which may include whether a region is invalid and / or whether edge effects, perceptible depth changes, homogeneity, or other image features are present in the region. Furthermore, the hierarchical grid 100 may be warped according to the grid partition 102 (process block 136). Warping the hierarchical grid may include determining a mapping of characteristic grid points of the grid partition 102 to the source frame 70 (process block 138) and determining a hierarchical interpolation (process block 140). Image processing circuitry 28 may then map the input image data 64 according to the warped grid to generate warped image data (process block 142) and may output the warped image data (process block 144).As will be appreciated, applying the mapping of the input image data 64 from the source frame 70 to the destination frame (e.g., warped frame) may include applying the mapping of the warped grid to the input image data 64, or fetching corresponding input image data 64 values mapped into the warped grid and packing them into place in the warped grid. In some embodiments, occlusion regions 74 or other invalid regions 118, if present, may be filled by blending surrounding pixel values, by using image data from additional image captures, such as images captured by additional cameras 36 at another time or with a different perspective, and / or by generating new image data based on characteristics of the image 76. Thus, the processed image data 66 may be output for additional image processing or as display image data 56.
[0072] By reducing warping calculations in partitions with low probability of artifacts and performing finer warping operations in specific regions based on image statistics, processing time and / or bandwidth usage may be reduced while maintaining image quality. Thus, the present techniques for general hierarchical grid and extended POV warping improve image quality and / or increase efficiency and provide real-time or extended feedback to user changes in position / POV.
[0073] Although the above referenced flowcharts are shown in a given order, in certain embodiments, the order of the processing / decision blocks may be rearranged, changed, eliminated, and / or occur simultaneously. Additionally, the referenced flowcharts are provided as an example tool, and additional decision or process blocks may also be added depending on the implementation.
[0074] It should be understood that the specific embodiments described above are shown by way of example, and that these embodiments may be capable of various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather are intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present disclosure.
[0075] The techniques presented and claimed herein refer to and are applied to tangible objects and actual examples of a practical nature that demonstrably improve the art, and are thus not abstract, intangible, or purely theoretical. Moreover, when any claim at the end of this specification includes one or more elements recited as "means for [performing] ___ [function]" or "step for [performing] ___ [function]," it is intended that such elements be construed under 35 U.S.C. 112(f). However, for claims that include elements recited in other ways, it is intended that such elements not be construed under 35 U.S.C. 112(f).
Claims
1. an electronic display configured to display an image based at least in part on the processed image data; An image processing circuit configuration, receiving input image data corresponding to the image in a first perspective; warping the input image data from the first perspective to a second perspective to generate warped image data; determining one or more occlusion regions of the second perspective; determining filling data corresponding to said one or more occlusion regions; image processing circuitry configured to generate the processed image data by combining the warped image data and the fill data; Equipped with Determining the filling data for an occlusion region of the one or more occlusion regions receiving second input image data corresponding to the image in a third perspective; warping the second input image data from the third perspective to the second perspective to generate second warped image data; selecting a portion of the second warped image data corresponding to the occlusion region as the fill data.
2. The electronic device of claim 1 , wherein the one or more occlusion regions include portions of the image in the second perspective that are not visible in the first perspective.
3. 2. The electronic device of claim 1, wherein the image processing circuitry is configured to determine a pixel grid in a space representative of the second perspective, the grid points of the pixel grid defining a mapping from the first perspective to the second perspective.
4. The electronic device of claim 3 , wherein the image processing circuitry is configured to designate one or more portions of the pixel grid corresponding to the one or more occlusion regions as invalid regions.
5. The electronic device of claim 4 , wherein no warping operation is applied to the void regions and the input image data is not obtained for the void regions.
6. 5. The electronic device of claim 4, wherein warping the input image data comprises determining the mapping from the first perspective to the second perspective, and obtaining portions of the input image data according to the mapping to resolve the pixel grid.
7. The electronic device of claim 1 , comprising two or more cameras, the input image data and the second input image data being generated based on image capture from different ones of the two or more cameras.
8. 2. The electronic device of claim 1, wherein determining the filling data for the occlusion region of the one or more occlusion regions comprises blending a portion of the warped image data or a portion of the input image data along a perimeter of the occlusion region.
9. receiving input image data via image processing circuitry corresponding to a first point of view (POV) of an image; warping the input image data from the first POV to a second POV to generate warped image data, where warping the input image data includes determining a pixel grid in a space indicative of the second POV, where grid points of the pixel grid define a mapping from the first POV to the second POV; determining an occlusion region of the second POV, the occlusion region including a portion of the image of the second POV that is not visible in the first POV; determining filling data corresponding to said occlusion region; generating processed image data by combining the warped image data and the fill data; A method comprising:
10. The method of claim 9 , comprising reducing sampling or resampling in the occlusion regions.
11. Determining the filling data for the occlusion region comprises: analyzing image characteristics surrounding the occlusion region via a machine learning algorithm; The method of claim 10 , further comprising: estimating via the machine learning algorithm the portion of the image that corresponds to the occlusion region based at least in part on the analyzed image characteristics.
12. The method of claim 11, wherein warping the input image data comprises interpolating pixel values of the processed image data based on the pixel grid, the pixel grid comprising a hierarchical grid.
10. The method of claim 9.
13. Analysing image characteristics around the occlusion region; estimating a portion of the image that corresponds to the occlusion region based at least in part on the analyzed image characteristics; and determining the fill data based at least in part on the estimated portion of the image.
10. The method of claim 9.
14. receiving input image data corresponding to an image in a first space showing a first point of view (POV); determining a partition of a pixel grid of the second space indicative of a second POV based at least in part on the warping from the first space to the second space, where grid points of the pixel grid define a mapping to coordinates of the input image data in the first space; obtaining a portion of the input image data based at least in part on the mapping of the input image data to the coordinates; generating warped image data in the second space based at least in part on the obtained portion of the input image data according to the pixel grid; The image processing circuit configuration is configured as follows.
15. The image processing circuit configuration includes: determining an occlusion region in the second space, the occlusion region including a portion of the image of the second POV that is not visible in the first POV; 15. The image processing circuitry of claim 14, configured to determine fill data corresponding to the occlusion region, the fill data estimating the image of the second POV at a location of the occlusion region.
16. the image processing circuitry is configured to generate processed image data in the second space by blending the warped image data and the fill data; 16. The image processing circuitry of claim 15, wherein determining the filling data for the occlusion region comprises blending portions of the warped image data or portions of the input image data along a perimeter of the occlusion region.
17. Determining the filling data for the occlusion region comprises: analyzing image characteristics around the occlusion region; estimating a portion of the image that corresponds to the occlusion region based at least in part on the analyzed image characteristics; and determining the fill data based at least in part on the estimated portion of the image.
18. 15. The image processing circuitry of claim 14, wherein the pixel grid comprises a hierarchical quadtree grid.
Citation Information
Patent Citations
Predicted position decoding
JP2014532945A
Image processing apparatus and method
US20120039528A1
Systems and Methods for Depth-Assisted Perspective Distortion Correction
US20150091900A1