KR102640054B1 - A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same - Google Patents

A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same Download PDF

Info

Publication number
KR102640054B1
KR102640054B1 KR1020220001037A KR20220001037A KR102640054B1 KR 102640054 B1 KR102640054 B1 KR 102640054B1 KR 1020220001037 A KR1020220001037 A KR 1020220001037A KR 20220001037 A KR20220001037 A KR 20220001037A KR 102640054 B1 KR102640054 B1 KR 102640054B1
Authority
KR
South Korea
Prior art keywords
frame
scroll
rendering
screen
played
Prior art date
Application number
KR1020220001037A
Other languages
Korean (ko)
Other versions
KR20230105534A (en
Inventor
안우현
홍창경
Original Assignee
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광운대학교 산학협력단 filed Critical 광운대학교 산학협력단
Priority to KR1020220001037A priority Critical patent/KR102640054B1/en
Publication of KR20230105534A publication Critical patent/KR20230105534A/en
Application granted granted Critical
Publication of KR102640054B1 publication Critical patent/KR102640054B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 스크롤 동작으로 인한 렌더링 횟수를 최소화하기 위하여, 화면에 재생되는 콘텐츠에 포함되는 프레임 및 스크롤 시 새롭게 재생될 콘텐츠에 포함되는 프레임에 대해 렌더링을 동시에 수행하여 저장하고, 사용자의 스크롤 동작 시 미리 렌더링해 저장해 놓은 해당 프레임을 스크롤 거리만큼 이동하여 재생하는 프레임 확장을 통한 렌더링 최소화 방법을 제안한다. 상기 프레임 확장을 통한 렌더링 최소화 방법은, 화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임 및 상기 프레임의 재생 후 추가로 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 동시에 렌더링하고 이를 각각 대상 프레임 및 확장 프레임으로 저장하는 단계 및 사용자가 상기 화면에 스크롤 명령을 인가하였을 때, 현재 화면에 재생 중인 상기 대상 프레임 중 일부 또는 전부를 상기 확장 프레임으로 교체하여 상기 화면에 재생하는 단계를 포함한다.In order to minimize the number of renderings due to scrolling, the present invention simultaneously performs rendering on frames included in content played on the screen and frames included in content to be newly played when scrolling, and stores them in advance when the user scrolls. We propose a method of minimizing rendering through frame expansion, in which the rendered and saved frame is played by moving it by the scroll distance. The rendering minimization method through frame expansion simultaneously renders frames included in UI content to be played directly on the screen and frames included in UI content to be additionally played after playback of the frames, and renders them as target frames and expansion frames, respectively. It includes a step of saving and when the user applies a scroll command to the screen, replacing some or all of the target frames currently playing on the screen with the extended frames and playing them on the screen.

Description

프레임 확장을 통한 렌더링 최소화 방법 및 동 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체{A MINIMIZATION METHOD FOR RENDERING BY EXTENDING A FRAME, AND COMPUTER-READABLE RECORDING MEDIUM RECORDED WITH COMPUTER PROGRAM EXECUTING THE SAME}A computer-readable recording medium on which a method for minimizing rendering through frame expansion and a computer program for executing the method on a computer are recorded }

본 발명은 렌더링 방법에 관한 것으로, 특히, 스크롤 동작으로 인한 렌더링 횟수를 최소화하기 위하여, 화면에 재생되는 콘텐츠에 포함되는 프레임 및 스크롤 시 새롭게 재생될 콘텐츠에 포함되는 프레임에 대해 렌더링을 동시에 수행하여 저장하고, 사용자의 스크롤 동작 시 미리 렌더링 해 저장해 놓은 해당 프레임을 스크롤 거리만큼 이동하여 재생하는 프레임 확장을 통한 렌더링 최소화 방법 및 프로그램과, 동 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체에 관한 것이다.The present invention relates to a rendering method. In particular, in order to minimize the number of renderings due to scrolling, the frames included in the content played on the screen and the frames included in the content to be newly played when scrolling are simultaneously rendered and stored. It relates to a method and program to minimize rendering through frame expansion that plays the pre-rendered and stored frame by moving it by the scroll distance when the user scrolls, and a computer-readable recording medium on which the program is recorded.

3차원 컴퓨터 그래픽스에서 그래픽스 파이프라인(Graphics Pipeline) 또는 렌더링 파이프라인(Rendering Pipeline)은 3차원 이미지를 2차원 래스터(Raster) 이미지로 표현하기 위한 단계적인 방법을 말한다. 여기서 래스터는 컴퓨터에서 화상 정보를 표현하는 한 가지 방법으로, 이미지를 2차원 형태의 픽셀로 구성하고, 이들을 모습을 조합하여 일정한 간격의 픽셀들로 하나의 화상 정보를 표현하는 것을 말한다. 한 줄에서 연속된 픽셀들의 집합을 래스터 라고도 한다. In 3D computer graphics, a graphics pipeline or rendering pipeline refers to a step-by-step method for expressing a 3D image as a 2D raster image. Here, raster is a method of expressing image information on a computer. It consists of an image in two-dimensional pixels and combines their shapes to express one image information with pixels at regular intervals. A set of consecutive pixels in one line is also called a raster.

안드로이드 운영체계의 중요한 모듈인 그래픽스 파이프라인은 UI(User Interface) 콘텐츠의 렌더링(Rendering), 조정, 합성 및 출력 동작으로 구성된다. 렌더링은 수치와 방정식으로 서술된 2차원 또는 3차원 데이터를 사람이 인지 가능한 영상으로 변환하는 과정이다. 모델링을 기본적인 골격을 만드는 과정이라고 하면 렌더링은 그 골격 표면을 처리하는 과정이라고 할 수 있다. The graphics pipeline, an important module of the Android operating system, consists of rendering, adjustment, composition, and output operations of UI (User Interface) content. Rendering is the process of converting two-dimensional or three-dimensional data described in numbers and equations into images that can be perceived by humans. If modeling is the process of creating a basic skeleton, then rendering can be said to be the process of processing the surface of the skeleton.

앱(Application)은 UI 콘텐츠를 위한 프레임을 렌더링하며, 서피스플링거(SurfaceFlinger)는 프레임의 크기, 투명도, 회전 및 위치를 조정하고, Hardware Composer(HWC)는 서피스플링거로부터 전달받은 프레임의 합성과 출력을 수행한다. The application renders frames for UI content, SurfaceFlinger adjusts the size, transparency, rotation, and position of the frames, and the Hardware Composer (HWC) composites and synthesizes frames received from SurfaceFlinger. Perform output.

사용자 앱, 상태 바, 네비게이션 바 각각은 UI 요소인 복수의 뷰(버튼, 텍스트, 및 이미지)로 구성된 사각 영역인 윈도우(Window)를 가진다. UI 스레드(UI thread)는 사용자와 윈도우의 상호작용 및 윈도우를 구성하는 복수의 뷰를 관리한다. 렌더 스레드(Render thread)는 화면에 재생될 콘텐츠의 프레임 렌더링을 담당한다. 버퍼 큐(Buffer Queue)는 화면 찢김 현상을 줄이는 트리플 버퍼링(Triple Buffering)을 지원하기 위해 3개의 그래픽 버퍼를 관리한다. The user app, status bar, and navigation bar each have a window, a rectangular area composed of multiple views (buttons, text, and images) that are UI elements. The UI thread manages the user's interaction with the window and the multiple views that make up the window. The render thread is responsible for rendering frames of content to be played on the screen. Buffer Queue manages three graphic buffers to support triple buffering, which reduces screen tearing.

도 1은 사용자가 화면을 스크롤 할 때 종래의 안드로이드 그래픽스 파이프라인의 프레임 렌더링 동작을 설명한다. Figure 1 illustrates the frame rendering operation of a conventional Android graphics pipeline when a user scrolls the screen.

도 1을 참조하면, 프레임 렌더링 동작은, 사용자가 UI 콘텐츠를 구성하는 뷰를 변경하고자 화면(110)을 터치하여 스크롤 동작을 취함으로써 시작된다. Referring to FIG. 1, the frame rendering operation begins when the user touches the screen 110 and performs a scroll operation to change the view constituting the UI content.

UI 스레드(120)는 뷰 트리의 다시 그릴 뷰를 검색하여 디스플레이 리스트를 획득하게 되는데, 디스플레이 리스트 각각은 한 개의 뷰를 렌더링하는데 필요한 일련의 그리기 명령어들을 가진다. 렌더 스레드(120)는 UI 스레드(120)로부터 디스플레이 리스트를 전달받은 후 해당 프레임을 렌더링한다. GPU(130)는 디스플레이 리스트들 각각에 대응된 OpenGL ES의 명령어들로 실행함으로써 렌더링 된 프레임을 생성하고, 렌더링 된 프레임을 비어 있는 그래픽버퍼(150, B0)에 저장하고, 해당 그래픽버퍼(B0)를 버퍼 큐(buffer queue)(140)에 넣는다. 설명의 편의를 위해 UI 스레드와 렌더 스레드의 부재번호를 120으로 통합하였고, 그래픽버퍼(150)의 개수를 3개(B0, B1, B2)로 한정하였다. The UI thread 120 searches for a view to be redrawn in the view tree to obtain a display list, and each display list has a series of drawing commands required to render one view. The render thread 120 receives the display list from the UI thread 120 and renders the corresponding frame. The GPU 130 generates a rendered frame by executing OpenGL ES instructions corresponding to each of the display lists, stores the rendered frame in an empty graphics buffer (150, B 0 ), and stores the rendered frame in the corresponding graphics buffer (B 0 ) into the buffer queue (140). For convenience of explanation, the member numbers of the UI thread and render thread were combined to 120, and the number of graphic buffers 150 was limited to 3 (B 0 , B 1 , B 2 ).

렌더링 된 프레임이 저장된 그래픽버퍼 번호(ex, 0)를 포함한 화면 출력 정보를 버퍼 아이템 메시지(buffer item messages)(160)에 담아 서피스플링거(170)에 전달한다. 이때 프레임 렌더링 동작이 반복적으로 실행될 때 3개의 그래픽버퍼(B0, B1, B2) 중 프레임을 저장할 그래픽버퍼를 번갈아 가면서 선택한다. Screen output information, including the graphics buffer number (ex, 0) where the rendered frame is stored, is delivered to the surface flinger (170) in a buffer item message (160). At this time, when the frame rendering operation is repeatedly executed, the graphic buffer in which to store the frame is alternately selected among the three graphic buffers (B 0 , B 1 , B 2 ).

서피스플링거(170)는 수신한 버퍼 아이템 메시지(160)에 포함된 그래픽버퍼 번호로부터, 그래픽버퍼의 주소(또는 핸들)를 관리하는 테이블(180, mImages)에서 렌더링 된 프레임을 저장하는 그래픽버퍼 주소를 획득한다. 서피스플링거(170)가 획득한 그래픽버퍼 주소를 HWC(미도시)에 전달하면, HWC는 그래픽버퍼(B0)에 저장된 프레임을 화면에 출력한다. The surface flinger 170 determines the graphic buffer address that stores the rendered frame in the table 180 (mImages), which manages the address (or handle) of the graphic buffer, from the graphic buffer number included in the received buffer item message 160. obtain. When the surface flinger 170 transmits the acquired graphics buffer address to the HWC (not shown), the HWC outputs the frame stored in the graphics buffer (B 0 ) on the screen.

상술한 과정을 수행하는, 안드로이드 그래픽스 파이프라인은 스크롤 동작에서 아래와 같은 문제점이 발생한다. The Android graphics pipeline, which performs the above-described process, encounters the following problems in scrolling operations.

첫째, 스크롤 거리가 매우 미세하더라도 화면의 UI 콘텐츠 일부가 아닌 전체 또는 많은 부분을 다시 그리기 위해 렌더링을 수행하여야 한다. First, even if the scroll distance is very small, rendering must be performed to redraw all or a large portion of the UI content on the screen, not just part of it.

둘째, 사용자가 화면에 손가락을 터치한 후부터 뗄 때까지의 스크롤 움직임 동안 UI 콘텐츠의 연속적인 변화로 인해 초당 프레임 렌더링 횟수(frame rate)가 60fps(frame per second)까지 이를 정도로 많은 횟수의 프레임 렌더링을 유발한다. 초당 프레임 렌더링 횟수가 많다는 것은 CPU와 GPU의 사용량을 증가한다는 것을 의미하고 결국 소비 전력의 증가를 유발한다.Second, the continuous change of UI content during the scroll movement from when the user touches the screen to when he lifts his finger causes a large number of frames to be rendered, with the frame rate reaching up to 60fps (frames per second). cause. A high number of frames rendered per second means increased CPU and GPU usage, which ultimately leads to an increase in power consumption.

대한민국 공개특허 제10-2017-0040698호(그래픽스 파이프라인을 수행하는 방법 및 장치, 2017.04.13.)Republic of Korea Patent Publication No. 10-2017-0040698 (Method and device for performing graphics pipeline, April 13, 2017)

본 발명이 해결하고자 하는 기술적 과제는, 스크롤 동작으로 인한 렌더링 횟수를 최소화하기 위하여, 화면에 재생되는 콘텐츠에 포함되는 프레임 및 스크롤 시 새롭게 재생될 콘텐츠에 포함되는 프레임에 대해 렌더링을 동시에 수행하여 저장하고, 사용자의 스크롤 동작 시 미리 렌더링 해 저장해 놓은 해당 프레임을 스크롤 거리만큼 이동하여 재생하는 프레임 확장을 통한 렌더링 최소화 방법 및 프로그램과, 동 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체에 있다.The technical problem to be solved by the present invention is to simultaneously perform rendering and store frames included in content played on the screen and frames included in content to be newly played when scrolling, in order to minimize the number of renderings due to scrolling operations. , a rendering minimization method and program through frame expansion that plays the pre-rendered and stored frame by moving it by the scroll distance when the user scrolls, and a computer-readable recording medium on which the program is recorded.

상기 기술적 과제를 달성하기 위한 본 발명의 일 측면에 따른 프레임 확장을 통한 렌더링 최소화 방법은, 화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임 및 상기 프레임의 재생 후 추가로 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 동시에 렌더링하고 이를 각각 대상 프레임 및 확장 프레임으로 저장하는 단계; 및 사용자가 상기 화면에 스크롤 명령을 인가하였을 때, 현재 화면에 재생 중인 상기 대상 프레임 중 일부 또는 전부를 상기 확장 프레임으로 교체하여 상기 화면에 재생하는 단계를 포함한다.A method of minimizing rendering through frame expansion according to an aspect of the present invention for achieving the above technical problem includes frames included in UI content to be played immediately on the screen and UI content to be additionally played after playback of the frame. Simultaneously rendering the frames and storing them as target frames and extended frames, respectively; And when the user applies a scroll command to the screen, replacing some or all of the target frames currently playing on the screen with the extended frames and playing them on the screen.

또한, 상기 화면에 재생하는 단계는, 상기 사용자가 인가한 스크롤 거리만큼 상기 확장 프레임을 배치하여 재생할 수 있다.Additionally, the step of playing on the screen can be performed by arranging the extended frame as much as the scroll distance authorized by the user.

또한, 상기 확장 프레임은, 상기 스크롤 명령이 업 스크롤 일 때 상기 대상 프레임을 교체하여 상기 화면에 재생될 프레임을 포함할 수 있다.Additionally, the extended frame may include a frame to be played on the screen by replacing the target frame when the scroll command is up scroll.

또한, 상기 스크롤 명령이 다운 스크롤 일 때, 상기 다운 스크롤 명령에 따라 재생되어야 할 프레임에 대해 렌더링을 수행한 후 재생할 수 있다.Additionally, when the scroll command is a down scroll, the frame to be played according to the down scroll command can be rendered and then played.

또한, 상기 다운 스크롤 명령에 따라 재생되어야 할 프레임에 대해 렌더링을 수행할 때 추가 다운 스크롤 명령에 대응하는 프레임에 대해서는 선-렌더링을 수행하지 않을 수 있다.Additionally, when rendering a frame to be played according to the down scroll command, pre-rendering may not be performed on a frame corresponding to an additional down scroll command.

상기 기술적 과제를 달성하기 위한 본 발명의 다른 측면에 따른 프레임 확장을 통한 렌더링 최소화 방법은, 화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임 및 사용자가 화면을 스크롤 하였을 때 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 함께 렌더링하고 그래픽버퍼에 각각 대상 프레임 및 확장 프레임으로 저장하는 단계; 상기 화면에 스크롤 명령을 인가하고 있는가를 판단하는 단계; 상기 사용자가 인가한 스크롤 동작이 업 스크롤 동작인가를 판단하는 단계; 상기 사용자가 인가한 업 스크롤 거리를 누적하는 단계; 상기 누적된 업 스크롤 거리가 오버플로 상태인가를 판단하는 단계; 상기 누적된 업 스크롤 거리가 오버플로 상태가 아닐 때, 상기 그래픽버퍼에 저장해 놓은 상기 확장 프레임을 상기 사용자가 인가한 상기 업 스크롤 거리만큼 이동하여 재생하는 단계; 상기 누적된 업 스크롤 거리가 오버플로라고 판단하면 누적 스크롤 거리를 0(zero)으로 리셋시키는 단계; 상기 사용자가 인가한 상기 스크롤 동작이 업 스크롤이 아닐 때 이를 다운 스크롤 동작으로 판단하고, 다운 스크롤 거리만큼 이동하였을 때 재생되어야 할 UI 콘텐츠에 포함된 상기 대상 프레임을 렌더링한 후 재생하는 단계; 및 상기 사용자가 스크롤 동작을 인가하지 않을 때 상기 대상 프레임을 재생하는 단계를 포함한다.A method of minimizing rendering through frame expansion according to another aspect of the present invention for achieving the above technical problem includes frames included in UI content to be played immediately on the screen and UI content to be played when the user scrolls the screen. Rendering the frames together and storing them as target frames and extended frames, respectively, in a graphics buffer; determining whether a scroll command is being applied to the screen; determining whether the scroll operation authorized by the user is an up-scroll operation; accumulating an up-scroll distance approved by the user; determining whether the accumulated up-scroll distance is in an overflow state; When the accumulated up-scroll distance is not in an overflow state, moving and playing the extended frame stored in the graphic buffer by the up-scroll distance approved by the user; resetting the accumulated scroll distance to 0 (zero) when it is determined that the accumulated up-scroll distance is overflow; When the scroll operation approved by the user is not an up scroll, determining it to be a down scroll operation, rendering and playing the target frame included in the UI content to be played when the scroll operation is moved by the down scroll distance; and playing the target frame when the user does not authorize a scroll operation.

또한, 상기 확장 프레임을 상기 사용자가 인가한 상기 업 스크롤 거리만큼 이동하여 재생하는 단계, 상기 누적 스크롤 거리를 0으로 리셋시키는 단계 및 상기 대상 프레임을 렌더링한 후 재생하는 단계를 수행한 후에는 상기 대상 프레임 및 상기 확장 프레임으로 저장하는 단계를 수행하도록 하고, 상기 대상 프레임을 재생하는 단계를 수행한 후에는 상기 화면에 스크롤 명령을 인가하고 있는가를 판단하는 단계를 수행하도록 할 수 있다.In addition, after performing the steps of moving and playing the extended frame by the up-scroll distance approved by the user, resetting the accumulated scroll distance to 0, and rendering and playing the target frame, the target The step of storing a frame and the extended frame may be performed, and after the step of playing the target frame, the step of determining whether a scroll command is applied to the screen may be performed.

또한, 상기 누적된 업 스크롤 거리가 오버플로상태일 때는, 상기 누적된 업 스크롤 거리가 상기 확장 프레임의 거리보다 길 때일 수 있다.Additionally, when the accumulated up-scroll distance is in an overflow state, the accumulated up-scroll distance may be longer than the distance of the extended frame.

또한, 상기 확장 프레임은, 상기 스크롤 명령이 업 스크롤 일 때 상기 대상 프레임을 교체하여 상기 화면에 재생될 프레임을 포함할 수 있다.Additionally, the extended frame may include a frame to be played on the screen by replacing the target frame when the scroll command is up scroll.

또한, 상기 대상 프레임을 렌더링한 후 재생하는 단계에서, 상기 대상 프레임에 대해 렌더링을 수행할 때 예상되는 추가 다운 스크롤 명령에 대응하는 프레임에 대해서는 선-렌더링을 수행하지 않을 수 있다.Additionally, in the step of playing after rendering the target frame, pre-rendering may not be performed on a frame corresponding to an additional down-scroll command expected when rendering the target frame.

한편, 상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 측면에 따른 프로그램은, 전술한 프레임 확장을 통한 렌더링 최소화 방법을 실행하기 위한 프로그램일 수 있다.Meanwhile, a program according to another aspect of the present invention for achieving the above technical problem may be a program for executing the above-described rendering minimization method through frame expansion.

또한, 상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 측면에 따른 기록 매체는, 전술한 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체일 수 있다.In addition, a recording medium according to another aspect of the present invention for achieving the above technical problem may be a computer-readable recording medium on which the above-described program is recorded.

상술한 바와 같이 본 발명에 따른 프레임 확장을 통한 렌더링 최소화 방법 및 프로그램과, 동 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체는, 하드웨어의 추가 없이 안드로이드 운영체제를 최적화하기 때문에 배터리 수명을 연장할 수 있고, 사용자의 보조배터리 구매를 줄일 수 있으므로 가정·산업체의 전력 소비를 크게 줄임으로써 전력 생산과 환경에 대한 비용을 줄일 수 있다는 장점이 있다.As described above, the method and program for minimizing rendering through frame expansion according to the present invention and the computer-readable recording medium on which the program is recorded can extend battery life by optimizing the Android operating system without adding hardware, Since users can reduce the purchase of auxiliary batteries, they have the advantage of significantly reducing power consumption in homes and industries, thereby reducing power production and environmental costs.

도 1은 사용자가 화면을 스크롤 할 때 종래의 안드로이드 그래픽스 파이프라인의 프레임 렌더링 동작을 설명한다.
도 2는 본 발명에 따른 스크롤 인식 렌더링 방법의 일 실시 예이다.
도 3은 임의의 기기에서 본 발명에 따른 프레임 확장을 통한 렌더링 최소화 방법을 수행하는 과정을 설명한다.
도 4는 스크롤 동작에 따른 확장 프레임의 생성, 재사용 및 화면 출력 과정을 나타낸다.
Figure 1 illustrates the frame rendering operation of a conventional Android graphics pipeline when a user scrolls the screen.
Figure 2 is an example of a scroll recognition rendering method according to the present invention.
Figure 3 explains the process of performing the rendering minimization method through frame expansion according to the present invention in any device.
Figure 4 shows the process of creating, reusing, and displaying an extended frame according to a scroll operation.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 예시적인 실시 예를 설명하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, its operational advantages, and the objectives achieved by practicing the present invention, reference should be made to the accompanying drawings illustrating exemplary embodiments of the present invention and the contents described in the accompanying drawings.

이하 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. Hereinafter, the present invention will be described in detail by explaining preferred embodiments of the present invention with reference to the accompanying drawings. The same reference numerals in each drawing indicate the same member.

도 2는 본 발명에 따른 스크롤 인식 렌더링 방법의 일 실시 예이다.Figure 2 is an example of a scroll recognition rendering method according to the present invention.

도 2를 참조하면, 본 발명에 따른 스크롤 인식 렌더링 방법(200)은, 미리 작성한 프로그램에 따라 진행하며, 확장 프레임 렌더링 단계(210), 사용자의 스크롤 동작 유무를 판단하는 단계(220), 스크롤 동작이 업 스크롤 인가를 판단하는 단계(230), 누적된 스크롤 거리를 연산하는 단계(240), 업 스크롤이 오퍼플로 상태인가를 판단하는 단계(250), 확장 프레임을 재생하는 단계(260), 누적 스크롤 거리를 리셋하는 단계(270), 대상 프레임 렌더링 후 재생하는 단계(280) 및 대상 프레임을 재생하는 단계(290)를 포함한다. 여기서 미리 작성한 프로그램은, 스마트폰에 적용되는 구글 안드로이드 운영체제이나 애플의 iOS 운영체제에 적용되는 프로그램을 포함한다. Referring to FIG. 2, the scroll recognition rendering method 200 according to the present invention is performed according to a pre-written program, and includes an extended frame rendering step 210, a step of determining whether the user scrolls (220), and a scroll operation. Step 230 of determining whether the up-scroll is approved, step 240 of calculating the accumulated scroll distance, step 250 of determining whether the up-scroll is in an overflow state, step 260 of playing the extended frame, step 260 of accumulating It includes a step of resetting the scroll distance (270), a step of rendering and playing the target frame (280), and a step of playing the target frame (290). Here, pre-written programs include programs applied to Google's Android operating system or Apple's iOS operating system applied to smartphones.

확장 프레임 렌더링 단계(210)는 화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임 및 사용자가 화면을 스크롤 하였을 때 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 함께 렌더링하고 그래픽버퍼에 저장한다. 설명의 편의를 위해, 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 대상 프레임이라고 하고, 사용자가 화면을 스크롤 하였을 때 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 확장 프레임이라고 가정하고 설명한다. 따라서 대상프레임과 확장프레임은 서로 직렬로 연속하여 그래픽버퍼에 저장되는 것이 바람직하다.The extended frame rendering step 210 renders frames included in UI content to be played immediately on the screen and frames included in UI content to be played when the user scrolls the screen together and stores them in a graphics buffer. For convenience of explanation, it is assumed that the frame included in the UI content to be played immediately is called a target frame, and the frame included in the UI content to be played when the user scrolls the screen is called an extended frame. Therefore, it is desirable that the target frame and the extended frame are stored in the graphics buffer in series.

여기서 확장 프레임 또는 프레임 확장은, 기존에는 화면에 바로 재생할 콘텐츠를 포함하는 프레임의 크기가 기본 프레임 크기인데, 본 발명에서는 재생할 콘텐츠뿐만 아니라 스크롤로 가까운 미래에 보일 콘텐츠를 포함할 수 있도록 프레임과 그래픽버퍼의 크기를 늘렸다는 의미를 포함하고 있다. 즉, 기존에는 렌더링의 대상이 “대상 프레임의 콘텐츠"인데 반해, 본 발명에서는 렌더링의 대상이 되는 프레임의 콘텐츠를 확장하여 “대상 프레임의 콘텐츠”에 “확장 프레임의 콘텐츠”를 추가 하였다. 대상 프레임과 확장 프레임을 구분하는 것이 아니라, 한 번에 렌더링할 하나의 프레임인데, 설명의 편의를 위해 하나의 프레임에 속하지만 현재 재생할 프레임인가 아니면 가까운 미래에 재생할 프레임인가로 구분한 것이다. 이하의 설명은 이러한 가정을 기준으로 작성되었다.Here, the expansion frame or frame expansion refers to the size of the frame containing the content to be played immediately on the screen, which is the basic frame size, but in the present invention, the frame and graphic buffer are used to include not only the content to be played but also content to be viewed in the near future by scrolling. It includes the meaning of increasing the size of . In other words, while the existing object of rendering was the “content of the target frame,” in the present invention, the content of the frame that is the object of rendering was expanded and the “content of the extended frame” was added to the “content of the target frame.” Target frame It is not a distinction between a frame and an extended frame, but one frame to be rendered at a time. For convenience of explanation, it belongs to one frame but is classified as a frame to be played currently or a frame to be played in the near future. The following explanation is: It was written based on these assumptions.

사용자의 스크롤 동작 유무를 판단하는 단계(220)는 본 발명에 따른 스크롤 인식 렌더링 방법(200)이 활성화된 기기의 화면에 스크롤 명령을 인가하고 있는가를 판단한다. In the step 220 of determining whether the user scrolls, it is determined whether the scroll recognition rendering method 200 according to the present invention is applying a scroll command to the screen of the activated device.

스크롤 동작이 업 스크롤 인가를 판단하는 단계(230)는, 사용자가 인가한 스크롤 동작(220, yes)이 업 스크롤 동작인가를 판단한다. In the step 230 of determining whether the scroll operation is an up-scroll operation, it is determined whether the scroll operation 220 (yes) authorized by the user is an up-scroll operation.

누적된 스크롤 거리를 연산하는 단계(240)는, 사용자가 업 스크롤 동작을 인가하였을 때(230, Yes)에 스크롤 거리를 누적한다. In step 240 of calculating the accumulated scroll distance, the scroll distance is accumulated when the user approves the up-scroll operation (230, Yes).

업 스크롤이 오퍼플로 상태인가를 판단하는 단계(250)는 누적된 업 스크롤 거리가 오버플로 상태인가를 판단한다. 스크롤 오버플로(overflow)에 대해서는 후술한다. In step 250 of determining whether the up-scroll is in an overflow state, it is determined whether the accumulated up-scroll distance is in an overflow state. Scroll overflow will be described later.

확장 프레임을 재생하는 단계(260)는 누적된 업 스크롤 거리가 오버플로가 아닐 때(250, No), 그래픽버퍼에 저장해 놓은 확장 프레임을 사용자가 인가한 업 스크롤 거리만큼 이동하여 재생한다. 후술하겠지만, 사용자가 인가하는 스크롤 거리에 따라 현재 재생되고 있는 대상 프레임 중 일부 또는 전부가 확장 프레임으로 교체되게 될 것이다. In the step 260 of playing an extended frame, when the accumulated up-scroll distance does not overflow (250, No), the extended frame stored in the graphic buffer is moved by the up-scroll distance approved by the user and played. As will be described later, some or all of the currently playing target frames will be replaced with extended frames depending on the scroll distance authorized by the user.

누적 스크롤 거리를 리셋하는 단계(270)는 누적된 업 스크롤 거리가 오버플로라고 판단하면(250, Yes) 누적 스크롤 거리를 0(zero)으로 리셋시킨다. In step 270 of resetting the accumulated scroll distance, if it is determined that the accumulated up-scroll distance is overflow (250, Yes), the accumulated scroll distance is reset to 0 (zero).

대상 프레임 렌더링 후 재생하는 단계(280)는 사용자가 인가한 스크롤 동작이 업 스크롤이 아닐 때(230, No), 스크롤 거리만큼 이동하였을 때 재생되어야 할 UI 콘텐츠에 포함된 대상 프레임을 렌더링한 후 재생한다. In the step 280 of rendering and playing the target frame, when the scroll operation approved by the user is not an up scroll (230, No), the target frame included in the UI content to be played when moved by the scroll distance is rendered and then played. do.

대상 프레임을 재생하는 단계(290)는 사용자가 스크롤 동작을 인가하지 않을 때(220, No)에는 대상 프레임을 재생한다. In the step 290 of playing the target frame, the target frame is played when the user does not authorize a scroll operation (220, No).

확장 프레임을 재생하는 단계(260), 누적 스크롤 거리를 리셋하는 단계(270) 및 대상 프레임 렌더링 후 재생하는 단계(280)를 수행한 후에는 다시 확장 프레임 렌더링 단계(210)를 수행하도록 하며, 대상 프레임을 재생하는 단계(290)를 수행한 후에는 사용자의 스크롤 동작 유무를 판단하는 단계(220)를 수행하도록 한다. After performing the step 260 of playing the extended frame, the step 270 of resetting the accumulated scroll distance, and the step 280 of playing the target frame after rendering, the extended frame rendering step 210 is performed again, and the target frame rendering step 210 is performed again. After performing the step 290 of playing the frame, the step 220 of determining whether the user scrolls.

상술한 바와 같이, 본 발명의 핵심 아이디어 중 하나는 확장 프레임 렌더링 단계(210)에서 화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임(대상 프레임) 및 사용자가 화면을 스크롤 하였을 때 재생되어야 할 UI 콘텐츠에 포함되는 프레임(확장 프레임)을 함께 렌더링 하는 것이다. As described above, one of the core ideas of the present invention is the frame (target frame) included in the UI content to be played directly on the screen in the extended frame rendering step 210 and the UI content to be played when the user scrolls the screen. The frames included (extended frames) are rendered together.

본 발명의 핵심 아이디어 중 다른 하나는 사용자가 스크롤 동작을 수행하여 새로운 프레임(확장 프레임)이 재생되어야 할 때, 확장 프레임을 재생하는 단계(260)에서 미리 렌더링 한 후 저장해 놓은 확장 프레임을 스크롤 거리만큼 이동하여 재생(단계 260)하므로, 사용자가 인가한 스크롤 동작의 스크롤 오버플로를 넘지 않는 범위에서 렌더링 작업을 추가할 필요가 없도록 함으로써, 렌더링의 횟수를 최적화할 수 있도록 하는 것이다. Another key idea of the present invention is that when the user performs a scroll operation and a new frame (extended frame) needs to be played, in the step 260 of playing the extended frame, the extended frame that has been pre-rendered and stored is equal to the scroll distance. Since it moves and plays (step 260), there is no need to add a rendering task within the scope of the scroll overflow of the scroll operation authorized by the user, thereby optimizing the number of rendering operations.

도 3은 임의의 기기에서 본 발명에 따른 프레임 확장을 통한 렌더링 최소화 방법을 수행하는 과정을 설명한다. Figure 3 explains the process of performing the rendering minimization method through frame expansion according to the present invention in any device.

도 3a는 사용자가 스크롤 동작을 수행하지 않았을 때의 렌더링 및 영상 재생과정을 설명하고, 도 3b는 사용자가 스크롤 동작을 수행하였을 때의 렌더링 및 영상 재생 과정을 각각 설명한다. FIG. 3A illustrates the rendering and image playback process when the user does not perform a scroll operation, and FIG. 3B illustrates the rendering and image playback process when the user performs a scroll operation.

도 3a를 참조하면, 화면(110)에 보일 UI 콘텐츠를 기존 프레임 즉 대상 프레임(1, 2, 3) 렌더링 동작으로 렌더링 할 때, 스크롤 동작으로 가까운 미래에 보일 가능성이 큰 콘텐츠까지 함께 포함한 확장 프레임(4, 5, 6)을 렌더링 하고, 그래픽버퍼(150, Bo)에 직렬로 연속하여 저장한다. 확장 프레임에서 가까운 미래에 보일 UI 콘텐츠의 영역(4, 5, 6)을 선-렌더링(pre-rendering) 영역이라고 정의한다. 서피스플링거(170)는 선-렌더링 영역을 제외한 화면에 보일 UI 콘텐츠 영역(1 ~ 3)만 출력한다.Referring to FIG. 3A, when rendering UI content to be displayed on the screen 110 using an existing frame, that is, a target frame (1, 2, 3) rendering operation, an extended frame including content that is likely to be viewed in the near future through a scroll operation is also used. (4, 5, 6) are rendered and stored sequentially in the graphics buffer (150, B o ). The area (4, 5, 6) of UI content that will be visible in the near future in the expansion frame is defined as the pre-rendering area. Surface Flinger 170 outputs only the UI content areas (1 to 3) visible on the screen, excluding the pre-rendering area.

도 3b를 참조하면, 사용자의 스크롤 동작에서 새 프레임의 렌더링 없이 이전에 렌더링 된 확장 프레임을 재사용하여 다음과 같은 동작으로 출력한다. 프레임을 렌더링 하는 이전까지의 동작은 기존 그래픽스 파이프라인과 같으며, 그래픽버퍼(B1)을 버퍼 큐(140)에서 획득한다는 점에서 차이가 있다. 다만, 이전에 렌더링 한 확장 프레임을 재사용하므로 프레임 렌더링에 필요한 동작들, 즉 OpenGL 함수들을 실행하는 동작을 수행하지 않는다(Skip frame rendering). 비록 그래픽버퍼(B1)가 프레임을 저장하지 않음에도 화면 출력을 요청하기 위해 버퍼 큐(140)에 넣는다. Referring to Figure 3b, in the user's scrolling motion, a previously rendered extended frame is reused without rendering a new frame and output in the following operation. The previous operation of rendering a frame is the same as the existing graphics pipeline, with the difference being that the graphics buffer (B 1 ) is obtained from the buffer queue 140. However, since previously rendered extended frames are reused, the operations required for frame rendering, that is, executing OpenGL functions, are not performed (Skip frame rendering). Even though the graphic buffer (B 1 ) does not store the frame, it is put into the buffer queue 140 to request screen output.

기존 그래픽스 파이프라인처럼 버퍼 큐(140)로 반환된 그래픽버퍼의 번호(B1)를 포함한 화면 출력 정보를 버퍼 아이템 메시지(160)에 담아서 서피스플링거(170)로 보낸다. 이때 서피스플링거(170)가 확장 프레임을 출력할 수 있게 하도록 그래픽버퍼 번호(1)를 버퍼 아이템 메시지(160)에 넣을 때, 확장 프레임을 저장하는 그래픽버퍼 번호(0)와 스크롤 거리 d를 추가한다. Like the existing graphics pipeline, screen output information, including the number (B 1 ) of the graphics buffer returned to the buffer queue 140, is sent to the surface flinger 170 in the buffer item message 160. At this time, when inserting the graphic buffer number (1) into the buffer item message 160 so that the surface flinger 170 can output the extended frame, the graphic buffer number (0) that stores the extended frame and the scroll distance d are added. do.

서피스플링거(170)는 버퍼 아이템 메시지(160)를 받은 후 확장 프레임을 저장하는 그래픽버퍼의 번호(1)를 확인하고, 그래픽버퍼(B1)에 저장된 확장 프레임을 d만큼 위치시켜 화면에 출력한다. After receiving the buffer item message 160, the surface flinger 170 checks the number (1) of the graphic buffer storing the extended frame, positions the extended frame stored in the graphic buffer (B 1 ) as much as d, and outputs it on the screen. do.

결국, 스크롤 시 확장 프레임의 재사용은 프레임 렌더링 수행 횟수를 줄이기 때문에 GPU 및 CPU 부하를 감소시키고, 이로 인해 전력 소모를 줄일 수 있다는 것을 알 수 있다. In the end, it can be seen that reusing extended frames when scrolling reduces the number of frame rendering operations, thereby reducing GPU and CPU load, thereby reducing power consumption.

도 4는 스크롤 동작에 따른 확장 프레임의 생성, 재사용 및 화면 출력 과정을 나타낸다. Figure 4 shows the process of creating, reusing, and displaying an extended frame according to a scroll operation.

도 4(a)의 왼쪽에는 대상 프레임의 UI 콘텐츠(1, 2, 3)가 화면에 재생되고 있고, 확장 프레임(4, 5, 6)이 저장되어 있다. 사용자가 스크롤 거리(d1)만큼 스크롤 하면 확장 프레임(4)을 위로 이동하고 대상 프레임(1)이 화면에서 제외된다. 이 방향의 스크롤 동작을 업 스크롤이라고 한다. 총 스크롤 거리는 d1이며, 스크롤 후 화면 꼭대기에 보일 UI 콘텐츠가 확장 프레임에서 어디에 위치하는지를 나타내는 시작 위치이다. 이 시작 위치에 화면 높이 H를 더한 값은 화면 바닥에 보일 UI 콘텐츠가 확장 프레임에서 어디에 위치를 나타내는 끝 위치이다. 마지막으로 이들 시작과 끝 위치 내의 UI 콘텐츠를 화면에 출력한다(단계 260 참조).On the left side of Figure 4(a), the UI contents (1, 2, and 3) of the target frame are played on the screen, and the extended frames (4, 5, and 6) are stored. When the user scrolls by the scroll distance (d 1 ), the expansion frame (4) moves upward and the target frame (1) is excluded from the screen. The scrolling operation in this direction is called up scrolling. The total scroll distance is d 1 , which is the starting position indicating where the UI content to be displayed at the top of the screen after scrolling is located in the expanded frame. This starting position plus the screen height H is the ending position indicating where the UI content to be displayed at the bottom of the screen is located in the expanded frame. Finally, the UI content within these start and end positions is output to the screen (see step 260).

도 4(b)의 왼쪽에 도시한 바와 같이, 사용자가 추가로 거리(d2)만큼 스크롤 하면, 총 스크롤 거리는 d1 + d2이며, 확장 프레임에서 d1 + d2 위치부터 화면 높이 H만큼의 영역을 출력한다(단계 260 참조).As shown on the left of FIG. 4(b), if the user scrolls an additional distance (d 2 ), the total scroll distance is d 1 + d 2 , and from the position d 1 + d 2 in the extended frame, the screen height H is Output the area (see step 260).

도 4(c)의 왼쪽에 도시한 바와 같이, 사용자가 추가로 거리(d3)만큼 스크롤 한다면, 총 스크롤 거리는 d1 + d2 + d3가 된다. 이 경우, 도 4(c)의 중간에 도시한 것처럼, 총 스크롤 거리와 화면 높이 H를 더한 위치가 확장 프레임의 끝 위치를 넘었다. 이 스크롤은 확장 프레임 밖의, 렌더링 되지 않은 UI 콘텐츠(ex, 7)를 화면에 출력하고자 시도하였고, 이 현상이 업 스크롤 오버플로(또는 스크롤 오버플로)라고 정의한다. 업 스크롤 오버플로가 발생하면 도 4(c)의 오른쪽에 도시한 것처럼 새로 나타날 UI 콘텐츠(ex, 5)를 시작으로 확장 프레임의 높이만큼의 UI 콘텐츠(ex, 6 ~ 10)를 포함하는 확장 프레임을 렌더링 한다. 새로운 확장 프레임이 생성되면 총 스크롤 거리를 초기화한다(단계 270 참조). As shown on the left side of FIG. 4(c), if the user scrolls an additional distance (d 3 ), the total scroll distance becomes d 1 + d 2 + d 3 . In this case, as shown in the middle of Figure 4(c), the total scroll distance plus the screen height H exceeded the end position of the extended frame. This scroll attempted to output unrendered UI content (ex, 7) outside the extended frame to the screen, and this phenomenon is defined as up-scroll overflow (or scroll overflow). When an up-scroll overflow occurs, an expansion frame containing UI content (ex, 6 to 10) equal to the height of the expansion frame, starting with the UI content (ex, 5) that will appear newly, as shown on the right side of FIG. 4(c). Render . When a new extended frame is created, the total scroll distance is initialized (see step 270).

도 4(d)는 도 4(c)의 반대 방향으로 스크롤 할 때의 출력 과정을 나타낸다. 이 방향의 스크롤 동작을 다운 스크롤이라고 정의한다. 스크롤 시 화면 꼭대기에 새롭게 나타날 UI 콘텐츠(ex, 4)가 프레임에 포함되지 않기 때문에 해당 UI 콘텐츠를 가지는 확장 프레임을 새로 생성해야 한다. 이 현상을 다운 스크롤 오버플로로 정의한다. 도 4(d)의 중간에 도시한 것처럼 스크롤 방향 때문에 새롭게 보일 UI 콘텐츠로부터 위쪽 영역의 UI 콘텐츠(ex, 1 ~ 3)가 선-렌더링 될 것으로 기대할 수 있다. 그러나 실시 예에 따라서, 예를 들면 안드로이드 그래픽스 파이프라인의 정책으로 인해서, 위쪽 영역으로 선-렌더링하지 않고, 도 4(d)의 오른쪽에 도시한 것처럼 새롭게 보일 UI 콘텐츠(ex, 4 ~ 6)를 시작으로 아래쪽 UI 콘텐츠(ex, 7 ~ 9)를 선-렌더링한다. Figure 4(d) shows the output process when scrolling in the opposite direction to Figure 4(c). The scrolling operation in this direction is defined as downscrolling. Since the UI content (ex, 4) that will newly appear at the top of the screen when scrolling is not included in the frame, a new extended frame with the corresponding UI content must be created. This phenomenon is defined as downscroll overflow. As shown in the middle of FIG. 4(d), it can be expected that the UI content (ex, 1 to 3) in the upper area will be pre-rendered from the UI content that will be newly visible due to the scroll direction. However, depending on the embodiment, for example, due to the policy of the Android graphics pipeline, the UI content (ex, 4 to 6) to be newly shown as shown on the right side of FIG. 4(d) is not pre-rendered to the upper area. First, pre-render the bottom UI content (ex, 7 to 9).

결국, 다운 스크롤 시 확장 프레임의 선-렌더링 된 UI 콘텐츠를 재사용할 수 없음에도 불구하고, 재사용할 수 없는 확장 프레임을 렌더링 한다면 CPU와 GPU 부하를 불필요하게 증가시킨다. 본 특허는 이러한 문제를 방지하기 위해 다운 스크롤 발생 시에는 도 4(e)에 도시한 것처럼 확장 프레임에서 선-렌더링 영역을 제외한 화면에 보일 UI 콘텐츠만 렌더링할 것을 제안한다(단계 280 참조).Ultimately, even though pre-rendered UI content of extended frames cannot be reused when scrolling down, rendering non-reusable extended frames unnecessarily increases CPU and GPU load. To prevent this problem, this patent proposes to render only the UI content visible on the screen, excluding the pre-rendering area in the extended frame, as shown in FIG. 4(e) when down-scrolling occurs (see step 280).

본 특허의 실효성을 실험은 안드로이드 버전 Pie의 소스 코드를 수정하여 수행하였다. 이를 탑재한 Google Pixel 3XL 스마트폰에서 성능을 측정한 결과, 연속적인 업 스크롤 동작에서 확장 프레임의 재사용을 통해 평균 초당 프레임 렌더링 횟수를 1fps 이하까지 낮추었고, CPU 및 GPU 부하를 기존보다 각각 최대 62% 및 100%까지 감소시켰다. 이런 개선으로 인해 전력 소모를 최대 30%까지 개선하였다. An experiment on the effectiveness of this patent was conducted by modifying the source code of the Android version of Pie. As a result of measuring performance on a Google Pixel 3XL smartphone equipped with this, the average number of frames per second rendered was lowered to less than 1fps through the reuse of extended frames in continuous up-scrolling operations, and the CPU and GPU loads were reduced by up to 62% each compared to before. and reduced by 100%. These improvements improved power consumption by up to 30%.

상기의 설명에는 사용자의 업 스크롤 시에 대해서는 선-렌더링을 수행하지만 다운 스크롤 시에 대응해서는 선-렌더링을 수행하지 않는 것으로 기재하였지만, 상기의 내용을 확장하면, 선-렌더링의 대상이 되는 프레임을 업 스크롤 시뿐만 아니라 다운 스크롤 시에도 적용할 수 있도록 하는 실시 예도 가능할 것이다. In the above explanation, it is stated that pre-rendering is performed when the user scrolls up, but pre-rendering is not performed when the user scrolls down. However, expanding on the above, the frame that is the target of pre-rendering is An embodiment that allows application not only when up-scrolling but also when down-scrolling may also be possible.

본 발명에 따른 프레임 확장을 통한 렌더링 최소화 방법(200)을 수행하는 복수의 기능 블록들은 도 1에 도시된 종래의 기능 블록(110~180)을 그대로 사용하므로 상기의 설명에는 추가하지 않았다. 다만, 상술한 바와 같이, 각 기능블록(110~180)은 본 발명에 따른 프레임 확장을 통한 렌더링 최소화 방법(200)을 수행할 때의 기능이 차이가 있고, 그 차이는 상기의 설명으로부터 쉽게 유추할 수 있으므로, 여기서는 자세하게 설명하지 않았다. Since the plurality of functional blocks that perform the rendering minimization method 200 through frame expansion according to the present invention use the conventional functional blocks 110 to 180 shown in FIG. 1, they have not been added to the above description. However, as described above, each functional block 110 to 180 has a different function when performing the rendering minimization method 200 through frame expansion according to the present invention, and the difference can be easily inferred from the above description. Because it can be done, it is not explained in detail here.

스마트폰에는 고성능 하드웨어를 탑재되고 있으나 배터리 용량의 증가는 크지 않다. 본 발명은 하드웨어의 추가 없이 안드로이드 운영체제를 최적화하기 때문에 배터리 수명을 연장할 수 있고, 사용자의 보조배터리 구매를 줄일 수 있다. 따라서, 가정·산업체의 전력 소비를 크게 줄임으로써 전력 생산과 환경에 대한 비용을 줄일 수 있다.Smartphones are equipped with high-performance hardware, but the increase in battery capacity is not significant. Since the present invention optimizes the Android operating system without adding hardware, battery life can be extended and users can reduce the purchase of auxiliary batteries. Therefore, by significantly reducing the power consumption of households and industries, costs for power production and the environment can be reduced.

본 특허는 구글 안드로이드 운영체제, 애플의 iOS 운영체제에 적용할 수 있으며, 적용 가능한 제품은 다음과 같다. This patent can be applied to Google's Android operating system and Apple's iOS operating system, and applicable products are as follows.

- 삼성전자 안드로이드 계열 스마트폰: 갤럭시 S21, 갤럭시노트, 갤럭시 Z 폴드2 - Samsung Electronics Android smartphones: Galaxy S21, Galaxy Note, Galaxy Z Fold 2

- 구글 안드로이드 계열 스마트폰: Pixel 4 및 4XL, Pixel 5 및 5XL - Google Android smartphones: Pixel 4 and 4XL, Pixel 5 and 5XL

- 애플의 아이폰 계열 스마트폰: 아이폰 12, 아이폰 13- Apple's iPhone series smartphones: iPhone 12, iPhone 13

또한, 본 기술이 일부 응용될 가능성이 있는 제품, 서비스는 스마트폰 웹 브라우저: 크롬, 오페라 Mini, 마이크로소프트 Edge가 될 것이다. 스마트폰에서 그래픽스 파이프라인과 웹 브라우저의 렌더링 파이프라인은 분리되어 구동된다. 웹 브라우저의 렌더링 파이프라인에서도 스크롤 시 지속적인 렌더링이 발생하여 전력 소모를 증가시킬 수 있다. 본 특허는 크롬, 오페라 Mini, 마이크로소프트 Edge 등의 렌더링 파이프라인에 응용될 수 있다. Additionally, products and services where this technology may be partially applied will include smartphone web browsers: Chrome, Opera Mini, and Microsoft Edge. In smartphones, the graphics pipeline and the web browser's rendering pipeline are run separately. In the rendering pipeline of a web browser, continuous rendering may occur during scrolling, which may increase power consumption. This patent can be applied to rendering pipelines such as Chrome, Opera Mini, and Microsoft Edge.

안드로이드 그래픽스 파이프라인은 안드로이드 운영체제에 포함된 중요한 모듈이다. 2021년 1/4분기에 세계 스마트폰 운영체제의 점유율은 안드로이드가 71.81% 그리고 iOS가 27.43%를 차지한다. 국내의 스마트폰 운영체제는 안드로이드가 74.03% 그리고 iOS가 25.63%를 차지한다. 결국, 국내/국외에서 안드로이드 스마트 폰의 시장규모가 매우 높음을 확인할 수 있으므로, 본 발명의 산업상 이용 가능성은 충분하다는 것을 알 수 있다.The Android graphics pipeline is an important module included in the Android operating system. In the first quarter of 2021, Android accounts for 71.81% and iOS accounts for 27.43% of the world's smartphone operating system share. In Korea, Android accounts for 74.03% of smartphone operating systems and iOS accounts for 25.63%. In the end, it can be seen that the market size of Android smart phones at home and abroad is very high, so it can be seen that the industrial applicability of the present invention is sufficient.

상술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. The present invention described above can be implemented as computer-readable code on a program-recorded medium. Computer-readable media includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is.

이상에서는 본 발명에 대한 기술사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 기술자라면 누구나 본 발명의 기술적 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방 가능함은 명백한 사실이다.In the above, the technical idea of the present invention has been described along with the accompanying drawings, but this is an exemplary description of a preferred embodiment of the present invention and does not limit the present invention. In addition, it is clear that anyone skilled in the art can make various modifications and imitations without departing from the scope of the technical idea of the present invention.

110: 화면
120: UI 스레드 및 렌더 스레드
130: GPU
140: 버퍼 큐(buffer queue)
150: 그래픽버퍼
160: 버퍼 아이템(buffer item) 또는 버퍼 아이템 메시지(buffer item messages)
170: 서피스플링거(SurfaceFlinger)
180: 그래픽버퍼의 주소를 관리하는 테이블
110: screen
120: UI thread and render thread
130: GPU
140: buffer queue
150: Graphics buffer
160: buffer item or buffer item messages
170: SurfaceFlinger
180: Table that manages the address of the graphics buffer

Claims (14)

화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임 및 상기 프레임의 재생 후 추가로 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 동시에 렌더링하고 이를 각각 대상 프레임 및 확장 프레임으로 저장하는 단계; 및
사용자가 상기 화면에 스크롤 명령을 인가하였을 때, 현재 화면에 재생 중인 상기 대상 프레임 중 일부 또는 전부를 상기 확장 프레임으로 교체하여 상기 화면에 재생하는 단계를 포함하며,
상기 화면에 재생하는 단계는,
상기 사용자가 인가한 스크롤 거리만큼 상기 확장 프레임을 배치하여 재생하고,
상기 스크롤 명령이 다운 스크롤 일 때,
상기 다운 스크롤 명령에 따라 재생되어야 할 프레임에 대해 렌더링을 수행한 후 재생하며,
상기 다운 스크롤 명령에 따라 재생되어야 할 프레임에 대해 렌더링을 수행할 때 추가 다운 스크롤 명령에 대응하는 프레임에 대해서는 선-렌더링을 수행하지 않는, 프레임 확장을 통한 렌더링 최소화 방법.
Simultaneously rendering a frame included in UI content to be played immediately on the screen and a frame included in UI content to be additionally played after playing the frame and storing them as a target frame and an extended frame, respectively; and
When a user applies a scroll command to the screen, replacing some or all of the target frames currently playing on the screen with the extended frames and playing them on the screen,
The steps to play on the screen are,
Playing the extended frame by placing it according to the scroll distance approved by the user,
When the scroll command is downscroll,
Rendering is performed on the frame to be played according to the down scroll command and then played,
A method of minimizing rendering through frame expansion, in which pre-rendering is not performed on frames corresponding to additional down-scroll commands when rendering frames to be played according to the down-scroll command.
삭제delete 제 1 항에 있어서,
상기 확장 프레임은,
상기 스크롤 명령이 업 스크롤 일 때 상기 대상 프레임을 교체하여 상기 화면에 재생될 프레임을 포함하는, 프레임 확장을 통한 렌더링 최소화 방법.
According to claim 1,
The extended frame is,
A method of minimizing rendering through frame expansion, including a frame to be played on the screen by replacing the target frame when the scroll command is an up scroll.
삭제delete 삭제delete 제 1 항 및 제 3 항 중 어느 한 항에 따른 프레임 확장을 통한 렌더링 최소화 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a computer program for executing the method of minimizing rendering through frame expansion according to any one of claims 1 and 3 on a computer is recorded. 화면에 바로 재생되어야 할 UI 콘텐츠에 포함되는 프레임 및 사용자가 화면을 스크롤 하였을 때 재생되어야 할 UI 콘텐츠에 포함되는 프레임을 함께 렌더링하고 그래픽버퍼에 각각 대상 프레임 및 확장 프레임으로 저장하는 단계;
상기 화면에 스크롤 명령을 인가하고 있는가를 판단하는 단계;
상기 사용자가 인가한 스크롤 동작이 업 스크롤 동작인가를 판단하는 단계;
상기 사용자가 인가한 업 스크롤 거리를 누적하는 단계;
상기 누적된 업 스크롤 거리가 오버플로 상태인가를 판단하는 단계;
상기 누적된 업 스크롤 거리가 오버플로 상태가 아닐 때, 상기 그래픽버퍼에 저장해 놓은 상기 확장 프레임을 상기 사용자가 인가한 상기 업 스크롤 거리만큼 이동하여 재생하는 단계;
상기 누적된 업 스크롤 거리가 오버플로라고 판단하면 누적 스크롤 거리를 0(zero)으로 리셋시키는 단계;
상기 사용자가 인가한 상기 스크롤 동작이 업 스크롤이 아닐 때 이를 다운 스크롤 동작으로 판단하고, 다운 스크롤 거리만큼 이동하였을 때 재생되어야 할 UI 콘텐츠에 포함된 상기 대상 프레임을 렌더링한 후 재생하는 단계; 및
상기 사용자가 스크롤 동작을 인가하지 않을 때 상기 대상 프레임을 재생하는 단계를 포함하는, 프레임 확장을 통한 렌더링 최소화 방법.
Rendering frames included in UI content to be played immediately on the screen and frames included in UI content to be played when the user scrolls the screen together and storing them as target frames and extended frames, respectively, in a graphics buffer;
determining whether a scroll command is being applied to the screen;
determining whether the scroll operation authorized by the user is an up-scroll operation;
accumulating an up-scroll distance approved by the user;
determining whether the accumulated up-scroll distance is in an overflow state;
When the accumulated up-scroll distance is not in an overflow state, moving and playing the extended frame stored in the graphic buffer by the up-scroll distance approved by the user;
resetting the accumulated scroll distance to 0 (zero) when it is determined that the accumulated up-scroll distance is overflow;
When the scroll operation approved by the user is not an up scroll, determining it to be a down scroll operation, rendering and playing the target frame included in the UI content to be played when the scroll operation is moved by the down scroll distance; and
A method of minimizing rendering through frame expansion, comprising the step of playing the target frame when the user does not authorize a scroll operation.
제 7 항에 있어서,
상기 확장 프레임을 상기 사용자가 인가한 상기 업 스크롤 거리만큼 이동하여 재생하는 단계, 상기 누적 스크롤 거리를 0으로 리셋시키는 단계 및 상기 대상 프레임을 렌더링한 후 재생하는 단계를 수행한 후에는 상기 대상 프레임 및 상기 확장 프레임으로 저장하는 단계를 수행하도록 하고,
상기 대상 프레임을 재생하는 단계를 수행한 후에는 상기 화면에 스크롤 명령을 인가하고 있는가를 판단하는 단계를 수행하도록 하는, 프레임 확장을 통한 렌더링 최소화 방법.
According to claim 7,
After performing the steps of moving and playing the extended frame by the up-scroll distance approved by the user, resetting the accumulated scroll distance to 0, and rendering and playing the target frame, the target frame and Perform the step of saving as the extended frame,
A method of minimizing rendering through frame expansion, wherein after performing the step of playing the target frame, a step of determining whether a scroll command is applied to the screen is performed.
제 8 항에 있어서,
상기 누적된 업 스크롤 거리가 오버플로상태일 때는,
상기 누적된 업 스크롤 거리가 상기 확장 프레임의 거리보다 길 때인, 프레임 확장을 통한 렌더링 최소화 방법.
According to claim 8,
When the accumulated up-scroll distance is in an overflow state,
A method of minimizing rendering through frame expansion, when the accumulated up-scroll distance is longer than the distance of the expanded frame.
제 7 항에 있어서,
상기 확장 프레임은,
상기 스크롤 명령이 업 스크롤 일 때 상기 대상 프레임을 교체하여 상기 화면에 재생될 프레임을 포함하는, 프레임 확장을 통한 렌더링 최소화 방법.
According to claim 7,
The extended frame is,
A method of minimizing rendering through frame expansion, including a frame to be played on the screen by replacing the target frame when the scroll command is an up scroll.
제 7 항에 있어서,
상기 대상 프레임을 렌더링한 후 재생하는 단계에서,
상기 대상 프레임에 대해 렌더링을 수행할 때 예상되는 추가 다운 스크롤 명령에 대응하는 프레임에 대해서는 선-렌더링을 수행하지 않는, 프레임 확장을 통한 렌더링 최소화 방법.
According to claim 7,
In the step of rendering and playing the target frame,
A method of minimizing rendering through frame expansion, in which pre-rendering is not performed on frames corresponding to additional down-scroll commands expected when rendering on the target frame.
제 7 항 내지 제 11 항 중 어느 한 항에 따른 프레임 확장을 통한 렌더링 최소화 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a computer program for executing the method of minimizing rendering through frame expansion according to any one of claims 7 to 11 on a computer is recorded. 삭제delete 삭제delete
KR1020220001037A 2022-01-04 2022-01-04 A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same KR102640054B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220001037A KR102640054B1 (en) 2022-01-04 2022-01-04 A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220001037A KR102640054B1 (en) 2022-01-04 2022-01-04 A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same

Publications (2)

Publication Number Publication Date
KR20230105534A KR20230105534A (en) 2023-07-11
KR102640054B1 true KR102640054B1 (en) 2024-02-27

Family

ID=87159672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220001037A KR102640054B1 (en) 2022-01-04 2022-01-04 A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same

Country Status (1)

Country Link
KR (1) KR102640054B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117648153B (en) * 2024-01-29 2024-04-26 太平金融科技服务(上海)有限公司 Rendering display method and device, electronic equipment and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130049293A (en) * 2011-11-04 2013-05-14 삼성전자주식회사 Method and apparatus for scrolling in a user device
KR101710547B1 (en) * 2012-01-10 2017-02-27 엘지전자 주식회사 Mobile termianl and method for controlling of the same
KR102499397B1 (en) 2015-10-05 2023-02-13 삼성전자 주식회사 Method and apparatus for performing graphics pipelines

Also Published As

Publication number Publication date
KR20230105534A (en) 2023-07-11

Similar Documents

Publication Publication Date Title
US9373308B2 (en) Multi-viewport display of multi-resolution hierarchical image
KR102139439B1 (en) Method and apparatus for animating an image on a mobile device
US8284211B2 (en) Displaying user interface elements having transparent effects
JP4621618B2 (en) Graphic drawing apparatus, graphic drawing method, and program
JP4612902B2 (en) File display device, control method therefor, and program
US20150243257A1 (en) Cross-Platform Rendering Engine
CN105279253A (en) System and method for increasing canvas rendering speed of webpage
EP2618245A1 (en) Image processing device, content creation device, image processing method, and data structure of content file
KR102381945B1 (en) Graphic processing apparatus and method for performing graphics pipeline thereof
US20130135347A1 (en) Image Processing Apparatus Receiving Editing Operation, Image Display Device, And Image Processing Method Thereof
CN105210111A (en) Conditional execution of rendering commands based on per bin visibility information with added inline operations
US8508551B1 (en) Rendering changed portions of composited images
KR102640054B1 (en) A minimization method for rendering by extending a frame, and computer-readable recording medium recorded with computer program executing the same
CN103336787B (en) A kind of method and apparatus for scaling webpage
CN105528217A (en) Partial refreshing method and device based on display list
JP2007011797A (en) System, method and program for controlling touch-pad device, and storage medium
US20140258921A1 (en) System and method for ergonomic placement of an object or cursor on a computer display
US9269174B2 (en) Methods and systems for generating a polygon mesh
CN110419023A (en) Control object is inserted into drag and drop
US20130009964A1 (en) Methods and apparatus to perform animation smoothing
JP6264951B2 (en) Drawing apparatus, program, and drawing method
AU2012258408A1 (en) Path tracing method
JP6536666B2 (en) Drawing control device, control program therefor, and drawing control method
KR102077146B1 (en) Method and apparatus for processing graphics
JP5944784B2 (en) Display device, display device control method, control program, and computer-readable recording medium recording the control program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant