Coordinate processing system and method, chip and electronic device

CN122368192BActive Publication Date: 2026-10-27MOORE THREADS TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202610803302.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-06-04
Publication Date
2026-10-27
Estimated Expiration
2046-06-04

AI Technical Summary

Technical Problem

由于图块的末尾信号(tile_last)会依赖无效坐标,无法在坐标生成阶段剔除无效坐标,相关技术往往由后级模块在最终阶段根据裁剪边界判断是否将无效坐标舍弃,无效坐标不仅会在流水线传输过程中占用传输带宽,增加动态功耗,并且后级必须为无效坐标预留缓存与控制资源,增加了硬件面积

Benefits of technology

[0022]通过这种方式,本公开实施例的坐标处理系统可在剔除无效坐标、不下发裁剪区域外坐标数据的前提下,引入一种新的第一标识生成机制,用于在裁剪后的有效坐标序列中,生成一个承载图块结束语义的替代坐标,以使下游的后级模块能够正确识别图块的有效坐标序列(也即裁剪后的图块)的边界,避免流水线锁死或状态紊乱,并降低了下游的后级模块的功耗与硬件面积。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122368192B_ABST
    Figure CN122368192B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a coordinate processing system and method, a chip and an electronic device, and belongs to the technical field of computers. The coordinate processing system comprises a coordinate generation unit, a configuration unit and a processing unit. The coordinate generation unit is configured to generate a candidate coordinate sequence of a tile, wherein the candidate coordinate sequence covers the geometric range of the tile, and the tile is a segmented unit of an image to be rendered. The configuration unit is configured to obtain boundary information of an effective rendering area. The processing unit is configured to determine an effective coordinate sequence of the tile and a first identifier according to the boundary information of the effective rendering area and the candidate coordinate sequence of the tile, wherein the first identifier is used to indicate the last effective coordinate in the effective coordinate sequence, so as to realize coordinate transmission based on the first identifier. The embodiments of the present disclosure can enable a downstream post-stage module to correctly identify the boundary of the effective coordinate sequence of the tile, avoid pipeline lock or state disorder, and reduce the power consumption and hardware area of the downstream post-stage module.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and in particular to a coordinate processing system and method, chip and electronic device. Background Technology

[0002] In graphics systems, tile-based rendering is a graphics rendering technique that divides an image into small blocks (tiles) and processes them one by one. In tile-based rendering, a frame of image can be divided into multiple tiles of a fixed size. A set of pixel coordinates is generated within each tile, and these pixel coordinates are sequentially sent to subsequent modules (such as rasterization, depth testing, shading, or cache writing modules) so that the subsequent modules can process the image at the tile level. The end signal (tile_last) of each tile indicates the end of the current tile.

[0003] Graphics systems typically support clipping mechanisms, which define clipping boundaries by specifying the effective rendering area and treat coordinates outside these boundaries as invalid. Since the tile's last signal (tile_last) depends on invalid coordinates, it's impossible to remove them during coordinate generation. Related techniques often rely on subsequent modules to determine whether to discard invalid coordinates based on the clipping boundaries in the final stage. Invalid coordinates not only consume bandwidth and increase dynamic power consumption during pipeline transmission, but subsequent modules must also reserve buffering and control resources for them, increasing hardware footprint. Summary of the Invention

[0004] This disclosure presents a coordinate processing system and method, a chip, and an electronic device.

[0005] According to one aspect of this disclosure, a coordinate processing system is provided, the coordinate processing system comprising: a coordinate generation unit, a configuration unit, and a processing unit; the coordinate generation unit is used to generate a candidate coordinate sequence of a patch, wherein the candidate coordinate sequence covers the geometric range of the patch, and the patch is a segmentation unit of an image to be rendered; the configuration unit is used to obtain boundary information of an effective rendering area; the processing unit is used to determine an effective coordinate sequence of the patch and a first identifier based on the boundary information of the effective rendering area and the candidate coordinate sequence of the patch, wherein the first identifier is used to indicate the last effective coordinate in the effective coordinate sequence, so as to realize coordinate transfer based on the first identifier.

[0006] In one possible implementation, the processing unit includes an identifier generation unit and a clipping and filtering unit. The clipping and filtering unit is used to: perform clipping judgment on the candidate coordinate sequence based on the boundary information of the effective rendering area to determine the effective coordinate sequence of the patch; the identifier generation unit is used to: determine the first identifier of the patch based on the boundary information of the effective rendering area and the effective coordinate sequence of the patch.

[0007] In one possible implementation, the clipping and filtering unit is configured to: determine the candidate coordinates as invalid coordinates when the candidate coordinates in the candidate coordinate sequence are outside the boundary information of the effective rendering area; the clipping and filtering unit is further configured to: determine the candidate coordinates as valid coordinates when the candidate coordinates in the candidate coordinate sequence are within the boundary information of the effective rendering area, and aggregate each of the valid coordinates to obtain the valid coordinate sequence of the tile.

[0008] In one possible implementation, the coordinate generation unit is further configured to: mark the last coordinate in the candidate coordinate sequence of the tile as a second identifier; the identifier generation unit is further configured to: determine the second identifier as the first identifier if the candidate coordinate corresponding to the second identifier belongs to the valid coordinate sequence; and determine the first identifier of the tile based on the boundary information of the valid rendering area and at least one of the valid coordinate sequence if the candidate coordinate corresponding to the second identifier does not belong to the valid coordinate sequence.

[0009] In one possible implementation, the boundary information of the effective rendering area includes at least two clipping boundary directions; the identifier generation unit is further configured to: determine a first coordinate component based on the effective coordinate sequence in the un-trunculated direction and determine a second coordinate component based on the boundary information in the trunculated direction when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction; and mark the first identifier based on the effective coordinates determined by the first coordinate component and the second coordinate component.

[0010] In one possible implementation, the boundary information of the effective rendering area includes at least two clipping boundary directions; the identifier generation unit is further configured to: mark the first identifier based on the effective coordinates determined by the intersection of the boundary information when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated simultaneously in multiple clipping boundary directions.

[0011] In one possible implementation, the coordinate processing system further includes a pipelined register unit; the pipelined register unit is used to synchronize, buffer, and time-align the valid coordinate sequence of at least one tile from the processing unit with the first identifier.

[0012] According to one aspect of this disclosure, a coordinate processing method is provided, the method comprising: generating a candidate coordinate sequence of a patch, wherein the candidate coordinate sequence covers the geometric range of the patch, the patch being a segmentation unit of an image to be rendered; obtaining boundary information of an effective rendering region of the patch; and determining an effective coordinate sequence of the patch and a first identifier based on the boundary information of the effective rendering region and the candidate coordinate sequence of the patch, wherein the first identifier is used to indicate the last effective coordinate in the effective coordinate sequence, so as to realize coordinate transfer based on the first identifier.

[0013] In one possible implementation, determining the effective coordinate sequence and first identifier of the tile based on the boundary information of the effective rendering area and the candidate coordinate sequence of the tile includes: performing a cropping judgment on the candidate coordinate sequence based on the boundary information of the effective rendering area to determine the effective coordinate sequence of the tile; and determining the first identifier of the tile based on the boundary information of the effective rendering area and the effective coordinate sequence of the tile.

[0014] In one possible implementation, the candidate coordinate sequence is clipped based on the boundary information of the effective rendering area to determine the effective coordinate sequence of the tile. This includes: when the candidate coordinates in the candidate coordinate sequence are outside the boundary information of the effective rendering area, the candidate coordinates are determined as invalid coordinates; when the candidate coordinates in the candidate coordinate sequence are within the boundary information of the effective rendering area, the candidate coordinates are determined as valid coordinates, and each valid coordinate is aggregated to obtain the effective coordinate sequence of the tile.

[0015] In one possible implementation, the method further includes: marking the last coordinate in the candidate coordinate sequence of the tile as a second identifier; determining the first identifier of the tile based on the boundary information of the effective rendering area and the effective coordinate sequence of the tile, including: determining the second identifier as the first identifier when the candidate coordinate corresponding to the second identifier belongs to the effective coordinate sequence; and determining the first identifier of the tile based on at least one of the boundary information of the effective rendering area and the effective coordinate sequence when the candidate coordinate corresponding to the second identifier does not belong to the effective coordinate sequence.

[0016] In one possible implementation, the boundary information of the effective rendering area includes at least two clipping boundary directions; the step of determining the first identifier of the tile based on the boundary information of the effective rendering area and at least one of the effective coordinate sequence when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence includes: when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction, determining a first coordinate component based on the effective coordinate sequence in the untruncated direction, and determining a second coordinate component based on the boundary information in the truncated direction; marking the first identifier based on the effective coordinates determined by the first coordinate component and the second coordinate component.

[0017] In one possible implementation, the boundary information of the effective rendering area includes at least two clipping boundary directions. The step of determining the first identifier of the tile based on the boundary information of the effective rendering area and at least one of the effective coordinate sequences when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence includes: marking the first identifier based on the effective coordinates determined by the intersection of the boundary information when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are simultaneously truncated in multiple clipping boundary directions.

[0018] In one possible implementation, the method further includes: synchronizing, buffering, and aligning the effective coordinate sequence of at least one tile with the first identifier in a time sequence.

[0019] According to one aspect of this disclosure, a chip is provided that includes the coordinate processing system described above.

[0020] According to one aspect of this disclosure, an electronic device is provided, the electronic device including the chip described above.

[0021] In the coordinate processing system of this embodiment, the coordinate processing system includes: a coordinate generation unit, a configuration unit, and a processing unit; the coordinate generation unit is used to generate a candidate coordinate sequence of a patch, wherein the candidate coordinate sequence covers the geometric range of the patch, and the patch is a segmentation unit of the image to be rendered; the configuration unit is used to obtain boundary information of the effective rendering area; the processing unit is used to determine the effective coordinate sequence of the patch and a first identifier based on the boundary information of the effective rendering area and the candidate coordinate sequence of the patch, wherein the first identifier is used to indicate the last effective coordinate in the effective coordinate sequence, so as to realize coordinate transfer based on the first identifier.

[0022] In this way, the coordinate processing system of this disclosure can introduce a new first identifier generation mechanism on the premise of eliminating invalid coordinates and not issuing coordinate data outside the clipping area. This mechanism generates a substitute coordinate that carries the semantic meaning of the end of the tile in the valid coordinate sequence after clipping, so that the downstream module can correctly identify the boundary of the valid coordinate sequence of the tile (i.e., the clipped tile), avoid pipeline lock-up or state disorder, and reduce the power consumption and hardware area of ​​the downstream module.

[0023] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Other features and aspects of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description

[0024] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the specification, serve to illustrate the technical solutions of this disclosure.

[0025] Figure 1 A block diagram of the coordinate processing system provided in an embodiment of this disclosure is shown.

[0026] Figure 2 This diagram illustrates an application scenario of the coordinate processing system provided in the embodiments of this disclosure.

[0027] Figure 3 A schematic diagram of the first identifier generation method provided in an embodiment of this disclosure is shown.

[0028] Figure 4 A flowchart illustrating the coordinate processing method provided in an embodiment of this disclosure is shown.

[0029] Figure 5 A block diagram of an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation

[0030] Various exemplary embodiments, features, and aspects of this disclosure will now be described in detail with reference to the accompanying drawings. The same reference numerals in the drawings denote elements that have the same or similar functions. Although various aspects of the embodiments are shown in the drawings, they are not necessarily drawn to scale unless specifically indicated otherwise.

[0031] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.

[0032] In this document, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent three cases: A alone, A and B simultaneously, and B alone. Furthermore, the term "at least one" in this document means any combination of at least two of any one or more elements. For example, including at least one of A, B, and C can mean including any one or more elements selected from the set consisting of A, B, and C.

[0033] Furthermore, to better illustrate this disclosure, numerous specific details are set forth in the following detailed description. Those skilled in the art will understand that this disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art have not been described in detail in order to highlight the main points of this disclosure.

[0034] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, data stored, data displayed, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant regions.

[0035] To facilitate understanding of the technical solutions disclosed herein, this document will first explain the technical names or terms used below.

[0036] A pixel is the basic unit of an image; it can be viewed as a point in the image.

[0037] Pixel coordinates are a coordinate system used to identify the position of each pixel in an image. In this coordinate system, each pixel has a unique coordinate value, which consists of a row number and a column number, representing the pixel's horizontal and vertical position in the image, respectively.

[0038] Tile-based rendering is a graphics rendering technique that divides an image into small blocks (tiles) and processes them one by one. In tile-based rendering, a frame of image can be divided into multiple tiles of a fixed size. A set of pixel coordinates is generated within each tile, and these pixel coordinates are sequentially sent to subsequent modules (such as rasterization, depth testing, shading, or cache writing modules) so that the subsequent modules can process the image at the tile level. The end signal (tile_last) of each tile indicates the end of the current tile.

[0039] In graphics systems, images or rendering areas can be divided into multiple tiles for parallel or pipelined processing. During tile-level data transmission, a second identifier (tile_last) can be appended to the last coordinate position within a tile to distinguish the data boundaries of different tiles. However, when one or more tiles overlap with the clipping boundary defined by the effective rendering area, some coordinates within the tile may lie outside the clipping area and are considered invalid. Since subsequent modules use a counter to detect the second identifier (tile_last) of each tile—that is, counting each tile according to a preset number of pixels to locate the end position of each tile—directly removing invalid coordinates based on the clipping boundary could lead to the loss of the coordinates corresponding to the original second identifier (tile_last), causing downstream modules to fail to correctly perceive the end of each tile.

[0040] In related technologies, two methods are often used to handle invalid coordinates.

[0041] Option 1: The graphics system sends all coordinates of the entire block (including invalid coordinates), and subsequent modules discard the invalid coordinates. Even if the block partially or entirely falls outside the clipping boundary, the graphics system still generates coordinates in the order of the complete coordinates within the block, and sends both valid coordinates and invalid coordinates beyond the clipping boundary to downstream modules. These downstream modules then determine whether to discard the invalid coordinates based on the clipping boundary in the final stage. In this option, the second identifier still marks the logically last coordinate within the block, which may itself be an invalid coordinate.

[0042] Option 2: The graphics system adds filtering logic within the back-end module. This back-end module uses the filtering logic to determine the validity of the coordinates of the received tiles; if invalid, they are not included in the calculation. However, in this option, invalid coordinates still occupy bus bandwidth, and the depth and control logic of the buffer in the back-end module still need to be designed according to the worst-case scenario. The semantics of the second identifier remain unchanged.

[0043] It is evident that the solutions in the aforementioned related technologies all assume that all coordinates within a block must be sent to the subsequent modules, without systematically removing invalid coordinates during the coordinate generation stage, and especially without considering the impact on the integrity of the second identifier when the last coordinate of the block is removed.

[0044] Furthermore, invalid coordinates in related technologies consume transmission bandwidth, and coordinates exceeding the trimming boundary are still transmitted in the pipeline, increasing dynamic power consumption. Subsequent modules suffer from wasted buffer and logic resources, requiring the reservation of buffer and control resources for invalid coordinates, thus increasing area overhead.

[0045] In addition, the second identifier may depend on invalid coordinates within the block. When the last logical coordinate of the block is invalid, the second identifier must be issued along with the invalid coordinate. Invalid coordinates cannot be removed during the coordinate generation stage. If invalid coordinates are removed directly, the second identifier will be lost, causing a deadlock (hang) downstream.

[0046] In view of this, in order to directly remove invalid coordinates that exceed the clipping boundary during the coordinate generation and distribution stages in a graphics system; and at the same time, in order to still correctly provide the end marker of the tile to the subsequent modules after removing the last valid coordinate of the tile, thereby avoiding deadlock and reducing the power consumption and hardware area of ​​the subsequent modules, the embodiments of this disclosure provide a coordinate processing system.

[0047] Figure 1 A block diagram of the coordinate processing system provided in an embodiment of this disclosure is shown, such as Figure 1 As shown, the coordinate processing system 0 includes: a coordinate generation unit 1, a configuration unit 2, and a processing unit 3; the coordinate generation unit 1 is used to generate a candidate coordinate sequence of a patch, wherein the candidate coordinate sequence covers the geometric range of the patch, and the patch is a segmentation unit of the image to be rendered; the configuration unit 2 is used to obtain the boundary information of the effective rendering area; the processing unit 3 is used to receive the candidate coordinate sequence of the patch from the coordinate generation unit 1 and the boundary information of the effective rendering area from the configuration unit 2, and determine the effective coordinate sequence of the patch and a first identifier based on the boundary information of the effective rendering area and the candidate coordinate sequence of the patch, wherein the first identifier is used to indicate the last effective coordinate in the effective coordinate sequence, so as to realize coordinate transfer based on the first identifier.

[0048] In one possible implementation, the coordinate processing system 0 provided in this disclosure embodiment can be embedded in a graphics system that performs graphics processing, rasterization, or pixel pipeline processing based on tile granularity, and can handle various coordinate processing tasks in the coordinate generation stage. The graphics system can be a graphics processing unit (GPU), display core, display chip, video processor, graphics accelerator, system-on-chip (SoC), etc., and the embodiments of this disclosure do not limit this.

[0049] In one possible implementation, the boundary information of the effective rendering area (i.e., the boundary of the actual image displayed on the final screen) is determined based on hardware parameters (such as the maximum space of the buffer in the subsequent module, the size and resolution of the screen, etc.). Optionally, configuration unit 2 can obtain the boundary information of the effective rendering area by reading the hardware registers of the display device (e.g., the monitor); or, configuration unit 2 can obtain the boundary information of the effective rendering area according to a preset configuration file; or, configuration unit 2 can also receive the boundary information of the effective rendering area written by the user, and the embodiments of this disclosure do not impose specific limitations on this.

[0050] In one possible implementation, a first identifier (tile_clip_last) is used to indicate the last valid coordinate in the valid coordinate sequence, enabling coordinate transfer based on the first identifier. This allows downstream modules to identify the valid coordinate sequence of each tile based on the first identifier. Specifically, before the coordinate processing system 0 sends the valid coordinate sequence to the downstream modules, a preset instruction can be used to send the first identifier to the downstream modules. This allows the downstream modules to recognize the first identifier upon receiving it and treat the coordinates preceding the first identifier as the last valid coordinate in the valid coordinate sequence.

[0051] For example, assuming the first identifier is in the form of (A, B), the image to be rendered includes tiles 1 to 3. The valid coordinate sequence of tile 1 is (x11, y11), (x12, y12), (x13, y13), the valid coordinate sequence of tile 2 is (x21, y21), (x22, y22), and the valid coordinate sequence of tile 3 is (x31, y31), (x32, y32), (x33, y33). The data stream sent by coordinate processing system 0 to the subsequent module is: (x11, y11), (x12, y12), (x13, y13), (A, B), (x21, y21), (x22, y22), (A, B), (x31, y31), (x32, y32), (x33, y33), (A, B). In this way, the subsequent module can identify (x13, y13) as the end position of the valid coordinate sequence of block 1, (x22, y22) as the end position of the valid coordinate sequence of block 2, and (x33, y33) as the end position of the valid coordinate sequence of block 3 through the first identifier (A, B).

[0052] It should be understood that the first identifier can be represented in the form of specific coordinates, such as (A, B), or it can be represented by equivalent identifier information (such as text identifier, number identifier, symbol identifier, letter identifier, etc.) to indicate the end position in the effective coordinate sequence after cropping. The embodiments of this disclosure do not limit the specific form of the first identifier.

[0053] In one possible implementation, sets and constraints can be used to define the valid coordinate sequence of the tile and its first identifier (tile_clip_last).

[0054] For example, coordinate generation unit 1 can generate a candidate coordinate sequence for any given tile based on the geometric extent indicated by its geometric information. This candidate coordinate sequence logically covers the complete coordinate set of the tile. Assume the candidate coordinate sequence for a tile T is: T = {(x,y) | x∈[x...]} min ,x max ], y∈[y min ,y max ]}, where (x,y) represents any candidate coordinate in patch T, x max This represents the maximum coordinate component of patch T in the horizontal direction, x. min This represents the smallest coordinate component of patch T in the horizontal direction, y max This represents the maximum coordinate component of the plot T in the vertical direction, y min This represents the smallest coordinate component of the map block T in the vertical direction.

[0055] Configuration unit 2 can obtain the boundary information of the effective rendering area and use the boundary information of the effective rendering area as the clipping region, that is: C={(x,y)|x≤X clip , y≤Y clip}, where (x,y) represents any position in the effective rendering region C, and X clip This represents the horizontal boundary information of the effective rendering region C, which may include the lower horizontal limit value min_x and the upper horizontal limit value max_x, Y. clip This represents the boundary information of the effective rendering region C in the vertical direction, which may include the lower limit value min_y and the upper limit value max_y in the vertical direction.

[0056] Processing unit 3 can determine the effective coordinate sequence of tile T after clipping based on the boundary information of the effective rendering area C from configuration unit 2 and the candidate coordinate sequence of tile T from coordinate generation unit 1, that is: T valid =T∩C, where T valid This is the set of data coordinates to be distributed to subsequent modules. It can be seen that by setting processing unit 3, invalid coordinates (such as TT) can be removed during the coordinate generation stage. valid This prevents the coordinate processing system 0 from sending invalid coordinates to subsequent modules.

[0057] Processing unit 3 in the cropped effective coordinate sequence T valid In the case of non-empty coordinates, the cropped valid coordinate sequence T can be obtained under a predetermined coordinate traversal or sorting rule. validThe last coordinate element in the first identifier is used as the first identifier of the tile T. It is evident that processing unit 3 provides a new mechanism for generating the final coordinates of a tile through this first identifier. This helps ensure the integrity of subsequent modules' processing at the tile granularity and reduces the power consumption and area of ​​the graphics system without altering the interface semantics of the subsequent modules.

[0058] It should be understood that, to avoid limiting the scanning direction, the "last" valid coordinate in the valid coordinate sequence can be abstracted as follows: the first identifier can be a coordinate point (x... last , y last ):

[0059] (x last , y last )∈T valid (1)

[0060] And it satisfies:

[0061] x last =max f x (x,y), (x,y)∈T valid

[0062] y last =max f y (x,y), (x,y)∈T valid (2)

[0063] Among them, T valid Let (x,y) represent the valid coordinate sequence of the patch, and let T represent the valid coordinate sequence of the patch. valid For any valid coordinate in f, x (·), f y (·) is a monotonic mapping function used to describe the priority or traversal order of coordinates within a tile, such as x last =maxf x (·) indicates the coordinate component that is last in the horizontal priority or last in the traversal order, y last =max f y (x,y) represents the coordinate component that is last in priority in the vertical direction or last in the traversal order.

[0064] It should be understood that the mapping function can correspond to row priority, column priority, depth order (Z-order), Morton coding order, or other implementation-related sorting rules; the embodiments of this disclosure do not limit the specific form of fx and fy, but only require that they have consistency and determinism within the tile.

[0065] In embodiments of this disclosure, a first identifier is used to indicate the last valid coordinate in the valid coordinate sequence. This first identifier is independent of the specific coordinate arrangement, scan order, or specific bit width; rather, it is the terminating coordinate among all "valid coordinate sets" (i.e., valid coordinate sequences) belonging to the same tile, under the condition of satisfying clipping constraints, and is used to carry the ending semantics of the tile.

[0066] Specifically, the first identifier is not equivalent to the geometric end coordinates in the original tile. For example, the first identifier is not equivalent to the second identifier used as the end signal of the original tile in related technologies. Furthermore, the first identifier is the logical coordinate determined from the remaining valid coordinate sequence after applying clipping constraints to the coordinates within the tile, used to indicate the end of the tile. It can be seen that the first identifier in this embodiment is semantically equivalent to the second identifier in related technologies. Both are used to identify the boundary of the tile data stream, but the first identifier has clipping awareness capability.

[0067] It should be understood that when the configuration unit 2 obtains multiple clipping regions or hierarchical clipping regions, the processing unit 3 does not need to generate and merge the first identifier of the block multiple times in the process of generating the first identifier of the block. It can be extended to a unified processing for the final valid coordinate sequence (e.g., a set of valid coordinate sequences determined by the intersection of multiple clipping regions or hierarchical clipping regions).

[0068] In this way, the coordinate processing system of this disclosure can introduce a new first identifier generation mechanism on the premise of eliminating invalid coordinates and not issuing coordinate data outside the clipping area. This mechanism is used to generate a substitute coordinate that carries the semantic meaning of the end of the block in the valid coordinate sequence after clipping, so that the downstream module can correctly identify the boundary of the valid coordinate sequence of the block (i.e., the clipped block) and avoid pipeline hang or state disorder.

[0069] The coordinate processing system 0 of this disclosure embodiment will now be described in an exemplary manner.

[0070] Figure 2 The diagram illustrates an application scenario of the coordinate processing system provided in this embodiment of the present disclosure, such as... Figure 2 As shown, the coordinate processing system 0 can be set between the front-end module 5 and the back-end module 6 in the rendering pipeline architecture of a graphics system (e.g., a GPU).

[0071] The front-end module 5 can be used to generate or provide geometric information, tile configuration information, and control parameters required for generating pixel or sampled coordinates of the tile to be processed. For example, the front-end module 5 can be a vertex shader in the geometry processing stage of the rendering pipeline architecture. Since the rendering pipeline architectures corresponding to different graphics systems are different, the specific type of the front-end module 5 is not limited in the embodiments of this disclosure.

[0072] The subsequent module 6 receives the clipped coordinate stream and performs tile-level data processing and state switching based on the first identifier. For example, the subsequent module 6 may include rasterization, depth testing, shading, or cache writing modules. The embodiments of this disclosure do not limit the specific type of the subsequent module 6.

[0073] In one possible implementation, the coordinate processing system 0 may include a coordinate generation unit 1, a configuration unit 2, and a processing unit 3. The coordinate generation unit 1 generates a candidate coordinate sequence within the block based on the geometric information of the block provided by the preceding module 5. The candidate coordinate sequence logically covers at least the entire geometric range of the block and may include: the minimum and maximum coordinates of the block in the horizontal direction (x-direction); the minimum and maximum coordinates of the block in the vertical direction (y-direction); and all intermediate coordinates generated within the block according to a preset traversal order. Furthermore, the coordinate generation unit 1 can also mark the logically ending coordinate in the candidate coordinate sequence as a second identifier, without considering clipping. The configuration unit 2 can be used to obtain the boundary information of the effective rendering area; the processing unit 3 can be used to determine the effective coordinate sequence and the first identifier of the block based on the boundary information of the effective rendering area and the candidate coordinate sequence of the block. The first identifier is used to indicate the last effective coordinate in the effective coordinate sequence.

[0074] In one possible implementation, in addition to the coordinate generation unit 1, configuration unit 2, and processing unit 3, the coordinate processing system 0 also includes a pipelined register unit 4. The pipelined register unit 4 is used to synchronize, buffer, and align the valid coordinate sequence and first identifier of at least one block from the processing unit 3, so that the timing between the processing unit 3 and the subsequent module 6 is matched. This is beneficial for the stable transmission of coordinate data of each block after clipping, and can support the subsequent module 6 to accurately process each block in a parallel or pipelined manner.

[0075] The first identifier that can be output by processing unit 3, along with the corresponding valid coordinate sequence, will enter pipeline register unit 4. In pipeline register unit 4, the first identifier maintains temporal consistency with the last coordinate data in the valid coordinate sequence, and the first identifier appears only once in the coordinate stream of any valid coordinate sequence.

[0076] By setting up the pipeline register unit 4, the subsequent module 6 can complete the state switching, cache submission, or pipeline termination at the tile granularity level based on the first identifier. Thus, even when invalid coordinates in the tile are completely removed, the graphics system can still ensure the integrity and consistency of the tile processing flow.

[0077] like Figure 2 As shown, the processing unit 3 may include an identifier generation unit 32 and a trimming and filtering unit 31.

[0078] In one possible implementation, the clipping and filtering unit 31 is used to: perform clipping judgment on the candidate coordinate sequence based on the boundary information of the effective rendering area, and determine the effective coordinate sequence of the tile.

[0079] In this way, the clipping and filtering unit 31 can perform clipping judgment on the candidate coordinate sequence output by the coordinate generation unit 1, identify and remove invalid coordinates located outside the clipping area (determined by the effective rendering area), and retain only the effective coordinate sequence for downstream processing.

[0080] In one possible implementation, the candidate coordinate sequence is clipped based on the boundary information of the effective rendering area to determine the effective coordinate sequence of the tile. This includes: when the candidate coordinates in the candidate coordinate sequence are outside the boundary information of the effective rendering area, the candidate coordinates are determined as invalid coordinates; when the candidate coordinates in the candidate coordinate sequence are within the boundary information of the effective rendering area, the candidate coordinates are determined as valid coordinates, and each valid coordinate is aggregated to obtain the effective coordinate sequence of the tile.

[0081] For example, the clipping and filtering unit 31 can receive the candidate coordinate sequence output by the coordinate generation unit 1 and the boundary information of the effective rendering area output by the configuration unit 2. The clipping and filtering unit 31 can determine the validity of each candidate coordinate in the candidate coordinate sequence based on the clipping boundary parameters determined by the boundary information of the effective rendering area. When a candidate coordinate meets the clipping conditions, such as being within the clipping boundary, the candidate coordinate can be marked as a valid coordinate and allowed to be sent to the subsequent module 6. When a candidate coordinate does not meet the clipping conditions, such as being outside the clipping boundary, the candidate coordinate can be determined as an invalid coordinate and removed from the candidate coordinate sequence, and will not be sent to the subsequent module 6. Thus, based on the clipping judgment results of the candidate coordinate sequence, each valid coordinate can be aggregated to determine the clipped valid coordinate sequence.

[0082] It should be understood that the embodiments of this disclosure are only illustrated by taking the clipping and filtering unit 31 performing clipping judgment as an example. The clipping judgment can be completed in the clipping and filtering unit 31, or in the coordinate generation unit 1, or implemented through parallel comparison logic (for example, the accelerated implementation scheme in the processing unit 3 that utilizes the parallel capabilities of multiple threads or multiple computing units to simultaneously perform clipping judgment on multiple candidate coordinates in the candidate coordinate sequence). The embodiments of this disclosure do not limit this.

[0083] In this way, invalid coordinates can be eliminated in the upstream tile coordinate generation stage instead of being discarded in the downstream subsequent module 6. This avoids invalid coordinates from participating in subsequent pipeline processing from the source, reducing the power consumption and area of ​​the graphics system.

[0084] In one possible implementation, the identifier generation unit 32 is used to: determine the first identifier of the block based on the boundary information of the effective rendering area and the effective coordinate sequence of the block, wherein the first identifier is used to indicate the last effective coordinate in the effective coordinate sequence.

[0085] In this way, the identifier generation unit 32 can generate a first identifier indicating the end of a tile based on the cropped valid coordinate sequence. Furthermore, if cropping renders the coordinates corresponding to the original second identifier invalid, the first identifier generated based on the cropped valid coordinate sequence can replace the second identifier to carry the semantic meaning of the tile's end, ensuring the stability of tile-level processing in cropping scenarios. Even after removing invalid coordinates from the tile, the subsequent module 6 can still function accurately. The generation of the first identifier does not depend on the specific scanning order (i.e., traversal order) or tile size; it can be determined through the preset scanning order of the tile and the cropping boundary (boundary information of the effective rendering area), demonstrating high generalization ability.

[0086] In one possible implementation, the coordinate generation unit 1 is further configured to mark the last coordinate in the candidate coordinate sequence of the block as the second identifier; the identifier generation unit 32 is further configured to: determine the second identifier as the first identifier if the candidate coordinate corresponding to the second identifier belongs to the valid coordinate sequence; and determine the first identifier of the block according to the boundary information of the valid rendering area and at least one of the valid coordinate sequence if the candidate coordinate corresponding to the second identifier does not belong to the valid coordinate sequence.

[0087] For example, the identifier generation unit 32 can receive a valid coordinate sequence from the clipping and filtering unit 31 and a second identifier from the coordinate generation unit 1. The identifier generation unit 32 can detect the clipped valid coordinate sequence. When the clipping does not affect the range of the valid coordinate sequence of the block, if the candidate coordinates corresponding to the original second identifier still exist in the valid coordinate sequence, the second identifier can be directly used as the first identifier. When the candidate coordinates corresponding to the original second identifier are clipped and removed, the identifier generation unit 32 can select a replacement coordinate that satisfies the block end semantics from the clipped valid coordinate sequence as the first identifier.

[0088] The constraints to be followed when selecting the alternative coordinate may include: the alternative coordinate belongs to the valid coordinate sequence after clipping; the alternative coordinate is located at the end of all valid coordinate sequences in the logical order within the tile; the alternative coordinate takes the extreme value within the tile in the un-clipped dimension; the alternative coordinate takes the maximum valid value allowed by the clipping boundary in the clipped dimension (e.g., the upper limit of the clipping boundary minus a preset value).

[0089] Thus, at the graphics system level, the first identifier can have the following functional semantics: it is used to explicitly identify the end position of a tile's data; when invalid coordinates are removed and no longer issued, it can replace the original second identifier, so that the subsequent module 6 can correctly complete the tile state switching, cache submission, or pipeline closing operation in the clipped coordinate stream. The first identifier can be an independent coordinate flag, an implicit semantic of a dedicated coordinate value, or a logical identifier that reuses the encoding space with the original second identifier. The embodiments of this disclosure do not limit the specific carrying method of the first identifier.

[0090] Optionally, for the identification of the first identifier and the second identifier by the subsequent module 6, if the first identifier is implemented as an independent coordinate flag, then the identification logic for the first identifier is configured to the interface of the subsequent module 6. For example, if the first identifier is a preset flag attached to the last valid pixel coordinate in the valid coordinate sequence of the block, such as a symbol flag, then the identification logic for the preset flag is configured to the interface of the subsequent module 6, so that the subsequent module 6 can identify the first identifier.

[0091] If the first identifier is implemented as a dedicated coordinate value, the recognition logic for the first identifier can also be configured to the interface of the subsequent module 6. For example, if the first identifier is a dedicated coordinate value attached to the last valid pixel coordinate in the valid coordinate sequence of the block, such as (A, B), then the recognition logic for the dedicated coordinate value can be configured to the interface of the subsequent module 6, so that the subsequent module 6 can recognize the first identifier.

[0092] If the first identifier is a logical identifier that shares the encoding space with the second identifier, a new logical identifier can be allocated within the original encoding space of the second identifier as the first identifier. If the encoding space is 1 bit and the original second identifier is 0, then the first identifier can be set to 1. Then, the recognition logic for the first identifier can be configured to the interface of the subsequent module 6. For example, if the first identifier is a logical identifier attached to the last valid pixel coordinate in the valid coordinate sequence of the block, then the recognition logic for the logical identifier can be configured to the interface of the subsequent module 6, so that the subsequent module 6 can realize the recognition of the first identifier.

[0093] In this way, the ending semantics of a tile can be abstracted from "the last physical coordinate" to "the termination semantics of the effective coordinate sequence after pruning". This decouples the boundary recognition of the tile from the pruning strategy, which is beneficial for implementing low-power, low-area coordinate distribution functions without deadlock risk in specific hardware structures.

[0094] In one possible implementation, the boundary information of the effective rendering region includes at least two clipping boundary directions. When the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence, the first identifier of the tile is determined based on at least one of the boundary information of the effective rendering region and the effective coordinate sequence. This includes: when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction (e.g., the x-coordinate component or y-coordinate component of the candidate coordinates corresponding to the second identifier exceeds the clipping boundary), determining the first coordinate component based on the effective coordinate sequence in the untruncated direction, and determining the second coordinate component based on the boundary information in the truncated direction; marking the first identifier based on the effective coordinates determined by the first and second coordinate components. Alternatively, when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated simultaneously in multiple clipping boundary directions (e.g., both the x-coordinate component and y-coordinate component of the candidate coordinates corresponding to the second identifier exceed the clipping boundary), marking the first identifier based on the effective coordinates determined by the intersection of the boundary information.

[0095] Figure 3 A schematic diagram of the first identifier generation method provided in an embodiment of this disclosure is shown, such as... Figure 3 As shown, the boundary information of the effective rendering region can be represented by min_x, max_x, min_y, and max_y. Here, min_x represents the lower limit of the effective rendering region in the horizontal cropping direction, max_x represents the upper limit of the effective rendering region in the horizontal cropping direction, min_y represents the lower limit of the effective rendering region in the vertical cropping direction, and max_y represents the upper limit of the effective rendering region in the vertical cropping direction. Patch 1 to patch 9 represent different segmentation units in the image to be rendered. Figure 3 The positional relationship between nine types of tiles and the boundary information of the effective rendering area is shown. The following is an example of how the first identifier is generated, based on the positional relationship between these nine types of tiles and the boundary information of the effective rendering area.

[0096] For example, referring to blocks 1, 2, 4, and 5, the second identifiers of these blocks are entirely located within the clipping region (e.g., the effective rendering region). That is, the candidate coordinates corresponding to the second identifiers of these blocks belong to the valid coordinate sequence. In this case, all coordinates within the block are valid coordinates, and clipping does not affect the integrity of the block. The generation method of the first identifier is consistent with the generation method of the second identifier in related technologies; the logical end coordinates within the block can be directly selected. The identifier generation unit 32 can determine the second identifier from the coordinate generation unit 1 as the first identifier.

[0097] For example, if the candidate coordinates corresponding to the second identifier do not belong to the valid coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction, the first coordinate component can be determined in the untrunculated direction based on the maximum value of the coordinate components of the valid coordinate sequence in that direction, and the second coordinate component can be determined in the clipped direction based on the upper limit value of the boundary information in that direction; the valid coordinates determined based on the first coordinate component and the second coordinate component can be marked as the first identifier.

[0098] For example, referring to blocks 3 and 6, the candidate coordinates corresponding to the second identifier are truncated in the horizontal clipping boundary direction (x direction). The x-coordinate component of the candidate coordinates corresponding to the second identifier exceeds the clipping boundary. The maximum valid y-value within the block can be taken as the first coordinate component in the untrunculated vertical clipping boundary direction (y direction). The second coordinate component is determined in the x direction based on the upper limit value max_x of the boundary information. For example, the second coordinate component is the maximum allowed valid x-value corresponding to the clipping boundary. The second coordinate component can be represented as: max_x-1. The valid coordinates determined by the first and second coordinate components can be used as the first identifier.

[0099] For example, referring to blocks 7 and 8, the candidate coordinates corresponding to the second identifier are truncated in the vertical clipping boundary direction (y direction). The y-coordinate component of the candidate coordinates corresponding to the second identifier exceeds the clipping boundary. The maximum valid x-value within the block can be taken as the first coordinate component in the horizontal clipping boundary direction (x direction) that is not truncated. The second coordinate component is determined based on the upper limit value max_y of the boundary information in the y direction. For example, the second coordinate component is the maximum allowed valid y-value corresponding to the clipping boundary. The second coordinate component can be represented as: max_y-1. The valid coordinates determined by the first coordinate component and the second coordinate component can be used as the first identifier.

[0100] For example, referring to block 9, if the candidate coordinates corresponding to the second identifier are truncated simultaneously in multiple clipping boundary directions, the first identifier can be marked with valid coordinates determined based on the intersection of boundary information. For example, in each clipping boundary direction where truncation occurs, the maximum valid value allowed by the corresponding clipping boundary can be taken, and the valid coordinates (max_x-1, max_y-1) formed by combining the upper limit value max_x of the boundary information in the x-direction and the upper limit value max_y of the boundary information in the y-direction can be used as the first identifier.

[0101] It should be understood that Figure 3For illustrative purposes only, in actual implementations, the generation of the first identifier follows preset principles, rather than being bound to a specific boundary or bit width. For example, when the tile is fully valid within the clipping region, the generation method of the first and second identifiers is the same, and the logical end coordinates within the tile can be directly selected. When the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction, the first identifier takes the extreme value within the tile in the un-clipped dimension and the maximum valid value allowed by the clipping boundary in the clipped dimension, such as the upper limit of the clipping boundary, or the upper limit of the clipping boundary minus a preset value (e.g., 1). When the candidate coordinates corresponding to the second identifier are truncated simultaneously in multiple clipping boundary directions, the first identifier is determined by the intersection of multiple clipping boundaries or their valid mapping within the tile. The above preset principles do not depend on specific coordinate bit widths, do not limit the numerical representation of clipping boundaries, and do not limit the clipping to occur in the x-direction, y-direction, or higher-dimensional space.

[0102] In this way, invalid coordinates are no longer sent to the subsequent module 6, and the semantics of the end of the block are correctly carried in the clipping scenario, avoiding deadlock or state abnormality caused by the missing coordinates corresponding to the second identifier, and reducing the data processing pressure and power consumption of the subsequent module 6.

[0103] In summary, compared to related graphics systems (such as those not embedding the coordinate processing system 0 provided in this disclosure), invalid coordinates located outside the clipping region are still sent to the subsequent module 6 for pipelined processing at the tile granularity. Although these coordinates can be discarded in the subsequent module 6, unnecessary power consumption is generated during transmission, caching, and logical calculation. The coordinate processing system 0 of this disclosure can identify and remove invalid coordinates during the coordinate generation stage, and send out the clipped valid coordinate sequence, reducing the number of coordinates from the source. This significantly reduces the dynamic power consumption of coordinate paths, cache resources, and subsequent logical resources, thereby reducing the dynamic power consumption of the graphics system. In other words, this disclosure significantly reduces invalid data activity and thus reduces the power consumption of the graphics system by pre-clipping and invalid coordinate removal.

[0104] Furthermore, since related technologies require reserving cache and control logic resources for the complete tile coordinate sequence, resource configuration cannot be reduced even if it contains a large number of invalid coordinates. In contrast, the coordinate processing system 0 of this disclosure, through a boundary-aware coordinate elimination mechanism, allows the subsequent module 6 to be designed only for the scale of the valid coordinate sequence, which can effectively reduce the depth of the first-in-first-out queue (FIFO), the number of registers, and the complexity of control logic, reduce the scale of downstream cache and logic, and reduce chip area overhead.

[0105] Furthermore, if related technologies directly remove invalid coordinates, the corresponding coordinates of the original second identifier may be missing, destroying the semantics of the second identifier. This would cause the subsequent module 6 to fail to correctly identify the end position of the tile, resulting in a deadlock or state abnormality in the graphics system. Conversely, the coordinate processing system 0 of this embodiment introduces a first identifier generation mechanism. When clipping causes the corresponding coordinates of the original second identifier to become invalid, it automatically generates a replacement coordinate that conforms to the end semantics of the tile. This ensures that the end semantics of the tile remain complete and consistent in the clipping scenario, guaranteeing the integrity of the tile processing flow in the graphics system, reducing graphics system abnormalities, and improving the robustness of the graphics system. The generation rule of the first identifier can be based on the logical order and boundary relationship of the valid coordinate sequence after clipping, without depending on the specific tile size, coordinate scanning order, or clipping implementation details. It has good versatility and scalability, and is suitable for different application scenarios and different graphics system architectures (e.g., graphics system architectures with different resolutions and different tile configurations).

[0106] Figure 4 A flowchart illustrating the coordinate processing method provided in an embodiment of this disclosure is shown, such as... Figure 4 As shown, this method is applied to a coordinate processing system, which includes a coordinate generation unit, a configuration unit, and a processing unit. The method may include:

[0107] In step S11, a candidate coordinate sequence of the tile is generated, wherein the candidate coordinate sequence covers the geometric range of the tile, and the tile is a segmentation unit of the image to be rendered;

[0108] In step S12, the boundary information of the effective rendering area is obtained;

[0109] In step S13, based on the boundary information of the effective rendering area and the candidate coordinate sequence of the tile, the effective coordinate sequence and the first identifier of the tile are determined. The first identifier is used to indicate the last effective coordinate in the effective coordinate sequence so as to realize the coordinate transfer based on the first identifier.

[0110] In one possible implementation, step S13 may include: performing a cropping judgment on the candidate coordinate sequence based on the boundary information of the effective rendering area to determine the effective coordinate sequence of the block; and determining the first identifier of the block based on the boundary information of the effective rendering area and the effective coordinate sequence of the block.

[0111] In one possible implementation, the candidate coordinate sequence is clipped based on the boundary information of the effective rendering area to determine the effective coordinate sequence of the tile. This includes: when the candidate coordinates in the candidate coordinate sequence are outside the boundary information of the effective rendering area, the candidate coordinates are determined as invalid coordinates; when the candidate coordinates in the candidate coordinate sequence are within the boundary information of the effective rendering area, the candidate coordinates are determined as valid coordinates, and each valid coordinate is aggregated to obtain the effective coordinate sequence of the tile.

[0112] In one possible implementation, the method further includes: marking the last coordinate in the candidate coordinate sequence of the tile as a second identifier; determining a first identifier of the tile based on the boundary information of the effective rendering area and the effective coordinate sequence of the tile, including: if the candidate coordinates corresponding to the second identifier belong to the effective coordinate sequence, determining the second identifier as the first identifier; if the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence, determining the first identifier of the tile based on at least one of the boundary information of the effective rendering area and the effective coordinate sequence.

[0113] In one possible implementation, the boundary information of the effective rendering area includes at least two clipping boundary directions; when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence, the first identifier of the block is determined based on the boundary information of the effective rendering area and at least one of the effective coordinate sequence, including: when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction, determining a first coordinate component based on the effective coordinate sequence in the untruncated direction, and determining a second coordinate component based on the boundary information in the truncated direction; marking the first identifier based on the effective coordinates determined by the first coordinate component and the second coordinate component.

[0114] In one possible implementation, the boundary information of the effective rendering area includes at least two clipping boundary directions. When the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence, the first identifier of the block is determined based on the boundary information of the effective rendering area and at least one of the effective coordinate sequence. This includes: when the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated simultaneously in multiple clipping boundary directions, the first identifier is marked based on the effective coordinates determined by the intersection of the boundary information.

[0115] In one possible implementation, the method further includes: synchronizing, buffering, and aligning the effective coordinate sequence of at least one tile with the first identifier in a time sequence.

[0116] In addition, this disclosure also provides coordinate processing apparatus, chips, electronic devices, corresponding technical solutions and descriptions, and see the corresponding records in the coordinate processing system section, which will not be repeated here.

[0117] In some embodiments, the functions or modules of the apparatus provided in this disclosure can be used to perform the methods described in the above method embodiments. The specific implementation can be referred to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.

[0118] This disclosure also proposes a chip including the coordinate processing system described above.

[0119] This disclosure also proposes an electronic device including the chip described above.

[0120] Electronic devices can be provided as terminals, servers, or other forms of devices. Among them, terminal devices can be user equipment (UE), mobile devices, user terminals, terminals, cellular phones, cordless phones, personal digital assistants (PDAs), handheld devices, computing devices, in-vehicle devices, or wearable devices, etc.

[0121] Figure 5 A block diagram of an electronic device 1900 according to an embodiment of the present disclosure is shown. For example, the electronic device 1900 may be provided as a server or a terminal device. (Refer to...) Figure 5 The electronic device 1900 includes a processing component 1922, which further includes one or more processors, and memory resources represented by memory 1932 for storing instructions, such as application programs, that can be executed by the processing component 1922. The application programs stored in memory 1932 may include one or more modules, each corresponding to a set of instructions. Furthermore, the processing component 1922 is configured to execute instructions to perform the methods described above.

[0122] Electronic device 1900 may also include a power supply component 1926 configured to perform power management of electronic device 1900, a wired or wireless network interface 1950 configured to connect electronic device 1900 to a network, and an input / output interface 1958. Electronic device 1900 can operate on an operating system stored in memory 1932, such as a server operating system, a graphical user interface-based operating system, or a multi-user, multi-process computer operating system (Unix). TM Linux is a free and open-source Unix-like operating system. TM ), the open-source Unix-like operating system (FreeBSD) TM (or similar.)

[0123] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions that can be executed by a processing component 1922 of an electronic device 1900 to perform the above-described method.

[0124] This disclosure can be a system, method, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for causing a processor to implement various aspects of this disclosure.

[0125] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, (but not limited to) electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination of the foregoing. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0126] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0127] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.

[0128] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0129] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0130] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0131] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0132] The computer program product can be implemented specifically through hardware, software, or a combination thereof. In one alternative embodiment, the computer program product is specifically embodied in a computer storage medium; in another alternative embodiment, the computer program product is specifically embodied in a software product, such as a software development kit (SDK), etc.

[0133] The description of the various embodiments above tends to emphasize the differences between the various embodiments. The similarities or similarities between them can be referred to, and for the sake of brevity, they will not be repeated here.

[0134] Those skilled in the art will understand that, in the above-described method of the specific implementation, the order in which each step is written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.

[0135] If the technical solution of this application involves personal information, the product using this technical solution has clearly informed the user of the personal information processing rules and obtained the user's voluntary consent before processing the personal information. If the technical solution of this application involves sensitive personal information, the product using this technical solution has obtained the user's separate consent before processing the sensitive personal information, and also meets the requirement of "express consent". For example, at personal information collection devices such as cameras, clear and prominent signs are set up to inform users that they have entered the scope of personal information collection and that personal information will be collected. If an individual voluntarily enters the collection scope, it is deemed that they have agreed to the collection of their personal information; or on the personal information processing device, with clear signs / information informing users of the personal information processing rules, authorization is obtained from the individual through pop-up information or by asking the individual to upload their personal information; wherein, the personal information processing rules may include information such as the personal information processor, the purpose of personal information processing, the processing method, and the types of personal information processed.

[0136] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or improvement of the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A coordinate processing system, characterized in that, The coordinate processing system includes: a coordinate generation unit, a configuration unit, and a processing unit; The coordinate generation unit is used to generate a candidate coordinate sequence of the patch, and to mark the last coordinate in the candidate coordinate sequence of the patch as a second identifier; wherein, the candidate coordinate sequence covers the geometric range of the patch, and the patch is a segmentation unit of the image to be rendered; The configuration unit is used to obtain the boundary information of the effective rendering area; The processing unit is configured to determine the effective coordinate sequence and a first identifier of the tile based on the boundary information of the effective rendering area and the candidate coordinate sequence of the tile. Specifically, if the candidate coordinates corresponding to the second identifier belong to the effective coordinate sequence, the second identifier is determined as the first identifier. If the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence, the first identifier of the tile is determined based on at least one of the boundary information of the effective rendering area and the effective coordinate sequence. The first identifier is used to indicate the last effective coordinate in the effective coordinate sequence to achieve coordinate transfer based on the first identifier. The effective coordinate sequence is obtained by cropping the candidate coordinate sequence based on the boundary information of the effective rendering area.

2. The coordinate processing system according to claim 1, characterized in that, The processing unit includes an identifier generation unit and a trimming and filtering unit. The cropping and filtering unit is used to: perform cropping judgment on the candidate coordinate sequence based on the boundary information of the effective rendering area, and determine the effective coordinate sequence of the tile; The identifier generation unit is used to: determine the first identifier of the block based on the boundary information of the effective rendering area and the effective coordinate sequence of the block.

3. The coordinate processing system according to claim 2, characterized in that, The clipping and filtering unit is used to: determine the candidate coordinates as invalid coordinates when the candidate coordinates in the candidate coordinate sequence are outside the boundary information of the effective rendering area; The cropping and filtering unit is further configured to: when the candidate coordinates in the candidate coordinate sequence are within the boundary information of the effective rendering area, determine the candidate coordinates as effective coordinates, and aggregate each effective coordinate to obtain the effective coordinate sequence of the tile.

4. The coordinate processing system according to claim 3, characterized in that, The boundary information of the effective rendering area includes at least two clipping boundary directions; The identifier generation unit is also used for: If the candidate coordinates corresponding to the second identifier do not belong to the valid coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated in a single clipping boundary direction, the first coordinate component is determined based on the valid coordinate sequence in the untrunculated direction, and the second coordinate component is determined based on the boundary information in the truncated direction. The first identifier is marked based on the valid coordinates determined by the first coordinate component and the second coordinate component.

5. The coordinate processing system according to claim 3, characterized in that, The boundary information of the effective rendering area includes at least two clipping boundary directions; The identifier generation unit is also used for: If the candidate coordinates corresponding to the second identifier do not belong to the valid coordinate sequence and the candidate coordinates corresponding to the second identifier are truncated simultaneously in multiple clipping boundary directions, the first identifier is marked with valid coordinates determined based on the intersection of the boundary information.

6. The coordinate processing system according to any one of claims 1 to 5, characterized in that, The coordinate processing system also includes a flow storage unit; The pipelined storage unit is used to synchronize, buffer, and align the effective coordinate sequence and the first identifier of at least one tile from the processing unit.

7. A coordinate processing method, characterized in that, The method includes: A candidate coordinate sequence of a patch is generated, and the last coordinate in the candidate coordinate sequence of the patch is marked as a second identifier; wherein the candidate coordinate sequence covers the geometric range of the patch, and the patch is a segmentation unit of the image to be rendered; Obtain the boundary information of the effective rendering area; Based on the boundary information of the effective rendering area and the candidate coordinate sequence of the tile, a valid coordinate sequence and a first identifier of the tile are determined. Specifically, if the candidate coordinates corresponding to the second identifier belong to the effective coordinate sequence, the second identifier is determined as the first identifier. If the candidate coordinates corresponding to the second identifier do not belong to the effective coordinate sequence, the first identifier of the tile is determined based on at least one of the boundary information of the effective rendering area and the effective coordinate sequence. The first identifier is used to indicate the last valid coordinate in the effective coordinate sequence to achieve coordinate transfer based on the first identifier. The effective coordinate sequence is obtained by cropping the candidate coordinate sequence based on the boundary information of the effective rendering area.

8. A chip, characterized in that, The chip includes a coordinate processing system as described in any one of claims 1 to 6.

9. An electronic device, characterized in that, The electronic device includes the chip as described in claim 8.

Citation Information

Patent Citations

  • Generation of sawtooth line segment in GPU (Graphics Processing Unit) based on block rendering

    CN102142150A

  • Caching resources

    US20120191773A1