WO2016072811A1 - 디스플레이 장치 및 디스플레이 장치의 제어 방법 - Google Patents
디스플레이 장치 및 디스플레이 장치의 제어 방법 Download PDFInfo
- Publication number
- WO2016072811A1 WO2016072811A1 PCT/KR2015/011965 KR2015011965W WO2016072811A1 WO 2016072811 A1 WO2016072811 A1 WO 2016072811A1 KR 2015011965 W KR2015011965 W KR 2015011965W WO 2016072811 A1 WO2016072811 A1 WO 2016072811A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- stroke
- area
- rendering
- processing unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
Definitions
- the present disclosure relates to a display apparatus and a method of controlling the display apparatus, and more particularly, to a display apparatus and a method of controlling the display apparatus for rendering a stroke using a graphic processing unit.
- the touch display technology is applied to recent display devices, so that a user may input a stroke with a finger or a pen to create and edit various documents or pictures. Accordingly, a user may input a number of lines to create a document or draw a picture, and the user may edit objects such as lines / images / texts while creating a document.
- the display apparatus invalidates an area occupied by each object and redraws lines crossing the area.
- the display apparatus when a large number of strokes intersect the region of the object to be edited, it takes a long time for the display apparatus to render all the strokes, resulting in delay and poor usability.
- Fig. 1A shows such an example.
- the display device displays the user.
- the stroke 11-2 is moved to the corresponding position and drawn again.
- the primitive is a basic unit constituting the stroke, and refers to a point, a triangle, and the like, one triangular primitive has three vertices, and one point primitive has one vertex.
- FIG. 1 (b) shows an example of such a circle-based stroke rendering, by connecting a plurality of circles as shown in the right picture, to draw a stroke as shown in the left picture.
- a shape divided into triangles is called a mesh.
- a circle in the form of a mesh as shown in FIG. That is, for example, when a circle of one of a plurality of circles constituting a stroke is to be rendered using a GPU, as illustrated in the right figure of FIG. 1B, the circle is meshed using several triangle primitives. In this case, a circle must be drawn smoothly by using a certain number of triangles.
- a series of processes for receiving a certain number of primitives for example, the number of primitives constituting one stroke
- a rendering pipeline of the GPU Because a process of the rendering pipeline is basically costly and time consuming, it is advantageous in terms of performance and power consumption to use as few rendering pipelines as possible when rendering the same input.
- the present disclosure has been made to solve the above-described problem, and an object of the present disclosure is to provide a display apparatus and a method of controlling the display apparatus capable of rendering a stroke with low power and high performance when rendering a stroke using a graphic processing unit. In providing.
- a display apparatus for achieving the above object is a graphic processing unit for performing the rendering of the stroke, a display for displaying an image including the rendered stroke and redrawing on the image And a processor configured to determine a redraw area and to provide rendering information for rendering the stroke included in the redraw area to the graphic processing unit when the (Redraw) event occurs, wherein the graphic processing unit includes the rendering. Based on the information, the point primitive may be used to render the stroke included in the redraw area.
- the rendering information may include transformation information for converting an area wider than the redrawing area into a clip space.
- the graphic processing unit converts the redraw region into the clip space based on the conversion information, and includes the graphics processing unit in the redraw region using a point primitive constituting a stroke included in the converted clip space. Rendered strokes.
- the processor may calculate the transformation information based on a maximum radius of a radius of a plurality of point primitives constituting a stroke included in the redraw region.
- the conversion information may include the following matrix.
- w is the width of the redrawing area
- h is the height of the redrawing area
- r is the maximum radius
- the rendering information includes inverse transform information for inverse transforming an area wider than the redraw area converted into the clip space, and the processor is configured to generate a plurality of point primitives constituting a stroke included in the redraw area.
- the inverse transformation information may be calculated using a maximum radius of the radius.
- the inverse transform information may include the following viewport information.
- w is the width of the redrawing area
- h is the height of the redrawing area
- r is the maximum radius
- the apparatus may further include a touch input unit configured to receive the stroke, and the rendering information may include depth information and style information of each of the plurality of strokes included in the redraw area, and the processor may input the touch input unit. Whenever the style of the stroke is changed, the depth information can be changed and assigned.
- the graphic processing unit may simultaneously render strokes having the same style information among the strokes included in the redrawing area.
- the graphic processing unit may render intersection points of strokes having different style information among the strokes included in the redrawing area according to the depth information.
- the graphic processing unit may render intersection points of strokes having different style information using strokes having a lower depth value included in the depth information among strokes having different style information.
- a control method of a display apparatus including a graphic processing unit if a redraw event occurs on an image including a stroke, determining a redrawing area Providing rendering information for rendering the stroke included in the redrawing area to the graphic processing unit, and the graphic processing unit using the point primitive based on the rendering information to draw the stroke included in the redrawing area. Rendering.
- the rendering information may include transformation information for converting an area wider than the redrawing area into a clip space.
- the rendering may include converting the redrawing area to the clip space based on the transformation information and using a point primitive constituting a stroke included in the converted clip space. Rendering the included stroke.
- the providing may include calculating the transformation information based on a maximum radius of a radius of a plurality of point primitives constituting a stroke included in the redrawing area.
- the conversion information may include the following matrix.
- w is the width of the redrawing area
- h is the height of the redrawing area
- r is the maximum radius
- the rendering information may include inverse transform information for inversely transforming an area wider than the redraw area converted into the clip space, and the providing may include a plurality of points constituting a stroke included in the redraw area. Computing the inverse transform information by using the maximum radius of the radius of the primitive.
- the inverse transform information may include the following viewport information.
- w is the width of the redrawing area
- h is the height of the redrawing area
- r is the maximum radius
- the display apparatus may further include a touch input unit configured to receive the stroke, and if the style of the stroke input through the touch input unit is changed, changing and assigning depth information, and providing the changed information. May provide the depth information and the style information of the stroke included in the redrawing area to the graphic processing unit as the rendering information.
- a touch input unit configured to receive the stroke, and if the style of the stroke input through the touch input unit is changed, changing and assigning depth information, and providing the changed information. May provide the depth information and the style information of the stroke included in the redrawing area to the graphic processing unit as the rendering information.
- the rendering may include simultaneously rendering strokes having the same style information among strokes included in the redraw area.
- the rendering may include rendering intersections of strokes having different style information among the strokes included in the redraw area according to the depth information.
- the rendering may include rendering intersection points of strokes having different style information by using strokes having a lower depth value included in the depth information among strokes having different style information.
- the stroke rendering performance of the display device may be improved and power consumption may be reduced.
- FIG. 2 is a block diagram illustrating a configuration of a display apparatus according to an exemplary embodiment.
- FIG. 3 is a block diagram illustrating a configuration of a display apparatus according to another exemplary embodiment.
- FIG. 4 is an exemplary diagram illustrating a problem that may occur when rendering a stroke using a point primitive
- FIG. 5 is a schematic diagram for explaining a method of rendering a stroke using a point primitive according to an embodiment of the present disclosure
- 6 and 7 are exemplary diagrams for describing a method of rendering a stroke using style information and depth information of a stroke according to another embodiment of the present disclosure
- FIG. 8 is an exemplary diagram for describing a method of using depth information together when rendering a stroke using a point primitive according to an embodiment of the present disclosure
- FIG. 9 is a flowchart illustrating a control method of a display apparatus according to an exemplary embodiment.
- FIG. 10 is a flowchart illustrating a stroke rendering method of a display apparatus according to an exemplary embodiment of the present disclosure.
- FIG. 11 is a flowchart illustrating a control method of a display apparatus according to another exemplary embodiment.
- the display apparatus 100 includes a display 110, a graphic processing unit (GPU) 120, and a processor 130.
- the display apparatus 100 may be implemented as various types of electronic devices such as a TV, a smartphone, a tablet, a digitizer, a notebook, a monitor, an electronic blackboard, an electronic table, a large format display (LFD), and the like.
- the display 110 displays various images.
- the display 110 may display the stroke rendered by the graphic processing unit 120.
- the stroke is a line included in the image (eg, text or picture) created by the user and may mean one line unit connected seamlessly from one end to the other end.
- it may be a single stroke or a line constituting a figure or a character, but is not limited thereto.
- the display 110 may be implemented by including various types of display panels, such as a liquid crystal display (LCD), organic light emitting diodes (OLED), a plasma display panel (PDP), and the like, and a touch screen including a touch panel. It may be implemented in the form.
- LCD liquid crystal display
- OLED organic light emitting diodes
- PDP plasma display panel
- the processor 130 controls the overall operation of the display apparatus 100. In particular, when a redraw event occurs on an image including a stroke displayed on the display 110, the processor 130 determines a redraw region and renders a stroke included in the determined redraw region. Rendering information may be provided to the graphics processing unit.
- the redraw event is an event for redrawing at least a part of an image including a stroke, for example, if the user has an editing command for some stroke or part of a text or picture displayed on the display 110. Redraw events may occur for strokes included in the editing area.
- the redrawing event is not limited thereto, and for example, the redrawing event may occur even when there is a refresh command for a document image or a drawing image being edited.
- the redrawing event may occur even when there is a refresh command for a document image or a drawing image being edited.
- the processor 130 may determine a region to be repainted on the image, that is, a redraw region.
- the redrawing area is an area where the stroke included in the image is redrawn according to the redrawing event, and may be, for example, an editing area according to an editing command of the user, but is not limited thereto.
- the editing area may have a rectangular shape such as a bounding box.
- the processor 130 may provide rendering information to the graphic processing unit 120 to render the stroke included in the redrawing area.
- the rendering information may include conversion information for converting a wider area than the redrawing area into a clip space, and a redrawing area having a space wider than the redrawing area converted into a clip space. It may include inverse transformation information for inverse transformation into a display area of the same size, information about primitives constituting the stroke, and the like.
- the processor 130 calculates or obtains rendering information required for the graphics processing unit to render the stroke and provides the graphics processing unit 120.
- the graphic processing unit 120 may perform stroke rendering using the rendering information provided from the processor 130.
- the processor 130 may coordinate the coordinates of each point primitive constituting the stroke so that the graphic processing unit 120 may render the stroke included in the redrawing area by using the point primitive.
- Information and radius information, the above-described transformation information, and inverse transformation information, are provided to the graphics processing unit 120, and the graphics processing unit 120 uses the point primitives on the redrawing area based on the rendering information provided from the processor 130. You can render included strokes.
- the stroke can be expressed using a smaller amount of vertices than the method of rendering the circle constituting the stroke on a mesh basis. This reduces data throughput and enables high performance stroke rendering.
- the processor 130 may provide conversion information for converting an area wider than the determined redrawing area into the clip space to the graphic processing unit 120 as rendering information. This is to prevent stroke breakage that may occur when a graphics processing unit renders a stroke included in a redraw area using a point primitive as a general way of rendering primitives. It will be described later through.
- the processor 130 calculates the transform information and the inverse transform information based on the maximum radius of the radius of the plurality of point primitives constituting the stroke included in the redrawing area, and converts the calculated transform information and the inverse transform information into the graphic processing unit. 120 may be provided.
- the processor 130 may use the following equation. Transformation information such as the matrix of 1 may be calculated, and the calculated transformation information may be provided to the graphic processing unit 120.
- Typical clip space is space in which the x, y, z axes range from -1 to 1. Therefore, an area wider than the redrawing area may be converted into clip space through the matrix as described above.
- the graphic processing unit 120 converts the redrawing area into clip space using the above matrix, and then renders a stroke in the redrawing area using only point primitives existing in the clip space in the inverse transformation process.
- the processor 130 may provide inverse transform information, such as Equation 2 below, to the graphic processing unit 120 by using the maximum radius r described above according to an embodiment of the present disclosure.
- the graphic processing unit 120 inversely transforms the clip space by using the inverse transform information above, and renders the point primitives existing in the clip space in the drawing area, thereby rendering the strokes generated by rendering the stroke using the point primitives.
- the stroke disconnection phenomenon of the drawing area can be eliminated.
- the display apparatus 200 may include a display 210, a graphic processing unit 220, a processor 230, a touch input unit 240, and a storage unit 250.
- the display 210, the graphic processing unit 220, and the processor 230 of FIG. 3 may perform all the functions and operations of the display 110, the graphic processing unit 120, and the processor 130 described with reference to FIG. 2. Therefore, in the description of FIG. 3, the description of the same elements as those described with reference to FIG. 2 will be omitted.
- the touch input unit 240 receives a user's touch input.
- the touch input unit 240 may receive a stroke input by a user using a finger or an input device (for example, a pen).
- the stroke input through the touch input unit 240 may be displayed on the display 210 under the control of the processor 230.
- the touch input unit 240 may include a touch panel.
- the touch sensing method of the touch panel may be a touch panel of various methods such as a resistive film method, a capacitive method, a surface acoustic wave (SAW) method, an infrared method, an optical method, and an electromagnetic induction method.
- the touch input unit 240 may be configured separately from the display 210 or may be integrally configured in the form of a touch screen.
- the processor 230 may provide style information and depth information of each of the plurality of strokes included in the redrawing area to the graphic processing unit 220 as rendering information.
- the style information of the stroke is information on the style of the input device used to draw the stroke, and may include, for example, color information or type information of the pen.
- the pen type is not only physically different from the pen itself, but even if the pen is physically identical, the pen may be selected by selecting various types of pens provided by a stroke writing application that can write a document or draw a stroke. It can be a different kind of pen, even if it is different.
- the depth information is information indicating an order in which strokes are input, and according to an embodiment of the present disclosure, each time the style of the input stroke is changed, the depth information may be information that is given to the corresponding stroke.
- the processor 230 assigns a current depth value to the corresponding stroke, and if the style of the subsequent stroke is not changed, the same depth value is applied to each stroke. Can be assigned to If the style of the input stroke is changed, the depth value can be changed and assigned to the stroke of the changed style.
- the processor 230 may match the depth value with each of the plurality of strokes input through the touch input unit 240 and store the depth value in the storage unit 250 as depth information.
- the processor 230 may match the styles of the plurality of strokes input through the touch input unit 240 to each stroke and store the style information in the storage unit 250 as style information.
- the processor 230 determines a redraw area, and among the depth information and style information stored in the storage unit 250, the processor 230 determines. Depth information and style information on the stroke included in the redrawing area may be provided to the graphic processing unit.
- the graphic processing unit 220 may simultaneously render strokes having the same style information among the strokes included in the redrawing area.
- the graphic processing unit 220 may render strokes having the same style information in one rendering pipeline.
- the graphic processing unit 220 may render intersection points of strokes having different style information among the strokes included in the redrawing area according to the depth information.
- the processor 230 assigns a depth value 100 to the first stroke of the a style, and stores the style information and the depth information of the first stroke. 250). Thereafter, since the style of the second stroke is changed, the processor 230 may allocate the changed depth value 99 to the second stroke and store the style information and the depth information of the second stroke in the storage 250. Since the last input third stroke is also changed from the b style of the second stroke to the a style, the processor 230 changes the depth value to 98 and assigns it to the third stroke, and stores style information and depth information (250). Can be stored in
- the processor 230 transmits the style information and the depth information of the first to the third strokes to the graphic processing unit 220 as rendering information. Can provide.
- the graphic processing unit 220 may simultaneously render the first stroke and the third stroke in which the style information is the same as a, and then the second stroke of the b style.
- the graphic processing unit 220 may simultaneously render the first stroke and the third stroke in which the style information is the same as a, and then the second stroke of the b style.
- the graphics processing unit 220 renders the intersection of the first stroke and the second stroke having different style information
- the depth value 99 of the second stroke is lower than the depth value 100 of the first stroke, and thus, the second stroke. It is possible to render the intersection of the first stroke and the second stroke using.
- the graphic processing unit 220 may render using the third stroke having a lower depth value even when rendering the intersection point of the second stroke and the third stroke having different style information.
- the number of executions of the rendering pipeline may be reduced. Also, by rendering intersection points of strokes having different style information according to the depth information, even if the style information simultaneously renders the same stroke, the order in which the user inputs the strokes can be accurately represented.
- the processor 230 may use the point primitive as described above with reference to FIG. 2 in addition to the style information and the depth information of the stroke included in the redraw area.
- the processor 230 may use the point primitive as described above with reference to FIG. 2 in addition to the style information and the depth information of the stroke included in the redraw area.
- coordinate information and radius information of each point primitive constituting the stroke may be provided to the graphic processing unit 220 as rendering information.
- the graphic processing unit 220 when the graphic processing unit 220 renders a plurality of strokes included in the redrawing area according to the style information and the depth information, the graphic processing unit 220 may render using the point primitive.
- the graphic processing unit 220 using depth information when rendering the stroke using the point primitive will be described later in detail with reference to FIG. 8.
- the graphic processing unit 220 described with reference to FIG. 3 renders a plurality of strokes included in the redrawing area according to the style information and the depth information
- the graphic processing unit 220 always uses the point primitive. You do not have to render each stroke.
- the processor 230 vertex information of all triangular primitives constituting the stroke, conversion information for converting the redrawing area into the clip area, and the converted information.
- Inverse transform information for inverse transforming a clip region is provided to the graphic processing unit 220 as rendering information, and the graphic processing unit 200 uses a triangle primitive based on the style information and depth information of the stroke included in the redrawing region. Embodiments of rendering strokes are also possible.
- the storage unit 250 may store various programs and data for the operation of the display apparatus 200. In addition, the storage unit 250 may also perform a temporary storage function of data generated during the operation of the display apparatus 200.
- the storage unit 250 may store various rendering information.
- the storage unit 250 may store vertex information of each primitive constituting a stroke input through the touch input unit 240 (particularly, coordinate information and radius information of each point primitive), a redrawing area, or a redrawing area.
- Conversion information for converting a large area to clip space, inverse conversion information for inverting the converted clip space to a display area (especially a redrawing area), and a plurality of strokes inputted through the touch input unit 240 in depth Depth information matched to each stroke and style information of each of the plurality of strokes can be stored.
- the storage 250 may store various program modules for the operation of the display apparatus 200 described above.
- the storage unit 250 may include a document creation module capable of inputting and editing strokes to create an image document including text or pictures, a UI module for interaction between the display apparatus 200 and a user, and the above-described example.
- a stroke rendering module for performing operations of the processor 230 and the graphic processing unit 220 according to various embodiments of the present disclosure may be included.
- the processor 230 may read various modules stored in the storage 250 to perform an operation of the display apparatus 200 according to various embodiments of the present disclosure.
- the processor 130 and 230 provide rendering information
- the graphic processing unit 120 and 220 has been described as an example of actively performing stroke rendering using the rendering information.
- the present invention is not limited thereto, and the graphic processing units 120 and 220 may render the stroke under the control of the processors 130 and 230 using the rendering information.
- FIGS. 4 and 5 are exemplary diagram illustrating a problem that may occur when the stroke is rendered using a point primitive. Specifically, in the left figure of FIG. 4, a redraw event occurs in a partial region 420 of the image in a situation where an image including one stroke 410 is displayed on the display screen 400. The drawing is performed, and the right picture of FIG. 4 is an enlarged view of the drawing area 420 again.
- the clip space is a space in which each of the x, y, z axes has a range of -1 to 1. Since primitives that are outside of clip space after converting them to clip space are invisible parts of the display screen, the graphics processing unit cuts out primitives located outside of clip space for efficient rendering. It is called).
- Clipping primitives according to the above specifications cuts only those parts outside the clip space in the case of triangle primitives, so some of the triangles inside the clip space can be rendered.
- point primitives In the case of point primitives, the point primitive itself is excluded from rendering when the center point of the point is located outside the clip space. In this way, point primitives that are output to the display screen but are not rendered are generated, and thus, a stroke break occurs.
- the processor 130 or 230 displays the conversion information for converting the point primitives constituting the stroke included in the redrawing area into the clip space and the point primitives included in the converted clip space.
- Inverse transform information that is inversely transformed into a redrawing area that is, one area of 110 and 210 may be calculated and provided to the graphic processing units 120 and 220 differently from the transform and inverse transform information according to a general specification.
- 5 is a schematic diagram illustrating a method of rendering a stroke using a point primitive according to an embodiment of the present disclosure.
- FIG. 5A illustrates (x, y) of the coordinates of the upper left point of the redrawing area 510 based on the screens of the entire displays 110 and 210, and again when the width and the height are w and h, respectively.
- a plurality of point primitives constituting the stroke included in the drawing area 510 are shown.
- point primitives 511 and 512 positioned at the boundary of the redrawing area 510 may be excluded from the rendering process.
- the processor 130, 230 may first change the position of each point primitive constituting the stroke included in the redraw area 510 relative to the redraw area.
- the position of the point primitive may be moved by ( ⁇ x, ⁇ y), and the position of each moved point primitive may be provided to the graphic processing unit 120 or 220.
- the processor 130 or 230 determines the maximum radius of the radius of the plurality of point primitives constituting the stroke included in the redrawing area 510, and when the determined maximum radius is, for example, r, the mathematics A matrix, such as Equation 1, may be calculated as transform information and provided to the graphic processing units 120 and 220.
- the graphics processing unit 120 or 220 converts the redrawing area 510 into the clip space using the position information and the matrix of the provided point primitives, as shown in FIG.
- An area 520 wider than the drawing area 510 is converted into the clip space 550.
- 5 (b) it can be seen that all the point primitives including the point primitives 511 and 512 positioned at the boundary of the redrawing area 510 are converted to be located in the clip space 550. have.
- the transformation is performed so that the center point of all point primitives included in at least part of the redrawing area exists in the clip space, so that the missing point primitives are eliminated. do.
- the processor 130 or 230 uses the width w and the height h of the redrawing area 510 and the maximum radius r described above.
- Inverse transform information such as may be calculated and provided to the graphic processing units 120 and 220. Accordingly, when the graphic processing unit 120 or 220 inversely transforms the clip space using the provided inverse transformation information, a stroke having the same size as the actual size may be rendered in the drawing area 510 again.
- the inverse transform information described above is modified according to an embodiment of the present disclosure by modifying parameters included in viewport information in the conventional specification. Therefore, a specific method for performing inverse transform using each parameter value included in the inverse transform information may be used according to a conventional specification, and thus a detailed description thereof will be omitted.
- the graphic processing units 120 and 220 convert the redrawing area into the clip space.
- the graphic processing unit 120 and 220 inversely converts the clip space and renders the stroke included in the redrawing area, but this renders the stroke. This is just one example to help understand the process of, but is not limited to.
- the processor 130 or 230 may render the stroke by the graphic processing unit 120 or 220 such as moved position information, transformation information, and inverse transformation information of each point primitive included in the redrawing area.
- the necessary data may be provided to the graphic processing units 120 and 220, and the graphic processing units 120 and 220 may render the strokes according to the rendering instructions of the processors 130 and 230.
- 6 and 7 are exemplary diagrams for describing a method of rendering a stroke by using stroke type information and depth information according to another exemplary embodiment of the present disclosure.
- 6 is an exemplary diagram for comparing and comparing a stroke rendering method according to an exemplary embodiment of the present disclosure.
- FIG. 6A illustrates a first stroke (hereinafter referred to as s1), a second stroke (hereinafter referred to as s2), and a third stroke (hereinafter referred to as s3) through the touch input unit 240 by the user.
- the strokes are entered in order).
- the user inputs s1 and s3 using the same 'pencil' style pen
- s2 is input with the 'ink pen' style pen, which is a different style from s1 and s3, and s1, s2, and s3 are intersection points. This exists.
- a conventional stroke rendering method using a graphics processing unit renders a stroke in one rendering pipeline for each stroke. Therefore, when a redraw event occurs in an area including s1, s2, and s3, the graphics processing unit renders the first rendering after the start of rendering, in the order in which the user inputs strokes, as shown in FIG.
- the pipeline executes s1, the second rendering pipeline, s2, and the third rendering pipeline, s3.
- the graphics processing unit 220 renders a stroke having the same style by performing one same rendering pipeline.
- the processor 230 may change and allocate depth information whenever the style of the stroke input through the touch input unit 240 is changed, and store the depth information allocated to each stroke in the storage unit 250. .
- the processor 230 may set the current depth value to s1 of the first pencil type. '100' can be allocated and saved. Since the input s2 has changed the pen style from 'pencil' to 'ink pen', the processor 230 changes the depth value and allocates '99' and stores the s3 in the 'ink pen' style. Since the pen style is changed back to the style, the processor 230 may allocate and store the changed depth value '98'.
- the processor 230 may match the pen style of each stroke to each stroke and store the style information in the storage 250 as style information.
- the processor 230 may match the 'pencil' to s1 and s3 and the 'ink pen' to s2 and store the style information.
- the processor 230 displays the style information and the depth information of each of the s1, s2, and s3 included in the redraw area, and the graphic processing unit 220. Can be provided to
- the graphic processing unit 220 performs the first rendering pipeline after the start of rendering, regardless of the order in which the user inputs the stroke, as shown in FIG. You can render the same s1 and s3 at the same time, and perform a second rendering pipeline to render the 'pencil' style s2.
- the graphic processing unit 220 may render intersection points of strokes having different style information among the strokes included in the redrawing area according to the depth information.
- the graphic processing unit 220 may render intersection points of strokes having different style information by using strokes having lower depth information among strokes having different style information.
- FIG. 7 illustrates an intersection point of strokes having different styles using the depth information, even if the graphics processing unit 220 renders the same style strokes simultaneously, regardless of the order in which the user inputs the strokes as shown in FIG. 6C.
- the stroke input order of the user is expressed.
- the graphic processing unit 220 may have an intersection point between s1 and s2 ( 712 may render using the lower depth information of s2, and the intersection point 711 of s2 and s3 may be rendered using s3 having the lower depth information of the two.
- the order in which the user inputs the strokes can be expressed by using the depth information of the strokes. This allows you to render strokes accurately while reducing.
- the above is a case where the depth value is gradually assigned every time the style of the stroke input through the touch input unit 240 is changed, but is not limited thereto.
- the depth value is assigned to a higher and higher value every time the style of the stroke is changed will be possible.
- intersection points of strokes having different styles may be rendered using strokes having a high depth value.
- the depth information is information indicating the order in which the strokes are input.
- the depth value is changed whenever the style of the input stroke is changed to give the depth value (for example, a natural number) to the corresponding stroke. Can be.
- the processor 230 of the display apparatus 200 may provide the graphic processing unit 220 with position information and depth information of each point primitive constituting the strokes included in the determined redrawing area. have. For example, if the x and y axis coordinates of any point primitive constituting the strokes included in the redrawing area are x + x0 and y + y0, and the depth value is d0, the corresponding point primitive The position information and the depth information of may be provided to the graphic processing unit 200 in the form of (x0, y0, d0).
- the processor 230 moves the position of each point primitive in the redrawing area by (-x, -y).
- the moved coordinate value may be provided to the graphic processing unit 220 together with the depth value of the corresponding point primitive.
- the upper left coordinate of the redrawing area is (x, y)
- the width and the height are w and h, respectively
- the point primitives included in the redrawing area are at least n to max f.
- the coordinates of each point primitive included in the redrawing area are shifted by (-x, -y), and the depth information of each point primitive is expressed by the depth axis to display the redrawing area in three-dimensional space.
- the processor 230 may provide the graphic processing unit 220 with position information and depth information of all point primitives constituting the strokes included in the redrawing area as shown in FIG. 8. have.
- the processor 230 may provide the graphic processing unit 220 with conversion information for converting the redrawing area into the clip space.
- the processor 230 may determine the maximum radius of the radius of all the point primitives constituting the stroke included in the redrawing area, and calculate the conversion information based on the determined maximum radius.
- the processor 230 when the maximum radius of the radius of the plurality of point primitives constituting the stroke included in the redrawing area as shown in the example of FIG. 8 is determined to be r, the processor 230 generates a matrix as shown in Equation 3 below.
- the calculated matrix may be provided to the graphic processing unit 220 as conversion information.
- the graphic processing unit 220 uses position information and depth information (for example, three-dimensional coordinate values) of each point primitive provided by the processor 230 and the transformation matrix of Equation 3 as shown in FIG. 8. You can convert all point primitives contained in the redraw area to clip space.
- position information and depth information for example, three-dimensional coordinate values
- the graphic processing unit 220 may convert the point primitive into clip space through a specific operation as shown in Equation 4 below.
- Equation 4 when the point primitive is converted from the drawing area to the clip space, the depth information is reflected and calculated. As described above, the graphics processing unit 220 converts the redrawing area into the clip space by using the coordinate value of the point primitive including the depth information and the transformation matrix according to Equation 3, so that the graphic processing unit 220 includes a plurality of reconstructed areas. Even when the stroke is rendered according to the style information and the depth information, the point primitive can be rendered.
- Equation 3 since the matrix as shown in Equation 3 also converts a larger area than the redrawing area of FIG. 8 into clip space, a point primitive located at the boundary of the redrawing area is converted to be located in the clip space. Point primitives that are transformed to the outside are clipped and clipped in a later process.
- the processor 230 uses the width w and the height h of the redrawing area, and the maximum radius r described above to perform inverse transform information such as Equation 2 above.
- the calculation may be provided to the graphic processing unit 220. Accordingly, when the graphic processing unit 220 inversely transforms the clip space using the inverse transformation information as shown in Equation 2, a stroke having the same size as the actual size may be rendered in the drawing area.
- Equation 5 shows an example of a concrete operation of inversely transforming a point primitive transformed into clip space through a matrix as shown in Equation 3 using inverse transform information as shown in Equation 2 above.
- Equation 2 the inverse transform information of Equation 2 is modified according to an embodiment of the present disclosure by modifying the parameters included in the viewport information in the conventional specification, each parameter included in Equation 2 above.
- (-R, -r) represents the upper left coordinate of the viewport
- (w + 2r, h + 2r) represents the viewport width and height.
- the graphic processing unit 220 calculates an inverse transform matrix such as the leftmost matrix of Equation 5 using the parameters included in the view port information of Equation 2, and calculates an inverse transform matrix in clip space on the calculated inverse transform matrix.
- the inverse transformation may be performed by calculating a point primitive coordinate value.
- a specific method of performing inverse transformation by the graphic processing unit 220 using respective parameter values included in the inverse transformation information of Equation 2 is not limited thereto. As described above, methods according to the conventional specification may be used. Can be.
- the amount of vertices that the graphics processing unit must process is reduced, and the rendering pipeline to be performed to render the same number of strokes. Since the number is reduced, rendering time can be shortened and current consumption can be reduced, thereby enabling high performance stroke rendering.
- the depth information of the strokes can be used to express the order in which the strokes are input by the user.
- FIG. 9 is a flowchart illustrating a control method of the display apparatuses 100 and 200 including the graphic processing units 120 and 220 according to an exemplary embodiment.
- the display apparatuses 100 and 200 determine a redraw region (S910), and render a stroke included in the determined redraw region.
- the rendering information is provided to the graphic processing units 120 and 220 (S920).
- the rendering information includes position information of point primitives constituting the stroke included in the redrawing area, conversion information for converting a wider area than the redrawing area into a clip space, and a redrawing area converted into the clip space. It may include at least one of inverse transform information for inverse transforming a wide area, style information of an input stroke, and depth information.
- the display apparatuses 100 and 200 calculate the transformation information and the inverse transformation information based on the maximum radius among the radiuses of the plurality of point primitives constituting the stroke included in the redrawing area, and output the converted information to the graphic processing unit 120 or 220. Can provide.
- the matrix as shown in Equation 1 may be calculated as transform information, and the view port information as shown in Equation 2 may be calculated and provided to the graphic processing units 120 and 220.
- the view port information is inverse transform information for inverse transforming the clip space converted by Equation (1).
- the display apparatuses 100 and 200 may further include a touch input unit for receiving a stroke, and allocate depth information to a stroke input through the touch input unit.
- the display apparatuses 100 and 200 may change and allocate depth information, and may match and store the assigned depth information with the corresponding stroke.
- the display apparatuses 100 and 200 may store style information of each stroke input through the touch input unit.
- the display apparatuses 100 and 200 determine the redraw region (S910), and depth information and style of the stroke included in the determined redraw region.
- Information may be provided to the graphic processing units 120 and 220 as rendering information (S920).
- the graphic processing units 120 and 220 may render strokes included in the redrawing area using point primitives based on the rendering information.
- the graphic processing unit 120 or 220 converts the redrawing area into clip space based on the conversion information, and is included in the redrawing area by using a point primitive constituting a stroke included in the converted clip space. You can render strokes.
- the graphic processing unit 120 or 220 converts an area wider than the redrawing area into clip space by using transform matrix information such as Equation 1, and converts the image using view port information such as Equation 2.
- transform matrix information such as Equation 1
- view port information such as Equation 2.
- the graphic processing units 120 and 220 may render strokes included in the redrawing area using point primitives based on the depth information and the style information. In detail, the graphic processing units 120 and 220 may simultaneously render strokes having the same style information among the strokes included in the redrawing area. Also, the graphic processing units 120 and 220 may render intersection points of strokes having different style information among the strokes included in the redrawing area according to the depth information. In detail, the graphic processing units 120 and 220 may render intersection points of strokes having different style information by using strokes having a lower depth value included in the depth information among strokes having different style information.
- FIG. 10 is a flowchart illustrating a stroke rendering method of a display apparatus according to an exemplary embodiment.
- the display apparatuses 100 and 200 may determine a redrawing area (S1010).
- the determined upper left coordinate of the redrawing area is (x, y)
- the width is w
- the height is h in the entire display screen
- the display apparatuses 100 and 200 may include strokes included in the redrawing area.
- the positions of each circle, that is, the point primitives constituting the X are moved by (-x, -y) (S1020).
- the display apparatuses 100 and 200 search for the maximum radius among the radii of the plurality of point primitives constituting the stroke included in the redraw region (S1030), and convert the redraw region to the clip space using the found maximum radius.
- a conversion matrix to calculate is calculated (S1040).
- the transformation matrix may be the same as Equation 1.
- the display apparatuses 100 and 200 calculate a viewport for inversely transforming the converted clip space using the retrieved maximum radius (S1050). In this case, the view port may be equal to two in the math.
- the display apparatuses 100 and 200 may include position information, a calculated transformation matrix, a viewport, and the like that move the positions of the point primitives constituting the straw included in the redrawing area by (-x, -y).
- the graphic processing units 120 and 220 provide all the information necessary for rendering the stroke to the graphic processing units 120 and 220 (S1060), and issue a rendering command to the graphic processing units 120 and 220 (S1070).
- FIG. 11 is a flowchart illustrating a control method of a display apparatus including a graphic processing unit, according to another exemplary embodiment.
- the display apparatuses 100 and 200 include a touch input unit, and when a stroke is input through the touch input unit, depth information may be allocated and stored to the input stroke.
- the display apparatuses 100 and 200 may change and allocate depth information, and match and store the assigned depth information with the corresponding stroke (S1110). In addition, the display apparatuses 100 and 200 may match the style information of the stroke input through the touch input unit with the corresponding stroke and store the same.
- the display apparatus 100 or 200 determines the redrawing area (S1120), and displays depth information and style information on strokes included in the redrawing area among the stored depth information and style information. It may be provided to the processing unit (120, 220) (S1130).
- the graphic processing units 120 and 220 may render the stroke included in the redrawing area by using the depth information and the style information.
- the graphic processing units 120 and 220 may render strokes using various primitives such as a triangle primitive and a point primitive.
- the graphic processing units 120 and 220 may simultaneously render strokes having the same style information among the strokes included in the redrawing area. Also, the graphic processing units 120 and 220 may render intersection points of strokes having different style information among the strokes included in the redrawing area according to the depth information. In detail, the graphic processing units 120 and 220 may render intersection points of strokes having different style information by using strokes having a lower depth value included in the depth information among strokes having different style information.
- the operations of the display apparatuses 100 and 200 described with reference to FIGS. 9 through 11 may be performed by the processors 130 and 230 of the display apparatuses 100 and 200 according to an exemplary embodiment.
- the stroke rendering performance of the display device may be improved and power consumption may be reduced.
- operations of the processor of the display apparatus or control methods of the display apparatus according to the various embodiments described above may be generated by software and mounted on the display apparatus.
- determining a redraw area providing rendering information for rendering a stroke included in the redraw area to the graphic processing unit, and graphics
- a non-transitory computer readable medium having stored thereon a program for performing a control method of a display device, the processing unit comprising rendering a stroke included in a redrawing area using a point primitive based on rendering information.
- the non-transitory readable medium refers to a medium that stores data semi-permanently rather than a medium storing data for a short time such as a register, a cache, a memory, and the like, and can be read by the device.
- the above-described various middleware or programs may be stored and provided in a non-transitory readable medium such as a CD, a DVD, a hard disk, a Blu-ray disk, a USB, a memory card, a ROM, or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Geometry (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
디스플레이 장치가 개시된다. 본 디스플레이 장치는 스트로크의 렌더링을 수행하는 그래픽 처리 유닛, 렌더링된 스트로크(Stroke)를 포함하는 이미지를 디스플레이하는 디스플레이 및 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하고, 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 그래픽 처리 유닛에 제공하는 프로세서를 포함하고, 그래픽 처리 유닛은, 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링한다.
Description
본 개시는 디스플레이 장치 및 디스플레이 장치의 제어 방법에 관한 것으로, 보다 상세하게는, 그래픽 처리 유닛을 이용하여 스트로크를 렌더링하는 디스플레이 장치 및 디스플레이 장치의 제어 방법에 관한 것이다.
전자 기술의 발달에 힘입어 TV, 휴대폰, 노트북 PC, 태블릿 PC 등과 같은 다양한 종류의 디스플레이 장치가 개발되어 보급되고 있다. 디스플레이 장치의 사용이 늘면서 보다 다양한 기능에 대한 사용자 니즈(needs)도 증대되었다. 이에 따라, 사용자 니즈에 부합하기 위한 각 제조사들의 노력도 커져서, 종래에 없던 새로운 기능을 갖춘 제품들이 속속 등장하고 있다.
특히, 최근의 디스플레이 장치들에는 터치 감지 기술이 적용되어, 사용자는 손가락 또는 펜으로 스트로크를 입력하여, 각종 문서나 그림을 만들고 편집할 수 있게 되었다. 이에 따라, 사용자는 수많은 선을 입력하여 문서를 작성하거나 그림을 그리게 되는데, 문서 작성 중에 선/이미지/텍스트와 같은 개체들을 편집하게 되는 경우가 발생하게 된다.
이 경우, 디스플레이 장치는 각 개체가 차지하는 영역을 무효화(invalidate)하여 그 영역과 교차하는 선들을 다시 그려야(redraw) 한다. 이때, 편집되는 개체의 영역과 많은 수의 스트로크가 교차하는 경우, 디스플레이 장치가 모든 스트로크를 렌더링 하는데에 많은 시간이 소요되어 지연이 발생하고 사용성이 떨어지게 된다.
도 1의 (a)는 이와 같은 예를 나타내고 있다. 사용자가 터치 스크린(10)을 통해 입력한 스트로크(11-1, 12)가 디스플레이된 상황에서, 사용자가 스트로크(11-1)를 다른 위치로 이동하는 편집 명령을 입력한 경우, 디스플레이 장치는 사용자 명령에 따라 스트로크(11-2)를 해당 위치로 이동하여 다시 그리게 된다.
이때, 스트로크(11-2)가 차지하는 영역(20)에 포함되는 많은 수의 서로 교차하는 스트로크(11-2, 12)가 다시 그려지게 되므로, 많은 시간이 소요되어 사용성이 저하되는 문제점이 발생하게 된다.
이와 같이, 다시 그리기 이벤트가 발생된 경우의 성능 저하를 극복하기 위해, 포인트나 삼각형 등의 프리미티브를 다량으로 렌더링하는 데에 최적화된 그래픽 처리 유닛(Graphic Processing Unit, GPU)을 활용하는 방안을 생각해 볼 수 있다. 여기서, 프리미티브는 스트로크를 구성하는 기본 단위로서, 포인트, 삼각형 등을 말하며, 하나의 삼각형(triangle) 프리미티브는 3 개의 버텍스(vertex)를 가지고, 하나의 포인트 프리미티브는 하나의 버텍스를 가지게 된다.
한편, 손가락이나 펜의 필압을 사실적으로 표현하기 위해, 다량의 원(Circle)을 연결해서 그리는 방법이 일반적으로 이용되고 있다. 손가락이나 펜 입력의 압력, 면적, 속도 등에 따라 원의 크기가 결정되며, 원 내부에 펜의 질감을 나타낼 수 있는 텍스쳐(texture) 이미지를 채워 넣음으로써, 다양한 종류의 펜 스타일 질감을 표현할 수 있다. 도 1의 (b)는 이와 같은 원 기반의 스트로크 렌더링의 예를 나타내며, 우측 그림과 같이 여러 개의 원을 연결하여, 좌측 그림과 같은 스트로크를 그리게 된다.
일반적으로 GPU를 이용해서 도형을 그릴 때에는 그리고자 하는 도형을 삼각형으로 쪼개서 GPU에 전달하게 되는데, 이와 같이 삼각형으로 쪼개진 도형을 메쉬(mesh)라고 한다. 원을 메쉬 형태로 만들기 위해서는 도 1의 (c)와 같이 여러 개의 삼각형으로 원을 구성하게 된다. 즉, 예를 들어, 도 1의 (b)의 우측 그림과 같이, 스트로크를 구성하는 다수의 원 중 하나의 원을 GPU를 이용하여 렌더링하고자 하는 경우, 여러 개의 삼각형 프리미티브를 이용하여 원을 메쉬 형태로 구성하게 되며, 이 경우, 일정 개수 이상의 삼각형을 사용해야 원이 부드럽게 그려질 수 있다.
결국, 종래 기술에 따라 GPU를 통해 원을 렌더링할 때, 원을 부드럽게 그리기 위해서는 많은 수의 버텍스(vertex)가 필요하게 되며, 버텍스의 수가 많아지면 메모리 사용량이 증가하고, CPU(Central Processing Unit)에서 GPU로 전송해야 하는 데이터양도 많아지게 된다. 따라서, GPU에서 처리해야 하는 연산량 역시 많아지게 되며, 결과적으로 GPU를 통해서 최적의 성능을 얻는 것이 어려워지는 문제점이 발생한다.
한편, 특정 개수(예를 들어, 하나의 스트로크를 구성하는 프리미티브의 개수)의 프리미티브를 입력받아 화면에 출력하는 일련의 과정을 GPU의 렌더링 파이프라인(rendering pipeline)이라고 한다. 렌더링 파이프라인의 한 과정을 수행하는 데에는 기본적으로 비용과 시간이 소요되므로, 동일한 입력을 렌더링하는 경우, 가능한 적은 수의 렌더링 파이프 라인을 사용하는 것이 성능과 소비전력 면에서 유리하다.
종래에는 한 객체 단위로 렌더링 파이프라인을 수행하는 것이 일반적이었으며, 스트로크 렌더링의 경우는 원과 같은 하나의 프리미티브 마다 한 번의 렌더링 파이프 라인을 수행하거나, 하나의 스트로크마다 한 번의 렌더링 파이프라인을 수행하는 것이 일반적이었다. 그러나, 종래기술과 같이, 하나의 프리미티브 또는 하나의 스트로크마다 한 번의 렌더링 파이프라인을 수행하면, 글자나 문장과 같은 다량의 짧은 스트로크를 렌더링할 때, 많은 수의 렌더링 파이프라인을 수행해야 하므로, 디스플레이 장치의 성능과 전력에 대한 문제를 야기하게 된다.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로, 본 개시의 목적은 그래픽 처리 유닛을 이용하여 스트로크를 렌더링할 때, 저전력, 고성능으로 스트로크를 렌더링할 수 있는 디스플레이 장치 및 디스플레이 장치의 제어 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 디스플레이 장치는 스트로크의 렌더링을 수행하는 그래픽 처리 유닛, 상기 렌더링된 스트로크(Stroke)를 포함하는 이미지를 디스플레이하는 디스플레이 및 상기 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하고, 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 상기 그래픽 처리 유닛에 제공하는 프로세서를 포함하고, 상기 그래픽 처리 유닛은, 상기 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다.
또한, 상기 렌더링 정보는, 상기 다시 그리기 영역보다 넓은 영역을 클립 공간(Clip Space)으로 변환하기 위한 변환 정보를 포함할 수 있다.
또한, 상기 그래픽 처리 유닛은, 상기 변환 정보에 기초하여 상기 다시 그리기 영역을 상기 클립 공간으로 변환하고, 상기 변환된 클립 공간 내부에 포함된 스트로크를 구성하는 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다.
또한, 상기 프로세서는, 상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름에 기초하여 상기 변환 정보를 산출할 수 있다.
또한, 상기 변환 정보는, 아래의 매트릭스를 포함할 수 있다.
여기서, w는 상기 다시 그리기 영역의 너비, h는 상기 다시 그리기 영역의 높이, r은 상기 최대 반지름을 나타낸다.
또한, 상기 렌더링 정보는, 상기 클립 공간으로 변환된 상기 다시 그리기 영역보다 넓은 영역을 역변환하기 위한 역변환 정보를 포함하고, 상기 프로세서는, 상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름을 이용하여 상기 역변환 정보를 산출할 수 있다.
또한, 상기 역변환 정보는, 아래의 뷰 포트(viewport) 정보를 포함할 수 있다.
여기서, w는 상기 다시 그리기 영역의 너비, h는 상기 다시 그리기 영역의 높이, r은 상기 최대 반지름을 나타낸다.
또한, 상기 스트로크를 입력받는 터치 입력부를 더 포함하고, 상기 렌더링 정보는, 상기 다시 그리기 영역에 포함된 복수의 스트로크 각각의 뎁스 정보 및 스타일 정보를 포함하며, 상기 프로세서는, 상기 터치 입력부를 통해 입력되는 스트로크의 스타일이 변경될 때마다 뎁스 정보를 변경하여 할당할 수 있다.
또한, 상기 그래픽 처리 유닛은, 상기 다시 그리기 영역에 포함된 스트로크 중 상기 스타일 정보가 동일한 스트로크를 동시에 렌더링할 수 있다.
또한, 상기 그래픽 처리 유닛은, 상기 다시 그리기 영역에 포함된 스트로크 중 상기 스타일 정보가 상이한 스트로크들의 교차 지점을 상기 뎁스 정보에 따라 렌더링할 수 있다.
또한, 상기 그래픽 처리 유닛은, 상기 스타일 정보가 상이한 스트로크 중 상기 뎁스 정보에 포함된 뎁스값이 낮은 스트로크를 이용하여 상기 스타일 정보가 상이한 스트로크들의 교차 지점을 렌더링할 수 있다.
한편, 본 개시의 다른 일 실시 예에 따른 그래픽 처리 유닛을 포함하는 디스플레이 장치의 제어 방법은 스트로크(Stroke)를 포함하는 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하는 단계, 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 상기 그래픽 처리 유닛에 제공하는 단계 및 상기 그래픽 처리 유닛이 상기 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하는 단계를 포함한다.
또한, 상기 렌더링 정보는, 상기 다시 그리기 영역보다 넓은 영역을 클립 공간(Clip Space)으로 변환하기 위한 변환 정보를 포함할 수 있다.
또한, 상기 렌더링하는 단계는, 상기 변환 정보에 기초하여 상기 다시 그리기 영역을 상기 클립 공간으로 변환하는 단계 및 상기 변환된 클립 공간 내부에 포함된 스트로크를 구성하는 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하는 단계를 포함할 수 있다.
또한, 상기 제공하는 단계는, 상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름에 기초하여 상기 변환 정보를 산출하는 단계를 포함할 수 있다.
또한, 상기 변환 정보는, 아래의 매트릭스를 포함할 수 있다.
여기서, w는 상기 다시 그리기 영역의 너비, h는 상기 다시 그리기 영역의 높이, r은 상기 최대 반지름을 나타낸다.
또한, 상기 렌더링 정보는, 상기 클립 공간으로 변환된 상기 다시 그리기 영역보다 넓은 영역을 역변환하기 위한 역변환 정보를 포함하고, 상기 제공하는 단계는, 상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름을 이용하여 상기 역변환 정보를 산출하는 단계를 포함할 수 있다.
또한, 상기 역변환 정보는, 아래의 뷰 포트(viewport) 정보를 포함할 수 있다.
여기서, w는 상기 다시 그리기 영역의 너비, h는 상기 다시 그리기 영역의 높이, r은 상기 최대 반지름을 나타낸다.
또한, 상기 디스플레이 장치는, 상기 스트로크를 입력받는 터치 입력부를 더 포함하고, 상기 터치 입력부를 통해 입력되는 스트로크의 스타일이 변경되면, 뎁스 정보를 변경하여 할당하는 단계를 더 포함하며, 상기 제공하는 단계는, 상기 다시 그리기 영역에 포함된 스트로크에 대한 상기 뎁스 정보 및 상기 스타일 정보를 상기 렌더링 정보로 상기 그래픽 처리 유닛에 제공할 수 있다.
또한, 상기 렌더링하는 단계는, 상기 다시 그리기 영역에 포함된 스트로크 중 상기 스타일 정보가 동일한 스트로크를 동시에 렌더링할 수 있다.
또한, 상기 렌더링하는 단계는, 상기 다시 그리기 영역에 포함된 스트로크 중 상기 스타일 정보가 상이한 스트로크들의 교차 지점을 상기 뎁스 정보에 따라 렌더링할 수 있다.
또한, 상기 렌더링하는 단계는, 상기 스타일 정보가 상이한 스트로크 중 상기 뎁스 정보에 포함된 뎁스값이 낮은 스트로크를 이용하여 상기 스타일 정보가 상이한 스트로크들의 교차 지점을 렌더링할 수 있다.
이상과 같은 본 개시의 다양한 실시 예들에 따르면, 디스플레이 장치의 스트로크 렌더링 성능이 향상되고, 소모 전력을 감소시킬 수 있다.
도 1은 종래 기술의 문제점 및 배경 기술을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 디스플레이 장치의 구성을 나타내는 블럭도,
도 3 은 본 개시의 다른 일 실시 예에 따른 디스플레이 장치의 구성을 나타내는 블럭도,
도 4는 포인트 프리미티브를 이용한 스트로크 렌더링시 발생할 수 있는 문제점을 나타내는 예시도,
도 5는 본 개시의 일 실시 예에 따라 포인트 프리미티브를 이용하여 스트로크를 렌더링하는 방법을 설명하기 위한 모식도,
도 6 및 도 7은 본 개시의 다른 일 실시 예에 따라 스트로크의 스타일 정보 및 뎁스 정보를 이용하여 스트로크를 렌더링하는 방법을 설명하기 위한 예시도,
도 8은 본 개시의 일 실시 예에 따라 포인트 프리미티브를 이용하여 스트로크를 렌더링할 때 뎁스 정보를 함께 이용하는 방법을 설명하기 위한 예시도,
도 9는 본 개시의 일 실시 예에 따른 디스플레이 장치의 제어 방법을 나타내는 흐름도,
도 10은 본 개시의 일 실시 예에 따른 디스플레이 장치의 스트로크 렌더링 방법을 자세히 나타내는 흐름도, 및
도 11은 본 개시의 다른 일 실시 예에 따른 디스플레이 장치의 제어 방법을 나타내는 흐름도이다.
본 개시를 설명함에 있어, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한 다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
도 2는 본 개시의 일 실시 예에 따른 디스플레이 장치의 구성을 나타내는 블럭도이다. 도 2에 따르면, 디스플레이 장치(100)는 디스플레이(110), 그래픽 처리 유닛(GPU, Graphic Processing Unit, 120), 프로세서(130)를 포함한다. 이때, 디스플레이 장치(100)는 TV, 스마트폰, 태블릿, 디지타이저, 노트북, 모니터, 전자 칠판, 전자 테이블, LFD(Large Format Display) 등과 같은 다양한 형태의 전자 장치로 구현될 수 있다.
디스플레이(110)는 각종 이미지를 디스플레이한다. 특히, 디스플레이(110)는 그래픽 처리 유닛(120)이 렌더링한 스트로크를 디스플레이할 수 있다. 여기서, 스트로크는 사용자가 작성한 이미지(예를 들어, 텍스트나 그림)에 포함된 선으로, 한 끝에서 다른 끝까지 끊김 없이 연결된 하나의 선 단위를 의미할 수 있다. 예를 들어, 숫자나 문자의 한 획 또는 그림을 구성하는 하나의 라인 등일 수 있으나, 이에 한정되는 것은 아니다.
한편, 디스플레이(110)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes), PDP(Plasma Display Panel) 등과 같은 다양한 종류의 디스플레이 패널을 포함하여 구현될 수 있으며, 터치 패널을 포함하는 터치 스크린 형태로 구현될 수도 있다.
프로세서(130)는 디스플레이 장치(100)의 전반적인 동작을 제어한다. 특히, 프로세서(130)는 디스플레이(110)에 디스플레이된 스트로크를 포함하는 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하고, 판단된 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 그래픽 처리 유닛으로 제공할 수 있다.
여기서, 다시 그리기 이벤트는 스트로크를 포함하는 이미지의 적어도 일부를 다시 그리는 이벤트로, 예를 들어, 디스플레이(110)에 디스플레이된 텍스트나 그림의 일부 영역 또는 일부 스트로크에 대한 사용자의 편집 명령이 있는 경우 해당 편집 영역에 포함된 스트로크에 대한 다시 그리기 이벤트가 발생할 수 있다.
그러나, 다시 그리기 이벤트 발생이 이에 한정되는 것은 아니며, 가령, 편집 중인 문서 이미지나 그림 이미지에 대한 새로 고침(refresh) 명령이 있는 경우에도 다시 그리기 이벤트가 발생할 수 있다. 본 개시에서 다시 그리기 이벤트의 종류에 제한은 없다.
이와 같은 다시 그리기 이벤트가 발생하면, 프로세서(130)는 이미지상에서 다시 그리기 동작을 수행할 영역 즉, 다시 그리기 영역을 판단할 수 있다. 이때, 다시 그리기 영역은 다시 그리기 이벤트에 따라 이미지에 포함된 스트로크가 다시 그려지는 영역으로, 예를 들어, 사용자의 편집 명령에 따른 편집 영역이 될 수 있으나, 이에 한정되는 것은 아니다. 이때, 편집 영역은 바운딩 박스와 같은 사각형 형태일 수 있다.
프로세서(130)는 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 그래픽 처리 유닛(120)에 제공할 수 있다. 이때, 본 개시의 일 실시 예에 따르면, 렌더링 정보는 다시 그리기 영역보다 넓은 영역을 클립 공간(Clip Space)으로 변환하기 위한 변환 정보, 클립 공간으로 변환된 다시 그리기 영역보다 넓은 공간을 다시 그리기 영역과 같은 크기의 디스플레이 영역으로 역변환하기 위한 역변환 정보, 스트로크를 구성하는 프리미티브에 대한 정보 등을 포함할 수 있다.
구체적으로, 그래픽 처리 유닛을 이용하여 스트로크를 렌더링하기 위해서는 스트로크를 구성하는 프리미티브의 모든 버텍스(Vertex)를 클립 공간(Clip Space)로 변환하여 클립 공간 외부에 위치하는 프리미티브들을 잘라내고, 클립 공간 내부에 있는 프리미티브들만을 디스플레이 공간으로 다시 역변환하는 과정을 거치게 된다. 이 과정에서, 프로세서(130)는 그래픽 처리 유닛이 스트로크를 렌더링하는 데 필요로 하는 렌더링 정보를 산출 또는 획득하여 그래픽 처리 유닛(120)에 제공하게 된다.
이에 따라, 그래픽 처리 유닛(120)은 프로세서(130)로부터 제공된 렌더링 정보를 이용하여 스트로크 렌더링을 수행할 수 있다.
특히, 본 개시의 일 실시 예에 따르면, 프로세서(130)는 그래픽 처리 유닛(120)이 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있도록 해당 스트로크를 구성하는 각 포인트 프리미티브의 좌표 정보 및 반지름 정보, 상술한 변환 정보 및 역변환 정보를 그래픽 처리 유닛(120)에 제공하고, 그래픽 처리 유닛(120)은 프로세서(130)로부터 제공된 렌더링 정보를 바탕으로 포인트 프리미티브 를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다.
이와 같이, 포인트 프리미티브를 이용하여 스트로크를 렌더링함으로써 하나의 버텍스로 하나의 원을 표현할 수 있으므로, 메쉬 기반으로 스트로크를 구성하는 원을 렌더링하는 방법보다 적은 양의 버텍스를 사용하여 스트로크를 표현할 수 있다. 이에 따라, 데이터 처리량이 감소되어 고성능의 스트로크 렌더링이 가능해 진다.
한편, 본 개시의 일 실시 예에 따르면, 프로세서(130)는 판단된 다시 그리기 영역보다 넓은 영역을 클립 공간으로 변환하기 위한 변환 정보를 렌더링 정보로 그래픽 처리 유닛(120)에 제공할 수 있다. 이는 그래픽 처리 유닛이 프리미티브를 렌더링하는 일반적인 방법으로 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 때 발생할 수 있는 스트로크 단절 현상을 방지하기 위한 것으로, 스트로크 단절 현상에 대한 자세한 내용은 도 4를 통해 후술하기로 한다.
구체적으로, 프로세서(130)는 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름에 기초하여 변환 정보 및 역변환 정보를 산출하고, 산출된 변환 정보 및 역변환 정보를 그래픽 처리 유닛(120)에 제공할 수 있다.
예를 들어, 다시 그리기 영역의 너비가 w 이고, 높이가 h 이며, 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름이 r 인 경우, 프로세서(130)는 아래 수학식 1의 매트릭스와 같은 변환 정보를 산출하고, 산출된 변환 정보를 그래픽 처리 유닛(120)에 제공할 수 있다.
일반적인 클립 공간은 x, y, z 각 축이 -1 에서 1의 범위를 가지는 공간이다. 따라서, 위와 같은 매트릭스를 통해 다시 그리기 영역보다 넓은 영역이 클립 공간으로 변환될 수 있다.
한편, 전술한 바와 같이, 클립 공간으로의 변환 과정에서 클립 공간 외부에 위치하게 되는 프리미티브들은 잘려나가게 되는데, 이를 클리핑(Clipping)이라 한다. 따라서, 그래픽 처리 유닛(120)은 위 매트릭스를 이용하여 다시 그리기 영역을 클립 공간으로 변환하고, 이후 역변환 과정에서 클립 공간 내부에 존재하는 포인트 프리미티브들만을 이용하여 다시 그리기 영역에 스트로크를 렌더링하게 된다.
한편, 클립 공간보다 넓은 다시 그리기 영역이 클립 공간으로 변환되었으므로, 변환된 클립 공간을 그대로 역변환하는 경우, 다시 그리기 영역에 렌더링 되는 스트로크는 실제 스트로크보다 짧아지는 경우가 발생할 수 있다. 따라서, 프로세서(130)는 이를 보정하기 위해, 본 개시의 일 실시 예에 따라 상술한 최대 반지름 r을 이용하여 아래의 수학식 2와 같은 역변환 정보를 그래픽 처리 유닛(120)에 제공할 수 있다.
이에 따라, 그래픽 처리 유닛(120)은 위 역변환 정보를 이용하여 클립 공간을 역변환하여 클립 공간 내부에 존재하는 포인트 프리미티브를 다시 그리기 영역에 렌더링함으로써, 포인트 프리미티브를 이용하여 스트로크를 렌더링함으로써 발생할 수 있는 다시 그리기 영역의 스트로크 단절 현상을 없앨 수 있다.
도 3 은 본 개시의 다른 일 실시 예에 따른 디스플레이 장치의 구성을 나타내는 블럭도이다. 도 3에 따르면, 디스플레이 장치(200)는 디스플레이(210), 그래픽 처리 유닛(220), 프로세서(230), 터치 입력부(240) 및 저장부(250)를 포함할 수 있다. 도 3의 디스플레이(210), 그래픽 처리 유닛(220) 및 프로세서(230)는 도 2를 통해 설명한 디스플레이(110, 그래픽 처리 유닛(120) 및 프로세서(130)의 모든 기능 및 동작을 수행할 수 있다. 따라서, 도 3을 설명함에 있어, 도 2를 통해 설명한 것과 중복되는 구성의 동일한 내용은 설명을 생략하기로 한다.
터치 입력부(240)는 사용자의 터치 입력을 수신한다. 특히, 특히, 터치 입력부(240)는 사용자가 손가락 또는 입력 장치(예를 들어, 펜)를 이용하여 입력하는 스트로크를 입력받을 수 있다. 이와 같이, 터치 입력부(240)를 통해 입력된 스트로크는 프로세서(230)의 제어를 받아 디스플레이(210)에 디스플레이될 수 있다.
이를 위해, 터치 입력부(240)는 터치 패널을 포함할 수 있다. 이때, 터치 패널의 터치 감지 방식은 저항막 방식, 정전 용량 방식, SAW(Surface Acoustic Wave) 방식, 적외선 방식, 광학식, 전자기 유도 방식 등 다양한 방식의 터치 패널이 이용될 수 있다. 또한, 터치 입력부(240)는 디스플레이(210)와 별도로 구성될 수도 있고, 터치 스크린 형태로 일체로 구성될 수도 있다.
한편, 본 개시의 일 실시 예에 따르면, 프로세서(230)는 다시 그리기 영역에 포함된 복수의 스트로크 각각의 스타일 정보 및 뎁스 정보를 렌더링 정보로 그래픽 처리 유닛(220)에 제공할 수 있다.
여기서, 스트로크의 스타일 정보는 스트로크를 그리는데 이용된 입력 장치의 스타일에 관한 정보로서, 예를 들어, 펜의 색상 정보나 종류 정보 등을 포함할 수 있다. 이때, 펜의 종류는 물리적으로 펜 자체가 달라지는 경우뿐만 아니라, 물리적으로는 동일한 펜이더라도 스트로크를 입력하여 문서를 작성하거나 그림을 그릴 수 있는 스트로크 작성 애플리케이션에서 제공하는 다양한 종류의 펜을 선택하여 펜이 달라지는 경우에도 각각 다른 종류의 펜이 될 수 있다.
한편, 뎁스 정보는 스트로크가 입력된 순서를 나타내는 정보로서, 본 개시의 일 실시 예에 따르면, 입력되는 스트로크의 스타일이 변경될 때마다 변경되어 해당 스트로크에 부여되는 정보일 수 있다.
구체적으로, 프로세서(230)는 터치 입력부(240)를 통해 특정 스타일의 하나의 스트로크가 입력되면, 현재 뎁스값을 해당 스트로크에 할당하고, 이후 스트로크의 스타일이 변경되지 않으면, 동일한 뎁스값을 각 스트로크에 할당할 수 있다. 만일, 입력되는 스트로크의 스타일이 변경되면, 뎁스값을 변경하여 변경된 스타일의 스트로크에 할당할 수 있다. 이와 같이, 프로세서(230)는 터치 입력부(240)를 통해 입력된 복수의 스트로크 각각에 뎁스값을 매칭시켜 뎁스 정보로 저장부(250)에 저장할 수 있다. 또한, 프로세서(230)는 터치 입력부(240)를 통해 입력되는 복수의 스트로크의 스타일을 각 스트로크에 매칭시켜 스타일 정보로 저장부(250)에 저장할 수 있다.
이후, 프로세서(230)는 디스플레이(210)에 디스플레이된 복수의 스트로크를 포함하는 이미지상에 다시 그리기 이벤트가 발생하면, 다시 그리기 영역을 판단하고, 저장부(250)에 저장된 뎁스 정보 및 스타일 정보 중 다시 그리기 영역에 포함된 스트로크에 대한 뎁스 정보 및 스타일 정보를 그래픽 처리 유닛에 제공할 수 있다.
이에 따라, 그래픽 처리 유닛(220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 동일한 스트로크들을 동시에 렌더링할 수 있다. 구체적으로, 그래픽 처리 유닛(220)은 한 번의 렌더링 파이프라인으로 스타일 정보가 동일한 스트로크들을 렌더링할 수 있다. 이때, 그래픽 처리 유닛(220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 상이한 스트로크들의 교차 지점을 뎁스 정보에 따라 렌더링할 수 있다.
예를 들어, 사용자가 터치 입력부(240)를 통해, 제 1 내지 제 3 스트로크가 서로 교차하도록, a 스타일의 제 1 스트로크를 입력하고, 펜 스타일을 변경하여 b 스타일의 제 2 스트로크를 입력한 후, 다시 펜 스타일을 a 스타일로 변경하여 제 3 스트로크를 입력한 경우, 프로세서(230)는 a 스타일의 제 1 스트로크에 뎁스값 100을 할당하고, 제 1 스트로크의 스타일 정보 및 뎁스 정보를 저장부(250)에 저장할 수 있다. 이후, 제 2 스트로크의 스타일이 변경되었으므로, 프로세서(230)는 제 2 스트로크에 변경된 뎁스값 99를 할당하고, 제 2 스트로크의 스타일 정보 및 뎁스 정보를 저장부(250)에 저장할 수 있다. 마지막으로 입력된 제 3 스트로크 역시 제 2 스트로크의 b 스타일에서 a 스타일로 변경되었으므로, 프로세서(230)는 뎁스값을 98로 변경하여 제 3 스트로크에 할당하고, 스타일 정보 및 뎁스 정보를 저장(250)에 저장할 수 있다.
이후, 제 1 내지 제 3 스트로크를 포함하는 이미지 영역에 다시 그리기 이벤트가 발생하면, 프로세서(230)는 제 1 내지 제 3 스트로크에 대한 스타일 정보 및 뎁스 정보를 렌더링 정보로 그래픽 처리 유닛(220)에 제공할 수 있다.
이에 따라, 그래픽 처리 유닛(220)은 스타일 정보가 a로서 서로 동일한 제 1 스트로크 및 제 3 스트로크를 동시에 렌더링하고, 다음으로 b 스타일의 제 2 스트로크를 렌더링할 수 있다. 물론, 제 2 스트로크를 먼저 렌더링하고, 제 1 및 제 3 스트로크를 나중에 동시에 렌더링하는 것도 가능함은 물론이다.
이때, 그래픽 처리 유닛(220)은 스타일 정보가 상이한 제 1 스트로크와 제 2 스트로크의 교차 지점을 렌더링할 때, 제 1 스트로크의 뎁스값 100보다 제 2 스트로크의 뎁스값 99가 낮으므로, 제 2 스트로크를 이용하여 제 1 스트로크와 제2 스트로크의 교차 지점을 렌더링할 수 있다.
또한, 그래픽 처리 유닛(220)은 스타일 정보가 상이한 제 2 스트로크와 제 3 스트로크의 교차 지점을 렌더링할 때에도, 뎁스값이 더 낮은 제 3 스트로크를 이용하여 렌더링할 수 있다.
이와 같이, 본 개시의 일 실시 예에 따르면, 스타일 정보가 동일한 스트로크를 한 번의 렌더링 파이프라인으로 동시에 렌더링함으로써, 렌더링 파이프라인의 수행 횟수를 줄일 수 있다. 또한, 뎁스 정보에 따라 스타일 정보가 상이한 스트로크의 교차 지점을 렌더링함으로써, 스타일 정보가 동일한 스트로크를 동시에 렌더링하더라도 사용자가 스트로크를 입력한 순서를 정확히 나타낼 수 있다.
한편, 프로세서(230)는 다시 그리기 이벤트가 발생하면, 다시 그리기 영역에 포함된 스트로크의 스타일 정보 및 뎁스 정보 외에, 도 2를 통해 전술한 바와 같이, 그래픽 처리 유닛(220)이 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있도록 해당 스트로크를 구성하는 각 포인트 프리미티브의 좌표 정보 및 반지름 정보, 상술한 변환 정보 및 역변환 정보를 렌더링 정보로 그래픽 처리 유닛(220)에 제공할 수 있다.
따라서, 그래픽 처리 유닛(220)이 다시 그리기 영역에 포함된 복수의 스트로크를 스타일 정보 및 뎁스 정보에 따라 렌더링할 때에도, 포인트 프리미티브를 이용하여 렌더링할 수 있음은 물론이다. 이와 같이, 그래픽 처리 유닛(220)이 본 개시의 일 실시 예에 따라 포인트 프리미티브를 이용하여 스트로크를 렌더링할 때 뎁스 정보를 함께 이용하는 구체적인 내용에 관하여는 도 8을 통해 자세히 후술하기로 한다.
한편, 도 3을 통해 설명한 그래픽 처리 유닛(220)이 다시 그리기 영역에 포함된 복수의 스트로크를 스타일 정보 및 뎁스 정보에 따라 렌더링하는 실시 예의 경우, 그래픽 처리 유닛(220)이 반드시 포인트 프리미티브를 이용하여 각 스트로크를 렌더링해야 하는 것은 아니다.
예를 들어, 프로세서(230)는 다시 그리기 영역에 포함된 스트로크의 스타일 정보 및 뎁스 정보 외에, 스트로크를 구성하는 모든 삼각형 프리미티브의 버텍스 정보, 다시 그리기 영역을 클립 영역으로 변환하기 위한 변환 정보 및 변환된 클립 영역을 역변환하기 위한 역변환 정보를 렌더링 정보로 그래픽 처리 유닛(220)에 제공하고, 그래픽 처리 유닛(200)은 다시 그리기 영역에 포함된 스트로크의 스타일 정보 및 뎁스 정보를 바탕으로 삼각형 프리미티브를 이용하여 스트로크를 렌더링하는 실시 예도 가능할 것이다.
저장부(250)는 디스플레이 장치(200)의 동작을 위한 각종 프로그램 및 데이터를 저장할 수 있다. 또한, 저장부(250)는 디스플레이 장치(200)의 동작 중에 발생되는 데이터의 일시 저장 기능 역시 수행할 수 있다.
특히, 저장부(250)는 각종 렌더링 정보를 저장할 수 있다. 예를 들어, 저장부(250)는 터치 입력부(240)를 통해 입력된 스트로크를 구성하는 각 프리미티브의 버텍스 정보(특히, 각 포인트 프리미티브의 좌표 정보 및 반지름 정보), 다시 그리기 영역 또는 다시 그리기 영역보다 넓은 영역을 클립 공간으로 변환하기 위한 변환 정보, 변환된 클립 공간을 디스플레이 영역(특히, 다시 그리기 영역)으로 역변환하기 위한 역변환 정보, 복수의 스트로크가 터치 입력부(240)를 통해 입력된 순서를 뎁스로 각 스트로크에 매칭시킨 뎁스 정보 및 복수의 스트로크 각각의 스타일 정보를 저장할 수 있다.
또한, 저장부(250)는 상술한 디스플레이 장치(200)의 동작을 위한 다양한 프로그램 모듈을 저장할 수 있다. 예를 들어, 저장부(250)는 스트로크를 입력하고 편집하여 텍스트 또는 그림을 포함하는 이미지 문서를 작성할 수 있는 문서 작성 모듈, 디스플레이 장치(200)와 사용자 간에 상호 작용을 위한 UI 모듈, 상술한 본 개시의 다양한 실시 예들에 따른 프로세서(230) 및 그래픽 처리 유닛(220)의 동작을 수행하는 스트로크 렌더링 모듈 등을 포함할 수 있다. 이에 따라, 프로세서(230)는 저장부(250)에 저장된 각종 모듈을 읽어 상술한 본 개시의 다양한 실시 예들에 따른 디스플레이 장치(200)의 동작을 수행할 수 있다.
한편, 이상에서는 프로세서(130, 230)가 렌더링 정보를 제공하면, 그래픽 처리 유닛(120, 220)이 렌더링 정보를 이용하여 능동적으로 스트로크 렌더링을 수행하는 것으로 예를 들어 설명하였으나, 이는 설명의 편의를 위한 하나의 예에 불과할 뿐, 이에 한정되는 것은 아니며, 그래픽 처리 유닛(120, 220)이 렌더링 정보를 이용하여 프로세서(130, 230)의 제어를 받아 스트로크를 렌더링할 수 있음은 물론이다.
이하에서는 도 4 및 도 5를 통해 본 개시의 일 실시 예에 따른 포인트 프리미티브를 이용한 스트로크 렌더링 방법에 대해 보다 자세히 설명한다. 도 4는 포인트 프리미티브를 이용한 스트로크 렌더링시 발생할 수 있는 문제점을 나타내는 예시도이다. 구체적으로, 도 4의 왼쪽 그림은 디스플레이 화면(400)에 하나의 스트로크(410)를 포함하는 이미지가 디스플레이된 상황에서 이미지의 일부 영역(420)에 다시 그리기 이벤트가 발생하여 포인트 프리미티브를 이용하여 다시 그리기가 수행된 상태를 나타내며, 도 4의 오른쪽 그림은 다시 그리기 영역(420)을 확대한 그림이다.
즉, 그래픽 처리 유닛이 일반적인 방법으로 포인트 프리미티브를 이용하여 다시 그리기 영역(420)에 포함된 스트로크를 렌더링하는 경우, 도 4의 오른쪽 그림에 도시된 바와 같이, 다시 그리기 영역(420) 외부와 스트로크 단절 부분(421, 422)이 발생할 수 있다. 이 문제는 아래와 같이 그래픽 처리 유닛이 사용하는 표준 3D 그래픽 API인 OpenGL 또는 OpenGL ES 등의 스펙에 의해 발생하게 된다.
스펙에서 그래픽 처리 유닛을 이용하여 삼각형 프리미티브 또는 포인트 프리미티브와 같은 프리미티브를 렌더링하기 위해서는 프리미티브를 구성하는 모든 버텍스를 클립 공간으로 변환시켜야 한다. 여기서, 클립 공간이란 x, y, z 각 축이 -1 내지 1의 범위를 가지는 공간이다. 프리미티브를 클립 공간으로 변환 후 클립 공간의 외부에 위치하는 프리미티브는 디스플레이 화면에 보이지 않는 부분이므로, 효율적인 렌더링을 위해 그래픽 처리 유닛은 클립 공간 외부에 위치하는 프리미티브들을 잘라내게 되며, 이러한 과정을 클리핑(clipping)이라 한다.
위와 같은 스펙에 따라 프리미티브를 클리핑 하면, 삼각형 프리미티브의 경우에는 클립 공간 외부에 위치하는 부분만 잘라내기 때문에 삼각형 중 클립 공간 내부에 존재하는 일부는 렌더링될 수 있다.
그러나, 포인트 프리미티브의 경우에는 포인트의 중심점이 클립 공간 외부에 위치하는 경우 포인트 프리미티브 자체가 렌더링에서 제외되게 된다. 이와 같이, 디스플레이 화면에 출력되어야 하지만 렌더링 되지 않는 포인트 프리미티브가 발생하게 되며, 이로 인해, 스트로크 단절 현상이 발생한다.
보다 구체적으로, 포인트 프리미티브의 중심점은 클립 공간 외부에 위치하면서 반지름이 커서 포인트 프리미티브의 일부가 클립 공간 내부에 존재하는 경우, 이러한 포인트 프리미티브는 렌더링에 포함되어야 함에도 일반적인 스펙에 따라 렌더링하면 렌더링에서 제외되게 된다. 따라서, 도 4의 오른쪽 그림에서 참조부호 421, 422 부분과 같이 다시 그리기 영역 경계에서 포인트 프리미티브가 렌더링에서 제외되는 현상이 발생하게 되며, 이로 인해, 스트로크가 단절된 것처럼 보이게 된다.
이러한 문제를 해결하기 위해 본 개시에 따른 프로세서(130, 230)는 다시 그리기 영역에 포함된 스트로크를 구성하는 포인트 프리미티브를 클립 공간으로 변환하는 변환 정보와 변환된 클립 공간에 포함된 포인트 프리미티브를 디스플레이(110, 210)의 일 영역인 다시 그리기 영역으로 역변환하는 역변환 정보를 일반적인 스펙에 따른 변환 및 역변환 정보와 다르게 산출하여 그래픽 처리 유닛(120, 220)에 제공할 수 있다. 도 5는 본 개시의 일 실시 예에 따라 포인트 프리미티브를 이용하여 스트로크를 렌더링하는 방법을 설명하기 위한 모식도이다.
도 5의 (a)는 다시 그리기 영역(510)의 좌상단 지점의 좌표가 전체 디스플레이(110, 210)의 화면을 기준으로 (x, y)이며, 너비와 높이가 각각 w 및 h인 경우에 다시 그리기 영역(510)에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브를 나타낸다. 전술한 바와 같이, 일반적인 스펙에 따라 다시 그리기 영역을 클립 공간으로 변환하는 경우, 다시 그리기 영역(510)의 경계에 위치하는 포인트 프리미티브(511, 512)가 렌더링 과정에서 제외될 수 있다.
따라서, 본 개시의 일 실시 예에 따르면, 프로세서(130, 230)는 먼저, 다시 그리기 영역(510)에 포함된 스트로크를 구성하는 각 포인트 프리미티브의 위치를 다시 그리기 영역에 상대적으로 변경하기 위해, 각 포인트 프리미티브의 위치를 (-x, -y)만큼 이동시키고, 이동된 각 포인트 프리미티브들의 위치를 그래픽 처리 유닛(120, 220)에 제공할 수 있다.
또한, 프로세서(130, 230)는 다시 그리기 영역(510)에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름을 판단하고, 판단된 최대 반지름이 예를 들어, r 인 경우, 상기 수학식 1과 같은 매트릭스를 변환 정보로 산출하여 그래픽 처리 유닛(120, 220)에 제공할 수 있다.
이에 따라, 그래픽 처리 유닛(120, 220)이 제공된 각 포인트 프리미티브들의 위치 정보 및 매트릭스를 이용하여 다시 그리기 영역(510)을 클립 공간으로 변환하면, 도 5의 (b)에 도시된 바와 같이, 다시 그리기 영역(510)보다 넓은 영역(520)이 클립 공간(550)으로 변환되게 된다. 이때, 도 5의 (b)를 보면, 다시 그리기 영역(510)의 경계에 위치하는 포인트 프리미티브(511, 512)를 포함하는 모든 포인트 프리미티브가 클립 공간(550) 내부에 위치하도록 변환되는 것을 볼 수 있다.
즉, 상기 변환 매트릭스를 통해 다시 그리기 영역을 클립 공간으로 변환하면, 다시 그리기 영역 내에 일부라도 포함되는 모든 포인트 프리미티브의 중심점이 클립 공간의 내부에 존재하도록 변환이 이루어지므로, 누락되는 포인트 프리미티브가 없어지게 된다.
한편, 상기 수학식 1과 같은 매트릭스를 통해 실제 다시 그리기 영역보다 넓은 영역이 클립 공간으로 변환되었으므로, 상술한 스펙에 따른 일반적인 방법으로 역변환 정보를 그래픽 처리 유닛에 제공하는 경우, 실제 크기보다 스트로크가 작게 디스플레이되게 된다.
따라서, 본 개시의 일 실시 예에 따르면, 프로세서(130, 230)는 이를 보정하기 위해, 다시 그리기 영역(510)의 너비 w 및 높이 h, 그리고, 상술한 최대 반지름 r 을 이용하여 상기 수학식 2와 같은 역변환 정보를 산출하여 그래픽 처리 유닛(120, 220)으로 제공할 수 있다. 이에 따라, 그래픽 처리 유닛(120, 220)이 제공된 역변환 정보를 이용하여 클립 공간을 역변환하면, 실제 크기와 같은 크기의 스트로크가 다시 그리기 영역(510)에 렌더링 될 수 있다.
상술한 역변환 정보는 종래 스펙에서 말하는 뷰 포트(viewport) 정보에 포함된 파라미터들을 본 개시의 일 실시 예에 따라 수정한 것이다. 따라서, 역변환 정보에 포함된 각 파라미터 값들을 이용하여 역변환을 수행하는 구체적인 방법은 종래 스펙에 따른 방법이 이용될 수 있으며, 본 개시의 요지와 무관하므로, 구체적인 설명은 생략한다.
한편, 상술한 도 5에 관한 설명에서는, 프로세서(130, 230)가 각 포인트 프리미티브의 이동된 위치 정보, 변환 정보를 제공하면, 그래픽 처리 유닛(120, 220)이 다시 그리기 영역을 클립 공간으로 변환하고, 이후에 프로세서(130, 230)가 역변환 정보를 제공하면, 그래픽 처리 유닛(120, 220)이 클립 공간을 역변환하여 다시 그리기 영역에 포함된 스트로크를 렌더링하는 순서로 설명하였으나, 이는 스트로크를 렌더링하는 과정의 이해를 돕기 위한 하나의 예 일뿐, 이에 한정되는 것은 아니다.
즉, 프로세서(130, 230)는 다시 그리기 이벤트가 발생하면, 다시 그리기 영역에 포함된 각 포인트 프리미티브의 이동된 위치 정보, 변환 정보 및 역변환 정보 등 그래픽 처리 유닛(120, 220)이 스트로크를 렌더링하는데 필요한 데이터를 그래픽 처리 유닛(120, 220)에 모두 제공하고, 이후 프로세서(130, 230)의 렌더링 명령에 따라 그래픽 처리 유닛(120, 220)이 스트로크를 렌더링할 수 있음은 물론이다.
도 6 및 도 7은 본 개시의 다른 일 실시 예에 따라 스트로크의 유형 정보 및 뎁스 정보를 이용하여 스트로크를 렌더링하는 방법을 설명하기 위한 예시도이다. 도 6은 종래 기술과 본 개시의 일 실시 예에 따른 스트로크 렌더링 방법을 비교 설명하기 위한 예시도이다.
구체적으로, 도 6의 (a)는 사용자가 터치 입력부(240)를 통해 제 1 스트로크(이하, s1이라 한다.), 제 2 스트로크(이하, s2라 한다.) 및 제 3 스트로크(이하, s3이라 한다.)를 순서대로 스트로크를 입력한 경우를 나타낸다. 이때, 사용자는 s1과 s3은 동일한 '연필' 스타일의 펜을 이용하여 입력하였고, s2는 s1 및 s3과 상이한 스타일인 '잉크 펜' 스타일의 펜으로 입력하였으며, s1, s2 및 s3은 서로 교차 지점이 존재한다.
종래의 그래픽 처리 유닛을 이용한 스트로크 렌더링 방법은 하나의 스트로크마다 한 번의 렌더링 파이프라인으로 스트로크를 렌더링한다. 따라서, s1, s2, s3을 포함하는 영역에서 다시 그리기 이벤트가 발생하면, 그래픽 처리 유닛은 도 6의 (b)에 도시된 바와 같이, 사용자가 스트로크를 입력한 순서대로, 렌더링 시작 후 첫 번째 렌더링 파이프라인을 수행하여 s1을, 두 번째 렌더링 파이프라인을 수행하여 s2를, 그리고, 세 번째 렌더링 파이프 라인을 수행하여 s3을 렌더링하게 된다.
그러나, 사용자가 입력한 문장을 편집하는 경우 등과 같이, 다시 그리기 영역에 다량의 짧은 스트로크가 존재하는 경우, 종래의 방법으로 스트로크마다 하나의 렌더링 파이프라인을 수행하여 스트로크를 렌더링한다면, 많은 수의 렌더링 파이프라인을 수행하게 되어 성능이 저하되고, 많은 전력을 소모하게 된다.
이를 해결하기 위해, 본 개시의 일 실시 예에 따르면, 그래픽 처리 유닛(220)은 스타일이 동일한 스트로크는 하나의 동일한 렌더링 파이프라인을 수행하여 렌더링하게 된다.
구체적으로, 프로세서(230)는 터치 입력부(240)를 통해 입력되는 스트로크의 스타일이 변경될 때마다 뎁스 정보를 변경하여 할당하고, 각 스트로크에 할당된 뎁스 정보를 저장부(250)에 저장할 수 있다. 예를 들어, 도 6의 (a)에 도시된 바와 같이 s1, s2, s3이 펜 스타일을 변경해 가면서 순서대로 입력되면, 프로세서(230)는 최초 입력된 '연필' 스타일의 s1에는 현재 뎁스값인 '100'을 할당하여 저장할 수 있다. 이후 입력된 s2는 펜 스타일이 '연필'에서 '잉크 펜'으로 변경되었으므로, 프로세서(230)는 뎁스값을 변경하여 '99'를 할당하여 저장하고, s3 역시 '잉크 펜' 스타일에서 '연필' 스타일로 펜 스타일이 다시 변경되었으므로, 프로세서(230)는 변경된 뎁스값인 '98'을 할당하여 저장할 수 있다.
또한, 프로세서(230)는 각 스트로크의 펜 스타일을 각 스트로크에 매칭시켜 스타일 정보로 저장부(250)에 저장할 수 있다. 예를 들어, 프로세서(230)는 s1, s3에는 '연필', s2에는 '잉크 펜'을 매칭시켜 스타일 정보로 저장할 수 있다.
이후, s1, s2, s3을 포함하는 디스플레이 영역에 다시 그리기 이벤트가 발생하면, 프로세서(230)는 다시 그리기 영역에 포함된 s1, s2, s3 각각의 스타일 정보 및 뎁스 정보를 그래픽 처리 유닛(220)에 제공할 수 있다.
이에 따라, 그래픽 처리 유닛(220)은 도 6의 (c)에 도시된 바와 같이, 사용자가 스트로크를 입력한 순서와 무관하게, 렌더링 시작 후 첫 번째 렌더링 파이프라인을 수행하여 스타일 정보가 '잉크 펜'으로 동일한 s1 및 s3을 동시에 렌더링하고, 두 번째 렌더링 파이프라인을 수행하여 '연필' 스타일의 s2를 렌더링할 수 있다.
이때, s1, s2, s3은 서로 교차하는 지점이 있으므로, 각 스트로크의 교차 지점에서는 서로 상이한 스타일의 스트로크들의 입력 순서가 표현될 필요가 있다. 이를 위해, 그래픽 처리 유닛(220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 상이한 스트로크들의 교차 지점을 뎁스 정보에 따라 렌더링할 수 있다.
구체적으로, 그래픽 처리 유닛(220)은 스타일 정보가 상이한 스트로크 중 뎁스 정보가 낮은 스트로크를 이용하여 스타일 정보가 상이한 스트로크들의 교차 지점을 렌더링할 수 있다.
도 7은 도 6의 (c)와 같이, 사용자가 스트로크를 입력한 순서에 무관하게 동일한 스타일의 스트로크를 동시에 렌더링하더라도, 그래픽 처리 유닛(220)이 뎁스 정보를 이용하여 스타일이 상이한 스트로크들의 교차 지점을 렌더링함으로써, 사용자의 스트로크 입력 순서가 표현된 예를 나타낸다.
전술한 바와 같이, s1, s2, s3의 각 뎁스 정보는 100, 99, 98이므로, 도 7의 참조부호 710 영역이 확대된 그림을 보면, 그래픽 처리 유닛(220)은 s1과 s2의 교차 지점(712)은 둘 중 뎁스 정보가 더 낮은 s2를 이용하여 렌더링하고, s2와 s3의 교차 지점(711)은 둘 중 뎁스 정보가 더 낮은 s3을 이용하여 렌더링한 것을 볼 수 있다.
이와 같이, 상술한 본 개시의 일 실시 예에 따르면, 동일한 펜 스타일의 스트로크를 하나의 렌더링 파이프라인으로 렌더링하더라도 스트로크의 뎁스 정보를 이용하여 사용자가 스트로크를 입력한 순서를 표현할 수 있게 되므로, 소모 전류를 줄이면서도 정확하게 스트로크를 렌더링할 수 있게 된다.
한편, 이상에서는 터치 입력부(240)를 통해 입력되는 스트로크의 스타일이 변경될 때마다 뎁스값을 점점 낮게 할당하는 경우를 예로 들었으나, 이에 한정되는 것은 아니다. 가령, 스트로크의 스타일이 변경될 때마다 뎁스값을 점점 높게 할당하는 실시 예도 가능할 것이다. 이 경우, 스타일이 상이한 스트로크들의 교차 지점은 뎁스값이 높은 스트로크를 이용하여 렌더링할 수 있을 것이다.
도 8은 본 개시의 일 실시 예에 따라 포인트 프리미티브를 이용하여 스트로크를 렌더링할 때 뎁스 정보를 함께 이용하는 방법을 설명하기 위한 예시도이다. 여기서, 뎁스 정보는 스트로크가 입력된 순서를 나타내는 정보로서, 본 개시의 일 실시 예에 따르면, 입력되는 스트로크의 스타일이 변경될 때마다 변경되어 해당 스트로크에 부여된 뎁스값(예를 들어, 자연수)일 수 있다.
디스플레이 장치(200)의 프로세서(230)는 다시 그리기 영역이 판단되면, 판단된 다시 그리기 영역에 포함된 스트로크들을 구성하는 각 포인트 프리미티브들의 위치 정보 및 뎁스 정보를 그래픽 처리 유닛(220)에 제공할 수 있다. 예를 들어, 프로세서(230)는 다시 그리기 영역에 포함된 스트로크들을 구성하는 임의의 포인트 프리미티브의 x축, y축 좌표가 x+x0, y+y0이고, 뎁스값이 d0인 경우, 해당 포인트 프리미티브의 위치 정보 및 뎁스 정보를 (x0, y0, d0)와 같은 형태로 그래픽 처리 유닛(200)에 제공할 수 있다.
즉, 전체 디스플레이(210) 영역에서 다시 그리기 영역의 좌상단 좌표가 (x, y)인 경우, 프로세서(230)는 다시 그리기 영역 내의 각 포인트 프리미티브의 위치를 (-x, -y)만큼 이동시킨 후, 이동된 좌표값을 해당 포인트 프리미티브의 뎁스값과 함께 그래픽 처리 유닛(220)으로 제공할 수 있다.
예를 들어, 전체 디스플레이(210)를 기준으로 다시 그리기 영역의 좌상단 좌표가 (x, y)이고, 너비와 높이가 각각 w 및 h 이며, 다시 그리기 영역에 포함된 포인트 프리미티브들이 최소 n 내지 최대 f의 뎁스값을 가지는 경우, 다시 그리기 영역에 포함된 각 포인트 프리미티브의 좌표를 (-x, -y)만큼 이동시키고, 각 포인트 프리미티브의 뎁스 정보를 뎁스 축으로 표현하여 다시 그리기 영역을 3차원 공간상에 나타내면, 도 8과 같이 나타낼 수 있으며, 프로세서(230)는 도 8과 같은 다시 그리기 영역에 포함된 스트로크들을 구성하는 모든 포인트 프리미티브들의 위치 정보 및 뎁스 정보를 그래픽 처리 유닛(220)에 제공할 수 있다.
한편, 프로세서(230)는 다시 그리기 영역을 클립 공간으로 변환하기 위한 변환 정보를 그래픽 처리 유닛(220)에 제공할 수 있다. 구체적으로, 프로세서(230)는 다시 그리기 영역에 포함된 스트로크를 구성하는 모든 포인트 프리미티브의 반지름 중 최대 반지름을 판단하고, 판단된 최대 반지름에 기초하여 변환 정보를 산출할 수 있다.
예를 들어, 도 8의 예와 같은 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름이 r로 판단된 경우, 프로세서(230)는 아래의 수학식 3과 같은 매트릭스를 산출하고, 산출된 매트릭스를 변환 정보로 그래픽 처리 유닛(220)에 제공할 수 있다.
이에 따라, 그래픽 처리 유닛(220)은 프로세서(230)에서 제공된 각 포인트 프리미티브들의 위치 정보 및 뎁스 정보(예를 들어, 3차원 좌표값)와 상기 수학식 3의 변환 매트릭스를 이용하여 도 8과 같은 다시 그리기 영역에 포함된 모든 포인트 프리미티브들을 클립 공간으로 변환할 수 있다.
구체적으로, 상술한 예에서, 다시 그리기 영역에 포함된 임의의 포인트 프리미티브가 (x0, y0, d0)의 위치 정보 및 뎁스 정보를 갖는 경우, 즉, 이동된 x 및 y좌표값이 x0, y0이고, 뎁스값이 d0인 경우, 그래픽 처리 유닛(220)은 해당 포인트 프리미티브를 아래의 수학식 4와 같은 구체적인 연산을 통해 클립 공간으로 변환할 수 있다.
상기 수학식 4를 보면, 포인트 프리미티브를 다시 그리기 영역에서 클립 공간으로 변환할 때, 뎁스 정보가 함께 반영되어 연산되는 것을 볼 수 있다. 이와 같이, 뎁스 정보를 포함하는 포인트 프리미티브의 좌표값 및 상기 수학식 3에 따른 변환 매트릭스를 이용하여 다시 그리기 영역을 클립 공간으로 변환함으로써, 그래픽 처리 유닛(220)이 다시 그리기 영역에 포함된 복수의 스트로크를 스타일 정보 및 뎁스 정보에 따라 렌더링할 때에도, 포인트 프리미티브를 이용하여 렌더링할 수 있다.
이때, 상기 수학식 3과 같은 매트릭스 역시 도 8의 다시 그리기 영역보다 넓은 영역을 클립 공간으로 변환시키게 되므로, 다시 그리기 영역의 경계에 위치하는 포인트 프리미티브가 클립 공간의 내부에 위치하도록 변환되며, 클립 공간(뎁스 축을 포함하므로, 3차원 공간임) 외부로 변환되는 포인트 프리미티브들은 이후 과정에서 클리핑되어 잘려나가게 됨은 물론이다.
한편, 상기 수학식 3과 같은 매트릭스를 통해 실제 다시 그리기 영역보다 넓은 영역이 클립 공간으로 변환되었으므로, 그래픽 처리 유닛(220)이 전술한 일반 스펙에 따른 역변환 정보를 이용하여 클립 공간을 역변환하는 경우, 실제 크기보다 스트로크가 작게 디스플레이되게 된다.
따라서, 이를 보정하기 위해, 본 개시의 일 실시 예에 따르면, 프로세서(230)는 다시 그리기 영역의 너비 w 및 높이 h, 그리고, 상술한 최대 반지름 r 을 이용하여 상기 수학식 2와 같은 역변환 정보를 산출하여 그래픽 처리 유닛(220)으로 제공할 수 있다. 이에 따라, 그래픽 처리 유닛(220)이 상기 수학식 2와 같은 역변환 정보를 이용하여 클립 공간을 역변환하면, 실제 크기와 같은 크기의 스트로크가 다시 그리기 영역에 렌더링될 수 있다.
아래의 수학식 5는 상기 수학식 3과 같은 매트릭스를 통해 클립 공간으로 변환된 포인트 프리미티브를 상기 수학식 2와 같은 역변환 정보를 이용하여 역변환하는 구체적인 연산의 일 예를 나타낸다.
전술한 바와 같이, 상기 수학식 2의 역변환 정보는 종래 스펙에서 말하는 뷰 포트(viewport) 정보에 포함된 파라미터들을 본 개시의 일 실시 예에 따라 수정한 것으로서, 상기 수학식 2에 포함된 각 파라미터들 중 (-r, -r)은 뷰 포트의 좌상단 좌표값을 나타내고, (w+2r, h+2r)은 뷰 포트의 너비와 높이를 나타낸다.
예를 들어, 그래픽 처리 유닛(220)은 상기 수학식 2의 뷰 포트 정보에 포함된 파라미터들을 이용하여 상기 수학식 5의 가장 좌측 매트릭스와 같은 역변환 매트릭스를 산출하고, 산출된 역변환 매트릭스에 클립 공간상의 포인트 프리미티브 좌표값을 연산하여 역변환을 수행할 수 있다.
그러나, 그래픽 처리 유닛(220)이 상기 수학식 2의 역변환 정보에 포함된 각 파라미터 값들을 이용하여 역변환을 수행하는 구체적인 방법이 이에 한정되는 것은 아니며, 전술한 바와 같이, 종래 스펙에 따른 방법들이 이용될 수 있다.
이와 같이, 본 개시의 다양한 실시 예들에 따르면, 포인트 프리미티브를 이용하여 스트로크를 렌더링함으로써 그래픽 처리 유닛이 처리해야 하는 버텍스의 양이 감소 되고, 같은 개수의 스트로크를 렌더링하기 위해 수행되어야 할 렌더링 파이프라인의 개수가 감소 되므로, 렌더링 시간이 단축되며, 소모 전류를 감소시킬 수 있어 고성능의 스트로크 렌더링이 가능하게 된다.
또한, 전술한 바와 같이, 포인트 프리미티브의 최대 반지름을 이용하여 변경된 변환 및 역변환 매트릭스를 사용하여 스트로크를 렌더링함으로써, 다시 그리기 영역 경계에서 발생할 수 있는 스트로크 단절 현상을 방지할 수 있고, 동일한 펜 스타일의 스트로크를 하나의 렌더링 파이프라인으로 렌더링하더라도 스트로크의 뎁스 정보를 이용함으로써 사용자가 스트로크를 입력한 순서를 표현할 수 있게 된다.
도 9는 본 개시의 일 실시 예에 따른 그래픽 처리 유닛(120, 220)을 포함하는 디스플레이 장치(100, 200)의 제어 방법을 나타내는 흐름도이다. 도 9에 따르면, 디스플레이 장치(100, 200)는 스트로크를 포함하는 이미지상에 다시 그리기 이벤트가 발생하면, 다시 그리기 영역을 판단하고(S910), 판단된 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 그래픽 처리 유닛(120, 220)에 제공한다(S920).
이때, 렌더링 정보는 다시 그리기 영역에 포함된 스트로크를 구성하는 포인트 프리미티브의 위치 정보, 다시 그리기 영역보다 넓은 영역을 클립 공간(Slip Space)으로 변환하기 위한 변환 정보, 클립 공간으로 변환된 다시 그리기 영역보다 넓은 영역을 역변환하기 위한 역변환 정보, 입력된 스트로크의 스타일 정보, 뎁스 정보 중 적어도 하나를 포함할 수 있다.
구체적으로, 디스플레이 장치(100, 200)는 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름에 기초하여 변환 정보 및 역변환 정보를 산출하여 그래픽 처리 유닛(120, 220)에 제공할 수 있다.
예를 들어, 디스플레이 장치(100, 200)는 다시 그리기 영역의 너비가 w 이고, 높이가 h 이며, 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름이 r 인 경우, 상기 수학식 1과 같은 매트릭스를 변환 정보로 산출하고, 상기 수학식 2와 같은 뷰 포트 정보를 산출하여 그래픽 처리 유닛(120, 220)에 제공할 수 있다. 여기서, 뷰 포트 정보는 수학식 1에 의해 변환된 클립 공간을 역변환하기 위한 역변환 정보이다.
한편, 본 개시의 일 실시 예에 따르면, 디스플레이 장치(100, 200)는 스트로크를 입력받는 터치 입력부를 더 포함하고, 터치 입력부를 통해 입력되는 스트로크에 뎁스 정보를 할당하여 저장할 수 있다. 구체적으로, 디스플레이 장치(100, 200)는 터치 입력부를 통해 입력되는 스트로크의 스타일이 변경되면, 뎁스 정보를 변경하여 할당하고, 할당된 뎁스 정보를 해당 스트로크에 매칭시켜 저장할 수 있다. 또한, 디스플레이 장치(100, 200)는 터치 입력부를 통해 입력되는 각 스트로크의 스타일 정보를 저장할 수 있다.
이에 따라, 스트로크를 포함하는 이미지상에 다시 그리기 이벤트가 발생하면, 디스플레이 장치(100, 200)는 다시 그리기 영역을 판단하고(S910), 판단된 다시 그리기 영역에 포함된 스트로크에 대한 뎁스 정보 및 스타일 정보를 렌더링 정보로 그래픽 처리 유닛(120, 220)에 제공할 수 있다(S920).
이와 같이, 각종 렌더링 정보가 그래픽 처리 유닛(120, 220)에 제공되면, 그래픽 처리 유닛(120, 220)은 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다(S930). 구체적으로, 그래픽 처리 유닛(120, 220)은 변환 정보에 기초하여 다시 그리기 영역을 클립 공간으로 변환하고, 변환된 클립 공간 내부에 포함된 스트로크를 구성하는 포인트 프리미티브를 이용하여 다시 그리기영역에 포함된 스트로크를 렌더링할 수 있다.
예를 들어, 그래픽 처리 유닛(120, 220)은 수학식 1과 같은 변환 매트릭스 정보를 이용하여 다시 그리기 영역보다 넓은 영역을 클립 공간으로 변환하고, 수학식 2와 같은 뷰 포트 정보를 이용하여 변환된 클립 공간을 역변환함으로써, 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다.
또한, 그래픽 처리 유닛(120, 220)은 뎁스 정보 및 스타일 정보를 바탕으로 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다. 구체적으로, 그래픽 처리 유닛(120, 220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 동일한 스트로크를 동시에 렌더링할 수 있다. 또한, 그래픽 처리 유닛(120, 220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 상이한 스트로크들의 교차 지점을 뎁스 정보에 따라 렌더링할 수 있다. 구체적으로, 그래픽 처리 유닛(120, 220)은 스타일 정보가 상이한 스트로크 중 뎁스 정보에 포함된 뎁스값이 낮은 스트로크를 이용하여 스타일 정보가 상이한 스트로크들의 교차 지점을 렌더링할 수 있다.
도 10은 본 개시의 일 실시 예에 따른 디스플레이 장치의 스트로크 렌더링 방법을 자세히 나타내는 흐름도이다. 도 10에 따르면, 디스플레이 장치(100, 200)는 다시 그리기 이벤트가 발생하여 다시 그리기 요청이 수신되면, 다시 그리기 영역을 판단할 수 있다(S1010). 이때, 판단된 다시 그리기 영역의 좌상단의 좌표가 전제 디스플레이 화면 내에서 (x, y)이고, 폭이 w 이며, 높이가 h 인 경우, 디스플레이 장치(100, 200)는 다시 그리기 영역에 포함된 스트로크를 구성하는 각 원 즉, 포인트 프리미티브들의 위치를 (-x, -y)만큼 이동한다(S1020).
이후, 디스플레이 장치(100, 200)는 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름을 검색하고(S1030), 검색된 최대 반지름을 이용하여 다시 그리기 영역을 클립 공간으로 변환하기 위한 변환 매트릭스를 산출한다(S1040). 이때, 변환 매트릭스는 수학식 1과 같을 수 있다. 또한, 디스플레이 장치(100, 200)는 검색된 최대 반지름을 이용하여 변환된 클립 공간을 역변환하기 위한 뷰 포트를 산출한다(S1050). 이때, 뷰 포트는 수학시 2와 같을 수 있다.
이에 따라, 디스플레이 장치(100, 200)는 다시 그리기 영역에 포함된 스트로를 구성하는 포인트 프리미티브들의 위치를 (-x, -y)만큼 이동시킨 위치 정보, 산출된 변환 매트릭스 및 뷰 포트 등을 포함하는 그래픽 처리 유닛(120, 220)이 스트로크를 렌더링하기 위해 필요한 모든 정보를 그래픽 처리 유닛(120, 220)에 제공하고(S1060), 그래픽 처리 유닛(120, 220)에 렌더링 명령을 한다(S1070).
도 11은 본 개시의 다른 일 실시 예에 따른, 그래픽 처리 유닛을 포함하는 디스플레이 장치의 제어 방법을 나타내는 흐름도이다. 도 11에 따르면, 디스플레이 장치(100, 200)는 터치 입력부를 포함하며, 터치 입력부를 통해 스트로크가 입력되면, 입력되는 스트로크에 뎁스 정보를 할당 및 저장할 수 있다.
구체적으로, 디스플레이 장치(100, 200)는 입력되는 스트로크의 스타일이 변경되면, 뎁스 정보를 변경하여 할당하고, 할당된 뎁스 정보를 해당 스트로크에 매칭시켜 저장할 수 있다(S1110). 또한, 디스플레이 장치(100, 200)는 터치 입력부를 통해 입력되는 스트로크의 스타일 정보를 해당 스트로크와 매칭시켜 저장할 수 있다.
이후, 다시 그리기 이벤트가 발생하면, 디스플레이 장치(100, 200)는 다시 그리기 영역을 판단하고(S1120), 저장된 뎁스 정보 및 스타일 정보 중 다시 그리기 영역에 포함된 스트로크에 대한 뎁스 정보 및 스타일 정보를 그래픽 처리 유닛(120, 220)에 제공할 수 있다(S1130).
이에 따라, 그래픽 처리 유닛(120, 220)은 뎁스 정보 및 스타일 정보를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링할 수 있다. 이때, 그래픽 처리 유닛(120, 220)은 삼각형 프리미티브, 포인트 프리미트브 등 각종 프리미티브를 이용하여 스트로크를 렌더링할 수 있다.
구체적으로, 그래픽 처리 유닛(120, 220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 동일한 스트로크를 동시에 렌더링할 수 있다. 또한, 그래픽 처리 유닛(120, 220)은 다시 그리기 영역에 포함된 스트로크 중 스타일 정보가 상이한 스트로크들의 교차 지점을 뎁스 정보에 따라 렌더링할 수 있다. 구체적으로, 그래픽 처리 유닛(120, 220)은 스타일 정보가 상이한 스트로크 중 뎁스 정보에 포함된 뎁스값이 낮은 스트로크를 이용하여 스타일 정보가 상이한 스트로크들의 교차 지점을 렌더링할 수 있다.
이상에서, 도 9 내지 도 11을 통해 설명한 디스플레이 장치(100, 200)의 동작은, 실시 예에 따라 디스플레이 장치(100, 200)의 프로세서(130, 230)가 수행할 수 있음은 물론이다.
이상과 같은 본 개시의 다양한 실시 예들에 따르면, 디스플레이 장치의 스트로크 렌더링 성능이 향상되고, 소모 전력을 감소시킬 수 있다.
한편, 상술한 다양한 실시 예들에 따른 디스플레이 장치의 프로세서의 동작이나 디스플레이 장치의 제어 방법들은 소프트웨어로 생성되어 디스플레이 장치에 탑재될 수 있다.
예를 들어, 디스플레이된 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하는 단계, 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 그래픽 처리 유닛에 제공하는 단계 및 그래픽 처리 유닛이 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 다시 그리기 영역에 포함된 스트로크를 렌더링하는 단계를 포함하는 디스플레이 장치의 제어 방법을 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 설치될 수 있다.
여기서, 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 미들웨어 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
이상의 설명은 본 개시의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 개시에 따른 실시 예들은 본 개시의 기술 사상을 한정하기 위한 것이 아니라 설명하기 한 것이고, 이러한 실시 예에 의하여 본 개시의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (15)
- 스트로크의 렌더링을 수행하는 그래픽 처리 유닛;상기 렌더링된 스트로크(Stroke)를 포함하는 이미지를 디스플레이하는 디스플레이; 및상기 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하고, 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 상기 그래픽 처리 유닛에 제공하는 프로세서;를 포함하고,상기 그래픽 처리 유닛은,상기 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하는 디스플레이 장치.
- 제 1 항에 있어서,상기 렌더링 정보는,상기 다시 그리기 영역보다 넓은 영역을 클립 공간(Clip Space)으로 변환하기 위한 변환 정보를 포함하는 것을 특징으로 하는 디스플레이 장치.
- 제 2 항에 있어서,상기 그래픽 처리 유닛은,상기 변환 정보에 기초하여 상기 다시 그리기 영역을 상기 클립 공간으로 변환하고, 상기 변환된 클립 공간 내부에 포함된 스트로크를 구성하는 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하는 것을 특징으로 하는 디스플레이 장치.
- 제 2 항에 있어서,상기 프로세서는,상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름에 기초하여 상기 변환 정보를 산출하는 것을 특징으로 하는 디스플레이 장치.
- 제 2 항에 있어서,상기 렌더링 정보는,상기 클립 공간으로 변환된 상기 다시 그리기 영역보다 넓은 영역을 역변환하기 위한 역변환 정보를 포함하고,상기 프로세서는,상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름을 이용하여 상기 역변환 정보를 산출하는 것을 특징으로 하는 디스플레이 장치.
- 제 1 항에 있어서,상기 스트로크를 입력받는 터치 입력부;를 더 포함하고,상기 렌더링 정보는,상기 다시 그리기 영역에 포함된 복수의 스트로크 각각의 뎁스 정보 및 스타일 정보를 포함하며,상기 프로세서는,상기 터치 입력부를 통해 입력되는 스트로크의 스타일이 변경될 때마다 뎁스 정보를 변경하여 할당하는 것을 특징으로 하는 디스플레이 장치.
- 제 8 항에 있어서,상기 그래픽 처리 유닛은,상기 다시 그리기 영역에 포함된 스트로크 중 상기 스타일 정보가 동일한 스트로크를 동시에 렌더링하는 것을 특징으로 하는 디스플레이 장치.
- 제 9 항에 있어서,상기 그래픽 처리 유닛은,상기 다시 그리기 영역에 포함된 스트로크 중 상기 스타일 정보가 상이한 스트로크들의 교차 지점을 상기 뎁스 정보에 따라 렌더링하는 것을 특징으로 하는 디스플레이 장치.
- 제 10 항에 있어서,상기 그래픽 처리 유닛은,상기 스타일 정보가 상이한 스트로크 중 상기 뎁스 정보에 포함된 뎁스값이 낮은 스트로크를 이용하여 상기 스타일 정보가 상이한 스트로크들의 교차 지점을 렌더링하는 것을 특징으로 하는 디스플레이 장치.
- 그래픽 처리 유닛을 포함하는 디스플레이 장치의 제어 방법에 있어서,스트로크(Stroke)를 포함하는 이미지상에 다시 그리기(Redraw) 이벤트가 발생하면, 다시 그리기 영역을 판단하는 단계;상기 다시 그리기 영역에 포함된 스트로크를 렌더링하기 위한 렌더링 정보를 상기 그래픽 처리 유닛에 제공하는 단계; 및상기 그래픽 처리 유닛이 상기 렌더링 정보를 바탕으로 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하는 단계를 포함하는 제어 방법.
- 제 12 항에 있어서,상기 렌더링 정보는,상기 다시 그리기 영역보다 넓은 영역을 클립 공간(Clip Space)으로 변환하기 위한 변환 정보를 포함하는 것을 특징으로 하는 제어 방법.
- 제 13 항에 있어서,상기 렌더링하는 단계는,상기 변환 정보에 기초하여 상기 다시 그리기 영역을 상기 클립 공간으로 변환하는 단계; 및상기 변환된 클립 공간 내부에 포함된 스트로크를 구성하는 포인트 프리미티브를 이용하여 상기 다시 그리기 영역에 포함된 스트로크를 렌더링하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
- 제 13 항에 있어서,상기 제공하는 단계는,상기 다시 그리기 영역에 포함된 스트로크를 구성하는 복수의 포인트 프리미티브의 반지름 중 최대 반지름에 기초하여 상기 변환 정보를 산출하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201580059684.5A CN107077754B (zh) | 2014-11-07 | 2015-11-09 | 显示装置和控制显示装置的方法 |
KR1020177011426A KR101913212B1 (ko) | 2014-11-07 | 2015-11-09 | 디스플레이 장치 및 디스플레이 장치의 제어 방법 |
US15/522,042 US10331331B2 (en) | 2014-11-07 | 2015-11-09 | Display device and method of controlling display device |
EP15856486.4A EP3217360B1 (en) | 2014-11-07 | 2015-11-09 | Display device and method of controlling display device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462076726P | 2014-11-07 | 2014-11-07 | |
US62/076,726 | 2014-11-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016072811A1 true WO2016072811A1 (ko) | 2016-05-12 |
Family
ID=55909446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2015/011965 WO2016072811A1 (ko) | 2014-11-07 | 2015-11-09 | 디스플레이 장치 및 디스플레이 장치의 제어 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10331331B2 (ko) |
EP (1) | EP3217360B1 (ko) |
KR (1) | KR101913212B1 (ko) |
CN (1) | CN107077754B (ko) |
WO (1) | WO2016072811A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112614209A (zh) * | 2020-12-30 | 2021-04-06 | 凌云光技术股份有限公司 | 一种流程图刷新时的元素重绘方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10234964B2 (en) * | 2016-12-19 | 2019-03-19 | Wacom Co., Ltd. | Image processing apparatus |
US10650565B2 (en) * | 2017-06-02 | 2020-05-12 | Apple Inc. | Rendering animated user input strokes |
CN112434632B (zh) * | 2020-12-01 | 2024-05-28 | 康佳集团股份有限公司 | 一种图形识别方法、智能终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060109275A1 (en) * | 2004-11-02 | 2006-05-25 | Samsung Electronics Co., Ltd. | Method and apparatus for accumulative vector drawing using buffering |
US20070152992A1 (en) * | 2001-03-06 | 2007-07-05 | Au Optronics Corporation | Image data transmission apparatus and method for image display system |
US20080118148A1 (en) * | 2006-11-21 | 2008-05-22 | Guofang Jiao | Efficient scissoring for graphics application |
KR101228708B1 (ko) * | 2004-08-30 | 2013-02-01 | 큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게 | 하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템 |
KR20140126263A (ko) * | 2013-04-22 | 2014-10-30 | 삼성디스플레이 주식회사 | 이미지 오버레이를 사용하여 디스플레이 지연을 감소시키는 방법 및 장치 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6967664B1 (en) * | 2000-04-20 | 2005-11-22 | Ati International Srl | Method and apparatus for primitive processing in a graphics system |
US6934933B2 (en) | 2000-08-14 | 2005-08-23 | Twin Communications Of America, Inc. | Portable operating environment for information devices |
US6707473B2 (en) * | 2001-08-01 | 2004-03-16 | Microsoft Corporation | Dynamic rendering of ink strokes with transparency |
JP3861690B2 (ja) | 2002-01-07 | 2006-12-20 | ソニー株式会社 | 画像編集装置及び画像編集方法、記憶媒体、並びにコンピュータ・プログラム |
US6952214B2 (en) | 2002-07-12 | 2005-10-04 | Sun Microsystems, Inc. | Method for context switching a graphics accelerator comprising multiple rendering pipelines |
JP2005135415A (ja) | 2003-10-28 | 2005-05-26 | Samsung Electronics Co Ltd | 命令語基盤グラフィック出力加速機能の含まれたグラフィックデコーダ、そのグラフィック出力加速方法及び映像再生装置 |
US7961194B2 (en) | 2003-11-19 | 2011-06-14 | Lucid Information Technology, Ltd. | Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system |
US8239749B2 (en) | 2004-06-25 | 2012-08-07 | Apple Inc. | Procedurally expressing graphic objects for web pages |
US7548244B2 (en) | 2005-01-12 | 2009-06-16 | Sony Computer Entertainment Inc. | Interactive debugging and monitoring of shader programs executing on a graphics processor |
US8212840B2 (en) | 2006-10-23 | 2012-07-03 | Qualcomm Incorporated | 3-D clipping in a graphics processing unit |
US7847798B1 (en) * | 2006-10-24 | 2010-12-07 | Adobe Systems Incorporated | Clipping and culling artwork using a graphics processing unit |
US8274516B2 (en) | 2008-08-04 | 2012-09-25 | Microsoft Corporation | GPU scene composition and animation |
GB0818278D0 (en) | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing systems |
WO2012001781A1 (ja) * | 2010-06-30 | 2012-01-05 | 富士通株式会社 | 描画装置および描画プログラム |
ITRM20110199A1 (it) * | 2011-04-19 | 2012-10-20 | Mavi Sud S R L | Metodo di preparazione di complessi di chitina e principi attivi e complessi così ottenuti. |
US9619853B2 (en) | 2012-08-09 | 2017-04-11 | Qualcomm Incorporated | GPU-accelerated path rendering |
CN103810742B (zh) * | 2012-11-05 | 2018-09-14 | 正谓有限公司 | 图像渲染方法和系统 |
CN103473123B (zh) * | 2013-08-27 | 2016-09-07 | 西安邮电大学 | 基于gpu的实时毛笔墨水扩散模型并行实现方法 |
-
2015
- 2015-11-09 EP EP15856486.4A patent/EP3217360B1/en active Active
- 2015-11-09 WO PCT/KR2015/011965 patent/WO2016072811A1/ko active Application Filing
- 2015-11-09 CN CN201580059684.5A patent/CN107077754B/zh active Active
- 2015-11-09 US US15/522,042 patent/US10331331B2/en active Active
- 2015-11-09 KR KR1020177011426A patent/KR101913212B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070152992A1 (en) * | 2001-03-06 | 2007-07-05 | Au Optronics Corporation | Image data transmission apparatus and method for image display system |
KR101228708B1 (ko) * | 2004-08-30 | 2013-02-01 | 큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게 | 하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템 |
US20060109275A1 (en) * | 2004-11-02 | 2006-05-25 | Samsung Electronics Co., Ltd. | Method and apparatus for accumulative vector drawing using buffering |
US20080118148A1 (en) * | 2006-11-21 | 2008-05-22 | Guofang Jiao | Efficient scissoring for graphics application |
KR20140126263A (ko) * | 2013-04-22 | 2014-10-30 | 삼성디스플레이 주식회사 | 이미지 오버레이를 사용하여 디스플레이 지연을 감소시키는 방법 및 장치 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3217360A4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112614209A (zh) * | 2020-12-30 | 2021-04-06 | 凌云光技术股份有限公司 | 一种流程图刷新时的元素重绘方法及系统 |
CN112614209B (zh) * | 2020-12-30 | 2024-02-20 | 凌云光技术股份有限公司 | 一种流程图刷新时的元素重绘方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3217360A1 (en) | 2017-09-13 |
CN107077754B (zh) | 2020-10-16 |
CN107077754A (zh) | 2017-08-18 |
KR101913212B1 (ko) | 2018-12-28 |
US10331331B2 (en) | 2019-06-25 |
US20170336939A1 (en) | 2017-11-23 |
EP3217360A4 (en) | 2018-03-14 |
EP3217360B1 (en) | 2022-04-20 |
KR20170066483A (ko) | 2017-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016072811A1 (ko) | 디스플레이 장치 및 디스플레이 장치의 제어 방법 | |
WO2016064137A1 (en) | Apparatus and method of drawing and solving figure content | |
WO2015072787A1 (ko) | 전자 장치가 외부 디스플레이 장치와 화면을 공유하는 방법 및 전자 장치 | |
WO2013089392A1 (en) | Bendable display device and displaying method thereof | |
US9685143B2 (en) | Display control device, display control method, and computer-readable storage medium for changing a representation of content displayed on a display screen | |
EP3224704A1 (en) | Method and device for amending handwritten characters | |
WO2013094953A1 (en) | Method for displaying page shape and display apparatus thereof | |
CN103955339A (zh) | 一种终端操作方法及终端设备 | |
KR20100104804A (ko) | Ddi, ddi 제공방법 및 상기 ddi를 포함하는 데이터 처리 장치 | |
RU2010146079A (ru) | Прокрутка изображения виртуального рабочего стола | |
WO2016043482A1 (en) | Method of styling content and touch screen device for styling content | |
CN104011629A (zh) | 用于能够进行基于触摸的输入的用户界面的经增强的目标选择 | |
WO2013191315A1 (ko) | 디지털 이미지 처리 장치 및 방법 | |
KR20080079094A (ko) | 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법 | |
US20220129086A1 (en) | Virtual peripherals for mobile devices | |
WO2021235635A1 (ko) | 가상 컨텐츠 데이터 기반 현실적 장면 이미지의 렌더링 방법 및 그 장치 | |
CN101017659B (zh) | 低功耗显示图形对象的设备和方法 | |
WO2020242047A1 (en) | Method and apparatus for acquiring virtual object data in augmented reality | |
WO2012165847A9 (ko) | 사용자 주석 처리 장치 및 그를 위한 전자책 서비스 시스템 및 방법 | |
WO2022220344A1 (ko) | 3차원 스케치를 위한 인터페이싱 방법 및 장치 | |
CN115016671A (zh) | 触控显示控制装置、触控显示装置、设备和方法 | |
JP2007122188A (ja) | 画像形成装置及び画像処理方法、並びにプログラム | |
US10546399B2 (en) | Pencil ink render using high priority queues | |
WO2023167396A1 (ko) | 전자 장치 및 그 제어 방법 | |
KR20020096219A (ko) | 반투명 그림창을 이용한 프리젠테이션용 그래픽 툴 제공방법 |
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: 15856486 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2015856486 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 20177011426 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |