WO2025014684A1 - Upscaling video data - Google Patents
Upscaling video data Download PDFInfo
- Publication number
- WO2025014684A1 WO2025014684A1 PCT/US2024/036462 US2024036462W WO2025014684A1 WO 2025014684 A1 WO2025014684 A1 WO 2025014684A1 US 2024036462 W US2024036462 W US 2024036462W WO 2025014684 A1 WO2025014684 A1 WO 2025014684A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- tile
- previously
- resolution
- received version
- tiles
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
Definitions
- Streaming video can be delivered to a receiving device in a lower resolution and upscaled by the device for display. Upscaling solutions can utilize substantial processing and power resources.
- a method of upscaling video data comprises generating first resolution video data comprising a plurality of tiles. The method determines whether a first tile matches a previously - received version of the first tile. At least on condition that the first tile does not match the previously-received version, the first tile is upscaled from a first resolution to a greater second resolution. The method determines whether a second tile matches a previously-received version of the second tile. At least on condition that the second tile matches the previously-received version, the method refrains from upscaling the second tile from the first resolution to the second resolution.
- FIG. 1 Another aspect provides a computing device, comprising a processor and memory' storing instructions executable by the processor to: generate first resolution video data comprising a plurality of tiles; determine whether a first tile of the plurality of tiles matches a previously- received version of the first tile; at least on condition that the first tile does not match the previously-received version of the first tile, upscale the first tile from a first resolution to a second resolution greater than the first resolution; determine whether a second tile of the plurality of tiles matches a previously-received version of the second tile; and at least on condition that the second tile matches the previously-received version of the second tile, refrain from upscaling the second tile from the first resolution to the second resolution.
- FIG. 1 Another aspect provides a computing device configured to upscale video data, the computing device comprising a display and a processor.
- Memory stores instructions executable by the processor to: generate first resolution video data comprising a plurality of tiles; determine whether a first tile of the plurality of tiles matches a previously-received version of the first tile; at least on condition that the first tile does not match the previously -received version of the first tile, upscale the first tile from a first resolution to a second resolution greater than the first resolution and write the upscaled first tile to an output buffer to replace a prior upscaled version of the previously -received version of the first tile; determine whether a second tile of the plurality of tiles matches a previously-received version of the second tile; at least on condition that the second tile matches the previously -received version of the second tile, refrain from upscaling the second tile from the first resolution to the second resolution and maintain a prior upscaled version of the second tile in the output buffer; and write data from the
- FIG. 1 shows a computing device configured to upscale video data according to examples of the present disclosure.
- FIGS. 2 A and 2B show a block diagram of an example method of upscaling video data according to examples of the present disclosure.
- FIG. 3 is a schematic diagram of a plurality of tiles of first resolution video data in a current frame, previously-received versions of the tiles, and an output buffer comprising upscaled versions of the tiles.
- FIG. 4 is a schematic diagram showing upscaled tiles being written to the output buffer.
- FIG. 5 is a schematic diagram showing an unmatching tile comprising noise being reused in the output buffer.
- FIG. 6 is a schematic diagram of a plurality of tiles of first resolution video data with some tiles comprising a pixel difference, and an output buffer comprising previously- received upscaled versions of the tiles.
- FIG. 7 is a schematic diagram showing upscaled tiles being written to the output buffer.
- FIG. 8 is a schematic diagram of a supertile comprising a plurality of tiles of first resolution video data and an output buffer comprising previously -received upscaled versions of the tiles.
- FIG. 9 is a schematic diagram showing the tiles of the supertile being upscaled and written to the output buffer.
- FIG. 10 shows a block diagram of an example computing system.
- video is compressed and streamed in a lower resolution to a receiving device.
- the receiving device can decode and upscale the video data to a higher resolution for improved video quality for display.
- the video data can be similarly upscaled.
- upscaling solutions for video such as Super Resolution, can utilize substantial processing and power resources of the receiving device.
- examples are disclosed that relate to upscaling techniques that selectively upscale tiles comprising new information and selectively reuse previously-received tiles.
- computing devices and methods of the present disclosure selectively upscale video data in a manner that improves processing efficiency and reduces power consumption of the receiving device.
- the computing device 100 comprises a tablet computing device, smartphone, wearable computing device such as a head-mounted display, or other portable computing device.
- the systems and methods of the present disclosure may be utilized in a variety of other devices, including but not limited to monitors, televisions, and automotive displays.
- Computing device 100 includes memory 104 that stores instructions executable by one or more processor(s) 108. Such instructions can include an operating system and one or more applications.
- the memory 104 stores instructions in the form of video decoder algorithms 1 10 executable by the processor(s) 108 to receive encoded video data 114 from an external data source 116 and generate low-resolution digital video data.
- a processor 108 such as a graphics processing unit (GPU) can locally generate the low-resolution digital video data.
- GPU graphics processing unit
- Memory 104 also stores instructions in the form of video upscaling algorithms 118 executable by the processor(s) 108 to upscale tiles of the video data from a first (low) resolution to a second resolution greater than the first resolution.
- the encoded video data 114 may have a 720p resolution (1280 x 720 pixels), and the high-resolution video 120 generated by the upscaling algorithms 118 may have a 4K resolution (3840 x 2160 pixels). In other examples, any suitable lower and higher resolutions may be utilized.
- the high-resolution video data 120 is delivered to a display 132 for display.
- each frame of the first resolution video data comprises a plurality of tiles, with each tile comprising a plurality of pixels.
- each tile can be composed of a 100 x 100 array of pixels arranged in a square.
- tiles can comprise any suitable number or pixels arranged in any suitable shapes.
- memory 104 stores instructions in the form of tile selection algorithms 124 executable by the processor(s) 108 to determine whether tiles of the video data in a current frame 126 match previously -received versions of the tiles stored in memory. Where a tile matches a previously-received version of the tile, the tile selection algorithms 124 refrain from upscaling the tile and maintain a prior upscaled version of the second tile in the output buffer 128. Where a tile does not match a previously- received version of the tile, the tile selection algorithms 124 upscale the tile and write the upscaled tile to the output buffer 128 to replace a prior upscaled version of the previously -received version of the tile.
- the present disclosure can upscale less than all of the tiles in a video frame, thereby significantly- improving processing efficiency and reducing power consumption and computational load of the computing device. Additional details regarding memory 104, processor(s) 108, tile selection algorithms 124, and other components, subsystems, and algorithms of computing device 100 are described further below with reference to FIG. 10.
- FIGS. 2A - 2B a flow diagram is provided depicting an example method 200 of upscaling video data according to examples of the present disclosure.
- the following description of method 200 is provided with reference to the computing device 100 and related components described herein and shown in FIGS. 1 and 3-10. In other examples, the method 200 can be performed with other computing devices and in other contexts using other suitable devices and components.
- the method 200 includes generating first resolution video data comprising a plurality- of tiles that each comprise a plurality of pixels.
- the video data can be received in a plurality of frames of video data, with each frame comprising a plurality of pixels, such as 1280 x 720 pixels.
- the tile selection algorithms 124 can partition each frame into a plurality 7 of tiles that each comprise a plurality of pixels, such as 100 x 100 pixels.
- the tile selection algorithms 124 compare tiles in a current frame with corresponding tiles in a previously-received frame to determine whether a cunent tile matches a corresponding previously-received version of that tile.
- FIG. 3 a plurality of tiles numbered 1-16 from a current frame 126 of the low (first) resolution video data are schematically illustrated.
- the tiles 1-16 correspond to a portion 136 of the upscaled higher-resolution image show n on display 132 in FIG. 1.
- the portion 136 is enlarged in FIG. 1 for ease of description.
- FIG. 3 also schematically depicts previously-received, low (first) resolution versions of tiles 1-16 from the previously -received frame 125 stored in memory 104.
- each frame of the low (first) resolution video data is partitioned into a plurality of tiles that each include a plurality of pixels.
- each tile is composed of a 20 x 10 array of pixels arranged in a rectangle.
- each frame in this example is partitioned into 4,608 tiles (each comprising a 20 x 10 array of pixels).
- any suitable numbers of pixels per tile, any suitable numbers of tiles per frame, and/or any suitable shapes of tiles and pixel groupings may be utilized.
- each frame can be partitioned into tiles that overlap one another, such as a plurality of 20 x 10 pixel tiles in which neighboring tiles overlap and share 10 pixels between the tiles.
- the size and/or shape of the tiles can be predetermined, with the upscaling algorithms 118 (such as a Super Resolution algorithm) trained for the predetermined tile size and shape.
- the tile size and/or shape can be optimized for the upscaling algorithms 118 and/or tile selection algorithms 124 that are utilized.
- the tile size, shape and/or location can be updated at runtime to provide additional reductions in processing and power consumption.
- a portion of the display 132 is displaying a working window in which the content is changing (such as a movie), and different content outside of the working window is not changing.
- the system can organize the tiles so that the window borders align with the tile borders. For example, the system can select a tile size, shape and/or location so that the window borders align with the tile borders. In this manner, further reductions in processing resources can be realized.
- FIG. 3 also schematically illustrates the output buffer 128 and the portion 136 of the upscaled higher-resolution image shown on display 132 in FIG. 1, which portion also corresponds to tiles 1-16 in the previously -received frame 125.
- the frame in the output buffer 128 has been written to the display 132 such that the image on the display represents the output buffer frame.
- the current frame 126 represents the next frame subsequent to this frame in the output buffer 128.
- the previously-received frame 125 represents the frame of low (first) resolution video data immediately preceding the current frame 126.
- the entire contents of the current low (first) resolution frame 126 are held in memory as a whole frame. In other examples, the entire contents of the current low (first) resolution frame 126 are not simultaneously held in memory as a whole frame. In these examples, the memory contains a portion of the current frame 126 at any given time (i.e., a few tiles), with some or all of these tiles then passed on to the upscaling algorithms 118, and then replaced in memory with more tiles of the current frame. Additionally, in some examples the output buffer 128 is used as a single buffer containing the high (second) resolution frame that is currently being displayed on the screen.
- the output buffer 128 is used as a double buffer comprising one portion containing the high resolution frame being read by the display controller and currently displayed, and a second portion containing portions of or the entire next high resolution frame being written by the upscaling algorithms 118.
- the display 132 is shown displaying a frame of streaming video comprising upscaled image data of a wizard 140 casting a flaming ball 142 in front of a mountainous backdrop.
- the fireball 142 has moved slightly further away from the wizard’s hand. Accordingly and with reference to the portion 136 of the upscaled higher-resolution image shown in FIG. 1 and depicted in the output buffer 128 of FIG.
- this slight displacement of the fireball 142 in the next frame will be represented by changes in the pixels of left-side tiles 1, 2, 5, 6, 9, 10, 13, and 14 as compared to these pixels in the previously-received frame 125. These changes are schematically shown in left-side tiles 1’, 2‘, 5’. 6’, 9‘, 10’, 13’, and 14’ of the current frame 126 in FIG. 3.
- the right-side tiles of the portion 136 of the upscaled higher-resolution image are depicting portions of the mountainous backdrop behind the fireball 142 that do not change from the previously-received frame in the output buffer 128 to the current frame 126. Accordingly, in the next frame of the streaming video (current frame 126) with the fireball 142 displaced just slightly further from the wizard’s hand, the pixels in these right-side tiles 3, 4, 7, 8, 11, 12, 15, and 16 in the next frame will be substantially or entirely unchanged from pixels in the corresponding right-side tiles of the previously -received versions of these tiles in the previously-received frame 125.
- the tile selection algorithms 124 selectively reuse previously -received tiles in a previous frame that match tiles in a current frame, and correspondingly refrain from upscaling those matching tiles in the current frame.
- the method 200 includes determining whether a first tile of the plurality of tiles matches a previously-received version of the first tile.
- the tile selection algorithms 124 can determine whether tile 1 ’ in the current frame 126 matches the previously-received version of this tile in the previously -received frame 125, tile 1.
- determining whether a first tile matches the previously-received version of the first tile comprises comparing pixel values of the first tile to pixel values of the previously-received version of the first tile.
- comparing the pixel values of the first tile to the pixel values of the previously-received version of the first tile comprises comparing hashed pixel values of the first tile to hashed pixel values of the previously-received version of the first tile.
- the tile selection algorithms 124 can apply a hash function to tile 1 ’ in the current frame 126 and to the previously -received version tile 1 in the previously-received frame 125. Where the generated hash values of both tiles are not identical, the tile selection algorithms 124 determine tile 1 ’ in the current frame 126 does not match the previously-received version of tile 1 in the previously-received frame 125.
- the method 200 includes comparing a first subset of a first plurality of bits of a first tile to a second subset of a second plurality of bits of a previously-received version of the first tile, and refraining from comparing another subset of the first plurality of bits to a different subset of the second plurality of bits.
- each pixel includes 3 color channels of 8 bits each
- the method can compare 6 of the 8 bits for each channel.
- comparing fewer than all of the bits of each tile can provide a more flexible and realistic comparison between two tiles that still identifies tiles that differ materially, while also increasing the quantity of matching tiles. In this manner, and in another potential advantage of the present disclosure, the reuse of previously- received tiles can be further increased to drive further processing efficiencies and reduced power requirements.
- the method 200 includes upscaling the first tile from a first resolution to a second resolution greater than the first resolution.
- the method 200 includes upscaling the first tile from a first resolution to a second resolution greater than the first resolution.
- one or more pixels in each of the left-side tiles 1 ’, 2’, 5’, 6’, 9’, 10’, 13’, and 14’ in the current frame 126 have been identified as being different from corresponding pixels in corresponding tiles 1, 2. 5, 6, 9, 10, 13, and 14 in the previously-received frame 125. Accordingly and as depicted in FIG. 4, each of the left-side tiles 1’. 2’, 5’, 6’, 9’.
- the method 200 also includes determining whether a second tile of the plurality of tiles matches a previously -received version of the second tile.
- the method 200 includes, at least on condition that the second tile matches the previously -received version of the second tile, refraining from upscaling the second tile from the first resolution to the second resolution, and maintaining the upscaled version of the second tile in the output buffer.
- each of the right-side tiles 3, 4, 7, 8, 11, 12, 15. and 16 in the current frame 126 are determined to match the corresponding tiles 3, 4, 7, 8, 11, 12, 15, and 16 in the previously-received frame 125.
- the right-side tiles of the portion 136 of the upscaled higher-resolution image are depicting portions of the mountainous backdrop behind the fireball 142 that do not change from the previously-received frame in the output buffer 128 to the current frame 126.
- next frame current frame 126) of the streaming video with the fireball 142 displaced just slightly further from the wizard’s hand
- the pixels in these right-side tiles in the next frame will be substantially or entirely unchanged from pixels in the corresponding right-side tiles of the previously-received versions of these tiles in the previously -received frame 125.
- the method refrains from upscaling these tiles from the first resolution to the second resolution, and correspondingly maintains the previously-upscaled versions of these tiles in the output buffer 128.
- the additional processing resources and power requirements that would otherwise be incurred in upscaling and writing these tiles to the output buffer 128 is saved.
- the tile selection algorithms 124 can identify that a difference between a tile and a previously-received version of the tile represents noise in the video data as opposed to other differences that correspond to substantive changes between frames of the image data.
- the method 200 includes determining at least one difference between a second tile and the previously-received version of the second tile.
- the method 200 includes determining that the at least one difference represents noise in the video data. For example, statistical techniques or w avelet transforms can identify pixels that are substantially different from neighboring pixels and likely represent noise. In other examples, frequency domain analyses can identify frequencies that are not present in the source video signal.
- the method 200 includes, based at least in part on determining that the at least one difference represents noise in the video data, determining that the second tile matches the previously -received version of the second tile and refraining from upscaling the second tile from the first resolution to the second resolution.
- the tile selection algorithms 124 determine that the difference between tile 6’ in the current frame 126 and the previously-received version of the tile 6 in the previously-received frame 125 represents noise in the video data 114. Accordingly and with reference to FIG. 5, the tile selection algorithms 124 can refrain from upscaling tile 6 ?
- the method 200 includes analyzing metadata associated with the first tile.
- the method 200 includes identifying in the metadata at least one pixel difference in the first tile, with such pixel difference representing at least one pixel containing data different from the data in the corresponding pixel in the previously-received version of first tile.
- the method 200 includes, at least on condition of identifying the at least one pixel difference in the first tile, upscaling the first tile from the first resolution to the second resolution greater than the first resolution.
- the tile selection algorithms 124 analyze the metadata 146 to determine that tiles ID, 2D, 5D, 6D, 9D, 10D, 13D, and 14D in the current frame 126 each contain a pixel difference as compared to the corresponding pixels in the corresponding previously-received versions of each tile. Accordingly and as depicted in FIG. 7, at least on condition of identifying the pixel differences in each of the tiles ID, 2D, 5D, 6D, 9D, 10D, 13D, and 14D, these tiles are upscaled and written to the output buffer 128 to replace the prior upscaled versions of the previously-received versions of these tiles in the buffer.
- the first resolution video data is partitioned into a plurality of supertiles, where each supertile is composed of two or more individual tiles.
- each individual tile comprises a plurality of pixels, such as 100 x 100 pixels.
- a supertile 150 of the first resolution video data is composed of 16 individual tiles.
- the method 200 includes determining whether any tiles that define the supertile do not match a previously-received version of that tile.
- the tile selection algorithms 124 use any of the methods discussed above to determine that tile 10’ does not match the previously-received version of this tile.
- the method 200 includes, at least on condition that at least one tile that defines the supertile does not match a previously -received version of the at least one tile, upscaling all tiles that define the supertile from the first resolution to the second resolution.
- upscaling all tiles that define the supertile from the first resolution to the second resolution With reference now to FIG. 9, in this example, at least on condition of determining that tile 10’ does not match the previously-received version of this tile, all 16 tiles that define the supertile 150 are upscaled and written to the output buffer 128 to replace the previously-received versions of these tiles.
- the method can more efficiently determine whether to upscale multiple tiles comprising a supertile, with such determinations based on an analysis of a smaller number of those tiles in some examples. In this manner, fewer processing and/or memory resources can be utilized in generating an upscaled, higher resolution image in the output buffer 128.
- supertiles can be defined to contain any suitable number of individual tiles, and each individual tile can comprise any suitable number of pixels. Additionally, where the tile selection algorithms 124 determine that all pixels in all of the tiles of a supertile match the pixels in the previously -received versions of those tiles, none of the pixels in the tiles of the supertile in the current frame 126 are upscaled from the first resolution to the second resolution. Advantageously and in this case, the previously-upscaled versions of the tiles in the output buffer 128 are maintained and are written from the output buffer to the display.
- the methods and processes described herein may be tied to a computing system of one or more computing devices.
- such methods and processes may be implemented as a computer-application program or sendee, an application-programming interface (API), a library, and/or other computer-program product.
- API application-programming interface
- FIG. 10 schematically shows a non-hmiting embodiment of a computing system 300 that can enact one or more of the examples described above.
- computing system 300 can be used to execute instructions to perform the method 200 of FIGS. 2A-2B and/or potentially perform other functions.
- Computing system 300 is shown in simplified form.
- Computing system 300 can take the form of one or more personal computers, server computers, tablet computers, network computing devices, mobile computing devices, mobile communication devices (e.g., smart phone), wearable computing devices, and/or other computing devices.
- the computing device 100 of FIG. 1 comprises one or more aspects of the computing system 300.
- Computing system 300 includes a logic subsystem 302, a storage subsystem 304, and a display subsystem 306.
- Computing system 300 can optionally include an input subsystem 308, a communication subsystem 310, and/or other components not shown in FIG. 10.
- Logic subsystem 302 includes one or more physical devices configured to execute instructions.
- logic subsystem 302 can be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions can be implemented to perform a task, implement a data t pe, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.
- logic subsystem 302 can be used to execute instructions to perform the method 200 of FIGS. 2A-2B.
- Logic subsystem 302 can include one or more processors and/or microcontrollers configured to execute software instructions. Additionally or alternatively, logic subsystem 302 can include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. Processors and microcontrollers of logic subsystem 302 can be single-core or multi-core, and the instructions executed thereon can be configured for sequential, parallel, and/or distributed processing. Individual components of logic subsystem 302 optionally can be distributed among two or more separate devices, which can be remotely located and/or configured for coordinated processing. Aspects of logic subsystem 302 can be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.
- Storage subsystem 304 includes one or more physical devices configured to hold instructions executable by logic subsystem 302 to implement the methods and processes described herein.
- storage subsystem 304 can hold instructions executable to perform the method 200 of FIGS. 2A-2B, and/or potentially perform other functions.
- the state of storage subsystem 304 can be transformed — e.g., to hold different data.
- Storage subsystem 304 can include removable and/or built-in devices.
- Storage subsystem 304 can include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory' (e.g., RAM, EPROM, EEPROM, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), among others.
- Storage subsystem 304 can include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.
- storage subsystem 304 includes one or more physical devices.
- aspects of the instructions described herein alternatively may be propagated by a communication medium (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for a finite duration.
- a communication medium e.g., an electromagnetic signal, an optical signal, etc.
- logic subsystem 302 and storage subsystem 304 can be integrated together into one or more hardware-logic components.
- Such hardware-logic components can include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC / ASICs), program- and application-specific standard products (PSSP / ASSPs), SoCs, and complex programmable logic devices (CPLDs), for example.
- program and “application” may be used to describe an aspect of computing system 300 implemented to perform a particular function.
- a program or application may be instantiated via logic subsystem 302 executing instructions held by storage subsystem 304. It will be understood that different programs and applications may be instantiated from the same service, code block, object, library, routine, API, function, etc. Likewise, the same program or application may be instantiated by different services, code blocks, objects, routines, APIs, functions, etc.
- program and “application” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.
- Display subsystem 306 can be used to present a visual representation of data held by storage subsystem 304.
- This visual representation can take the form of images, text, a graphical user interface (GUI), or other displayed content.
- GUI graphical user interface
- Display subsystem 306 can include one or more display devices utilizing virtually any type of technology’. Such display devices can be combined with logic subsystem 302 and/or storage subsystem 304 in a shared enclosure, or such display devices can be peripheral display devices.
- input subsystem 308 can comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or joystick.
- the input subsystem 308 can comprise or interface with selected natural user input (NUI) componentry’.
- NUI natural user input
- Such componentry can be integrated or peripheral, and the transduction and/or processing of input actions can be handled on- or off-board.
- Example NUI componentry' can include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electricfield sensing componentry’ for assessing brain activity 7 .
- input subsystem 308 can be configured to receive user inputs while performing the method 300 and/or displaying content.
- communication subsystem 310 can be configured to communicatively couple computing system 300 with one or more other computing devices.
- Communication subsystem 310 can include wired and/or wireless communication devices compatible with one or more different communication protocols.
- the communication subsystem can be configured for communication via a wireless telephone network, or a wired or wireless local- or wide-area network.
- communication subsystem 310 can allow computing system 300 to send and/or receive messages to and/or from other devices via a network such as the Internet.
- communication subsystem 310 can be used receive or send data to another computing system.
- communication subsystem may be used to communicate with other computing systems during execution of method 300 in a distributed computing environment.
- One aspect provides a method of upscaling video data, the method comprising: generating first resolution video data comprising a plurality of tiles that each comprise a plurality of pixels; determining whether a first tile of the plurality of tiles matches a previously-received version of the first tile; at least on condition that the first tile does not match the previously- received version of the first tile, upscaling the first tile from a first resolution to a second resolution greater than the first resolution; determining whether a second tile of the plurality of tiles matches a previously-received version of the second tile; and at least on condition that the second tile matches the previously -received version of the second tile, refraining from upscaling the second tile from the first resolution to the second resolution.
- the method may additionally or alternatively include, wherein determining whether the first tile matches the previously-received version of the first tile comprises comparing pixel values of the first tile to pixel values of the previously - received version of the first tile.
- the method may additionally or alternatively include, wherein comparing the pixel values of the first tile to the pixel values of the previously-received version of the first tile comprises comparing hashed pixel values of the first tile to hashed pixel values of the previously -received version of the first tile.
- the method may additionally or alternatively include, wherein the first tile comprises a first plurality of bits and the previously-received version of the first tile comprises a second plurality of bits, the method further comprising comparing a first subset of the first plurality of bits to a second subset of the second plurality of bits and refraining from comparing another subset of the first plurality of bits to a different subset of the second plurality of bits.
- the method may additionally or alternatively include, wherein determining whether the second tile matches a previously-received version of the second tile comprises: determining at least one difference between the second tile and the previously-received version of the second tile; determining that the at least one difference represents noise in the video data; and based at least in part on determining that the at least one difference represents noise in the video data, determining that the second tile matches the previously-received version of the second tile and refraining from upscaling the second tile from the first resolution to the second resolution.
- the method may additionally or alternatively include, wherein determining whether the first tile matches the previously-received version of the first tile comprises analyzing metadata associated with the first tile.
- the method may additionally or alternatively include, wherein analyzing the metadata comprises: identifying in the metadata at least one pixel difference in the first tile; and at least on condition of identifying the at least one pixel difference in the first tile, upscaling the first tile from the first resolution to the second resolution greater than the first resolution.
- the method may additionally or alternatively include, wherein a supertile of the first resolution video data comprises the first tile and a third tile, the method further comprising: determining whether any tiles that define the supertile do not match a previously -received version of that tile; and at least on condition that at least one tile that defines the supertile does not match a previously-received version of the at least one tile, upscaling all tiles that define the supertile from the first resolution to the second resolution.
- Another aspect provides computing device, comprising: a processor; and memory storing instructions executable by the processor to: generate first resolution video data comprising a plurality of tiles that each comprise a plurality of pixels: determine whether a first tile of the plurality of tiles matches a previously -received version of the first tile; at least on condition that the first tile does not match the previously-received version of the first tile, upscale the first tile from a first resolution to a second resolution greater than the first resolution; determine whether a second tile of the plurality of tiles matches a previously -received version of the second tile; and at least on condition that the second tile matches the previously -received version of the second tile, refrain from upscaling the second tile from the first resolution to the second resolution.
- the computing device may additionally or alternatively include, wherein the instructions are executable to determine whether the first tile matches the previously-received version of the first tile by comparing pixel values of the first tile to pixel values of the previously -received version of the first tile.
- the computing device may additionally or alternatively include, wherein comparing the pixel values of the first tile to pixel values of the previously-received version of the first tile comprises comparing hashed pixel values of the first tile to hashed pixel values of the previously- received version of the first tile.
- the computing device may additionally or alternatively include, wherein the first tile comprises a first plurality of bits and the previously-received version of the first tile comprises a second plurality of bits, and the instructions are executable to compare a first subset of the first plurality of bits to a second subset of the second plurality of bits and refrain from comparing another subset of the first plurality of bits to a different subset of the second plurality of bits.
- the computing device may additionally or alternatively include, wherein determining whether the second tile matches a previously-received version of the second tile comprises: determining at least one difference between the second tile and the previously-received version of the second tile; determining that the at least one difference represents noise in the video data; and based at least in part on determining that the at least one difference represents noise in the video data, determining that the second tile matches the previously-received version of the second tile and refraining from upscaling the second tile from the first resolution to the second resolution.
- the computing device may additionally or alternatively include, wherein determining whether the first tile matches the previously -received version of the first tile comprises analyzing metadata associated with the first tile.
- the computing device may additionally or alternatively include, wherein analyzing the metadata comprises identifying in the metadata at least one pixel difference in the first tile, and at least on condition of identify ing the at least one pixel difference in the first tile, upscaling the first tile from the first resolution to the second resolution greater than the first resolution.
- the computing device may additionally or alternatively include, wherein a supertile of the first resolution video data comprises the first tile and a third tile, and the instructions are executable to: determine whether any tiles that define the supertile do not match a previously -received version of that tile, and at least on condition that at least one tile that defines the supertile does not match a previously -received version of the at least one tile, upscale all tiles that define the supertile from the first resolution to the second resolution.
- FIG. 1 Another aspect provides a computing device configured to upscale video data, the computing device comprising: a display; a processor; and memory storing instructions executable by the processor to: generate first resolution video data comprising a plurality of tiles that each comprise a plurality of pixels; determine whether a first tile of the plurality of tiles matches a previously -received version of the first tile; at least on condition that the first tile does not match the previously-received version of the first tile, upscale the first tile from a first resolution to a second resolution greater than the first resolution and write the upscaled first tile to an output buffer to replace a prior upscaled version of the previously-received version of the first tile; determine whether a second tile of the plurality of tiles matches a previously -received version of the second tile; at least on condition that the second tile matches the previously-received version of the second tile, refrain from upscaling the second tile from the first resolution to the second resolution and maintain a prior upscaled version of the second tile in
- the computing device may additionally or alternatively include, wherein the instructions are executable to determine whether the first tile matches the previously-received version of the first tile comprises comparing pixel values of the first tile to pixel values of the previously-received version of the first tile.
- the computing device may additionally or alternatively include, wherein comparing the pixel values of the first tile to pixel values of the previously -received version of the first tile comprises comparing hashed pixel values of the first tile to hashed pixel values of the previously-received version of the first tile.
- the computing device may additionally or alternatively include, wherein the first tile comprises a first plurality of bits and the previously -received version of the first tile comprises a second plurality of bits, and the instructions are executable to compare a first subset of the plurality of bits to a second subset of the second plurality of bits and refrain from comparing another subset of the first plurality of bits to a different subset of the second plurality of bits.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
Abstract
Description
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP24745858.1A EP4714116A1 (en) | 2023-07-12 | 2024-07-01 | Upscaling video data |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/350,975 | 2023-07-12 | ||
| US18/350,975 US20250022095A1 (en) | 2023-07-12 | 2023-07-12 | Upscaling video data |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025014684A1 true WO2025014684A1 (en) | 2025-01-16 |
Family
ID=91960453
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/036462 Pending WO2025014684A1 (en) | 2023-07-12 | 2024-07-01 | Upscaling video data |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250022095A1 (en) |
| EP (1) | EP4714116A1 (en) |
| WO (1) | WO2025014684A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8200896B2 (en) * | 2008-06-06 | 2012-06-12 | Microsoft Corporation | Increasing remote desktop performance with video caching |
| US20170302936A1 (en) * | 2014-09-30 | 2017-10-19 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
| US20220237741A1 (en) * | 2021-01-25 | 2022-07-28 | Lemon Inc. | Image/video processing |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4893116A (en) * | 1987-11-16 | 1990-01-09 | Ncr Corporation | Logical drawing and transparency circuits for bit mapped video display controllers |
| US6493041B1 (en) * | 1998-06-30 | 2002-12-10 | Sun Microsystems, Inc. | Method and apparatus for the detection of motion in video |
| US6545719B1 (en) * | 2000-03-31 | 2003-04-08 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for concealing interpolation artifacts in a video interlaced to progressive scan converter |
| US6937245B1 (en) * | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
| US6911983B2 (en) * | 2003-03-12 | 2005-06-28 | Nvidia Corporation | Double-buffering of pixel data using copy-on-write semantics |
| US7218796B2 (en) * | 2003-04-30 | 2007-05-15 | Microsoft Corporation | Patch-based video super-resolution |
| US20090161756A1 (en) * | 2007-12-19 | 2009-06-25 | Micron Technology, Inc. | Method and apparatus for motion adaptive pre-filtering |
| US9071843B2 (en) * | 2009-02-26 | 2015-06-30 | Microsoft Technology Licensing, Llc | RDP bitmap hash acceleration using SIMD instructions |
| US9064468B2 (en) * | 2010-07-19 | 2015-06-23 | Ati Technologies Ulc | Displaying compressed supertile images |
| US20120106650A1 (en) * | 2010-08-24 | 2012-05-03 | Siegman Craig S | Method and System for Block and DVC Compression |
| US10013474B2 (en) * | 2011-10-25 | 2018-07-03 | The United States Of America, As Represented By The Secretary Of The Navy | System and method for hierarchical synchronization of a dataset of image tiles |
| GR20140100528A (en) * | 2014-10-20 | 2016-06-01 | Arm Limited | A title based graphics processor and a method of performing graphics processing in a tile based graphics processor |
| US10547873B2 (en) * | 2016-05-23 | 2020-01-28 | Massachusetts Institute Of Technology | System and method for providing real-time super-resolution for compressed videos |
| US10368080B2 (en) * | 2016-10-21 | 2019-07-30 | Microsoft Technology Licensing, Llc | Selective upsampling or refresh of chroma sample values |
| US10701394B1 (en) * | 2016-11-10 | 2020-06-30 | Twitter, Inc. | Real-time video super-resolution with spatio-temporal networks and motion compensation |
| US10636392B2 (en) * | 2018-05-02 | 2020-04-28 | Apple Inc. | Electronic display partial image frame update systems and methods |
| US10521883B1 (en) * | 2018-07-26 | 2019-12-31 | Raytheon Company | Image turbulence correction using tile approach |
| EP4060998A4 (en) * | 2019-11-15 | 2023-11-15 | Korea Advanced Institute of Science and Technology | SYSTEM AND METHOD FOR LIVE VIDEO INGESTION |
-
2023
- 2023-07-12 US US18/350,975 patent/US20250022095A1/en active Pending
-
2024
- 2024-07-01 WO PCT/US2024/036462 patent/WO2025014684A1/en active Pending
- 2024-07-01 EP EP24745858.1A patent/EP4714116A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8200896B2 (en) * | 2008-06-06 | 2012-06-12 | Microsoft Corporation | Increasing remote desktop performance with video caching |
| US20170302936A1 (en) * | 2014-09-30 | 2017-10-19 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
| US20220237741A1 (en) * | 2021-01-25 | 2022-07-28 | Lemon Inc. | Image/video processing |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4714116A1 (en) | 2026-03-25 |
| US20250022095A1 (en) | 2025-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11373272B2 (en) | Digital gradient signal processing system and method for signals comprising at least three dimensions | |
| US10846821B2 (en) | Digital gradient signal processing system and method for video signals | |
| US10534498B2 (en) | Media system having three dimensional navigation via dynamic carousel | |
| US20140152676A1 (en) | Low latency image display on multi-display device | |
| US20200020067A1 (en) | Concurrent binning and rendering | |
| US20200142571A1 (en) | Optimizing Window Resize Actions for Remoted Applications | |
| US20170249192A1 (en) | Downloading visual assets | |
| US20260032318A1 (en) | Video processing method, electronic device and medium | |
| US20250022095A1 (en) | Upscaling video data | |
| CN110381365A (en) | Video takes out frame method, device and electronic equipment | |
| CN115731313A (en) | SVG format picture processing method, device, equipment, medium and product | |
| WO2022161199A1 (en) | Image editing method and device | |
| US11877036B2 (en) | Rendering scrolling captions | |
| CN109002361A (en) | Data processing method, distribution method, electronic equipment, client and storage medium | |
| US11785281B2 (en) | System and method for decimation of image data for multiviewer display | |
| US12554378B2 (en) | Media content item selection | |
| CN113111035B (en) | Special effect video generation method and equipment | |
| CN113542802B (en) | Video transition method and device | |
| US20180191963A1 (en) | Video stream delimiter for combined frame | |
| US11170043B2 (en) | Method for providing visualization of progress during media search | |
| WO2021119052A1 (en) | Methods and systems for trick play using partial video file chunks | |
| US20130162685A1 (en) | Interactive display of very large files using b plus trees and stabilized subsampling | |
| CA3202614C (en) | System and method for decimation of image data for multiviewer display | |
| WO2025245716A1 (en) | Oled anti-aging recording and compensation variability | |
| KR101348667B1 (en) | Displaying method and terminal having multiple displays |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24745858 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024745858 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| ENP | Entry into the national phase |
Ref document number: 2024745858 Country of ref document: EP Effective date: 20251217 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024745858 Country of ref document: EP |