KR102467139B1 - Data processing systems - Google Patents

Data processing systems Download PDF

Info

Publication number
KR102467139B1
KR102467139B1 KR1020160005745A KR20160005745A KR102467139B1 KR 102467139 B1 KR102467139 B1 KR 102467139B1 KR 1020160005745 A KR1020160005745 A KR 1020160005745A KR 20160005745 A KR20160005745 A KR 20160005745A KR 102467139 B1 KR102467139 B1 KR 102467139B1
Authority
KR
South Korea
Prior art keywords
output
compressed
display controller
display
regions
Prior art date
Application number
KR1020160005745A
Other languages
Korean (ko)
Other versions
KR20160091823A (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 에이알엠 리미티드
Publication of KR20160091823A publication Critical patent/KR20160091823A/en
Application granted granted Critical
Publication of KR102467139B1 publication Critical patent/KR102467139B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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
    • G06T9/00Image coding
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/20Details of the management of multiple sources of image data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

데이터 처리 시스템(1)은 손실 압축 방식을 이용해서 압축되었던 표시될 출력면의 압축된 버전을 디스플레이(12)에 제공하도록 작동되는 디스플레이 컨트롤러(7)와, 표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하도록 작동되는 한 개 이상의 처리 스테이지들(2-6)을 구비한다. 한 개 이상의 처리 스테이지들(2-6) 중의 적어도 하나는, 손실 압축 방식을 이용하는 압축된 형태로 표시될 출력면을 형성할 때 사용되는, 처리 스테이지가 제공하는, 면 또는 면들의 한 개 이상의 영역들을 출력하도록 작동된다.The data processing system 1 comprises a display controller 7 operative to provide the display 12 with a compressed version of the output surface to be displayed that has been compressed using a lossy compression scheme, and a display controller 7 used in forming the output surface to be displayed. and one or more processing stages 2-6 operative to provide a surface or surfaces. At least one of the one or more processing stages 2-6 is a surface or one or more regions of surfaces, provided by the processing stage, used in forming an output surface to be displayed in compressed form using a lossy compression scheme. works to output them.

Figure R1020160005745
Figure R1020160005745

Description

데이터 처리 시스템{DATA PROCESSING SYSTEMS}Data processing system {DATA PROCESSING SYSTEMS}

본 발명은 데이터 처리 시스템에 관한 것으로, 특히 데이터 처리 시스템에 있어서 디스플레이 위에 표시하기 위한 면을 발생할 때의 데이터의 처리에 관한 것이다.The present invention relates to a data processing system, and more particularly to the processing of data when generating a surface for display on a display in a data processing system.

데이터 처리 시스템에 있어서는, 표시되어야 하는 화상은 일반적으로 디스플레이 위에 최종적으로 표시되기 전에 다수의 처리 스테이지에 의해 처리될 것이다.In a data processing system, an image to be displayed will generally be processed by a number of processing stages before it is finally displayed on a display.

예를 들면, 그래픽 처리장치(GPU), 비디오 엔진 등과 같은 한 개 이상의 발생기는 최종 표시된 면에 기여하는 프레임들(면들)을 발생할 것이다.For example, one or more generators such as graphics processing units (GPUs), video engines, etc. will generate frames (faces) that contribute to the final displayed face.

또한, 컴포지션 엔진(composition engine)은 복수의 개개의 입력면들을 하나의 합성된 출력면으로 결합할 수도 있다.Also, the composition engine may combine a plurality of individual input surfaces into a single synthesized output surface.

표시되어야 하는 최종면(예를 들면, 합성된 프레임)은 보통 메모리 내의 프레임 버퍼 내에 저장되고, 그 프레임 버퍼로부터 디스플레이용 디스플레이 컨트롤러에 의해(예를 들면, 내부의 DMA(Direct Memory Access)에 의해) 판독된다. 디스플레이 컨트롤러는 그 후에 (예를 들면, 픽셀 파이프라인을 통해서) 프레임을 표시용 디스플레이에 보낸다(디스플레이는 예를 들면 스크린 또는 프린터일 수도 있다).The final face to be displayed (e.g. the composited frame) is usually stored in a frame buffer in memory, and from that frame buffer the display controller for the display (e.g. by internal DMA (Direct Memory Access)). is read The display controller then passes the frame (eg, through the pixel pipeline) to a display for display (the display may be a screen or a printer, for example).

디스플레이 컨트롤러로부터의 픽셀 데이터를 디스플레이에 보내는 대역폭 비용은 중요할 수 있다. 데이터 처리 시스템에 필요한 대역폭과 필요한 전력을 감소시키는 하나의 방법은 디스플레이 컨트롤러로부터 디스플레이로 전송되는 픽셀 데이터를 압축하는 것이다. 예를 들면, 디스플레이 컨트롤러는 (수학적으로는 손실이 있지만, "시각적으로는 손실이 없는"(즉, 유저에게는 눈에 띄지 않는) 압축 방식이 되도록 설계된) DSC(Display Stream Compression)를 이용해서 디스플레이 컨트롤러로부터 디스플레이에 전해진 픽셀 데이터를 압축할 수도 있다.The bandwidth cost of sending pixel data from the display controller to the display can be significant. One way to reduce the bandwidth and power required in the data processing system is to compress the pixel data sent from the display controller to the display. For example, the display controller uses Display Stream Compression (DSC) (designed to be a compression scheme that is mathematically lossy, but "visually lossless" (i.e., invisible to the user)). It is also possible to compress the pixel data passed to the display from

이러한 압축 기술은 시스템의 전력 및 대역폭 요건들을 감소시키는 데에 성공적이지만, 본 출원인은 그러한 데이터 처리 시스템에 대한 개선의 여지가 남아 있다고 믿는다. Although this compression technique has been successful in reducing the power and bandwidth requirements of the system, Applicant believes that room for improvement remains for such data processing systems.

본 발명의 제1 국면에 의하면, 데이터 처리 시스템으로서,According to a first aspect of the present invention, as a data processing system,

손실 압축 방식을 이용해서 압축되었던 표시될 출력면의 압축된 버전을 디스플레이에 제공하도록 작동되는 디스플레이 컨트롤러와,a display controller operative to provide a compressed version of an output surface to be displayed to a display that has been compressed using a lossy compression scheme;

표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하도록 작동되는 한 개 이상의 처리 스테이지들을 구비하는, 데이터 처리 시스템이 제공되고,A data processing system is provided, having one or more processing stages operative to provide a surface or surfaces to be used in forming an output surface to be displayed;

상기 한 개 이상의 처리 스테이지들 중의 적어도 하나는, 손실 압축 방식을 이용해는 압축된 형태로 표시될 출력면을 형성할 때 사용되는, 처리 스테이지가 제공하는, 면 또는 면들의 한 개 이상의 영역들을 출력하도록 작동되고,
상기 디스플레이 컨트롤러는 압축 스테이지와 압축 해제 스테이지를 포함하고,
상기 데이터 처리 시스템은 손실 압축 방식을 이용하여 압축된 형태로 상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 한 개 이상의 영역들이 상기 디스플레이 컨트롤러 압축 스테이지와 압축 해제 스테이지를 바이패스할 수 있도록 구성된다.
At least one of the one or more processing stages is configured to output a surface or one or more regions of surfaces, provided by the processing stage, used in forming an output surface to be displayed in compressed form using a lossy compression scheme. works,
the display controller includes a compression stage and a decompression stage;
The data processing system is configured such that one or more regions output by at least one of the one or more processing stages in a compressed form using a lossy compression method bypass the display controller compression stage and decompression stage. do.

본 발명의 제2 국면에 의하면, 메모리로부터 면 또는 면들을 판독하고, 손실 압축 방식을 이용해서 압축되었던 표시될 출력면의 압축된 버전을 디스플레이에 제공하도록 작동되는 디스플레이 컨트롤러와, 표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하도록 작동되는 한 개 이상의 처리 스테이지들을 구비하는 데이터 처리 시스템을 작동시키는 작동방법으로서, 상기 작동방법은According to a second aspect of the invention, a display controller operative to read a face or faces from a memory and provide a compressed version of an output face to be displayed to a display that has been compressed using a lossy compression scheme, and an output face to be displayed are provided. CLAIMS 1. A method of operation of a data processing system having one or more processing stages operative to provide a surface or surfaces to be used in forming, the method comprising:

표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하는 상기 한 개 이상의 처리 스테이지들 중의 한 개 이상과,one or more of said one or more processing stages providing a surface or surfaces used in forming an output surface to be displayed;

메모리로부터 처리 스테이지에 의해 제공된 면들 중의 적어도 하나의 면을 판독하고, 이 면을 이용해서 표시될 출력면을 형성하며, 손실 압축 방식을 이용하는 압축된 형태로 표시하기 위한 디스플레이에 출력면을 제공하는, 상기 디스플레이 컨트롤러를 구비하고,reading at least one of the faces presented by the processing stage from memory, using this face to form an output face to be displayed, and providing the output face to a display for display in compressed form using a lossy compression scheme; having the display controller;

상기 한 개 이상의 처리 스테이지들 중의 적어도 하나는, 손실 압축 방식을 이용하는 압축된 형태로 표시될 출력면을 형성할 때 사용되는, 처리 스테이지가 제공하는, 면 또는 면들의 한 개 이상의 영역들을 출력하고,
상기 디스플레이 컨트롤러는 압축 스테이지와 압축 해제 스테이지를 포함하고,
상기 작동방법은 상기 디스플레이 컨트롤러 압축 스테이지와 압축 해제 스테이지를 바이패스하는 손실 압축 방식을 이용하여 압축된 형태로 상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 한 개 이상의 영역들을 구비한다.
at least one of the one or more processing stages outputs a surface or one or more regions of surfaces, provided by the processing stage, used in forming an output surface to be displayed in compressed form using a lossy compression scheme;
the display controller includes a compression stage and a decompression stage;
The method of operation includes one or more regions output by at least one of the one or more processing stages in compressed form using a lossy compression scheme that bypasses the display controller compression stage and decompression stage.

본 발명은 디스플레이 컨트롤러가 손실 압축 방식을 이용해서 압축되었던 출력면을 디스플레이에 제공하도록 작동되는 데이터 처리 시스템에 관한 것이다. 이 데이터 처리 시스템은 표시된 면을 형성할 때 사용되는 면들을 제공하는 디스플레이 컨트롤러의 한 개 이상의 처리 스테이지들 업스트림도 포함하지만, 공지된 구성과는 대조적으로, 업스트림 처리 스테이지들 중의 적어도 하나는 손실 압축 방식을 이용하는, 압축된 형태로 업스트림 처리 스테이지가 제공하는 면을 출력하도록 작동된다. The present invention relates to a data processing system in which a display controller is operative to provide an output face to a display that has been compressed using a lossy compression scheme. This data processing system also includes one or more processing stages upstream of the display controller that provide the surfaces used in forming the displayed surface, but in contrast to known arrangements, at least one of the upstream processing stages is lossy compressed. It is operated to output the surface provided by the upstream processing stage in compressed form, using .

이와 같이, 본 발명에 있어서는, 표시되어야 하는 출력면을 발생하는 데에 사용되는 적어도 한 개의 면이 디스플레이 컨트롤러의 손실 압축 방식 업스트림을 이용해서 압축된다. 이것은 시스템의 전체 메모리 대역폭 및 전력 요건들을 감소시킬 수 있다는 것을 의미한다.Thus, in the present invention, at least one surface used to generate the output surface to be displayed is compressed using a lossy compression scheme upstream of the display controller. This means that the overall memory bandwidth and power requirements of the system can be reduced.

또한, 본 출원인은 이것이 표시되는 화상의 품질에 악영항을 미치지 않고 행해질 수 있다는 것을 인식했다. 이것은 디스플레이 컨트롤러로부터 디스플레이에 제공되는 출력면을 압축하는 데에 사용되는 손실 압축이 화질의 일부를 효과적으로 폐기하므로, 많은 경우에 있어서, 화질의 일부는 대신에 처리 시에 초기(업스트림) 단계에서 효율적으로 폐기되는 경우에는 문제가 되지 않기 때문이다.Additionally, the applicant has recognized that this can be done without adversely affecting the quality of the displayed image. This is because the lossy compression used to compress the output surface presented to the display from the display controller effectively discards some of the image quality, so in many cases, some of the image quality is instead efficiently stored at an early (upstream) stage in processing. It is not a problem if it is discarded.

따라서, 본 발명은, 적어도 부분적으로는, 디스플레이 컨트롤러로부터 디스플레이에 제공되는 출력면이 손실 압축 방식(DSC 등)을 이용해서 압축되는 구성에 있어서, 처리 시에 초기(업스트림) 단계에서 표시용 출력면을 생성하는 데에 사용된 데이터를 손실 압축함으로써, 표시되는 화상의 품질에 악영향을 미치지 않고, 전력 및 대역폭을 절약하는 것을 실현하는 것이다. Accordingly, the present invention relates, at least in part, to an arrangement in which an output surface provided to a display from a display controller is compressed using a lossy compression method (such as DSC), wherein an output surface for display is displayed at an initial (upstream) stage in processing. It is to realize saving power and bandwidth without adversely affecting the quality of a displayed image by lossy compressing the data used to generate .

본 발명의 데이터 처리 시스템에 있어서는, 한 개 이상의 처리 스테이지들은 표시될 출력면을 형성하는 데에 사용되는 면들을 제공하고, 디스플레이 컨트롤러는 출력면을 (손실 압축된 형태로) 표시용 디스플레이에 제공한다.In the data processing system of the present invention, one or more processing stages provide surfaces used to form an output surface to be displayed, and a display controller provides the output surface (in lossy compressed form) to a display for display. .

처리 스테이지들에 의해 제공된 면 또는 면들은 어떤 적절한 원하는 면(들)(예를 들면 프레임들)일 수도 있다. 바람직하게는, 그들은 표시되어야 하는 윈도우들, 바람직하게는 표시하기 위한 화상들, 예를 들면 프레임들이다. 이 면들은 예를 들면, 게임, 데모, 그래픽 유저 인터페이스(GUI), 비디오 데이터를 가진 GUI(예를 들면, 그래픽 "재생" 및 "일시정지" 아이콘을 가진 비디오 프레임)용일 수도 있다.The face or faces provided by the processing stages may be any suitable desired face(s) (eg frames). Preferably, they are windows to be displayed, preferably pictures for display, eg frames. These faces may be, for example, for games, demos, graphical user interfaces (GUIs), GUIs with video data (eg, video frames with graphical "play" and "pause" icons).

표시되어야 하는 출력면은 그에 대응하여 표시하기 위한 어떤 적절한 원하는 그러한 면(예를 들면, 프레임)을 구비할 수 있다. 다시, 이것은 표시되어야 하는, 윈도우, 바람직하게는 화상, 예를 들면 프레임인 것이 바람직하다.The output surface to be displayed may correspondingly have any suitable desired such surface (eg frame) for display. Again, this is preferably a window, preferably a picture, eg a frame, to be displayed.

표시되어야 하는 출력면을 형성하는 데에 사용되는 면 또는 면들을 제공하도록 작동되는 한 개 이상의 처리 스테이지들은, 데이터 처리 시스템에 있어서 표시용 면들을 제공하도록 작동되는 어떤 적절한 처리 스테이지(들)를 구비할 수도 있다. 그들은 표시되는 출력면을 발생하여 제공하는 전체 처리 플로우에 있어서 디스플레이 컨트롤러의 "업스트림"일 것이고, 바람직하게는 업스트림이다. 단지 디스플레이 컨트롤러의 단 한 개의 처리 스테이지 업스트림이 있을 수도 있지만, 바람직하게는 처리 스테이지가 복수개 있다.The one or more processing stages operative to provide the surface or surfaces used to form the output surface to be displayed may include any suitable processing stage(s) in a data processing system operable to provide display surfaces. may be They will be, and preferably are, "upstream" of the display controller in the overall processing flow of generating and presenting the displayed output surface. There may be only one processing stage upstream of the display controller, but preferably there are multiple processing stages.

처리 스테이지들은 표시용 면을 발생하도록 작동되는 적어도 한 개의 처리 스테이지를 포함할 수도 있다. 이와 같이, 하나의 바람직한 실시예에 있어서는, 한 개 이상의 처리 스테이지들 중의 적어도 하나는 한 개 이상의 면들을 발생하도록 작동되는 프레임 발생기를 구비한다. "프레임 발생기" 처리 스테이지(들)는 예를 들면 그래픽 처리장치(GPU), 비디오 코덱 또는 비디오 엔진, 디지털 카메라 화상 신호 프로세서(ISP), 이미지 프로세서, 및/또는 중앙처리장치(CPU) 등을 구비할 수도 있다. 원한다면, 한 개의 프레임 발생기보다 많이 있을 수도 있다.The processing stages may include at least one processing stage operative to generate a display surface. Thus, in one preferred embodiment, at least one of the one or more processing stages includes a frame generator operative to generate one or more planes. The “frame generator” processing stage(s) may include, for example, a graphics processing unit (GPU), a video codec or video engine, a digital camera image signal processor (ISP), an image processor, and/or a central processing unit (CPU), etc. You may. If desired, there may be more than one frame generator.

프레임 발생기는 적절한 방식으로, 예를 들면 그래픽 프로세서의 경우에 면을 렌더링함으로써, 적절하게는 디지털 카메라 화상 신호 프로세서(ISP) 등의 경우에 캡처된 화상으로부터 비디오 코덱 또는 비디오 엔진의 경우에 입력 인코드된 비디오 데이터를 디코딩함으로써, 그것의 면을 발생해야 한다.The frame generator may suitably encode the input in the case of a video codec or video engine from a captured picture in the case of a digital camera image signal processor (ISP) or the like, in a suitable manner, for example by rendering a facet in the case of a graphics processor. decoded video data, it must generate its face.

한 개 이상의 처리 스테이지들은 또한 혹은 대신에(바람직하게는 또한) 예를 들면 면 또는 면들의 변형된 버전을 생성하기 위해서, 이전에 발생된 면 또는 면들을 처리하도록 작동되는 스테이지 또는 스테이지들을 포함할 수도 있다.The one or more processing stages may also or instead (preferably also) include a stage or stages operable to process a previously generated face or faces, for example to create a modified version of the face or facets. have.

이것은 예를 들면 컴포지션 엔진이 복수의 면들을 합성해서 합성된 면을 제공하는 경우일 것이다.This would be the case, for example, when the composition engine composites multiple faces to provide a composite face.

이와 같이, 바람직한 실시예에 있어서는, 한 개 이상의 처리 스테이지들 중의 적어도 하나가 (2개 이상의) 면들을 합성하여 하나의 합성된 면을 발생하도록 작동되는 컴포지션 스테이지를 구비한다. 이 경우에, 컴포지션 스테이지에 의해 합성되는 면들은 적어도 한 개의 프레임 발생기에 의해 발생된 (2개 이상의) 면들을 구비하는 것이 바람직하다. 따라서, 컴포지션 스테이지는 메모리로부터 (2개 이상의) 면들을 판독하도록 작동되는 것이 바람직하다.Thus, in a preferred embodiment, at least one of the one or more processing stages includes a composition stage operable to synthesize (two or more) faces to generate a composite face. In this case, it is preferable that the faces synthesized by the composition stage have (two or more) faces generated by at least one frame generator. Accordingly, the composition stage is preferably operated to read (two or more) faces from memory.

컴포지션 스테이지는 어떤 적절한 방식으로 원하는 대로 면들을 합성해서 하나의 합성된 면을 발생하도록 구성될 수도 있다. 일 실시예에 있어서는, 컴포지션 스테이지는 면들을 혼합하거나 그렇지 않으면 결합하여 하나의 합성된 면을 발생하도록 구성된다. 컴포지션 스테이지는 합성된 출력면을 메모리에 저장하도록 작동되는 것이 바람직하다. 바람직한 실시예에 있어서는, 합성된 면은 표시되는 출력면으로서 사용되어야 한다.The composition stage may be configured to composite faces as desired in any suitable manner to generate a single composite face. In one embodiment, the composition stage is configured to blend or otherwise combine faces to generate a single composite face. The composition stage is preferably operable to store the synthesized output surface in memory. In a preferred embodiment, the composited face should be used as the displayed output face.

한 개 이상의 처리 스테이지들은 또한 혹은 대신에(바람직하게는 또한) 입력면을 압축해서 압축된 표시 또는 버전의 입력면을 제공하도록 작동되는 압축 스테이지를 구비할 수도 있다. 이와 같이, 일 실시예에 있어서는, 한 개 이상의 처리 스테이지들 중의 적어도 하나는, 하나의 면(의 한 개 이상의 영역들)을 압축하도록 작동되는 압축 스테이지를 구비한다. 압축 스테이지(들)는 시스템의 다른 처리 스테이지들에 의해 생성된 한 개 이상 또는 모든 면들의 한 개 이상 또는 모든 영역들을 압축하도록 작동될 수도 있다.The one or more processing stages may also or alternatively (preferably also) include a compression stage operative to compress the input surface to provide a compressed display or version of the input surface. Thus, in one embodiment, at least one of the one or more processing stages comprises a compression stage operable to compress (one or more areas of) a surface. The compression stage(s) may be operable to compress one or more or all regions of one or more or all faces produced by other processing stages of the system.

다시, 압축 스테이지는 압축된 면 또는 면들을 메모리에 저장하도록 작동되는 것이 바람직하다.Again, the compression stage is preferably operative to store the compressed face or faces in memory.

한 개 이상의 처리 스테이지들은 또한 혹은 대신에(바람직하게는 또한) 한 개 이상의 영역들 또는 면들을 (선택적으로) 변형하도록 작동될 수도 있다. 예를 들면, 한 개 이상의 처리 스테이지들은 콘트라스트 및/또는 밝기를 변경하고, 감마 보정을 행하며, 및/또는 톤 맵핑(tone mapping)을 행하는 등, 한 개 이상의 영역들 또는 면들에 대해서 화상 개선 변경(image enhancement modifications)을 (선택적으로) 행하고; 한 개 이상의 영역들 또는 면들을 (선택적으로) 회전 및/또는 스케일(scale)하며; 및/또는 화상 개선 방식을 (선택적으로) 수행하도록 작동됨으로써, 예를 들면, LAO(Level Adaptive Overdrive), FFD(Feed Forward Drive), DCC(Dynamic Contrast Compensation) 등과 같은, 디스플레이 대응성을 향상시킬 수도 있다. 한 개 이상의 처리 스테이지들은 물론 다른 타입의 처리 및/또는 변경들을 행하도록 작동될 수도 있다.One or more processing stages may also or instead (preferably also) be operated to (optionally) deform one or more regions or surfaces. For example, one or more stages of processing may change image enhancement to one or more regions or planes, such as changing contrast and/or brightness, performing gamma correction, and/or performing tone mapping. (optionally) perform image enhancement modifications; (optionally) rotate and/or scale one or more regions or faces; and/or (optionally) perform a picture enhancement scheme, such as, for example, Level Adaptive Overdrive (LAO), Feed Forward Drive (FFD), Dynamic Contrast Compensation (DCC), etc., to improve display responsiveness. have. One or more processing stages may, of course, be operated to perform other types of processing and/or changes.

바람직한 실시예에 있어서는, 예를 들면, 바람직하게는 표시되는 출력면을 형성하는 데에 사용되는 프레임들을 발생하는 처리 스테이지들을 발생하는 한 개 이상의 프레임을 구비하는 (표시되어야 하는 출력면을 발생하는 처리 플로우의 순으로) 일련의 처리 스테이지들이 있고, 뒤이어, 프레임 발생기에 의해 생성된 면들을 취하고 이들 면 중의 한 개 이상을 처리해서 (예를 들면, 그들을 합성하여 하나의 합성된 면을 형성해서) 예를 들면, 표시되는 출력면을 형성 및/또는 그 출력면에 기여해야 하는 추가 면 또는 면들을 형성하는, 컴포지션 스테이지와 같은, 예를 들면 한 개 이상의 처리 스테이지들이 있다. 그 후에 디스플레이 컨트롤러는 처리 스테이지들에 의해 생성된 면들 중의 한 개 이상 또는 모두를 취해서 처리 스테이지가 디스플레이에 전하는 출력면을 형성할 수도 있다. A preferred embodiment comprises one or more frames, for example generating processing stages which generate the frames that are preferably used to form the output surface to be displayed (processing that generates the output surface to be displayed). There is a series of processing stages (in order of flow), followed by taking the faces created by the frame generator and processing one or more of these faces (e.g., compositing them to form a composite face), e.g. For example, there is one or more processing stages, such as a composition stage, which form the output surface to be displayed and/or form the additional surface or surfaces that should contribute to the output surface. The display controller may then take one or more or all of the surfaces created by the processing stages to form an output surface that the processing stages pass to the display.

따라서, 표시될 출력면을 형성할 때 사용되는 처리 스테이지에 의해 생성된 면은 표시될 출력면으로서 또는 출력면의 일부로서 직접 사용될 수도 있고, 및/또는 표시될 출력면을 형성할 때 사용되는 처리 스테이지에 의해 생성된 면 또는 면들은, 표시될 출력면으로서 또는 그 출력면에서 직접 사용되지 않을 수도 있지만, 대신 맨 처음에 또 다른 처리 스테이지에 의해 처리될 수 있고, 그 처리 스테이지의 출력은 표시될 출력면으로서 또는 출력면의 일부로서 사용된다(혹은 추가 처리 등 된다). 후자의 경우, 출력면을 형성할 때 사용되어야 하는 처리 스테이지에 의해 생성된 면은 사실상 표시되는 최종 출력면을 형성하기 위해서 및/또는 그 최종 출력면에 기여하기 위해서 사용되는 면 또는 면들을 발생하는 전체 처리 플로우에서 중간 면일 것이다.Accordingly, a surface created by a processing stage used in forming an output surface to be displayed may be used directly as, or as part of, an output surface to be displayed, and/or a process used in forming an output surface to be displayed. The face or faces produced by a stage may not be used as or directly on an output face to be displayed, but instead may be initially processed by another processing stage, the output of which is displayed. It is used as an output surface or as part of an output surface (or is further processed, etc.). In the latter case, the facets created by the processing stage that must be used when forming the output facet are in fact generating the facet or facets used to form and/or contribute to the final output facet displayed. It will be the middle plane in the whole processing flow.

상기 설명한 것처럼, 처리 스테이지들은 그들의 각 출력면들을 메모리에 저장하도록(그에 대응하여 그들이 메모리로부터(적절한 경우에) 처리해야 하는 면들을 판독하도록) 작동되는 것이 바람직하다. 이 메모리는 어떤 적절한 메모리를 구비할 수도 있고 어떤 적절한 원하는 방식으로든 구성될 수도 있다. 예를 들면, 그것은 문제의 처리 스테이지를 가진 및/또는 이 처리 스테이지에 국부적인 온 칩(on chip)인 메모리일 수도 있고, 또는 그것은 외부 메모리일 수도 있다. 바람직한 실시예에 있어서는, 그것은 데이터 처리 시스템의 메인 메모리와 같은, 외부 메모리이다. 그것은 또한 이 목적을 위한 전용 메모리일 수도 있고, 또는 그것은 다른 데이터에도 사용되는 메모리의 일부일 수도 있다. 바람직한 실시예에 있어서, 한 개 이상의 면들은 한 개 또는 각각의 프레임 버퍼에 저장된다(로부터 판독된다). 예를 들면, 각각의 처리 스테이지 프레임 버퍼는 데이터 처리 시스템의 메인 메모리에 설치되어도 된다.As described above, the processing stages are preferably operated to store their respective output faces to memory (and correspondingly to read the faces they are to process from memory (where appropriate)). This memory may comprise any suitable memory and may be configured in any suitable and desired manner. For example, it may be a memory that is on chip with and/or local to the processing stage in question, or it may be an external memory. In a preferred embodiment, it is an external memory, such as the main memory of the data processing system. It may also be dedicated memory for this purpose, or it may be part of memory used for other data as well. In a preferred embodiment, one or more faces are stored in (read from) one or each frame buffer. For example, each processing stage frame buffer may be located in the main memory of the data processing system.

디스플레이 컨트롤러는 손실 압축 방식을 이용해서 압축되었던 출력면을 디스플레이에 제공하도록 작동되는 어떤 적절한 디스플레이 컨트롤러를 구비할 수도 있다.The display controller may comprise any suitable display controller operable to present to the display an output surface that has been compressed using a lossy compression scheme.

이와 같이, 디스플레이 컨트롤러는 바람직하게는 면 또는 면들이 저장되는 메모리로부터, 표시될 면 또는 면들의 한 개 이상의 영역들을 판독하고, 이들 입력 면 또는 면들로부터 형성된 손실 압축된 출력면을 표시용 디스플레이에 제공하도록 작동될 것이고, 바람직하게 작동될 수 있다.As such, the display controller preferably reads the face or one or more regions of faces to be displayed, from a memory in which the face or faces are stored, and provides a lossy compressed output face formed from the input face or faces to the display for display. It will operate to do, and can be operated preferably.

디스플레이 컨트롤러는 손실 압축된 출력면의 모두 또는 일부를 디스플레이에 제공하는 단 한 개의 입력면을 간단히 판독하도록 작동될 수 있고, 또는 그 대신에, 디스플레이 컨트롤러는 (원한다면) 복수의 입력면을 판독 및 결합함으로써 손실 압축된 출력면을 디스플레이에 제공하도록 작동될 수 있다. 상기 설명한 바와 같이, 디스플레이 컨트롤러가 출력면을 디스플레이에 제공하기 위해 판독 및 사용하는 (입력)면들은 데이터 처리 시스템의 (업스트림) 처리 스테이지들 중의 한 개 이상에 의해 제공될 것이다. 이와 같이 디스플레이 컨트롤러에의 입력면은 프레임 발생기 또는 발생기들에 의해 발생된 한 개 이상의 면들의 한 개 이상의 영역들, 및/또는 컴포지션 스테이지 또는 스테이지들로 구성된 하나의 합성된 출력면의 한 개 이상의 영역들, 및/또는 압축 스테이지 또는 스테이지들에 의해 출력된 한 면의 한 개 이상의 영역들 등을 구비할 수도 있다.The display controller could be operated to simply read a single input plane providing all or some of the lossy compressed output planes to the display, or alternatively, the display controller could (if desired) read and combine multiple input planes. By doing so, it can be operated to provide a lossy compressed output surface to a display. As explained above, the (input) faces that the display controller reads and uses to provide the output face to the display will be provided by one or more of the (upstream) processing stages of the data processing system. Thus, the input surface to the display controller is one or more areas of one or more surfaces generated by the frame generator or generators, and/or one or more areas of a composite output surface consisting of a composition stage or stages. fields, and/or one or more regions of one side output by the compression stage or stages, and the like.

따라서, 디스플레이 컨트롤러는 입력 면 또는 면들의 한 개 이상의 영역들을 판독하도록 작동되는 입력 스테이지를 구비하는 것이 바람직하다. 바람직한 실시예에 있어서는, 입력 스테이지는 예를 들면 DMA(Direct Memory Access) 판독 컨트롤러와 같은, 판독 컨트롤러를 구비한다.Accordingly, the display controller preferably includes an input stage operable to read the input surface or one or more regions of the surfaces. In a preferred embodiment, the input stage includes a read controller, for example a DMA (Direct Memory Access) read controller.

디스플레이 컨트롤러는 손실 압축된 출력면을 디스플레이에 제공하도록 작동된다. 이와 같이, 디스플레이 컨트롤러는 손실 압축된 출력면을 디스플레이에 제공하도록 작동되는 출력 스테이지를 구비하는 것이 바람직하다. 이 출력 스테이지는, 예를 들면 표시용 출력면을 디스플레이 위에 표시시키기 위해서(디스플레이 인터페이스로서 작동하도록), 표시용 출력면을 디스플레이에 제공하도록 작동되는 어떤 적절한 그러한 출력면일 수도 있다. 출력 스테이지는 디스플레이에 대한 (예를 들면 그것은 적절한 수평 및 수직 블랭킹 기간(blanking periods)으로 픽셀 데이터를 디스플레이에 보내도록 구성된다) 적절한 타이밍 제어 기능을 포함하는 것이 바람직하다. A display controller is operative to provide a lossy compressed output surface to a display. As such, the display controller preferably includes an output stage operable to provide a lossy compressed output surface to the display. This output stage may be any suitable such output surface operative to provide a display output surface to a display, for example to cause the display output surface to be displayed on the display (to act as a display interface). The output stage preferably includes appropriate timing control functions for the display (eg it is configured to send pixel data to the display with appropriate horizontal and vertical blanking periods).

손실 압축된 출력면을 디스플레이에 제공하는 것을 가능하게 하기 위해서, 디스플레이 컨트롤러는 손실 압축 방식을 이용해서 한 개 이상의 면들의 한 개 이상의 영역들을 압축하도록 작동될 수 있고 작동되는 것이 바람직하다. 이 디스플레이 컨트롤러는 이 목적을 위해서 한 개 이상의 면들의 한 개 이상의 영역들을 압축하도록 작동되는 압축 스테이지를 구비하는 것이 바람직하다.To enable providing a lossy compressed output surface to a display, the display controller can and is preferably operable to compress one or more regions of one or more surfaces using a lossy compression scheme. The display controller preferably includes a compression stage operable to compress one or more areas of one or more faces for this purpose.

디스플레이 컨트롤러가 입력 면 또는 면들을 압축해서 압축된 출력면을 제공하기 위해서 사용할 수 있는 손실 압축 방식은 어떤 적절한 원하는 손실 압축 방식이든 구비할 수도 있다.The lossy compression scheme that the display controller may use to compress the input surface or surfaces to provide a compressed output surface may include any suitable desired lossy compression scheme.

디스플레이 컨트롤러는 실질적으로 시각적 무손실 압축 방식과, 바람직하게는 DPCM(Delta Pulse Code Modulation) 및/또는 ICH(Indexed Colour History)를 이용하는 것이 바람직하다. 디스플레이 컨트롤러 손실 압축 방식은 압축될 면의 래스터 라인들(raster lines)에서 작동하는 것이 바람직하고, 즉 픽셀들(샘플링 위치들)의 각 래스터 라인(행)이 함께 압축된다. 가장 바람직하게는, 디스플레이 컨트롤러는 DSC(Display Stream Compression)를 이용 및 지지한다.The display controller preferably uses a substantially visually lossless compression scheme, preferably Delta Pulse Code Modulation (DPCM) and/or Indexed Color History (ICH). The display controller lossy compression scheme preferably operates on the raster lines of the plane to be compressed, ie each raster line (row) of pixels (sampling positions) is compressed together. Most preferably, the display controller uses and supports Display Stream Compression (DSC).

디스플레이 컨트롤러는 (면 또는 면 영역을 디스플레이에 제공하기 전에) 적절한 손실 압축 방식을 이용해서 손실 압축된 출력면으로서 디스플레이에 제공되어야 하는 어떤 압축되지 않은 입력면들 또는 입력면 영역들을 압축하도록 작동되어야 하고, 바람직하게는 작동된다. The display controller shall be operable to compress any uncompressed input surfaces or input surface regions to be presented to the display as lossy compressed output surfaces using an appropriate lossy compression scheme (prior to presenting the surface or surface area to the display) and , preferably works.

상기 설명한 것처럼, 디스플레이에 제공하기 위한 압축되지 않은 (입력)면들(및/또는 (입력)면 영역들)을 잠재적으로 수신하는 것뿐만 아니라, 출력면을 형성하거나 이 출력면에 기여해야 하는 면들(및/또는 이 면들의 영역들)의 한 개 이상은 (손실 압축된 형태이든 또는 다른 경우이든 ) 압축된 형태로 제공될 수도 있다. 즉, 디스플레이 컨트롤러 입력 면 또는 면들은, 압축될 수도 있고, 또는 압축되지 않을 수도 있으며, 및/또는 압축되어 있는 한 개 이상의 영역들 및/또는 압축되지 않은 한 개 이상의 영역들을 구비할 수도 있다.As described above, as well as potentially receiving uncompressed (input) surfaces (and/or (input) surface regions) for presentation to a display, the surfaces that should form or contribute to an output surface ( and/or regions of these faces) may be provided in compressed form (whether in lossy compressed form or otherwise). That is, the display controller input surface or surfaces may be compressed or uncompressed and/or may have one or more regions that are compressed and/or one or more regions that are not compressed.

(입력) 면 또는 면 영역이 이미 압축되어 있는 경우에는, 디스플레이 컨트롤러는 이들 압축된 면들(또는 면 영역들)을, 디스플레이에 전해져야 하는 손실 압축된 형태로 변환할 필요가 있거나 변환할 필요가 없을 수도 있다.If the (input) planes or plane regions are already compressed, the display controller may or may not need to convert these compressed planes (or plane regions) to a lossy compressed form that must be passed on to the display. may be

예를 들면, 입력면이 이미 디스플레이에 필요한 이미 손실 압축된 형태인 경우에는, 디스플레이 컨트롤러는 추가 압축 없이 이미 압축된 입력면(또는 입력면 영역 또는 영역들)을 디스플레이에 패스할 수 있고, 바람직하게는 간단히 패스한다.For example, if the input surface is already in the lossy compressed form needed for the display, the display controller can pass the already compressed input surface (or input surface region or regions) to the display without further compression, and preferably simply passes.

한편, 입력 면 또는 면들에 대해서 사용된 압축 방식이 디스플레이에 제공되는 출력면에 대하여 사용되는 손실 압축 방식과 매치(match)하지 않는 경우에는, 디스플레이 컨트롤러는 압축된 입력면을 디스플레이에 제공하기 위한 적절히 손실 압축된 포맷으로 변환할 필요가 있고, 바람직하게는 변환한다. 이것은 압축된 입력 면 또는 면들(영역 또는 영역들)을 압축 해제한 후에, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축 해제된 면 또는 면들(영역 또는 영역들)을 재압축하는 것을 수반할 수도 있고, 바람직하게는 수반한다.On the other hand, if the compression scheme used for the input plane or planes does not match the lossy compression scheme used for the output plane presented to the display, the display controller will properly provide the compressed input plane to the display. It needs to, and preferably does, convert to a lossy compressed format. This may entail decompressing the compressed input face or faces (region or regions), then recompressing the decompressed face or faces (region or regions) using a display controller lossy compression scheme, preferably It entails

이와 같이, 바람직한 실시예에 있어서는, 디스플레이 컨트롤러는 디스플레이 컨트롤러 손실 압축 방식 이외(예를 들면, DSC 이외)의 압축 방식을 이용해서 압축되는 면의 압축된 영역들을 압축 해제하여, 예를 들면, 이 면의 한 개 이상의 디코드된 및/또는 압축 해제된 영역들을 발생하도록 작동될 수 있고 작동된다. 이 디스플레이 컨트롤러는 이 목적을 위한 한 면의 한 개 이상의 영역들을 디코드 및/또는 압축 해제하도록 작동되는 압축 해제 스테이지를 구비하는 것이 바람직하다. 디스플레이 컨트롤러 압축 해제 스테이지는, 예를 들면, 한 면의 한 개 이상의 DSC 압축된 영역들을 압축 해제하기 위한 DSC 디코더 및/또는 한 입력면의 한 개 이상의 AFBC 압축된 영역들을 압축 해제하기 위한 ARM 프레임 버퍼 압축(AFBC) 디코더(AFBC는 US-A1-2013/0034309에 기재되어 있다)를 구비할 수도 있다.As such, in a preferred embodiment, the display controller decompresses the compressed regions of the face to be compressed using a compression method other than the display controller lossy compression method (eg, other than DSC), such that, for example, this face It may be and is operative to generate one or more decoded and/or decompressed regions of The display controller preferably includes a decompression stage operable to decode and/or decompress one or more regions of a face for this purpose. The display controller decompression stage may include, for example, a DSC decoder for decompressing one or more DSC compressed regions of a side and/or an ARM frame buffer for decompressing one or more AFBC compressed regions of a side. It may also have a compression (AFBC) decoder (AFBC is described in US-A1-2013/0034309).

이 디스플레이 컨트롤러(압축 스테이지)는 (디스플레이 컨트롤러 손실 압축 방식을 이용해서) 압축 해제된 영역(들)을 압축하여, 예를 들면 출력면의 한 개 이상의 영역들을 발생하도록 작동되는 것이 바람직하다.This display controller (compression stage) is preferably operative to compress the decompressed region(s) (using a display controller lossy compression scheme) to generate one or more regions, eg of an output surface.

이와 같이 디스플레이 컨트롤러(그것의 압축 스테이지)는 (예를 들면, 디스플레이 컨트롤러 압축 해제 스테이지에 의해) 한 (입력)면의 압축되지 않은 영역들 및/또는 압축되지 않았던 한 (입력)면의 영역들을 (선택적으로) 압축하도록 작동되는 것이 바람직하다.Thus, the display controller (its compression stage) can (e.g., by means of the display controller decompression stage) uncompressed regions of one (input) side and/or regions of one (input) side that have not been compressed (e.g. by the display controller decompression stage). optionally) is preferably operated to compress.

이와 같이, 일 실시예에 있어서는, 디스플레이에 제공되는 손실 압축된 출력면은 디스플레이 컨트롤러(예를 들면, 그것의 압축 스테이지)에 의해 압축되었던 한 개 이상의 영역들, 및/또는 디스플레이 컨트롤러(에 의한 것이 아닌) 이외에 의해 (예를 들면, 한 개 이상의 업스트림 처리 스테이지들 중의 한 개 이상에 의해서 등) 압축되었던 한 개 이상의 영역들을 구비할 수 있다. Thus, in one embodiment, the lossy compressed output surface presented to the display is one or more regions that have been compressed by the display controller (eg, its compression stage), and/or may have one or more regions that have been compressed by other than (eg, by one or more of the one or more upstream processing stages, etc.)

이와 같이, 일 실시예에 있어서는, 디스플레이에 제공되는 ("디스플레이 컨트롤러" 손실 압축 방식을 이용해서 압축되었던) 출력면은, 디스플레이 컨트롤러(에 의한 것이 아닌) 이외에 의해 압축된(바람직하게는 한 개 이상의 처리 스테이지들의 한 개 이상에 의해 압축된) 면의 한 개 이상의 영역들을 구비한다. Thus, in one embodiment, the output surface (which has been compressed using the "display controller" lossy compression scheme) presented to the display is compressed (preferably by one or more than one) other than by (and not by) the display controller. one or more regions of the surface) compressed by one or more of the processing stages.

일 실시예에 있어서는, 디스플레이 컨트롤러는 표시되는 출력면을 형성하는 데에 사용되는 입력 면 또는 면들에 대하여 어떤 형태의 처리를 행하여, 예를 들면 입력 면 또는 면들의 한 개 이상의 영역들을 (선택적으로) 변경하도록 작동된다. 이 디스플레이 컨트롤러는 입력면을 처리해서 이 목적 또는 이들 목적을 위해 표시되어야 하는 출력면을 발생하도록 작동되는 한 개 이상의 처리 스테이지들을 구비할 수도 있다.In one embodiment, the display controller performs some form of processing on the input surface or surfaces used to form the displayed output surface, for example (optionally) converting one or more regions of the input surface or surfaces. works to change The display controller may have one or more processing stages operable to process an input surface to generate an output surface to be displayed for this or that purpose.

디스플레이 컨트롤러는, 예를 들면, 콘트라스트 및/또는 밝기를 변경하고, 감마 보정을 행하며, 및/또는 톤 맵핑을 행하는 등, 입력 면 또는 면들의 한 개 이상의 영역들에 대하여 화상 개선 변경을 (선택적으로) 행하도록 작동될 수도 있다. 추가로 또는 그 대신에, 디스플레이 컨트롤러는 영역 또는 면을 (선택적으로) 회전 및/또는 스케일하도록 작동될 수도 있다. 추가로 또는 그 대시에, 디스플레이 컨트롤러는 화상 개선 방식을 (선택적으로) 수행하여, 예를 들면, LAO(Level Adaptive Overdrive), FFD(Feed Forward Drive), DCC(Dynamic Contrast Compensation) 등과 같은, 디스플레이 대응성을 향상시키도록 작동될 수도 있다. 디스플레이 컨트롤러는 물론 다른 타입의 처리 및/또는 변경을 행하도록 작동될 수도 있다.The display controller may (optionally) make picture enhancement changes to the input surface or one or more regions of surfaces, such as, for example, changing contrast and/or brightness, performing gamma correction, and/or performing tone mapping. ) may be operated to do. Additionally or alternatively, the display controller may be operated to (optionally) rotate and/or scale the area or face. In addition or in dash, the display controller (optionally) performs a picture enhancement scheme to respond to the display, e.g., Level Adaptive Overdrive (LAO), Feed Forward Drive (FFD), Dynamic Contrast Compensation (DCC), etc. It can also work to improve sexuality. The display controller may of course also be operable to perform other types of processing and/or changes.

이들 실시예에 있어서는, 디스플레이 컨트롤러는, 영역들이 처리(디스플레이 컨트롤러에 의해 변경)될 수 있도록 인코드된 및/또는 압축된 입력면의 한 개 이상의 영역들을 (즉, 필요한 경우에) 선택적으로 디코드 및/또는 압축 해제할 수도 있고, 바람직한 실시예에 있어서는 디코드 및/또는 압축 해제한다. 디스플레이 컨트롤러(그것의 압축 스테이지)는 예를 들면, 표시되는 손실 압축된 출력면의 한 개 이상의 영역들을 발생하기 위해서, 변경된 영역(들)을 (손실) 압축하도록 작동되는 것이 바람직하다.In these embodiments, the display controller selectively decodes and (i.e., if necessary) one or more regions of the input surface that are encoded and/or compressed so that the regions can be processed (changed by the display controller). /or may decompress, and in a preferred embodiment decode and/or decompress. The display controller (its compression stage) is preferably operative to (lossy) compress the altered region(s), eg to generate one or more regions of the output surface that are lossy compressed to be displayed.

바람직한 그러한 실시예에 있어서는, 이미 압축된 (입력)면 영역이 디스플레이 컨트롤러에 의해서 변경되는 경우에, 변경된 버전이 입력면 영역의 변경되지 않은 버전과 같은지 충분히 비슷한지와, 그래서 영역의 변경되지 않은 압축된 버전이 (즉, 변경된, 압축된 버전 대신에) 디스플레이 컨트롤러에 의해 출력되는지를 판정한다. 이 실시예에 있어서는, 영역의 변경된 버전이 디스플레이 컨트롤러에 의해 출력되는 경우에, 영역의 변경된 버전이 디스플레이 컨트롤러에 의해서 압축될 필요가 없음으로써(바람직하게는 압축되지 않음으로써), 디스플레이 컨트롤러가 필요로 하는 처리량을 줄일 수 있다. In a preferred such embodiment, when an already compressed (input) surface area is modified by the display controller, whether the modified version is equal to or sufficiently similar to the unmodified version of the input surface area, and thus the unaltered compression of the area Determine if the modified version is output by the display controller (ie instead of the modified, compressed version). In this embodiment, when the modified version of the region is output by the display controller, the modified version of the region does not need to be compressed (preferably not compressed) by the display controller, so that the display controller does not need to. throughput can be reduced.

변경된 영역은, 예를 들면 영역의 2개의 버전 간의 차이가 충분히 작은 경우, 예를 들면 (그 차이가 표시될 때를 감지할 수 없거나 감지할 수 없을 것으로 설정되는) 스레숄드 이하로 떨어지는 경우, 그것의 대응하는 변경되지 않은 영역과 충분히 비슷하다고 판정될 수도 있다.A region that has been changed is defined by its It may also be determined to be sufficiently similar to the corresponding unaltered area.

이와 같이, 이들 실시예에 있어서는, 영역이 변경되는 경우에, 영역의 변경된 버전 또는 영역의 변경되지 않은 버전은, 변경이 영역에 대하여 충분한 변화를 일으키는지 여부에 의존해서, 디스플레이 컨트롤러에 의해서 출력된다(즉, 디스플레이에 제공된다). 영역의 변경되지 않은 버전이 디스플레이 컨트롤러에 의해 출력되는 경우에, 영역의 변경되지 않은 버전은 폐기되는 것이 바람직하고, 디스플레이 컨트롤러에 의해 압축될 필요가 없어(바람직하게는 압축되지 않아), 디스플레이 컨트롤러가 필요로 하는 처리량을 줄일 수 있다.Thus, in these embodiments, when a region is changed, either a changed version of the region or an unaltered version of the region is output by the display controller, depending on whether the change causes a sufficient change to the region. (i.e. presented to the display). When an unchanged version of the region is output by the display controller, the unchanged version of the region is preferably discarded and does not need to be compressed (preferably uncompressed) by the display controller, so that the display controller The amount of processing required can be reduced.

특히 바람직한 실시예에 있어서는, 디스플레이 컨트롤러는, "디스플레이 컨트롤러" 손실 압축 방식을 이용해서 이미 압축되고, 어떤 변경도 필요하지 않는, (입력)면의 이들 영역(들)이 (만약에 있다면) 디스플레이 컨트롤러 압축 해제 스테이지, 변경 스테이지 및 압축 스테이지를 바이패스할 수 있도록 구성된다. 그러한 (입력)면의 영역(들)은 그 후에 출력면으로서 또는 출력면의 일부로서 사용되는 것이 바람직하다.In a particularly preferred embodiment, the display controller is configured such that these region(s) on the (input) side are already compressed using the "display controller" lossy compression scheme and no changes are required, if any. It is configured to be able to bypass the decompression stage, the alteration stage and the compression stage. The region(s) of such (input) face is then preferably used as an output face or as part of an output face.

이와 같이, 바람직한 실시예에 있어서는, 디스플레이 컨트롤러는 압축 스테이지, 한 개 이상의 변경 스테이지 및 압축 해제 스테이지의 한 개 이상을 바람직하게는 모두를 포함하고, (존재한다면) 이들 스테이지들의 각각은 바람직하게는 예를 들면 적절한 경우 혹은 원하는 경우에, 선택적으로 바이패스될 수 있다. 이것은 디스플레이 컨트롤러에 의해 행해진 처리량을 감소시킬 수 있다는 것을 의미한다. Thus, in a preferred embodiment, the display controller includes preferably all of one or more of a compression stage, one or more modification stages, and one or more decompression stages, each of these stages (if present) preferably yes. For example, it can be selectively bypassed when appropriate or desired. This means that the amount of processing done by the display controller can be reduced.

따라서, 바람직한 실시예에 있어서는, 디스플레이 컨트롤러는 입력면의 한 개 이상의 영역들을 판독하고; 한 개 이상의 판독 영역들 중의 한 개 이상이 압축되는지 여부를 판정하도록 구성된다.Thus, in a preferred embodiment, the display controller reads one or more regions of the input surface; It is configured to determine whether one or more of the one or more read regions are compressed.

일 실시예에 있어서는, 판독 영역이 압축되는 것이 아니라고 판정되는(즉, 압축되지 않은) 경우(면), 디스플레이 컨트롤러는, 디스플레이에 제공하기 위한 적절히 손실 압축된 출력면 영역을 발생하기 위해서, 디스플레이 컨트롤러 손실 압축 방식, 예를 들면 DSC를 이용해서, 판독 영역(원한다면, 이 판독영역은 압축되기 전에 변경될 수도 있다)을 압축하는 것이 바람직하다.In one embodiment, if it is determined that the read area is not compressed (i.e., not compressed), the display controller may, in order to generate an appropriate lossy compressed output surface area for presentation to the display, display controller: It is preferred to compress the read area (which, if desired, may be modified before being compressed) using a lossy compression scheme, for example DSC.

반면에 일 실시예에 있어서는, 판독 영역이 압축되는 영역이라고 판정되는 경우(면), 디스플레이 컨트롤러는 디스플레이 컨트롤러 손실 압축 방식(예를 들면, DSC)을 이용해서 판독영역이 압축되는지 여부를 판정하는 것이 바람직하다. 판독영역이 디스플레이 컨트롤러 손실 압축 방식 이외의 압축 방식을 이용해서 압축된다고 판정되는 경우(면), 디스플레이 컨트롤러는 판독영역을 압축 해제하고, 디스플레이 컨트롤러 손실 압축 방식(예를 들면, DSC)을 이용해서 압축 해제된 영역을 압축하는 것이 바람직하다.On the other hand, in one embodiment, if it is determined that the read area is a compressed area, the display controller determines whether the read area is compressed using a display controller lossy compression scheme (e.g., DSC). desirable. If (if) it is determined that the read area is compressed using a compression method other than the display controller lossy compression method, the display controller decompresses the read area and compresses it using a display controller lossy compression method (e.g., DSC). It is desirable to compress the released area.

이렇게 압축된 영역은 디스플레이에 제공되는 출력면의 (그에 대응하는) 영역에 대해서 사용되는 것이 바람직하다.This compressed area is preferably used for the (corresponding to) area of the output surface presented to the display.

다시, 압축 해제된 영역은, 원한다면, 압축되기 전에 변경될 수도 있다.Again, the decompressed region may be modified before being compressed, if desired.

그에 대응하여 일 실시예에 있어서는, 판독영역이 디스플레이 컨트롤러 손실 압축 방식(예를 들면, DSC)을 이용해서 압축된다고 판정되는 경우(면), 디스플레이 컨트롤러는 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역이 변경을 필요로 하는지 여부를 판정하는 것이 바람직하다.Correspondingly, in one embodiment, if (if) it is determined that the read area is compressed using a display controller lossy compression method (e.g., DSC), the display controller determines that the read area is compressed using a display controller lossy compression method. It is desirable to determine whether a region requires a change.

일 실시예에 있어서, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역이 변경을 필요로 하는 것이 아니라고(즉, 변경을 필요로 하지 않는다고) 판정되는 경우(면), 디스플레이 컨트롤러는, 출력면으로서 또는 출력면의 일부로서, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역을 디스플레이에 제공하는 것이 바람직하다.In one embodiment, if it is determined that the read area that is compressed using the display controller lossy compression method does not require modification (i.e., does not require modification), the display controller, as the output surface, Alternatively, as part of the output surface, it is preferable to provide the display with a readout area that is compressed using a display controller lossy compression method.

반면에, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역이 변경을 필요로 한다고 판정되는 경우(면), 디스플레이 컨트롤러는, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역을 압축 해제하고, 압축 해제된 영역을 변경하며, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되었던 판독영역과 같은지 충분히 비슷한지를 판정하는 것이 바람직하다.On the other hand, if it is determined that the read area compressed using the display controller lossy compression method requires modification, the display controller decompresses the read area compressed using the display controller lossy compression method, and compresses the read area compressed using the display controller lossy compression method. It is preferable to change the released area and determine whether it is the same as or sufficiently similar to the read area compressed using the display controller lossy compression method.

변경된 영역이 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역과 같거나 충분히 비슷하다고 판정되는 경우(면), 디스플레이 컨트롤러는, 바람직하게는 출력면으로서 또는 출력면의 일부로서, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역을 디스플레이에 제공하는 것이 바람직하고, 변경된 영역은 폐기되는 것이 바람직하다. If it is determined that the altered region is equal to or sufficiently similar to the read region to be compressed using the display controller lossy compression scheme, the display controller preferably uses the display controller lossy compression scheme as the output plane or as part of the output plane. It is preferred to provide the display with a read region that is compressed using , and the altered region is preferably discarded.

반면에, 변경된 영역이 디스플레이 컨트롤러 손실 압축 방식을 이용해서 압축되는 판독영역과 같은 것이 아니거나 충분히 비슷한 것이 아니라고(즉, 판독영역과 같지 않거나 충분히 비슷하지 않다(즉, 충분히 다르다)고 판정되는 경우(면), 디스플레이 컨트롤러는, 디스플레이 컨트롤러 손실 압축 방식을 이용해서 변경된 영역을 압축하는 것이 바람직하고, 그 후에 그렇게 압축된 영역은 출력면의 대응하는 영역에 대해서 사용되는 것이 바람직하다. 즉, 그렇게 압축된 영역은, 바람직하게는 출력면으로서 혹은 출력면의 일부로서, 디스플레이에 제공되는 것이 바람직하다.On the other hand, if it is determined that the changed area is not the same as or not sufficiently similar to the read area compressed using the display controller lossy compression method (i.e., not equal to or not sufficiently similar to the read area (i.e., sufficiently different)) ( surface), the display controller preferably compresses the altered area using a display controller lossy compression scheme, and then the so compressed area is then used for the corresponding area of the output surface, i.e., the so compressed The area is preferably provided on the display, preferably as an output surface or as part of an output surface.

일 실시예에 있어서는, 디스플레이 컨트롤러는 출력면을 외부 메모리에 기록하도록 작동된다. 디스플레이 컨트롤러는 이 목적을 위해서 출력면을 외부 메모리에 기록하도록 작동되는 라이트 아웃(write-out) 스테이지를 구비할 수도 있다. 라이트 아웃 스테이지는 출력면을 외부 메모리에 기록할 수 있는 어떤 적절한 그런 스테이지일 수도 있다. 일 실시예에 있어서는, 라이트 아웃 스테이지는 DMA(Direct Memory Access) 기록 컨트롤러와 같은, 기록 컨트롤러를 구비한다.In one embodiment, the display controller is operative to write the output face to external memory. The display controller may have a write-out stage operable to write the output surface to an external memory for this purpose. The light out stage may be any suitable such stage capable of writing the output surface to external memory. In one embodiment, the light out stage includes a write controller, such as a Direct Memory Access (DMA) write controller.

바람직한 실시예에 있어서, 외부 메모리에 기록될 수도 있는 출력면은 디스플레이에 제공되는 출력면(의 선택적으로 변경된 버전)이다.In a preferred embodiment, the output surface that may be written to external memory is (optionally modified version of) an output surface provided on a display.

라이트 아웃 스테이지가 데이터를 기록할 수 있는 외부 메모리는 디스플레이 컨트롤러의 외부에 있는 한 개 이상의 메모리이어야 하고, 바람직하게는 한 개 이상의 메모리이다. 외부 메모리는 디스플레이 컨트롤러에 분리 칩(모놀리식 집적회로)으로서 또는 분리칩 위에 설치되는 것이 바람직하다. 외부 메모리는 (예를 들면, 중앙처리장치(CPU)와 공유되는) 메인 메모리 혹은 상기 메인 메모리, 예를 들면 전체 데이터 처리 시스템의 프레임 버퍼를 구비하는 것이 바람직하다.The external memory to which the light out stage can write data must be at least one memory external to the display controller, and preferably at least one memory. The external memory is preferably installed as or on a separate chip (monolithic integrated circuit) in the display controller. The external memory preferably includes a main memory (eg, shared with a central processing unit (CPU)) or a frame buffer of the main memory, eg, the entire data processing system.

데이터 처리 시스템의 한 개 이상의 (업스트림) 처리 스테이지들 중의 적어도 하나는, 처리 스테이지가 손실 압축된 형태로 (손실 압축 방식을 이용해서) 생성하는 면의 한 개 이상의 영역들을 출력할 수 있다. 한 개 이상의 업스트림 처리 스테이지들 중의 어떤 한 개 이상은 이것을 행하도록 구성될 수도 있다. At least one of the one or more (upstream) processing stages of the data processing system may output one or more regions of a surface that the processing stage generates (using a lossy compression scheme) in lossy compressed form. Any one or more of the one or more upstream processing stages may be configured to do this.

따라서, 바람직한 실시예에 있어서는, 시스템은 손실 압축 방식을 이용해서 압축되었던 한 개 이상의 면들의 한 개 이상의 영역들을 출력하도록 작동되는 한 개 이상의 프레임 발생기 처리 스테이지; 손실 압축 방식을 이용해서 압축되었던 합성된 출력면의 한 개 이상의 영역들을 출력하도록 작동되는 컴포지션 처리 스테이지; 및 손실 압축 방식을 이용해서 압축되었던 한 개 이상의 면들의 한 개 이상의 영역들을 출력하도록 작동되는 한 개 이상의 압축 처리 스테이지들 중의 한 개 이상 혹은 모두를 구비한다.Accordingly, in a preferred embodiment, the system comprises one or more frame generator processing stages operative to output one or more regions of one or more faces that have been compressed using a lossy compression scheme; a composition processing stage operative to output one or more regions of the synthesized output surface that have been compressed using a lossy compression scheme; and one or more compression processing stages operative to output one or more regions of one or more faces that have been compressed using a lossy compression scheme.

일 실시예에 있어서, 한 개 이상의 처리 스테이지들 중의 하나만이 손실 압축 방식을 이용해서 압축되었던 면을 출력하도록 작동된다. 그렇지만, 손실 압축 방식을 이용해서 압축되었던 면의 한 개 이상의 영역들을 출력할 수 있는(출력 가능한) 한 개 이상의 처리 스테이지의 복수의 스테이지가 있을 수도 있다(바람직한 실시예에 있어서는, 복수의 스테이지가 있다). 압축된 출력을 제공할 수 있는 각 처리 스테이지는 그 목적을 위해서 적절한 압축 "엔진"을 포함하는(예를 들면, 압축 루틴을 실행하는) 것이 바람직하다.In one embodiment, only one of the one or more processing stages is operated to output a face that has been compressed using a lossy compression scheme. However, there may be multiple stages of one or more processing stages capable of outputting (outputable) one or more regions of a surface that have been compressed using a lossy compression scheme (in a preferred embodiment, there are multiple stages). ). Each processing stage capable of providing a compressed output preferably includes (e.g., executes a compression routine) an appropriate compression "engine" for that purpose.

압축된 출력을 제공할 수 있는 처리 스테이지(들)는 원하는 대로 선택될 수 있다.The processing stage(s) capable of providing compressed output may be selected as desired.

일반적으로는, 압축된 출력은 표시되는 출력면을 발생 및 제공하는 전체 처리 플로우에 있어서 가능한 한 일찍 제공되어야 하는 것이 바람직한 데, 그 이유는 대역폭 및 전력이 가능한 한 많이 감소하는 것을 의미하기 때문이다.In general, it is desirable that the compressed output should be provided as early as possible in the overall processing flow of generating and presenting the displayed output surface, since this means that bandwidth and power are reduced as much as possible.

이와 같이, 바람직하게는 프레임 발생기 처리 스테이지(들) 중의 적어도 한 개 이상은, 손실 압축 방식을 이용해서 압축되었던 한 개 이상의 표면들의 한 개 이상의 영역들을 출력할 수 있다.As such, preferably at least one of the frame generator processing stage(s) is capable of outputting one or more regions of one or more surfaces that have been compressed using a lossy compression scheme.

컴포지션(composition)을 이용하는 실시예에 있어서, 바람직하게는 적어도 컴포지션 스테이지는 손실 압축 방식을 이용해서 압축되었던 합성된 출력면의 한 개 이상의 영역들을 출력할 수 있다. 컴포지션 스테이지는 이 목적을 위해서 손실 압축 방식을 이용해서 합성된 면을 압축하도록 작동되는 압축 엔진을 구비하는 것이 바람직하다.In embodiments using composition, preferably at least the composition stage can output one or more regions of the composited output surface that have been compressed using a lossy compression scheme. The composition stage preferably has a compression engine operable to compress the synthesized surface using a lossy compression method for this purpose.

처리 스테이지에 의해 출력되는 압축된 영역들 또는 표면들 중의 한 개 이상이 (예를 들면, 한 개 이상의 다른 처리 스테이지들에 의해서) 추가로 변경 및/또는 처리되는 경우에, 즉 디스플레이 컨트롤러에 제공되기 전에 및/또는 표시용 출력면으로서 또는 이 출력면을 형성하기 위해서 사용되기 전에, 한 개 이상의 압축된 영역들 또는 면들은 (예를 들면, 변경 및/또는 처리를 행하는 한 개 이상의 처리 스테이지들에 의해서) 적절히 변경 및/또는 처리되기(바람직하게는 재압축되기) 전에 압축 해제되어야 한다(실시예에 있어서는 압축 해제된다).When one or more of the compressed regions or surfaces output by a processing stage is further modified and/or processed (eg by one or more other processing stages), i.e. to be presented to a display controller. Prior to and/or being used as or to form an output surface for display, one or more compressed regions or surfaces (e.g., in one or more processing stages that undergo modification and/or processing) It must be decompressed (in the embodiment, decompressed) before being appropriately modified and/or processed (preferably recompressed).

예를 들면, 컴포지션을 이용한 실시예에 있어서, 그리고 합성되어야 하는 영역들 또는 면들 중의 한 개 이상이 손실 압축 방식을 이용해서 압축되었던 경우에는, 합성되어야 하는 압축된 영역들 또는 면들 중의 한 개 이상 및 바람직하게는 모두가, 컴포지션 스테이지의 적절한 작동을 위해서 예를 들면 원하거나 필요하면 합성하기 전에 압축 해제되는 것이 바람직하다.For example, in an embodiment using composition, and if one or more of the regions or planes to be synthesized is compressed using a lossy compression method, one or more of the compressed regions or planes to be synthesized and Preferably all are decompressed prior to compositing, eg if desired or necessary for proper operation of the composition stage.

이와 같이, 바람직한 실시예에 있어서는, 처리 스테이지들 중의 한 개 이상(바람직하게는 적어도 컴포지션 스테이지)은 면의 압축된 영역들을 압축 해제하여, 예를 들면 (예를 들면, 변경 및/또는 합성을 위한) 면의 한 개 이상의 압축 해제된 영역들을 발생하도록 작동될 수 있고, 작동된다. 한 개 이상의 처리 스테이지들 중의 한 개 이상(예를 들면 컴포지션 스테이지)은, 이 목적을 위해 한 면의 한 개 이상의 영역들을 압축 해제하도록 작동되는 압축 해제 엔진을 구비하는 것이 바람직하다.As such, in a preferred embodiment, one or more of the processing stages (preferably at least a composition stage) decompresses compressed regions of the surface, for example (e.g., for modification and/or compositing). ) can be, and is operated to generate, one or more decompressed regions of the surface. One or more of the one or more processing stages (eg the composition stage) preferably includes a decompression engine operable to decompress one or more regions of a face for this purpose.

여기서 한 개 이상의 압축된 영역(들)이 압축 해제되는 실시예에 있어서는, 시스템의 대역폭 요건들이, 즉 적어도 압축된 형태로 처리 스테이지들 사이에 데이터가 전송되는 특정한 경우에 대해서, 여전히 유리하게 감소한다는 점에 유념해야 한다. In embodiments where one or more compressed region(s) are decompressed, the bandwidth requirements of the system are still advantageously reduced, i.e. for the particular case where data is transmitted between processing stages, at least in compressed form. point should be kept in mind.

일부 실시예에 있어서는, 예를 들면, 추가 압축/압축 해제 처리를 행해야 하는 필요성에 의해 대역폭 감소의 혜택이 더 큰 경우에는, 변경 및/또는 처리 및/또는 합성되어야 하는 영역(들) 또는 면(들)을 압축, 압축 해제(및 그 후에 재압축)하는 데에 필요한 처리를 회피하는 것이 바람직할 수도 있다. 그러한 경우에, 예를 들면, 영역(들) 또는 면(들)이 변경 및/또는 처리 및/또는 합성되어야 하는 것으로 알려져 있다면, 추가 처리는 예를 들면, 영역(들) 또는 면(들)을 초기에 압축하지 않음으로써 회피될 수 있다.In some embodiments, the area(s) or facets that need to be altered and/or processed and/or synthesized, for example where the benefit of bandwidth reduction is outweighed by the need to do additional compression/decompression processing. s), it may be desirable to avoid the processing required to compress, decompress (and then recompress). In such cases, if it is known, for example, that the region(s) or face(s) are to be altered and/or treated and/or synthesized, further processing may be performed to transform the region(s) or face(s), for example. It can be avoided by not compressing it initially.

이와 같이, 일 실시예에 있어서는, 처리 스테이지에 의해 제공된 영역 또는 면이, 즉 디스플레이 컨트롤러에 제공되기 전에 및/또는 표시용 출력면으로서 또는 이 출력면을 형성하기 위해서 사용되기 전에, 추가로 변경 및/또는 처리 및/또는 합성되는 경우에는, 그 처리 스테이지가 압축되지 않은 형태로 영역 또는 면을 출력하도록 제어되는 것이 바람직하다. 그에 대응하여, 처리 스테이지에 의해 제공된 영역 또는 면이, 즉 디스플레이 컨트롤러에 제공되기 전에 및/또는 표시용 출력면으로서 또는 이 출력면을 형성하기 위해서 사용되기 전에, 추가로 변경 및/또는 처리 및/또는 합성되는 것이 아닌(합성되지 않는) 경우에는, 그 처리 스테이지가 손실 압축 방식을 이용해서 압축된 형태로 한 개 이상의 영역들 또는 면들을 출력하도록 제어되는 것이 바람직하다. Thus, in one embodiment, the area or surface provided by the processing stage is further modified and When processing and/or compositing, the processing stage is preferably controlled to output the region or plane in uncompressed form. Correspondingly, the area or surface provided by the processing stage is further modified and/or processed and/or before being presented to the display controller and/or before being used as or to form an output surface for display. Or, if not synthesized (not synthesized), the processing stage is preferably controlled to output one or more regions or faces in compressed form using a lossy compression method.

압축된 출력을 제공할 수 있는 처리 스테이지(들) 중의 한 개 이상은, 압축된 출력을 항상 제공하도록 구성될 수 있지만(그에 대응하여 압축되지 않은 출력을 제공하는 처리 스테이지(들) 중의 한 개 이상이 압축되지 않은 출력을 항상 제공하도록 구성될 수 있지만), 좀 더 바람직하게는 처리 스테이지(들) 중의 한 개 이상은 원하는 대로, 바람직하게는 선택적으로, 압축된 출력과 압축되지 않은 출력 양자를 제공할 수 있다. 그러한 처리 스테이지는 이것을 행하기 위해 그것의 압축 동작을 선택적으로 인에이블/디스에이블하도록 작동되는 것이 바람직하다.One or more of the processing stage(s) capable of providing compressed output may be configured to always provide compressed output (but correspondingly one or more of the processing stage(s) providing uncompressed output). may be configured to always provide this uncompressed output), but more preferably one or more of the processing stage(s) provides both compressed and uncompressed output as desired, preferably selectively. can do. Such a processing stage is preferably operated to selectively enable/disable its compression operation to do this.

가장 바람직하게는, 압축된 출력과 압축되지 않은 출력 양자를 제공하도록 작동되는 처리 스테이지는, 영역 단위 또는 면 단위로 선택적으로 압축된 출력 또는 압축되지 않은 출력을 선택적으로 제공하도록 작동된다.Most preferably, a processing stage operable to provide both compressed and uncompressed output is operable to selectively provide compressed or uncompressed output on a region-by-region or face-by-area basis.

이와 같이, 일 실시예에 있어서는, (특정) 처리 스테이지로부터 출력되는 각 영역 또는 면에 대해서, 영역 또는 면이 즉 디스플레이 컨트롤러에 제공되기 전에 및/또는 표시용 출력면으로서 또는 이 출력면을 형성하기 위해서 사용되기 전에, 변경 및/또는 처리 및/또는 합성되는지 여부를 판정한다.Thus, in one embodiment, for each area or surface output from a (specific) processing stage, before the area or surface is presented to the display controller and/or as or forming the output surface for display. It is determined whether it is modified and/or processed and/or synthesized before being used for

바람직하게는, 영역 또는 면이 변경 및/또는 처리 및/또는 합성되는 것으로 판정되는 경우(면), 처리 스테이지가 압축되지 않은 형태로 영역 또는 면을 출력하도록 작동되는 것이 바람직하다. 바람직하게는, 영역 또는 면이 변경 및/또는 처리 및/또는 합성되지 않는 것으로 판정되는 경우(면), 처리 스테이지가 압축된 형태 로 영역 또는 면을 출력하도록 작동되는 것이 바람직하다.Preferably, when a region or facet is determined to be altered and/or processed and/or synthesized (face), the processing stage is preferably operated to output the region or facet in uncompressed form. Preferably, if it is determined that the region or facet is not altered and/or processed and/or synthesized (face), the processing stage is preferably operated to output the region or facet in compressed form.

이것은 대역폭 및 처리 요건들에 의한 시스템의 전체 전력 소모가 감소하는 것을 보장하는 데 도움이 될 수 있다.This can help ensure that overall power consumption of the system due to bandwidth and processing requirements is reduced.

또 다른 실시예에 있어서는, 영역 또는 면에 대한 어떤 필요한 변경(들)이 예를 들면, 스테이지들의 전체 시퀀스를 통해서 영역 또는 면을 패스하기 전에 예측될 수 있는 (예를 들면, 디스플레이 컨트롤러에 의해 보통 수행되는)(예를 들면, LAO(Level Adaptive Overdrive), FFD(Feed Forward Drive), DCC(Dynamic Contrast Compensation) 등과 같은, 디스플레이 대응성을 향상시키기 위해서, 예를 들면, 콘트라스트 및/또는 밝기를 변경하고, 감마 보정을 수행하며, 및/또는 톤 맵핑을 수행하는 것과 같은, 화상 개선 변경들; 회전 및/또는 스케일링; 및/또는 화상 개선 방식과 같은) (예를 들면, 비교적 간단한) 화상 처리 변경들로 구성되는 경우에는, 영역 또는 면을 제공하는 처리 스테이지는 그 자체의 화상 처리 변경들을 수행하도록 작동될 수도 있다.In another embodiment, any necessary change(s) to an area or surface can be predicted (e.g., normally by a display controller) before passing the area or surface through an entire sequence of stages, for example. to improve display responsiveness (e.g., Level Adaptive Overdrive (LAO), Feed Forward Drive (FFD), Dynamic Contrast Compensation (DCC), etc.) (e.g., relatively simple) image processing changes, such as performing gamma correction, and/or tone mapping; rotation and/or scaling; and/or image enhancement schemes. , the processing stage presenting the area or surface may be operable to perform its own image processing modifications.

한 개 이상의 업스트림 처리 스테이지들 중의 어느 한 개 이상은, 이 방식으로 한 개 이상의 영역들 또는 면들에 대하여 화상 처리 변경들을 (선택적으로) 수행하도록 구성될 수도 있다. 이와 같이, 예를 들면, 바람직하게는 프레임 발생기 처리 스테이지(들) 중의 적어도 한 개 이상이 화상 처리 변경들을 수행할 수 있다. 컴포지션을 이용하는 실시예에 있어서는, 바람직하게는 적어도 컴포지션 스테이지가 화상 처리 변경들을 수행할 수 있다.Any one or more of the one or more upstream processing stages may be configured to (optionally) perform image processing changes to one or more regions or surfaces in this manner. As such, for example, preferably at least one of the frame generator processing stage(s) may perform image processing changes. In embodiments using composition, preferably at least the composition stage can perform the image processing changes.

그러한 화상 처리 변경들을 항상 수행할 수 있는 처리 스테이지(들)의 한 개 이상은 그러한 화상 처리 변경들을 항상 수행하도록 구성될 수 있지만, 더 바람직하게는 처리 스테이지(들)의 한 개 이상은, 원하는 대로, 화상 처리 변경들을 선택적으로 수행할 수 있다. 가장 바람직하게는, 이것은 영역 단위 또는 면 단위로 행해질 수 있다.One or more of the processing stage(s) always capable of performing such image processing changes may be configured to always perform such image processing changes, but more preferably one or more of the processing stage(s) are as desired. , can selectively perform image processing changes. Most preferably, this can be done area by area or area by area.

일 실시예에 있어서, (특정한) 처리 스테이지로부터 출력되는 각 영역 또는 면에 대해서는, 이 영역 또는 면이, 즉, 디스플레이 컨트롤러에 제공되기 전에 및/또는 표시용 출력면으로서 또는 이 출력면을 형성하기 위해서 사용되기 전에, 변경 및/또는 처리 및/또는 합성될 것인지(혹은 될 것 같은지) 여부를 판정한다.In one embodiment, for each region or facet output from a (specific) processing stage, the region or facet is, ie, before being presented to a display controller and/or as or forming an output facet for display. before being used for the purpose of determining whether it is (or is likely to be) altered and/or processed and/or synthesized.

바람직하게는, 영역 또는 표면이 추가로 변경 및/또는 처리 및/또는 합성되는 것이 아니라고(되지 않는다고) 판정되는 경우(면), 처리 스테이지는 그 자체의 원하는 화상 처리 변경(들)을 수행하도록 작동되는 것이 바람직하다. 바람직하게는, 영역 또는 면이 추가로 변경 및/또는 처리 및/또는 합성되는 것으로 판정되는 경우(면), 처리 스테이지는 그 자체의 원하는 화상 처리 변경(들)을 수행하지 않도록 작동되는 것이 바람직하다.Preferably, if it is determined that the region or surface is not (not) subject to further alteration and/or processing and/or compositing, the processing stage is operative to perform its own desired image processing alteration(s). it is desirable to be Preferably, if an area or surface is determined to be further altered and/or processed and/or composited (a surface), the processing stage is preferably operated so as not to perform its own desired image processing change(s). .

이것은, 변경된(및 압축된) 영역들 또는 면들이 화상 처리 변경들을 수행하기 위해서 디스플레이 컨트롤러에 의해 압축 해제될 필요가 없어, 디스플레이 컨트롤러 압축 해제, 변경, 및/또는 압축 스테이지(들)가 바이패스될 수도 있고, 영역(들) 또는 표면(들)을 압축, 압축 해제(및 재압축)하는 데에 필요한 처리가 회피될 수도 있다는 것을 의미할 것이다.This means that the altered (and compressed) regions or faces do not need to be decompressed by the display controller to perform image processing changes, so that the display controller decompression, modification, and/or compression stage(s) can be bypassed. may mean that the processing required to compress, decompress (and recompress) the region(s) or surface(s) may be avoided.

손실 압축된 출력면을 제공할 수 있는 각 (업스트림) 처리 스테이지는, 손실 압축된 출력면을 제공할 수 있는 다른 처리 스테이지들에 대하여 동일하거나 다른 손실 압축 방식을 이용할 수 있다. 그렇지만, 바람직한 실시예에 있어서는, 손실 압축된 출력면을 제공할 수 있는 각 (업스트림) 처리 스테이지는, 손실 압축된 출력면을 제공할 수 있는 다른 처리 스테이지들에 대하여 같은 손실 압축 방식을 이용한다.Each (upstream) processing stage capable of providing a lossy compressed output surface may use the same or a different lossy compression scheme than the other processing stages capable of providing a lossy compressed output surface. However, in a preferred embodiment, each (upstream) processing stage capable of providing a lossy compressed output surface uses the same lossy compression scheme as the other processing stages capable of providing a lossy compressed output surface.

업스트림 처리 스테이지들이 이용하는 손실 압축 방식 또는 방식들은 어떤 적절한 원하는 손실 압축 방식을 포함할 수도 있다.The lossy compression scheme or schemes used by the upstream processing stages may include any suitable desired lossy compression scheme.

바람직한 실시예에 있어서는, (업스트림) 처리 스테이지들이 사용하는 손실 압축 방식 또는 각 손실 압축 방식은 디스플레이 컨트롤러에 의해서 사용되는 (디스플레이에 전해지는 출력면을 압축하기 위해서 사용되는) 손실 압축 방식에 근거하는(선택되는) 방식이다. "처리 스테이지" 압축 방식은 어떤 식으로든(예를 들면, 바람직하게는 그것의 특징들 중의 한 개 이상에 관하여) 디스플레이 컨트롤러 손실 압축 방식과 관련되어 있으며, 및/또는 이 디스플레이 컨트롤러 손실 압축 방식과 매치되는 것이 바람직하다. In a preferred embodiment, the lossy compression scheme used by the (upstream) processing stages, or each lossy compression scheme, is based on the lossy compression scheme used by the display controller (used to compress the output face to the display). selected) method. The “processing stage” compression scheme is in some way (eg, preferably with respect to one or more of its characteristics) related to, and/or matches, a display controller lossy compression scheme. it is desirable to be

이와 같이, 예를 들면, 바람직한 실시예에 있어서는, 처리 스테이지 손실 압축 방식은 디스플레이 컨트롤러 손실 압축 방식과 같은 압축 포맷 및/또는 알고리즘을 이용하고, 디스플레이 컨트롤러 압축 방식이 선형 압축 방식인(견주어서, 예를 들면 블록 기반 압축 방식인) 경우 예를 들면, 선형 압축 방식이다. 바람직하게는 처리 스테이지 손실 압축 방식은 선형 압축 방식이다.Thus, for example, in a preferred embodiment, the processing stage lossy compression scheme uses the same compression format and/or algorithm as the display controller lossy compression scheme, and the display controller compression scheme is a linear compression scheme (by comparison, e.g. For example, if it is a block-based compression method), for example, it is a linear compression method. Preferably, the processing stage lossy compression scheme is a linear compression scheme.

본 기술의 당업자가 알 수 있는 것처럼, 손실 압축 방식들은 화상을 압축하기 위해서 화질의 일부를 효과적으로 폐기한다. 손실 압축 방식들은 보통 무손실 압축 방식들보다 더 큰 정도로, 그렇지만 화상 데이터에 노이즈 또는 아티팩트들(artefacts)을 도입하는 것을 희생하면서, 데이터를 압축할 수 있다. 따라서, 주어진 손실 압축 방식은 화상에 대한 그 자신의 시각 효과, 예를 들면 그 자신의 특정 노이즈 특성들 또는 아티팩트들을 가질 것이다. As will be appreciated by those skilled in the art, lossy compression schemes effectively discard some of the image quality in order to compress a picture. Lossy compression schemes are usually able to compress data to a greater degree than lossless compression schemes, but at the expense of introducing noise or artifacts into the image data. Thus, a given lossy compression scheme will have its own visual effect on the picture, eg its own specific noise characteristics or artifacts.

사용되는 손실 압축 방식들을 매치함으로써, 시스템의 전체 메모리 대역폭 및 전력 요건들이, 표시되는 화상의 품질에 악영향을 미치는 일없이, 감소될 수 있다.By matching the lossy compression schemes used, the overall memory bandwidth and power requirements of the system can be reduced without adversely affecting the quality of the displayed picture.

본 발명의 특히 바람직한 실시예에 있어서는, 처리 스테이지 손실 압축 방식(들)의 노이즈 특성들은 디스플레이 컨트롤러 압축 방식의 노이즈 특성들에 근거해서 선택됨으로써(매치됨으로써), 바람직하게는 2개의 손실 압축 방식을 이용해서 압축된 면들이 동일한 또는 비슷한 노이즈 아티팩트들을 표시할 것이다.In a particularly preferred embodiment of the present invention, the noise characteristics of the processing stage lossy compression scheme(s) are selected (matched) based on the noise characteristics of the display controller compression scheme, preferably using two lossy compression schemes. So the compressed faces will show the same or similar noise artifacts.

일 실시예에 있어서는, 손실 압축 방식들은 디스플레이 컨트롤러와 같은 손실 압축 방식을 이용하는 처리 스테이지(들)에 의해 매치된다.In one embodiment, the lossy compression schemes are matched by the processing stage(s) using the same lossy compression scheme as the display controller.

이와 같이, 처리 스테이지(들)에 의해 사용된 손실 압축 방식은, 실질적으로 시각적 무손실 압축 방식을 포함할 수도 있고, DPCM(Delta Pulse Code Modulation) 및/또는 ICH(Indexed Colour History)을 이용할 수도 있다. 손실 압축 방식은, 즉 픽셀들(샘플링 위치들)의 각 래스터 라인(행)이 함께 압축되는 것이 바람직한 경우에, 압축되어야 하는 화상의 래스터 라인에서 작동할 수도 있다. 바람직한 실시예에 있어서는, 처리 스테이지들이 DSC(Display Stream Compression)을 이용한다.As such, the lossy compression scheme used by the processing stage(s) may include a substantially visually lossless compression scheme, and may utilize Delta Pulse Code Modulation (DPCM) and/or Indexed Color History (ICH). A lossy compression scheme may operate on a raster line of an image to be compressed, i.e. where it is desired that each raster line (row) of pixels (sampling positions) be compressed together. In a preferred embodiment, the processing stages use Display Stream Compression (DSC).

또 다른 실시예에 있어서는, 처리 스테이지(들)는 디스플레이 컨트롤러에 대하여 다른 손실 압축 방식을 이용하지만, 손실 압축 방식들은 (바람직하게는 디스플레이 컨트롤러 압축 방식의 노이즈 특성들을 매치하려고 시도하기 위해서) 디스플레이 컨트롤러 압축 방식에 근거하고 있는 처리 스테이지 압축 방식(들)에 의해, 바람직하게는 디스플레이 컨트롤러 압축 방식의 특성들에 근거해 구성되는 처리 스테이지 압축 방식들에 의해 매치된다.In another embodiment, the processing stage(s) use a different lossy compression scheme for the display controller, but the lossy compression schemes (preferably to try to match the noise characteristics of the display controller compression scheme) display controller compression Matched by the processing stage compression method(s) based on the method, preferably configured based on the characteristics of the display controller compression method.

이들 실시예에 있어서는, 처리 스테이지 손실 압축 방식은 가능한 한 가깝게 디스플레이 컨트롤러 압축 방식(예를 들면, DSC)에 근거함으로써, 즉 노이즈 특성들이 가능한 한 유사하다는 것을 보장하는 것이 바람직하다. 이와 같이, 예를 들면, 처리 스테이지 손실 압축 방식은 가능하다면 같은 타입의 압축(예를 들면, DPCM(Delta Pulse Code Modulation) 및/또는 ICH(Indexed Colour History))을 이용하는 것이 바람직하다.In these embodiments, it is preferred that the processing stage lossy compression scheme be based as closely as possible to the display controller compression scheme (e.g., DSC), ie to ensure that the noise characteristics are as similar as possible. Thus, for example, processing stage lossy compression schemes preferably use the same type of compression (eg, Delta Pulse Code Modulation (DPCM) and/or Indexed Color History (ICH)) if possible.

일 실시예에 있어서는, 압축된 출력을 제공하는 처리 스테이지(들)는, 디스플레이 컨트롤러 손실 압축 방식과 (직접) 호환 가능한 형태로 압축된 출력 영역들 또는 면들을 제공하도록 구성된다. 예를 들면, 디스플레이 컨트롤러 손실 압축 방식이 출력면의 래스터 라인들(예를 들면, 표시용 프레임)에서 작동하도록 구성되는 경우, 압축된 출력을 제공하는 처리 스테이지(들)는 래스터 라인들, 즉 샘플링 위치들(예를 들면, 픽셀들)의 행들의 형태로 압축된 출력 영역들을 제공하도록 구성될 수 있다.In one embodiment, the processing stage(s) providing compressed output is configured to provide compressed output regions or surfaces in a form (directly) compatible with display controller lossy compression schemes. For example, if the display controller lossy compression scheme is configured to operate on raster lines on the output side (e.g., a frame for display), then the processing stage(s) that provide the compressed output will be used on the raster lines, i.e. sampling. It can be configured to provide compressed output regions in the form of rows of locations (eg pixels).

이와 같이, 일 실시예에 있어서는, 압축된 출력을 제공하는 처리 스테이지(들)는, 디스플레이 컨트롤러 압축 방식이 작동하도록 구성되는 영역들의 사이즈 및 형상에 대응하는 사이즈(예를 들면, 바람직하게는 샘플링 위치들의 개수 및 형상에 관해서(예를 들면, 바람직하게는 래스터 라인과 같은, 출력면에서의 샘플링 위치들의 레이아웃에 관해서)를 갖는 출력 영역들을 제공하도록 배치된다(즉, 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 압축된 영역들은, 디스플레이 컨트롤러가 디스플레이에 제공하는 출력면의 압축된 영역들의 사이즈 및 형상에 대응하는 사이즈 및 형상을 갖는다).As such, in one embodiment, the processing stage(s) that provide the compressed output have a size (e.g., preferably a sampling location) corresponding to the size and shape of the regions the display controller compression scheme is configured to operate on. (i.e. at least one of the one or more processing stages) The compressed regions output by one have a size and shape corresponding to the size and shape of the compressed regions of the output surface that the display controller presents to the display).

즉, 이 실시예에 있어서는, 처리 스테이지 손실 압축 방식이 작동하는 압축 "윈도우"는, 디스플레이 컨트롤러 손실 압축 방식이 작동하는 압축 윈도우와 같을 것이다. That is, in this embodiment, the compression "window" within which the processing stage lossy compression scheme operates will be the same compression window within which the display controller lossy compression scheme operates.

이것에 의해 처리 스테이지(들)에 의해 출력된 압축된 출력영역들이 디스플레이 컨트롤러 압축 방식과 호환 가능하게 되므로, (예를 들면, 손실 압축 방식들의 다른 관련 특성들이 충분히 매치하는 경우) 디스플레이에 직접 (잠재적으로) 제공될 수 있고, (상기 설명한 것처럼) 적절히 디스플레이 컨트롤러 압축 해제/압축 스테이지들을 바이패스하게 된다.This makes the compressed output regions output by the processing stage(s) compatible with the display controller compression scheme, so that it is directly (potentially ), bypassing the display controller decompression/compression stages as appropriate (as described above).

그렇지만, 그것은, 처리 스테이지들 중의 한 개 이상에 의해 출력된(작동되는) 영역들의 형상이, 디스플레이 컨트롤러 압축 방식이 작동(압축)하도록 구성되는 영역들(윈도우들)의 형상과 다른 경우일 수도 있다(즉, 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 압축된 영역들이 디스플레이 컨트롤러가 디스플레이에 제공되는 출력면의 압축된 영역들의 형상과 다른 형상을 가질 수 있다).However, it may be the case that the shape of the regions output (actuated) by one or more of the processing stages differs from the shape of the regions (windows) that the display controller compression method is configured to act on (compress). (That is, the compressed regions output by at least one of the one or more processing stages may have a different shape than the compressed regions of the output surface that the display controller presents to the display).

예를 들면, 처리 스테이지들 중의 한 개 이상은, 출력면의 샘플링 위치들(즉, "타일들(tiles)")의 2차원의 블록들(어레이들)의 형태로 영역들(즉, 높이 및 폭이 각각 한 개의 샘플링 위치보다 큰 영역들)을 출력(및 작동, 예를 들면 압축)하도록 구성될 수도 있지만, 디스플레이 컨트롤러 압축 방식은 출력면의 래스터 라인들, 즉 한 개의 샘플링 위치가 높고 많은 픽셀들 샘플링 위치들이 넓은(긴) 샘플링 위치들의 행들을 작동(압축)하도록 구성될 수도 있다.For example, one or more of the processing stages may include areas (i.e., height and It may be configured to output (and operate on, e.g. compress) areas whose width is each greater than one sampling position, but the display controller compression scheme is a raster line on the output side, i.e. one sampling position high and many pixels. These sampling positions may be configured to actuate (compress) rows of wide (long) sampling positions.

일 실시예에 있어서는, 이것을 해결하기 위해서, 처리 스테이지 손실 압축 방식은 다수의 출력 영역들(예를 들면, 타일들)로부터 샘플링 위치들을 함께 압축하도록, 예를 들면, 바람직하게는 다른 출력 영역들(예를 들면, 타일들)로부터 샘플링 위치들의 각각의 행들을 연결시킴으로써 형성되는 압축된 샘플링 위치들의 라인(행)을 형성하도록 구성된다.In one embodiment, to address this, a processing stage lossy compression scheme is used to compress together sampling locations from multiple output regions (eg tiles), e.g. preferably to different output regions (eg tiles). For example, to form a line (row) of compressed sampling positions formed by connecting each row of sampling positions from tiles.

이와 같이, 예를 들면, 처리 스테이지들 중의 한 개 이상이, 샘플링 위치들(즉, "타일들")의 2차원 블록들(어레이들)의 형태로 영역들을 출력(작동)하도록 구성되고, 디스플레이 컨트롤러 압축 방식이 래스터 라인들, 즉 샘플링 위치들의 행들을 함께 작동(압축)하도록 구성되는 경우, 문제의 처리 스테이지에 의해 손실 압축 방식을 이용해서 함께 압축되는 샘플링 위치들의 행들은, 문제의 처리 스테이지에 의해 출력되는 면의 복수의 블록들(타일들)로부터 취해질 수 있다(바람직하게는 취해진다). Thus, for example, one or more of the processing stages is configured to output (operate) with regions in the form of two-dimensional blocks (arrays) of sampling locations (ie "tiles"), display If the controller compression scheme is configured to operate (compress) raster lines, i.e. rows of sampling positions together, rows of sampling positions that are compressed together using a lossy compression scheme by the processing stage in question are may be taken (preferably taken) from a plurality of blocks (tiles) of the surface output by

바람직한 그러한 실시예에 있어서는, 복수의 출력면 영역들(타일들)의 각각의 각 대응하는 행으로부터의 샘플링 위치들이 함께 압축된다. 예를 들면, 한 행의 타일들 내의 타일들의 각각의 맨 위 행들 내의 샘플링 위치들이 함께 압축될 수 있다. 이 타일들의 행 내의 타일들의 각각의 두 번째 행들 내의 샘플링 위치들이 함께 압축 등 될 수 있다.In a preferred such embodiment, the sampling positions from each corresponding row of each of the plurality of output surface regions (tiles) are compressed together. For example, sampling positions within each top row of tiles within a row of tiles may be compressed together. The sampling positions within each second row of tiles within this row of tiles may be compressed together, and the like.

이와 같이, 이들 실시예에 있어서는, 손실 압축 방식이 함께 압축하도록 구성되는 각 영역에 대한 샘플링 위치들은, 문제의 처리 스테이지에 의해 출력된 복수의 영역들(블록들)로부터 취해질 수 있다(바람직하게는 취해진다). 마찬가지로, 처리 스테이지 손실 압축 방식이 함께 압축하도록 구성되는 각 영역에 대한 샘플링 영역들은 주어진 출력 영역으로부터 샘플링 위치들의 모두를 구비할 필요가 없다(바람직하게는 구비하지 않는다). Thus, in these embodiments, the sampling positions for each region for which the lossy compression scheme is configured to compress together may be taken (preferably) from a plurality of regions (blocks) output by the processing stage in question. is taken). Similarly, the sampling regions for each region that the processing stage lossy compression scheme is configured to compress together need not (and preferably do not) have all of the sampling locations from a given output region.

이와 같이, 바람직한 실시예에 있어서는, 처리 스테이지 압축 방식은, 디스플레이 컨트롤러 압축 방식이 작동(압축)하도록 구성되는 영역들의 형상에 대응하는 (압축 윈도우를 이용하는) 형상을 갖는 손실 압축된 영역들을 생성하도록 구성된다(그러나 처리 스테이지(들)(예를 들면, 프레임 발생기들 중의 한 개 이상)에 의해 초기에 출력된 영역들의 형상은, 동일한 대응하는 형상을 가질 필요가 없다(일 실시예에 있어서는 갖지 않는다)). 이것에 의해 다시 처리 스테이지로부터의 압축된 출력 영역들이 디스플레이 컨트롤러 압축 방식과 (잠재적으로) 호환 가능하게 됨으로써, 그들은 (상기 설명한 것처럼) 적절히 디스플레이 컨트롤러 압축 해제/압축 스테이지들을 (잠재적으로) 바이패스할 수 있게 된다.Thus, in a preferred embodiment, the processing stage compression scheme is configured to generate lossy compressed regions having a shape (using a compression window) that corresponds to the shape of the regions that the display controller compression scheme is configured to operate on (compress). (However, the shape of the regions initially output by the processing stage(s) (e.g., one or more of the frame generators) need not (and in one embodiment do not) have the same corresponding shape. ). This again makes the compressed output regions from the processing stage (potentially) compatible with the display controller compression scheme, so that they can (potentially) bypass the display controller decompression/compression stages appropriately (as described above). there will be

이들 실시예에 있어서는, 디스플레이 컨트롤러 압축 방식이 (예를 들면, 출력면의 래스터 라인들을) 작동 및 생성하도록 구성되는 영역들의 형상에 대응하는 형상을 갖는 처리 스테이지에 의해 생성되는 압축된 출력 영역들뿐만 아니라, 처리 스테이지 압축 방식이 압축된 출력 영역들로서 생성하는 영역들의 사이즈가, 디스플레이 컨트롤러 압축 방식이 작동하는 영역들의 사이즈와 같게(예를 들면, 바람직하게는, 어떤 주어진 특정 영역에 대하여 압축되는 샘플링 위치들의 개수에 관해서) 설정되는 것이 바람직하다. 이것에 의해 다시 처리 스테이지로부터의 압축된 출력 영역들이 디스플레이 컨트롤러 압축 방식과 (잠재적으로) 호환 가능하게 된다.In these embodiments, the compressed output regions generated by the processing stage have a shape corresponding to the shape of the regions that the display controller compression scheme is configured to operate on and generate (eg, raster lines on the output surface). Rather, the size of the regions that the processing stage compression scheme produces as compressed output regions is the same as the size of the regions that the display controller compression scheme operates on (e.g., preferably, the sampling location being compressed for any given specific region). Regarding the number of ) is preferably set. This again makes the compressed output regions from the processing stage (potentially) compatible with the display controller compression scheme.

그렇지만, 디스플레이 컨트롤러 압축 방식이 작동하도록 구성되는 영역들과 다른 사이즈(예를 들면, 샘플링 위치들의 개수)를 갖는 처리 스테이지 압축 방식이 생성하는 압축된 출력 영역과 같은, 다른 구성도 원한다면 또한 혹은 대신에 가능할 것이다.However, other configurations may also or instead be desired, such as a compressed output area generated by a processing stage compression scheme having a different size (eg number of sampling locations) than the regions the display controller compression scheme is configured to operate on. It will be possible.

알 수 있는 바와 같이, 그것은 면을 구성하는 출력 영역들(예를 들면, 타일들)이 동시에 생성되지 않는 경우일 수 있다(실시예에 있어서는 경우이다). 이것은 예를 들면, 타일 기반의 시스템의 경우일 수도 있다.As can be seen, it may be the case that the output regions (eg tiles) constituting the face are not created simultaneously (which is the case in the embodiment). This may be the case for tile-based systems, for example.

다수의 출력면 영역들로부터의 샘플링 위치들이 함께 압축되는 경우, 손실 압축은 일단 관련 영역들(예를 들면, 타일들)의 모두가 발생되었다면 수행될 수도 있다. 그렇지 않으면, 손실 압축은 "대충 그때그때 봐 가며(on-the-fly)", 즉 영역들(타일들)이 발생되고 있는 동안에 수행될 수도 있다(바람직하게는 수행된다). 즉, 각 출력 영역(타일)이 발생함에 따라, 그 타일의 관련 샘플링 위치들(예를 들면, 샘플링 위치 행)이 그전에 발생한 출력 영역들(타일들)로부터의 어떤 이미 압축된 샘플링 위치들(예를 들면, 대응하는 샘플링 위치 행들)과 함께 압축되는 것이 바람직하다. 이 후자의 실시예에 있어서는, 압축 동작에 필요한 어떤 상태 정보는 바람직하게는 나중의 영역들(타일들)이 이미 압축된 샘플링 위치들과 함께 적절히 압축되도록 세이브되어 예를 들면 타일에서 타일로 이월된다. Where sampling locations from multiple output surface regions are compressed together, lossy compression may be performed once all of the relevant regions (eg tiles) have been generated. Otherwise, lossy compression may (preferably) be performed "on-the-fly", i.e., while regions (tiles) are being generated. That is, as each output region (tile) occurs, its associated sampling locations (e.g., sampling location row) are replaced by any previously compressed sampling locations (e.g., sampling location row) from previously occurring output regions (tiles). For example, corresponding sampling position rows) are preferably compressed together. In this latter embodiment, any state information necessary for the compression operation is preferably saved so that later regions (tiles) are properly compressed together with the already compressed sampling positions, e.g. carried over from tile to tile. .

또 다른 바람직한 실시예에 있어서는, 처리 스테이지 손실 압축 방식(들)은, 디스플레이 컨트롤러 압축 방식이 작동(압축)하도록 구성되는 영역들의 형상을 갖는 영역들을 (반드시) 압축하지 않는다. 예를 들면, 처리 스테이지 손실 압축 방식은, 디스플레이 컨트롤러 손실 압축 방식이 작동 및 생성할 수도 있는 출력면의 예를 들면, 래스터 라인들에 대응하는 압축된 영역들을 생성하는 것보다는, 샘플링 위치들(예를 들면, 타일 혹은 타일들)의 주어진 2차원 블록에 대한 샘플링 위치들을 압축하는 역할을 할 수 있고, 바람직하게는 역할을 한다. In another preferred embodiment, the processing stage lossy compression scheme(s) do not (necessarily) compress regions having the shape of the regions that the display controller compression scheme is configured to operate on (compress). For example, a processing stage lossy compression scheme may select sampling locations (eg eg, a tile or tiles) may serve to compress sampling positions for a given two-dimensional block of tiles), and preferably serves.

이 경우, 처리 스테이지 손실 압축 방식은 압축되어야 하는 영역들에 대해 구성될 수 있고, 예를 들면 블록 기반 방식일 수 있지만, 바람직한 실시예에 있어서는, 처리 스테이지 손실 압축 방식은 선형 압축 방식이고, 반면에 출력면의 행들을 압축하는 것보다는, 그것은 출력면의 2차원 블록들에 대한 샘플링 위치 데이터를 차례로 선형 압축한다.In this case, the processing stage lossy compression scheme can be configured for the regions to be compressed, and can be block-based, for example, but in a preferred embodiment, the processing stage lossy compression scheme is a linear compression scheme, whereas Rather than compressing the rows of the output plane, it linearly compresses the sampling position data for the two-dimensional blocks of the output plane in turn.

선형 압축 방식을 이용해서, 디스플레이 컨트롤러 압축 방식(즉, 선형 방식이면)과의 일부 호환성이 유지될 수 있지만, 예를 들면, 래스터 라인들보다는 처리 스테이지에 의해 생성된 출력면의 각각의 블록들에 선형 방식을 적용함으로써, 처리 스테이지 작동들에 대한 출력면의 바람직한 포맷과의 호환성도 유지될 수 있다. By using a linear compression scheme, some compatibility with display controller compression schemes (i.e., if linear) can be maintained, but for example in individual blocks of the output surface generated by the processing stage rather than raster lines. By applying a linear approach, compatibility with the desired format of the output surface for processing stage operations can also be maintained.

따라서 이것은 처리 스테이지들 중의 한 개 이상에 의해 출력(작동)하고자 하는 영역들의 사이즈 및/또는 형상이, 디스플레이 컨트롤러 압축 방식이 작동(압축)하도록 구성되는 영역들의 사이즈 및/또는 형상과 같지 않은 경우에 특히 유용할 수도 있다.Thus, this means that if the size and/or shape of the regions to be output (acted on) by one or more of the processing stages is not the same as the size and/or shape of the regions the display controller compression method is configured to act on (compress). It may be particularly useful.

이와 같이, 특히 바람직한 실시예에 있어서는, 처리 스테이지 손실 압축 방식은 선형 손실 압축 방식, 바람직하게는 DSC(Display Stream Compression)을 이용하지만, 출력면에서의 샘플링 위치들의 선형 영역들에 대해서 보다는, 문제의 출력면의 샘플링 위치들(예를 들면, 바람직하게는 타일들)의 2차원 어레이들(블록들)에 대한 샘플링 위치 값들(데이터 값들)을 선형 압축하도록 동작한다.Thus, in a particularly preferred embodiment, the processing stage lossy compression scheme uses a linear lossy compression scheme, preferably Display Stream Compression (DSC), but for linear regions of sampling locations on the output side, rather than for linear regions of the problem. It operates to linearly compress sampling location values (data values) for two-dimensional arrays (blocks) of sampling locations (eg, preferably tiles) on the output surface.

이것은 원하면 어떤 방식으로든 행해질 수도 있다. 예를 들면, 하나의 특히 바람직한 실시예에 있어서는, 각 출력영역이 샘플링 위치들(즉, 타일)의 2차원 블록(어레이)을 구비하는 경우, 각 출력영역의 샘플링 위치들의 복수의 행들이 차례대로, 예를 들면 행 단위(즉, 제1 행, 제2 행, 제3 행 등)로 함께 압축되는 것이 바람직하다.This may be done in any way if desired. For example, in one particularly preferred embodiment, where each output region comprises a two-dimensional block (array) of sampling positions (ie tiles), the plurality of rows of sampling positions of each output region are sequentially , e.g. row by row (i.e. 1st row, 2nd row, 3rd row, etc.) are preferably compressed together.

이와 같이, 일 실시예에 있어서는, 디스플레이 컨트롤러가 디스플레이에 제공하는 출력면의 각 영역은, 출력면의 샘플링 위치들의 단 한 개의 행만을 구비하고; 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 각 손실 압축된 영역은, 복수의 행의 샘플링 위치들을 구비하며, 각 압축된 영역의 복수의 행의 샘플링 위치들은 차례대로 함께 선형 압축된다.Thus, in one embodiment, each area of the output surface that the display controller provides to the display has only one row of sampling positions of the output surface; Each lossy compressed region output by at least one of the one or more processing stages has a plurality of rows of sampling positions, and the plurality of rows of sampling positions of each compressed region are in turn linearly compressed together.

샘플링 위치들은, 물론 어떤 적절한 원하는 순서 또는 시퀀스를 이용해서 함께 압축될 수 있다. 예를 들면, 다양한 실시예에 있어서는, 샘플링 위치들은 Hilbert 곡선을 따라, 혹은 z-order(Morton Order) 등을 이용해서 함께 압축될 수도 있다.The sampling locations may, of course, be compressed together using any suitable desired order or sequence. For example, in various embodiments, sampling locations may be compressed together along a Hilbert curve, or using a z-order (Morton Order), or the like.

알 수 있는 바와 같이, 이 방식으로 압축된 영역들은 디스플레이 컨트롤러 압축 방식과 직접 호환되지 않을 수도 있으므로, (상기 설명한 것처럼) 디스플레이 컨트롤러 압축 해제/압축 스테이지들을 바이패스할 수 없을 수도 있다.As can be seen, regions compressed in this way may not be directly compatible with the display controller compression scheme, so it may not be possible to bypass the display controller decompression/compression stages (as described above).

그럼에도 불구하고, 이 방식으로 처리 스테이지 출력 영역들을 압축하는 것은, 예를 들면 타일 기반 데이터 처리 시스템에서 유리할 수 있는, 각 영역(타일)의 완전한 상태가 처리 동작 내내 유지될 수 있기 때문에 특히 유용하고 편리하지만, 압축된 영역에 대해 생성된 노이즈 특성들(시각적 아티팩트들)은 디스플레이 컨트롤러 손실 압축 방식(예를 들면, DSC)에 의해 생성된 노이즈 특성들(시각적 아티팩트들)과 유사한 경향이 있을 것이므로, 즉, 표시되는 화상의 품질이 악영향을 받지 않아야 한다. Nonetheless, compressing processing stage output regions in this way is particularly useful and convenient because the integrity of each region (tile) can be maintained throughout the processing operation, which can be advantageous, for example, in tile-based data processing systems. However, since the noise characteristics (visual artifacts) generated for the compressed region will tend to be similar to the noise characteristics (visual artifacts) generated by the display controller lossy compression scheme (e.g., DSC), i.e. However, the quality of the displayed picture must not be adversely affected.

이들 방식에 있어서는, 처리 스테이지 압축 방식은 문제의 처리 스테이지가 개별적으로 생성하는 샘플링 위치 블록들(타일들)을 압축할 수 있다(하나의 바람직한 실시예에 있어서는, 이것은 이미 행해진 것이다). 이것은 문제의 처리 스테이지 또는 스테이지들의 작동과의 호환성을 유지하는 것을 도울 것이다.In these schemes, the processing stage compression scheme can compress sampling location blocks (tiles) that the processing stage in question individually creates (in one preferred embodiment, this has already been done). This will help maintain compatibility with the operation of the processing stage or stages in question.

그에 대응하여, 압축되는 샘플링 위치들의 각 세트는, 처리 스테이지의 단 한 개의 출력영역(예를 들면, 처리 스테이지에 의해 출력된 타일)에서 기인할 수 있고(예를 들면, 선형 압축 방식의 윈도우(필터) 사이즈에 의존하는, 처리 스테이지의 영역의 예를 들면, 모두 또는 일부일 수도 있다), 혹은 (예를 들면, 압축 방식 윈도우가 단 한 개의 출력영역(타일)보다 큰 경우에) 처리 스테이지에 의해 출력된 2개 이상의 영역들(예를 들면, 타일들)로부터 형성될 수도 있다.Correspondingly, each set of sampling locations to be compressed may result from only one output region of a processing stage (e.g., a tile output by a processing stage) (e.g., a window of a linear compression scheme). filter) size dependent, e.g. all or part of the area of the processing stage), or by processing stage (e.g. if the compression scheme window is larger than only one output area (tile)). It may also be formed from two or more output areas (eg, tiles).

이들 구성에 있어서, 선형 압축되는 샘플링 위치 블록들(영역들)은, 디스플레이 컨트롤러 압축 방식이 생성(작동)하는 압축된 출력면 영역들의 사이즈와 (예를 들면, "블록"으로서 압축되는 샘플링 위치들의 개수에 관해서) 사이즈가 다를 수도 있지만, 바람직한 실시예에 있어서는, 압축되는 영역들(블록들)의 사이즈는 디스플레이 컨트롤러 압축 방식이 생성(압축)하는 영역들의 사이즈와 같게 된다. 이것은 디스플레이 컨트롤러 압축 방식과 호환되는 것을 가능하게 하는 것을 도울 것이다.In these configurations, the sampling location blocks (regions) that are linearly compressed depend on the size of the compressed output surface regions that the display controller compression method creates (operates) (e.g., the sampling locations that are compressed as "blocks"). Although the size may be different (in terms of number), in a preferred embodiment, the size of the areas (blocks) to be compressed will be the same as the size of the areas that the display controller compression method creates (compresses). This will help enable compatibility with the display controller compression scheme.

예를 들면, 데이터 처리 시스템에서 나중의 선형 압축 방식과 호환되는 것을 가능하게 하도록 선형 압축 방식을 이용해서 블록 기반 출력을 압축하는 상기의 방식들은 그 자체로 신규하고 유리할 수도 있다고 생각된다.For example, it is contemplated that the above schemes of compressing block-based output using linear compression schemes to enable compatibility with later linear compression schemes in data processing systems may themselves be novel and advantageous.

이와 같이, 본 발명의 추가 국면에 의하면, 출력 데이터 어레이를 함께 구성하는 데이터 값들의 복수의 2차원 블록들로서 생성되는 상기 출력 데이터 어레이를 선형 압축하는 방법이 제공되고, 이 방법은,Thus, according to a further aspect of the present invention there is provided a method for linearly compressing an output data array that is generated as a plurality of two-dimensional blocks of data values that together make up the output data array, the method comprising:

상기 출력 데이터 어레이를 구성하는 한 개 이상의 2차원 데이터값 블록들로부터 복수의 데이터 위치 행들로부터의 데이터 값들을 연결시킴으로써 선형 압축 방식을 이용해서 압축되는 출력 어레이의 한 행의 데이터 값들을 형성하는 단계와,forming a row of data values of an output array that is compressed using a linear compression method by concatenating data values from a plurality of data location rows from one or more two-dimensional data value blocks constituting the output data array; ,

이렇게 형성된 행의 데이터 값들을 선형 압축해서 상기 출력 데이터 어레이에 대한 데이터 값들의 선형 압축된 출력 블록을 제공하는 단계를 포함한다.and linearly compressing the data values of the rows thus formed to provide a linearly compressed output block of data values for the output data array.

본 발명의 추가 국면에 의하면, 데이터 처리 시스템의 처리 스테이지가 제공되고, 이 처리 스테이지는,According to a further aspect of the invention there is provided a processing stage of a data processing system comprising:

출력 데이터 어레이를 함께 구성하는 데이터 값들의 복수의 2차원 블록들로서 상기 출력 데이터 어레이를 생성하고;generating the output data array as a plurality of two-dimensional blocks of data values that together constitute the output data array;

상기 출력 데이터 어레이를 구성하고 있는 한 개 이상의 2차원 데이터 값 블록들로부터 복수의 데이터 위치 행들로부터의 데이터 값들을 연결시킴으로써 선형 압축 방식을 이용해서 압축되는 출력 어레이의 데이터 값들의 행을 형성하고;forming rows of data values of an output array that are compressed using a linear compression scheme by concatenating data values from a plurality of data location rows from one or more two-dimensional data value blocks constituting the output data array;

이렇게 형성된 데이터 값들의 행을 선형 압축해서 상기 출력 데이터 어레이에 대한 데이터 값들의 선형 압축된 출력 블록을 제공하도록 구성된 처리 회로를 구비한다.and processing circuitry configured to linearly compress the rows of data values thus formed to provide a linearly compressed output block of data values for the output data array.

본 기술분야의 당업자가 알 수 있는 것처럼, 본 발명의 이들 국면은, 적절하게, 여기에 기술된 본 발명의 바람직한 선택적 특징들 중의 한 개 이상 또는 모두를 포함할 수 있고, 바람직하게는 포함한다.As will be appreciated by those skilled in the art, these aspects of the present invention may, and preferably include, as appropriate, one or more or all of the preferred optional features of the present invention described herein.

이와 같이, 예를 들면, 출력 데이터 어레이는 표시용 출력면으로서 혹은 이 출력면을 형성하기 위해서 사용되는 출력면인 것이 바람직하고, 데이터 값들의 2차원 블록들은, 출력면을 생성하고 있는 처리 스테이지가 그것의 출력으로서 작동 및 생성하는 각각의 처리 타일들인 것이 바람직하다.Thus, for example, the output data array is preferably an output surface that is used as, or to form, an output surface for display, and the two-dimensional blocks of data values are formed by a processing stage generating the output surface. Preferably it is each processing tile that acts and creates as its output.

이에 대응하여, 이 프로세서는, 상기의 처리가 출력 데이터 어레이의 선형 압축된 버전을 제공하기 위해서 출력 데이터 어레이를 구성하는 모든 블록들에 대해서 반복되는 것이 바람직하다. Correspondingly, the processor preferably repeats the above process for all blocks comprising the output data array to provide a linearly compressed version of the output data array.

복수의 데이터 위치 행들로부터의 데이터 값들이 연결되어 있는 순서가 원하는 대로 선택될 수 있다. 특히 바람직한 실시예에 있어서는, 복수의 데이터 위치 행들로부터의 데이터 값들은, Hilbert order; Z-order; 및 데이터 값 블록 행 단위 중 하나를 이용해서 연결된다. The order in which the data values from the plurality of data location rows are concatenated can be selected as desired. In a particularly preferred embodiment, the data values from the plurality of data location rows are of Hilbert order; Z-order; and data value block row units.

일 실시예에 있어서는, 선형 압축 방식을 이용해서 압축되는 데이터 값들의 행은 데이터 값들의 출력 어레이를 구성하고 있는 한 개의 데이터 값 블록으로부터 복수의 데이터 위치 행들로부터의 (적어도) 데이터 값들을 연결시킴으로써(예를 들면, 적절히, 블록의 제1 행과 블록의 제2 행과 블록의 제3 행을 연결시킴으로써) 형성된다.In one embodiment, a row of data values that is compressed using a linear compression scheme is formed by (at least) concatenating data values from a plurality of data location rows from one data value block constituting an output array of data values. eg by connecting a first row of blocks, a second row of blocks, and a third row of blocks, as appropriate).

이에 대응하여, 또 다른 실시예에 있어서는, 선형 압축 방식을 이용해서 압축되는 데이터 값들의 행은, 출력 데이터 어레이를 구성하고 있는 복수의 다른 데이터 값 블록들로부터 데이터 위치 행들로부터의 데이터 값들을 연결시킴으로써, 바람직하게는 출력 어레이를 구성하고 있는 데이터 값 블록들의 행의 복수의 데이터 값 블록들의 각각으로부터 각각의 대응하는 데이터 위치 행들(예를 들면, n번째 행)을 연결시킴으로써(예를 들면, 바람직하게는, 선형 압축되는 데이터 값들의 하나의 행을 형성하기 위해서 데이터 값 블록들의 행에서의 데이터 값 블록들의 각각으로부터 제1 데이터 위치 행을 연결시키는 것과, 선형 압축되는 데이터 값들의 제2 행을 형성하기 위해서 데이터 값 블록들의 행에서의 데이터 값 블록들의 각각으로부터 제2 행 데이터 값들을 연결시키는 것 등에 의해서) 형성된다.Correspondingly, in another embodiment, a row of data values that is compressed using a linear compression scheme is obtained by concatenating data values from data location rows from a plurality of other data value blocks that make up the output data array. , preferably by concatenating each corresponding data location row (e.g., the n-th row) from each of a plurality of data value blocks of a row of data value blocks constituting the output array (e.g., preferably concatenates a first data location row from each of the data value blocks in the row of data value blocks to form one row of data values that are linearly compressed, and forms a second row of data values that are linearly compressed. by concatenating second row data values from each of the data value blocks in the row of data value blocks, etc.).

또한, 디스플레이 컨트롤러 손실 압축 방식에 근거한 및/또는 이 디스플레이 컨트롤러 손실 압축 방식을 (예를 들면, 그들의 특징들에 관해서) 매치하도록 구성되는 손실 압축 방식의 다른 형태를 이용하는 것도 가능할 것이다.It may also be possible to use other types of lossy compression schemes that are based on and/or configured to match (eg, in terms of their characteristics) the display controller lossy compression schemes.

이 경우(그렇지 않으면), 처리 스테이지 압축 방식은 어떤 적절한 원하는 방식으로든 디스플레이 컨트롤러 손실 압축 방식에 "맞춰"질 수 있다. 예를 들면, 주어진 압축 방식의 출력의 최하위 비트 중의 한 개 이상은, 방식 손실을 일으켜 그것을 디스플레이 컨트롤러 압축 방식에 맞추기 위해서 폐기될 수 있다. 그렇지 않으면 혹은 추가로, 처리 스테이지 손실 압축 방식의 압축비(레이트 컨트롤러(rate controller))는 디스플레이 컨트롤러 압축 방식에 근거해서 제어될 수 있다.In this case (or not), the processing stage compression scheme may be “fitted” to the display controller lossy compression scheme in any suitable and desired manner. For example, one or more of the least significant bits of the output of a given compression scheme may be discarded in order to conform it to the display controller compression scheme, resulting in format loss. Alternatively or additionally, the compression ratio (rate controller) of the processing stage lossy compression scheme may be controlled based on the display controller compression scheme.

예를 들면, 일 실시예에 있어서는, 손실 압축 방식은 예를 들면, 최하위 비트 중의 한 개 이상을 폐기함으로써, 손실로 이루어지는 AFBC(ARM Frame Buffer Compression)의 버전을 포함할 수도 있다.For example, in one embodiment, a lossy compression scheme may include a version of ARM Frame Buffer Compression (AFBC) that is lossy, for example by discarding one or more of the least significant bits.

바람직한 실시예에 있어서는, 디스플레이 컨트롤러는 압축된 출력을 제공하는 처리 스테이지(들) 중의 한 개 이상에 (예를 들면, 바람직하게는 디스플레이 컨트롤러가 디스플레이에 제공하고 있는 그것의 손실 압축된 출력과 관련되어 있는) (피드백) 정보를 보내도록 작동된다. 이 정보는 그 후에 문제의 처리 스테이지(들)의 손실 압축 방식을 제어(즉, 조정)하기 위해서 사용되는 것이 바람직하다. 이와 같이, 처리 스테이지 손실 압축 방식은, (현재 사용 중인) 디스플레이 컨트롤러 손실 압축 방식과 관련되어 있는 정보(피드백)에 근거해서 제어되는 것이 바람직하다.In a preferred embodiment, the display controller is directed to one or more of the processing stage(s) providing a compressed output (e.g., preferably the display controller is associated with its lossy compressed output that it is providing to the display). It is operated to send (feedback) information. This information is then preferably used to control (ie, adjust) the lossy compression scheme of the processing stage(s) in question. As such, the processing stage lossy compression scheme is preferably controlled based on information (feedback) related to the (currently in use) display controller lossy compression scheme.

하나의 바람직한 실시예에 있어서는, 피드백 정보는 디스플레이 컨트롤러 압축의, 특징들, 바람직하게는 손실에 관한 정보를 포함하고, 바람직하게는 처리 스테이지 손실 압축 방식의 압축비(레이트 컨트롤러)를 제어하기 위해서 사용된다. 예를 들면, 일 실시예에 있어서는, 특정(예를 들면, 현재 및/또는 이전) 면 또는 면들(프레임 또는 프레임들)에 대한 디스플레이 컨트롤러 압축비는, 예를 들면 다음 면 또는 면들(프레임 또는 프레임들)의 세트에 대해서, 처리 스테이지 손실 압축 방식의 압축비를 제어하기 위해서 사용될 수 있다. 이것은 처리 스테이지 손실 압축 방식이 디스플레이 컨트롤러 압축 방식과 적절히 "매치"되는 것을 보장할 수 있다.In one preferred embodiment, the feedback information includes information about the characteristics, preferably loss, of the compression of the display controller, and is preferably used to control the compression ratio (rate controller) of the processing stage lossy compression scheme. . For example, in one embodiment, the display controller compression ratio for a particular (eg, current and/or previous) face or faces (frame or frames) is, for example, the next face or faces (frame or frames). ), can be used to control the compression ratio of the processing stage lossy compression scheme. This can ensure that the processing stage lossy compression scheme properly “matches” the display controller compression scheme.

처리 스테이지들 및 디스플레이 컨트롤러 등은 전체적으로(예를 들면, 전체 프레임으로서) 그들 각각의 면들을 처리(예를 들면, 발생 및/또는 그렇지 않으면 처리)할 수 있다. 이 경우, 출력면 영역은 전체 프레임을 포함할 것이다. 그렇지만, 바람직한 실시예에 있어서는, 처리 스테이지들 중의 적어도 하나, 바람직하게는 모두 및/또는 디스플레이 컨트롤러는 문제의 전체 면(예를 들면, 프레임)의 각각의 서브 영역들(서브 에어리어)로서 그들의 각각의 면을 처리한다.The processing stages and display controller, etc. may process (eg, generate and/or otherwise process) their respective faces as a whole (eg, as a full frame). In this case, the output surface area will contain the entire frame. However, in a preferred embodiment, at least one, preferably all of the processing stages and/or the display controller have their respective sub-regions (sub-areas) of the entire surface (eg frame) in question. treat the side

이 경우, 고려 및 사용되는 면들의 영역들은 각각 문제의 면(의 에어리어)의 일부분(일부이지 모두는 아닌)을 포함할 것이다(즉, 면 또는 면들은 복수의 영역으로 분할된다). 이 면들의 영역들은 각각 문제의 면의 어떤 적절한 원하는 영역(에어리어)을 나타낼 수 있다. 문제의 면이 본 발명의 방식으로 식별되어 처리될 수 있는 전체 면의 일부를 각각 나타내는 복수의 식별가능한 작은 영역들로 나눠지거나 분할되는 것이 가능하기만 하면, 면들을 영역들로 세분하는 것이 원하는 대로 행해질 수 있다.In this case, the regions of the faces considered and used will each include a portion (some but not all) of (the area of) the face in question (ie the face or faces are divided into a plurality of regions). The areas of these faces may each represent any suitable desired area (area) of the face in question. Subdivision of faces into regions is as desired, as long as it is possible for the face in question to be subdivided or divided into a plurality of small identifiable regions, each representing a portion of the overall face that can be identified and processed in the manner of the present invention. can be done

바람직한 실시예에 있어서는, 영역들은 문제의 면을 나타내는 데이터의 전체 어레이의 각 부분에 대응하는 데이터의 각 블록에 대응한다(본 기술분야에서 알려져 있는 것처럼, 면들은 보통 샘플링 위치(예를 들면, 픽셀) 데이터의 어레이들로서 표현될 것이고, 어레이들로서 저장될 것이다).In a preferred embodiment, regions correspond to each block of data corresponding to each portion of the overall array of data representing the face in question (as is known in the art, faces are usually sampling locations (e.g., pixels). ) will be represented as arrays of data, and stored as arrays).

모든 면들이 같은 사이즈 및 형상 영역들로 분할될 수 있고(하나의 바람직한 실시예에 있어서는 이것이 행해진다), 혹은 그렇지 않으면, 다른 면들이 다른 사이즈의 형상들 및 영역들로 분할될 수 있다.All faces can be divided into regions of the same size and shape (in one preferred embodiment this is done), or else the different faces can be divided into regions and regions of different sizes.

일 실시예에 있어서의 각 면 영역(예를 들면, 데이터의 블록)은, (영역들이 원한다면 겹쳐질 수 있지만) 면(전체 데이터 어레이)의 다른 부분(영역)을 나타낼 수도 있다. 각 영역(데이터 블록)은 면 내부의 복수의 데이터 위치들(샘플링 위치들)과 같은, 면(데이터 어레이)의 적절한 부분(에어리어)을 이상적으로 나타내어야 한다. 적절한 영역 사이즈는 면 데이터 어레이 내의 예를 들면, 8×8, 16×16 혹은 32×32 데이터 위치들일 수 있다.Each face region (eg, block of data) in one embodiment may represent a different portion (region) of the face (the entire array of data) (although the regions may overlap if desired). Each area (data block) should ideally represent a suitable portion (area) of a surface (data array), such as a plurality of data locations (sampling locations) within the surface. A suitable region size may be, for example, 8x8, 16x16 or 32x32 data locations in a plane data array.

일부 실시예에 있어서는, 이 면들이 바람직하게는 정사각형 또는 직사각형의 형태로, 불규칙한 사이즈 및 형상의 영역들(예를 들면, 데이터의 블록들)로 분할된다. 그렇지만, 이것은 필수적인 것은 아니고 다른 방식도 원한다면 사용될 수 있다.In some embodiments, these faces are divided into regions (eg, blocks of data) of irregular size and shape, preferably in the form of squares or rectangles. However, this is not required and other methods may be used if desired.

일부 실시예에 있어서는, 각 면 영역은, 면을 렌더링(rendering)하거나 발생하거나 그렇지 않으면 제공하는, 그래픽 프로세서 혹은 비디오 엔진 혹은 컴포지션 스테이지 혹은 카메라 ISP 등이 그것의 출력으로서 생성하는 처리 타일에 대응한다. 이것은, 그래픽 프로세서, 디스플레이 엔진 혹은 컨트롤러가 직접 타일들을 발생할 것이므로, 본 발명을 실현하는 특히 간단한 방법이고, 그래서 어떤 추가 처리가 본 발명의 방법으로 간주되는 면 영역들을 "생성"할 필요가 없을 것이다.In some embodiments, each face area corresponds to a processing tile that a graphics processor or video engine or composition stage or camera ISP or the like that renders, generates, or otherwise provides a face creates as its output. This is a particularly simple way of realizing the present invention, as the graphics processor, display engine or controller will directly generate the tiles, so that no additional processing will be required to "create" the surface regions considered in the present method.

(본 기술분야에서 알려져 있는 바와 같이, 예를 들면 타일 기반 렌더링에 있어서, (예를 들면, 보통은, 렌더링되고 있는 장면을 표시하기 위해서 표시되는) 렌더링 프로세스의 2차원 출력 어레이 혹은 프레임("렌더 타겟")은, 렌더링 프로세스를 위해서, 보통 "타일들"이라고 불리는 복수의 작은 영역들로 세분 혹은 분할된다. 이 타일들(영역들)은 각각 별도로(보통 차례로) 렌더링된다. 이 렌더링된 타일들(영역들)은 그 후에 예를 들면, 표시용, 완벽한 출력 어레이(프레임)(렌더 타겟)를 형성한다.(As is known in the art, for example in tile-based rendering, the two-dimensional output array or frame of the rendering process (e.g., normally displayed to display the scene being rendered) A target") is, for the purpose of the rendering process, subdivided or divided into a plurality of small areas, usually called "tiles". Each of these tiles (areas) is rendered separately (usually in turn). These rendered tiles The (regions) then form a complete output array (frame) (render target), eg for display.

"타일링(tiling)" 및 "타일 기반" 렌더링을 위해 보통 사용되는 다른 용어들은 "청킹(chunking)"(이 영역들은 "청크(chunks)"라고 불린다) 및 "버켓(bucket)" 렌더링을 포함한다. "타일" 및 "타일링"이라는 용어는 편의상 여기에서 사용될 것이지만, 이들 용어는 모든 대안 및 같은 용어 및 기술을 포괄하도록 의도되어 있다고 이해해야 한다.Other terms commonly used for "tiling" and "tile-based" rendering include "chunking" (these areas are called "chunks") and "bucket" rendering . The terms "tile" and "tiling" will be used herein for convenience, but it should be understood that these terms are intended to encompass all alternatives and like terms and techniques.

본 발명의 이들 구성에 있어서는, 렌더링 및/또는 컴포지션 등의 목적을 위해 면들이 분할되는 타일들은 어떤 원하는 적절한 사이즈 또는 형상일 수 있다. 일부 실시예에 있어서의 타일들은, 필수적인 것은 아니지만, 본 기술분야에 알려져 있는 것처럼, 모두 같은 사이즈 및 형상이다. 몇몇 실시예에 있어서는, 각 타일이 직사각형(정사각형을 포함)이고, 바람직하게는 사이즈가 8×8, 16×16, 32×32, 32×4 혹은 32×1 샘플링 위치들이다. 32×4 혹은 32×1과 같은, 정사각형 직사각형이 아닌 영역들은 디스플레이에 출력하는 데에 더 적절할 수도 있다.In these configurations of the present invention, the tiles from which faces are divided for purposes such as rendering and/or composition may be of any desired suitable size or shape. The tiles in some embodiments are, but need not be, all of the same size and shape, as is known in the art. In some embodiments, each tile is rectangular (including square), preferably 8x8, 16x16, 32x32, 32x4 or 32x1 sampling positions. Areas that are not square rectangles, such as 32x4 or 32x1, may be more suitable for output to a display.

몇몇 실시예에 있어서는, 본 발명은 렌더링 등, 프로세스가 작동(생성)하는 타일들에 대해 다른 사이즈 및/또는 형상의 면 영역들을 이용해서 수행될 수도 있고, 바람직하게는 또한 혹은 대신에 수행된다. In some embodiments, the present invention may be performed, preferably also or instead, using surface regions of different sizes and/or shapes for the tiles on which a process, such as rendering, operates (generates).

예를 들면, 몇몇 실시예에 있어서는, 본 발명의 방식에서 고려되는 면 영역들은 복수의 "처리" 타일들의 한 세트로 구성될 수도 있고, 및/또는 처리 타일의 서브 부분만으로 구성될 수도 있다. 이들 경우에는, 문제의 "처리" 타일 또는 타일들로부터 원하는 면 영역들을 실제로 "발생"하는 중간 스테이지가 있을 수도 있다. For example, in some embodiments, surface regions contemplated in the manner of the present invention may consist of a set of multiple “treatment” tiles, and/or may consist of only sub-portions of treatment tiles. In these cases, there may be an intermediate stage that actually "generates" the desired face regions from the "process" tile or tiles in question.

이들 구성에 있어서, 한 면이 복수의 영역으로 이루어지는 것으로 처리되는 경우, 본 발명의 기술은 복수의, 바람직하게는 각각의 면의 영역에 대해서 사용되어야 하고 바람직하게는 사용된다. 이와 같이, 바람직한 실시예에 있어서는, 한 면의 복수의 영역들, 바람직하게는 각 영역은 본 발명의 방법으로 처리된다. 이렇게 하여, 전체 출력면(예를 들면)은 본 발명의 프로세스에 의해 발생될 것이다.In these configurations, when one side is treated as being composed of a plurality of areas, the technique of the present invention should and is preferably used for a plurality of, preferably each area of the side. Thus, in a preferred embodiment, a plurality of areas, preferably each area, of a face are treated with the method of the present invention. In this way, the entire output surface (eg) will be generated by the process of the present invention.

본 발명은 주어진 표시용 출력면의 처리를 특히 참조해서 상기에서 설명되었지만, 본 기술분야의 당업자가 알 수 있는 것처럼, 본 발명은 표시용 복수의 출력면을 제공하기 위해서, 바람직하게는 디스플레이에 표시되는 출력면들(예를 들면, 프레임들)의 시퀀스를 제공하기 위해서 사용될 수 있고, 바람직하게는 사용된다.Although the present invention has been described above with particular reference to the processing of a given display output surface, as will be appreciated by those skilled in the art, the present invention is intended to provide a plurality of output surfaces for display, preferably display on a display. can be used, and is preferably used, to provide a sequence of output faces (eg frames) that are

데이터 처리 시스템의 다양한 스테이지들은, 예를 들면, 원하는 작동을 수행하도록 프로그램될 수 있는 프로그래머블 회로에 의해서, (즉, 변경될 수 없는 한 개 이상의 기능들에 전용되는) 예를 들면 한 개 이상의 고정된 기능 유닛(하드웨어)의 형태로, 혹은 한 개 이상의 프로그래머블 처리 스테이지들로서, 원하는 대로, 구현될 수도 있다. 고정된 기능 및 프로그래머블 스테이지들이 있을 수도 있다.The various stages of a data processing system may be, for example, one or more fixed (i.e., dedicated to one or more functions that cannot be changed), e.g., by programmable circuitry that can be programmed to perform desired operations. It may be implemented as desired in the form of a functional unit (hardware) or as one or more programmable processing stages. There may be fixed functions and programmable stages.

본 발명의 다양한 처리 스테이지들 중의 한 개 이상은 서로 별도의 회로 소자들로서 제공될 수도 있다. 추가로 혹은 대신에, 스테이지들 중의 일부 혹은 모두는 적어도 부분적으로는 공유 회로로 형성될 수도 있다.One or more of the various processing stages of the present invention may be provided as discrete circuit elements. Additionally or alternatively, some or all of the stages may be formed at least in part from shared circuitry.

본 발명의 다양한 스테이지들 중의 한 개 이상은 어떤 수신면들 및 모든 수신면들에 대하여 그것의 기능을 항상 수행하도록 작동될 수도 있다. 추가로 혹은 대신에, 한 개 이상의 스테이지들은 즉 원할 때 및/또는 적절한 경우에, 수신면들에 대해서 그것의 기능을 선택적으로 수행하도록 작동될 수도 있다.One or more of the various stages of the present invention may be operated to perform its function at all times for certain receiving surfaces and for all receiving surfaces. Additionally or alternatively, one or more stages may be operated to selectively perform their function with respect to the receiving surfaces, ie when desired and/or appropriate.

데이터 처리 시스템은, 또한 본 기술분야의 당업자에게 알려진 것처럼, 중앙처리장치, 그래픽 처리장치, 비디오 프로세서(코덱), 시스템 버스, 메모리 컨트롤러, 및 추가 소자들 중의 한 개 이상, 바람직하게는 모두를 구비할 수도 있고, 바람직하게는 구비한다.The data processing system also includes one or more, preferably all of, a central processing unit, a graphics processing unit, a video processor (codec), a system bus, a memory controller, and additional components, as known to those skilled in the art. It can be done, and it is preferably provided.

데이터 처리 시스템은 외부 메모리(예를 들면, 메모리 컨트롤러를 통해서), 한 개 이상의 로컬 디스플레이들, 및/또는 한 개 이상의 외부 디스플레이들 중의 (한 개 이상을 포함하는 구성에도 본 발명이 확장된다) 한 개 이상과 통신하도록 구성될 수도 있고, 바람직하게는 구성된다.The data processing system may include external memory (eg, via a memory controller), one or more local displays, and/or (the invention extends to a configuration that includes one or more) one or more external displays. It may be, and is preferably configured, to communicate with more than one.

일 실시예에 있어서는, 데이터 처리 시스템은 디스플레이 혹은 상기 디스플레이를 더 구비한다. 디스플레이 컨트롤러가 사용되는 디스플레이는 예를 들면, 스크린 또는 프린터와 같은, 어떤 적절한 원하는 디스플레이일 수도 있다.In one embodiment, the data processing system further includes a display or the display. The display on which the display controller is used may be any suitable desired display, such as, for example, a screen or a printer.

본 발명은 적절하게 구성된 마이크로프로세서 기반 시스템과 같은, 어떤 적절한 시스템에서든 구현될 수 있다. 일 실시예에 있어서는, 본 발명은 컴퓨터 및/또는 마이크로프로세서 기반 시스템에서 구현된다.The invention may be implemented in any suitable system, such as an appropriately configured microprocessor based system. In one embodiment, the invention is implemented in a computer and/or microprocessor based system.

본 발명의 다양한 기능들은 어떤 원하는 적절한 방식으로든 수행될 수 있다. 예를 들면, 본 발명의 기능들은, 원하는 대로, 하드웨어 혹은 소프트웨어로 구현될 수 있다. 이와 같이, 예를 들면, 달리 명시하지 않았지만, 본 발명의 다양한 기능 소자들 및 "수단들"은, 원하는 방식으로 작동하도록 프로그램될 수 있는 적절한 전용 하드웨어 소자들 및/또는 프로그래머블 하드웨어 소자들과 같은, 다양한 기능 등을 수행하도록 작동되는, 적절한 프로세서 또는 프로세서들, 컨트롤러 혹은 컨트롤러들, 기능 유닛들, 회로, 처리 로직, 마이크로프로서 구성 등을 구비할 수도 있다.The various functions of the present invention may be performed in any desired and suitable manner. For example, the functions of the present invention may be implemented in hardware or software, as desired. As such, for example, and although not expressly stated otherwise, the various functional elements and “means” of the present invention, such as suitable dedicated hardware elements and/or programmable hardware elements that can be programmed to operate in a desired manner, It may have a suitable processor or processors, controller or controllers, functional units, circuitry, processing logic, configuration as a microprocessor, etc., operable to perform various functions and the like.

여기에서는 본 기술분야의 당업자가 알 수 있는 것처럼, 본 발명의 다양한 기능 등은 주어진 프로세서에 대해서 병렬로 복제 및/또는 수행될 수도 있다는 점에 유념해야 한다. 마찬가지로, 다양한 처리 스테이지들은, 원한다면, 처리 회로 등을 공유할 수도 있다.It should be noted herein that, as will be appreciated by those skilled in the art, various functions and the like of the present invention may be replicated and/or performed in parallel on a given processor. Likewise, the various processing stages may share processing circuitry, etc., if desired.

상기 설명한 특정 기능들을 수행하는 데에 필요한 어떤 하드웨어에 따라, 그래픽 처리 파이프라인은 그 외에 그래픽 처리 파이프라인이 포함하는 보통의 기능 유닛들 중의 어느 한 개 이상 또는 모두를 포함할 수 있다. Depending on what hardware is required to perform the specific functions described above, the graphics processing pipeline may also include any one, more, or all of the normal functional units that the graphics processing pipeline includes.

또한, 기술된 본 발명의 실시예의 모두가, 여기에 기술된 특징들 중의 어느 한 개 이상 혹은 모두를 적절하게 포함할 수 있고, 일 실시예에 있어서는 포함한다는 것을 본 기술분야의 당업자가 알 수 있을 것이다.In addition, it will be appreciated by those skilled in the art that all of the described embodiments of the present invention may suitably include, and in one embodiment include, any one or more or all of the features described herein. will be.

본 발명에 따른 방법들은 적어도 부분적으로는 소프트웨어, 예를 들면 컴퓨터 프로그램들을 이용해서 구현될 수도 있다. 이와 같이 추가 실시예에서 볼 때, 본 발명은 데이터 프로세서 상에 인스톨될 때 여기에 기술된 방법들을 수행하는 데에 특히 적합한 컴퓨터 소프트웨어와, 프로그램 요소가 데이터 프로세서 상에서 실행될 때 여기에 기술된 방법들을 수행하기 위한 컴퓨터 소프트웨어 코드부들로 이루어지는 컴퓨터 프로그램 요소와, 프로그램이 데이터 처리 시스템 상에서 실행될 때 여기에 기술된 방법 혹은 방법들의 모든 스텝들을 수행하는 데에 적합한 코드로 이루어지는 컴퓨터 프로그램을 제공한다는 것을 알 수 있을 것이다. 데이터 프로세서는 마이크로프로세서 시스템, 프로그래머블 FPGA(Field Programmable Gate Array) 등일 수도 있다.The methods according to the invention may be implemented at least partly using software, for example computer programs. In this further embodiment, the present invention provides computer software that is particularly suitable for performing the methods described herein when installed on a data processor, and for performing the methods described herein when program elements are executed on the data processor. It will be appreciated that a computer program element consisting of computer software code portions to do so, and a computer program comprising code suitable for performing all the steps of the method or methods described herein when the program is executed on a data processing system. . The data processor may be a microprocessor system, a programmable field programmable gate array (FPGA), or the like.

본 발명은 또한 데이터 프로세서를 구비하는 마이크로프로세서 시스템, 렌더러 혹은 그래픽 프로세서를 작동시키는데 사용될 때 상기 데이터 프로세서와 함께, 상기 프로세서, 렌더러 혹은 시스템이 본 발명의 방법들의 스텝들을 수행하게 하는 소프트웨어로 구성되는 컴퓨터 소프트웨어 캐리어(computer sofware carrier)에도 확장된다. 그러한 컴퓨터 소프트웨어 캐리어는 ROM 칩, CD ROM, RAM, 플래시 메모리, 혹은 디스크와 같은 물리적 기억매체일 수 있고, 혹은 와이어를 이용하는 전자 신호, 광 신호 혹은 위성 등과 같은 무선 신호 등의 신호일 수 있다.The present invention also relates to a microprocessor system having a data processor, a computer configured with a data processor when used to operate a renderer or graphics processor, software that causes the processor, renderer or system to perform the steps of the methods of the present invention. It also extends to computer software carriers. Such a computer software carrier may be a physical storage medium such as a ROM chip, CD ROM, RAM, flash memory, or disk, or may be a signal such as an electronic signal using a wire, an optical signal, or a radio signal such as a satellite.

본 발명의 방법들의 모든 스텝들이 컴퓨터 소프트웨어에 의해 수행될 필요가 없으므로, 더 넓은 실시예에서는 본 발명은 여기서 설명된 방법들의 스텝들 중의 적어도 하나를 수행하기 위한 컴퓨터 소프트웨어 캐리어 상에 인스톨된 컴퓨터 소프트웨어 및 그러한 소프트웨어를 제공한다는 것을 더 알 수 있을 것이다.Since not all steps of the methods of the present invention need be performed by computer software, in a broader embodiment the present invention is directed to computer software installed on a computer software carrier for performing at least one of the steps of the methods described herein; and You may find out more about providing such software.

본 발명은 따라서 컴퓨터 시스템에 사용하기 위한 컴퓨터 프로그램 제품으로서 적절히 구현될 수도 있다. 그러한 구현은 컴퓨터 판독가능한 매체, 예를 들면 디스켓, CD ROM, ROM, RAM, 플래시 메모리, 혹은 하드 디스크와 같은, 유형, 비일시 매체 위에 고정된 일련의 컴퓨터 판독가능한 명령들을 포함할 수도 있다. 그것은 또한 모뎀 또는 다른 인터페이스 디바이스를 통해서, 광학 또는 아날로그 통신선들을 포함하지만 그것에 한정되지 않는, 유형 매체를 통해서, 혹은 마이크웨이브, 적외선 또는 다른 전송 기술을 포함하지만 그것에 한정되지 않는, 무선 기술을 무형으로 이용해서, 컴퓨터 시스템에 전송가능한 일련의 컴퓨터 판독가능한 명령들을 포함할 수 있다. 일련의 컴퓨터 판독가능한 명령들은 이전에 여기에 기술된 기능 중의 모두 또는 일부를 구현한다.The invention may accordingly be suitably implemented as a computer program product for use in a computer system. Such an implementation may include a set of computer readable instructions fixed on a tangible, non-transitory medium, such as a diskette, CD ROM, ROM, RAM, flash memory, or hard disk. It also uses intangible wireless technology, including but not limited to microwave, infrared or other transmission technology, through a modem or other interface device, through a tangible medium, including but not limited to optical or analog communication lines, or Thus, it may include a series of computer readable instructions transmittable to a computer system. A series of computer readable instructions implements all or some of the functionality previously described herein.

본 기술분야의 당업자는, 그러한 컴퓨터 판독가능한 명령들이 많은 컴퓨터 아키텍처 또는 오퍼레이팅 시스템에 사용하기 위한 다수의 프로그래밍 언어들로 기록될 수 있다는 것을 인식할 것이다. 또, 그러한 명령들은 반도체, 마그네틱(magnetic), 또는 옵티컬(optical)을 포함하지만 그것에 한정되지 않는, 현재나 미래의, 어떤 메모리 기술이든 이용해서 저장될 수도 있고, 또는 옵티컬, 적외선, 또는 마이크로웨이브를 포함하지만 그것에 한정되지 않는, 현재나 미래의, 어떤 통신 기술이든 이용해서 전송될 수도 있다. 그러한 컴퓨터 프로그램 제품은 인쇄 또는 전자 문서, 예를 들면 슈링크 래핑 소프트웨어(shrink wrapped sofware)가 첨부된 이동식 매체로서 분포될 수도 있고, 컴퓨터 시스템, 예를 들면, 시스템 ROM 또는 고정 디스크 위에 프리로드될 수도 있으며, 또는 네트워크, 예를 들면, 인터넷 또는 월드 와이드 웹(World Wide Web)을 통해서 서버 또는 전자 게시판으로부터 분포될 수도 있을 것으로 생각된다.Those skilled in the art will appreciate that such computer readable instructions may be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using any memory technology, present or future, including but not limited to semiconductor, magnetic, or optical, or optical, infrared, or microwave. It may be transmitted using any communication technology, present or future, including but not limited to. Such a computer program product may be distributed as a removable medium to which printed or electronic documents are affixed, for example shrink wrapped software, or may be preloaded onto a computer system, for example a system ROM or fixed disk. or may be distributed from a server or bulletin board via a network, for example, the Internet or the World Wide Web.

이하, 본 발명의 다양한 실시예들은 첨부도면을 참조하여 한 예로서 설명될 것이다.Hereinafter, various embodiments of the present invention will be described as an example with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는 다양한 데이터 처리 시스템 프로세스들을 개략적으로 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따른 데이터 처리 시스템 프로세스를 개략적으로 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 디스플레이 컨트롤러 프로세스를 나타낸다.
도 5는 본 발명의 실시예들에 따른 압축 방식을 개략적으로 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템 프로세스를 개략적으로 나타낸 것이다.
1 schematically illustrates a data processing system according to an embodiment of the present invention.
2 is a schematic representation of various data processing system processes.
3 schematically illustrates a data processing system process according to one embodiment of the present invention.
4 illustrates a display controller process according to one embodiment of the present invention.
5 schematically illustrates a compression scheme according to embodiments of the present invention.
6 schematically illustrates a data processing system process according to one embodiment of the present invention.

도면 전반에 걸쳐 같은 구성소자에 대해서 같은 참조번호가 적절히 사용된다.Like reference numbers are appropriately used for like elements throughout the drawings.

도 1은 데이터 처리 시스템(1)을 개략적으로 나타내 것이다. 데이터 처리 시스템(1)은 카메라 이미지 신호 프로세서(ISP)(2), 중앙처리장치(CPU)(3), 그래픽 처리장치(GPU)(4), 비디오 엔진 또는 코덱(5), (예를 들면, 컴포지션 엔진을 구비할 수도 있는) 이미지 프로세서(6), 디스플레이 컨트롤러(7), 및 메모리 컨트롤러(8)를 구비한다. 도 1에 도시한 바와 같이, 이들은 인터커넥트(9)를 통해서 통신하고, 오프 칩(off-chip) 메인 메모리(10)에 액세스한다. 카메라 ISP(2)는 이미지 데이터를 카메라로부터 수신하도록 카메라의 이미지 센서(11)와 통신한다. 디스플레이 컨트롤러(7)는 출력 프레임들(면들)이 디스플레이(12) 위에 표시되도록 디스플레이 인터페이스를 통해서 디스플레이(12)와 통신한다.1 will schematically show a data processing system 1 . The data processing system 1 includes a camera image signal processor (ISP) 2, a central processing unit (CPU) 3, a graphics processing unit (GPU) 4, a video engine or codec 5, (eg , an image processor 6 (which may also include a composition engine), a display controller 7, and a memory controller 8. As shown in FIG. 1, they communicate via interconnect 9 and access off-chip main memory 10. The camera ISP 2 communicates with the camera's image sensor 11 to receive image data from the camera. Display controller 7 communicates with display 12 via a display interface so that output frames (faces) are displayed on display 12 .

도 2a는 압축을 이용하지 않는 데이터 처리 시스템(1)을 동작시키는 방법을 나타낸다. (예를 들면, 카메라 ISP(2), CPU(3), GPU(4), 비디오 엔진(5), 혹은 이미지 프로세서(6)를 구비할 수 있는) 프레임 발생기(20)는 프레임(면)을 발생하고, 그것을 메인 메모리(10), 예를 들면 프레임 버퍼 내에 저장한다. 저장된 프레임은 표시용 디스플레이(12)에 프레임을 보내는, 디스플레이 컨트롤러(7)에 의해 메모리(10)로부터 판독된다.Figure 2a shows a method of operating the data processing system 1 without compression. A frame generator 20 (which may include, for example, a camera ISP 2, a CPU 3, a GPU 4, a video engine 5, or an image processor 6) creates frames (planes). generated and stored in the main memory 10, for example a frame buffer. The stored frame is read from memory 10 by display controller 7, which sends the frame to display 12 for display.

프레임 버퍼에 기록하고 이 프레임 버퍼로부터 판독하며, 픽셀 데이터를 디스플레이에 보내는 것은, 상당한 양의 대역폭을 필요로 한다. 예를 들면, 하나의 고화질(HD) 프레임 판독은 대략 (1920×1080×24 bpp×60 Hz) 356 MB/s를 소모한다. 하나의 초고화질(4K) 프레임 페치(fetch)는 대략 (3840×2160×24 bpp×60 Hz) 1.4 GB/s를 소모한다. 이들 대역폭 수는, 실제로 증대되는데, 그 이유는 데이터가 모두 (예를 들면, 디스플레이 컨트롤러(7) 및/또는 이미지 프로세서 또는 컴포지션 엔진(6) 등에 의해) 메모리로부터 판독되어 메모리에 (예를 들면, GPU(4) 및/또는 비디오 디코더(5)에 의해) 기록될 필요가 있기 때문이며, 데이터 처리 시스템에서는 처리 스테이지가 다수 있을 수도 있고, 다수의 프레임들은 (예를 들면, 컴포지션을 이용할 때) 최종 프레임을 발생하도록 처리될 필요가 있을 수도 있다.Writing to and reading from the frame buffer and sending pixel data to the display requires a significant amount of bandwidth. For example, reading one high-definition (HD) frame consumes approximately (1920×1080×24 bpp×60 Hz) 356 MB/s. One ultra-high definition (4K) frame fetch consumes approximately (3840×2160×24 bpp×60 Hz) 1.4 GB/s. These bandwidth numbers are actually increased because the data is all read from memory (e.g. by display controller 7 and/or image processor or composition engine 6, etc.) and into memory (e.g. by Because they need to be written (by the GPU 4 and/or the video decoder 5), there may be multiple processing stages in a data processing system, and multiple frames are the final frame (eg when using composition). may need to be processed to generate

도 2b는 예를 들면, DSC(Display Stream Compression)을 이용해서 디스플레이 컨트롤러(7)로부터 디스플레이(12)에 보내진 픽셀 데이터를 압축하는 데이터 처리 시스템(1)을 동작시키는 방법을 나타낸다.2B shows a method of operating the data processing system 1 that compresses pixel data sent from the display controller 7 to the display 12 using, for example, Display Stream Compression (DSC).

DSC는 알려진 고정 비트 전송율(fixed bit rate)을 제공하고, 레이턴시가 낮은 계산적으로 저렴하게 디자인된 손실 압축 표준이다. 알고리즘은 DPCM(Delta Pulse Code Modulation), ICH(Indexed Color History)을 이용하고, 래스터 라인들에서 작동한다. 레이트 컨트롤러는 압축 손실을 제어하기 위해서 사용된다. DSC는 디스플레이 인터페이스에서 대략 66% 정도 데이터를 압축할 수 있다(그러므로, 예를 들면 24 bpp는 8 bpp가 된다).DSC is a lossy compression standard designed to provide a known fixed bit rate and be computationally inexpensive with low latency. The algorithm uses Delta Pulse Code Modulation (DPCM), Indexed Color History (ICH), and works on raster lines. A rate controller is used to control compression loss. DSC can compress data by approximately 66% in the display interface (so 24 bpp becomes 8 bpp for example).

도 2a의 구성에서와 같이, 도 2b의 프레임 발생기(20)는 프레임(면)을 발생하여, 그것을 메인 메모리(10), 예를 들면 프레임 버퍼 내에 저장하고, 그 후에, 저장된 프레임은 디스플레이 컨트롤러(7)에 의해 메모리(10)로부터 판독된다. 디스플레이 컨트롤러(7)는 그 후에 프레임을 표시용 디스플레이(12)에 보내기 전에, 압축 스테이지(21)를 이용해서 프레임(면)을 압축한다. 이 방식으로 디스플레이 컨트롤러 출력을 압축함으로써, 데이터 처리 시스템의 전체 대역폭 및 전력 요건들을 감소시킬 수 있다.As in the configuration of FIG. 2A, the frame generator 20 in FIG. 2B generates a frame (plane) and stores it in the main memory 10, for example, a frame buffer, and then the stored frame is stored in the display controller ( 7) to read from the memory 10. The display controller 7 then compresses the frame (plane) using a compression stage 21 before sending the frame to the display 12 for display. Compressing the display controller output in this way can reduce the overall bandwidth and power requirements of the data processing system.

도 2c는 프레임 발생기(20)에 의해 발생된 프레임들(면들)을 압축하는 데이터 처리 시스템(1)을 동작시키는 방법을 나타낸다. 이 실시예에 있어서는, 프레임 발생기(20)는 압축 스테이지(22)에 의해 압축되는 프레임(면)을 발생한다. 압축된 프레임(면)은 메인 메모리(10) 내에, 예를 들면 프레임 버퍼 내에 저장된 후에, 디스플레이 컨트롤러(7)에 의해 판독된다. 도 2c에 나타나 있는 바와 같이, 이 실시예에 있어서는, 압축된 프레임은 압축 해제 스테이지(23)를 이용해서 디스플레이 컨트롤러(7)에서 압축 해제될 수도 있다. 이것은 예를 들면, 프레임을 압축하는 데에 사용된 압축 방식이 디스플레이 컨트롤러 압축 방식과 (혹은 충분히 유사하지 않은) 같지 않은 경우에 및/또는 프레임(면)이 디스플레이 컨트롤러(7)에 의한 변경을 필요로 하는 경우에 적합할 수도 있다. 2C shows a method of operating the data processing system 1 that compresses the frames (faces) generated by the frame generator 20. In this embodiment, frame generator 20 generates frames (planes) that are compressed by compression stage 22. The compressed frame (plane) is stored in the main memory 10, for example in a frame buffer, and then read by the display controller 7. As shown in FIG. 2C , in this embodiment, the compressed frame may be decompressed in the display controller 7 using the decompression stage 23 . This may be the case, for example, if the compression method used to compress the frame is not the same (or not similar enough) to the display controller compression method and/or the frame (face) requires modification by the display controller 7. It may be suitable for the case of .

디스플레이 컨트롤러(7)는, 압축 해제된 프레임을 표시용 디스플레이(12)에 보내기 전에, 압축 스테이지(21)를 이용해서(예를 들면, DSC(Display Stream Compression)을 이용해서) (선택적으로 변경된) 압축 해제된 프레임을 압축한다.The display controller 7 uses a compression stage 21 (for example, using Display Stream Compression (DSC)) before sending the decompressed frames to the display 12 for display (optionally modified). Compress the decompressed frame.

발생된 프레임과 디스플레이 컨트롤러 출력 양자를 이 방식으로 압축함으로써, 데이터 처리 시스템의 전체 대역폭 및 전력 요건들을 더 감소시킬 수 있다.Compressing both the generated frame and the display controller output in this way further reduces the overall bandwidth and power requirements of the data processing system.

본 출원인은 디스플레이 출력이 손실 압축(DSC 등)을 이용해서, 같은 손실 압축 방식을 이용해서, 혹은 비슷한 노이즈 특성들을 갖는 또 다른 손실 압축 방식을 이용해서 압축되는 경우에, 업스트림 압축에 의해 손실되는 화질이 어떤 상황에서든 디스플레이 출력 압축에 의해 손실될 것이기 때문에, 파이프라인 더 위쪽에서 데이터(예를 들면, 발생된 프레임)를 압축하는 것은 표시되는 화상의 품질에 악영향을 미치지 않을 것이라는 것을 인식했다. Applicants find that when a display output is compressed using lossy compression (DSC, etc.), using the same lossy compression scheme, or using another lossy compression scheme with similar noise characteristics, the quality lost by upstream compression is lost. It has been recognized that compressing data (e.g., generated frames) further up the pipeline will not adversely affect the quality of the displayed picture, since this will be lost by display output compression under any circumstances.

도 2d는 프레임 발생기(20)에 의해 발생된 프레임들을, 디스플레이 컨트롤러 압축 방식과 같거나 비슷한 압축 방식을 이용해서 압축할 수도 있는 데이터 처리 시스템(1)을 동작시키는 또 다른 방법을 나타낸다. 프레임 발생기(20)는 예를 들면, DSC(Display Stream Compression)을 이용해서, 압축 스테이지(22)에 의해 압축되는 프레임(면)을 발생한다. 압축된 프레임은 메인 메모리(10) 내에, 예를 들면 프레임 버퍼 내에 저장된다. 저장된 압축된 프레임은 그 후에 디스플레이 컨트롤러(7)에 의해 메모리(10)로부터 판독된다. 이 실시예에 있어서는, 압축된 프레임이 디스플레이 컨트롤러 압축 방식을 이용해서 이미 압축되었기 때문에, 그것은 압축 해제 스테이지(23)에 의해 압축 해제될 필요가 없고, 또 압축 스테이지(21)를 이용해서 압축될 필요가 없으며, 대신에 압축 해제 스테이지(23)와 압축 스테이지(21)를 바이패스하도록 구성된다. 압축된 프레임은 그 후에 표시용 디스플레이(12)에 전해진다. Figure 2d shows another method of operating the data processing system 1 that may compress the frames generated by the frame generator 20 using a compression scheme identical or similar to the display controller compression scheme. The frame generator 20 generates frames (planes) that are compressed by the compression stage 22, for example using Display Stream Compression (DSC). The compressed frame is stored in the main memory 10, for example in a frame buffer. The stored compressed frame is then read from memory 10 by display controller 7 . In this embodiment, since the compressed frame has already been compressed using the display controller compression scheme, it does not need to be decompressed by the decompression stage 23, nor does it need to be compressed using the compression stage 21. There is no , and is instead configured to bypass the decompression stage 23 and the compression stage 21 . The compressed frame is then passed to the display 12 for display.

이 실시예에 있어서는, 데이터 처리 시스템의 전체 대역폭 및 전력 요건들이 도 2c의 구성과 같은 방식으로 감소된다. 또한, 디스플레이 컨트롤러(7) 내의 압축 해제 스테이지(23) 및 압축 스테이지(21)가 적절할 때 바이패스될 수 있기 때문에 데이터 처리 시스템의 처리 요건들이 더 감소될 수 있다.In this embodiment, the overall bandwidth and power requirements of the data processing system are reduced in the same way as the configuration of FIG. 2C. Furthermore, the processing requirements of the data processing system can be further reduced since the decompression stage 23 and the compression stage 21 in the display controller 7 can be bypassed when appropriate.

본 실시예의 데이터 처리 시스템(1)은 예를 들면 선택적으로 특정 프레임 발생기(예를 들면, 카메라 ISP(2), CPU(3), GPU(4), 비디오 엔진(5), 또는 이미지 프로세서(6))의 출력에 의존해서 및/또는 적절하게 도 2a-2d의 방법들 중의 어느 하나 또는 모두를 수행하도록 동작될 수 있다. The data processing system 1 of the present embodiment optionally includes, for example, a specific frame generator (e.g., a camera ISP 2, a CPU 3, a GPU 4, a video engine 5, or an image processor 6). )) and/or as appropriate to perform any or all of the methods of FIGS. 2A-2D .

상기 실시예들은 프레임이 표시되게 하는 디스플레이 컨트롤러(7)와 프레임을 발생하는 프레임 발생기(20)에 관해서 설명했지만, 다양한 실시예에 있어서는, 프레임 발생기에 의해 발생된 프레임(면)은, 예를 들면 이 발생된 프레임 혹은 그것을 이용해서 발생된 프레임(면)이 표시되기 전에, 처리의 한 개 이상의 추가 스텝들을 거치게 된다. Although the above embodiments have been described with respect to the display controller 7 for displaying the frame and the frame generator 20 for generating the frame, in various embodiments, the frame (surface) generated by the frame generator is, for example, Before this generated frame or a frame (surface) generated using it is displayed, it goes through one or more additional steps of processing.

도 3은 컴포지션 엔진(6)이 합성된 프레임(면)을 발생하는 하나의 그러한 실시예를 나타낸다. 도 3의 실시예에 있어서는, 카메라 ISP(2), GPU(4) 및 비디오 디코더(5)는 한 개 이상의 면들(프레임들)을 발생한다. 도 3에 도시한 바와 같이, 한 개 이상의 발생된 면들 중의 한 개 이상은, 예를 들면, 메모리(10)(미도시) 내에 저장되기 전에 압축될 수 있다.Figure 3 shows one such embodiment in which the composition engine 6 generates composited frames (faces). In the embodiment of Figure 3, the camera ISP 2, GPU 4 and video decoder 5 generate one or more faces (frames). As shown in FIG. 3, one or more of the one or more generated faces may be compressed before being stored, for example, in memory 10 (not shown).

컴포지션 엔진(6)은 그 후에 발생된 면들 중의 한 개 이상을 예를 들면, 메모리(10)로부터 판독한다. 본 실시예에 있어서는, 컴포지션 엔진(6)은 합성된 출력 프레임(면)을 발생하도록 면들을 합성하기 전에, 압축되는 이들 면들을 압축 해제할 수 있다.Composition engine 6 then reads one or more of the generated faces from, for example, memory 10 . In this embodiment, the composition engine 6 may decompress those faces that are compressed before compositing the faces to generate a synthesized output frame (face).

합성된 출력 프레임은 그 후에 메인 메모리(10) 내에 저장되기 전에 압축될 수 있고, 그 후에 디스플레이 컨트롤러(7)에 의해 메모리(10)로부터 판독된다. 디스플레이 컨트롤러(7)는, 예를 들면, 프레임을 압축하는 데에 사용된 압축 방식이 디스플레이 컨트롤러 압축 방식과(충분히 비슷하지 않은) 같지 않은 경우, 및/또는 프레임이 디스플레이 컨트롤러(7)에 의한 추가 변경을 필요로 하는 경우에, 판독한 프레임을 압축 해제할 수 있다. 프레임이 압축 해제되면, 디스플레이 컨트롤러(7)는 그 후에 프레임을 표시용 디스플레이(12)에 보내기 전에, 예를 들면, DSC(Display Stream Compression)을 이용해서 프레임들을 압축할 수 있다. The synthesized output frame may then be compressed before being stored in main memory 10 and then read from memory 10 by display controller 7 . The display controller 7 may, for example, if the compression method used to compress the frame is not the same (not similar enough) as the display controller compression method, and/or if the frame is added by the display controller 7 If changes are required, the read frame can be decompressed. Once the frames are decompressed, the display controller 7 may then compress the frames before sending them to the display 12 for display, for example using Display Stream Compression (DSC).

프레임을 압축하기 위해 사용된 압축 방식이 디스플레이 컨트롤러 압축 방식과(충분히 비슷한) 같은 경우와, 프레임이 디스플레이 컨트롤러(7)에 의해 추가 변경을 필요로 하지 않는 경우, 디스플레이 컨트롤러(7)는 예를 들면, 압축 해제 및 압축 스테이지들을 바이패스하여, 표시용 디스플레이에 직접 판독한 압축된 프레임을 보낼 수 있다. If the compression method used to compress the frame is the same as (sufficiently similar to) the display controller compression method, and if the frame does not require further modification by the display controller 7, the display controller 7 may, for example, , decompression and compression stages can be bypassed to send the read compressed frame directly to the display for display.

프레임(면)은 화상 개선 방식; 회전 및/또는 스케일링; 및/또는 콘트라스트 및/또는 밝기를 변경하고, 감마 보정을 행하며, 및/또는 톤 맵핑(tone mapping)을 행하는 것과 같은, 처리의 한 개 이상의 다른 스텝들을 거치게 됨으로써, 원하는 대로, LAO(Level Adaptive Overdrive), FFD(Feed Forward Drive), DCC(Dynamic Contrast Compensation) 등과 같은, 디스플레이 대응성을 향상시킬 수도 있다. 그러한 처리는, 예를 들면 압축 전에, 디스플레이 컨트롤러(7)에 의해 혹은 적절히 한 개 이상의 스테이지들에 의해 수행될 수도 있다. The frame (surface) is an image enhancement method; rotation and/or scaling; and/or one or more other steps in processing, such as changing contrast and/or brightness, performing gamma correction, and/or performing tone mapping, as desired, to Level Adaptive Overdrive (LAO). ), FFD (Feed Forward Drive), DCC (Dynamic Contrast Compensation), etc., display responsiveness may be improved. Such processing may be performed by the display controller 7 or in one or more stages as appropriate, for example prior to compression.

상기 실시예들은 표시용 디스플레이(12)에 출력 프레임을 전하는 디스플레이 컨트롤러(7)에 관해서 설명했지만, 추가 실시예들에 있어서는, 추가로 또는 대신에, 디스플레이 컨트롤러 출력이 비디오 인코더에 전해질 수도 있다. 하나의 그러한 실시예는 도 3에 도시되어 있고, 여기서 디스플레이 컨트롤러(7)는, 예를 들면, 또 다른 디스플레이에의 선택적 (예를 들면, 무선) 전송 및 인코딩을 위해서, 출력 프레임을 비디오 인코더(30)에 선택적으로 전할 수 있다. 비디오 인코더는, 원하는 대로, 프레임을 압축 해제하고, 압축 해제된 프레임을 인코드하며, 그 후에 인코드된 프레임을 압축하는 것이 가능하다.While the above embodiments have been described with respect to the display controller 7 passing an output frame to the display 12 for display, in further embodiments, in addition or instead, the display controller output may be passed to a video encoder. One such embodiment is shown in FIG. 3 , where a display controller 7 converts output frames to a video encoder (eg for selective (eg wireless) transmission and encoding to another display). 30) can be selectively passed on. A video encoder can decompress frames, encode decompressed frames, and then compress encoded frames, as desired.

추가로 혹은 그 대신에, 디스플레이 컨트롤러(7)는 압축된 프레임을 메모리(10)에 기록할 수도 있다.Additionally or alternatively, display controller 7 may write compressed frames to memory 10 .

상기 실시예들은 전체 프레임들(면들)을 작동시키는 데이터 처리 시스템에 관해서 설명했지만, 다른 실시예에 있어서는 본 발명의 데이터 처리 시스템은, 예를 들면, 각 프레임을 구성하는 타일들 또는 데이터의 블록들에 대해, 각 프레임의 부분들을 작동시킨다. 이와 같이, 이 실시예에 있어서는, 프레임 발생기(20)는 한 개 이상의 프레임들의 한 개 이상의 부분들을 발생해서 메모리(10)에 기록하도록 작동되고, 디스플레이 컨트롤러(7)는 한 개 이상의 그러한 부분들을 메모리(10)로부터 판독하도록 작동되며, 압축 21, 22 및 압축 해제 23 스테이지들은 한 개 이상의 그러한 부분들을 압축하거나 압축 해제하도록 작동된다.Although the above embodiments have been described in terms of a data processing system that operates on entire frames (planes), in other embodiments the data processing system of the present invention is directed to, for example, the tiles or blocks of data that make up each frame. For , actuate the parts of each frame. Thus, in this embodiment, frame generator 20 is operative to generate and write one or more portions of one or more frames to memory 10, and display controller 7 may write one or more such portions to memory 10. (10), compression 21, 22 and decompression 23 stages are operative to compress or decompress one or more such portions.

이 실시예에 있어서는, 데이터 처리 시스템은, 예를 들면, 선택적으로 문제의 특정 프레임(면) 부분에 의존해서, 도 2a-2d의 방법들 중의 어느 하나 또는 모두를 수행하도록 작동될 수 있다.In this embodiment, the data processing system may be operable to perform any or all of the methods of FIGS. 2A-2D, for example, optionally depending on the particular frame (plane) portion in question.

도 4는 디스플레이 컨트롤러(7)를 작동시키는 그러한 방법을 나타낸다. (예를 들면, ISP(2), CPU(3), GPU(4), 비디오 엔진(5) 또는 이미지 프로세서(6)에 의해 발생될 수 있는) 표시되어야 하는 각 신규 화상(입력면(프레임))에 대해서는, 디스플레이 컨트롤러(7)가 스텝 41에서 프레임(면)의 한 부분(영역)에 대응하는 데이터의 블록을 페치(판독)한다. 이 예에 있어서, 각 데이터 블록이 문제의 면(프레임)의 처리 타일이 되는 것으로 가정되지만, 다른 구성도 물론 가능할 것이다.4 shows such a method of operating the display controller 7 . Each new picture (input plane (frame)) to be displayed (which may be generated, for example, by the ISP 2, CPU 3, GPU 4, video engine 5 or image processor 6) ), the display controller 7 fetches (reads) a block of data corresponding to one part (area) of the frame (surface) in step 41. In this example, it is assumed that each data block is a processing tile of the face (frame) in question, but other configurations are of course possible.

스텝 42에서는, 블록이 압축되는지 여부를 판정한다. 블록이 압축되지 않으면, 그 후에 디스플레이 컨트롤러는 바람직하게 스텝 45에서 필요한 경우 블록을 조작하거나 변경하고, 그 후에 스텝 50에서 DSC를 이용해서 블록을 압축하여 스텝 52에서 그것을 출력한다.In step 42, it is determined whether the block is compressed. If the block is not compressed, then the display controller preferably manipulates or changes the block if necessary at step 45, then compresses the block using DSC at step 50 and outputs it at step 52.

블록이 압축되면, 스텝 43에서는 블록이 DSC을 이용해서 압축되는지 여부를 판정한다. 블록이 DSC 이외의 압축 방식을 이용해서 압축되면, 스텝 44에서 블록이 압축 해제되고, 스텝 45에서는 필요한 경우 블록이 조작되거나 변경되며, 스텝 50에서는 DSC를 이용해서 블록이 압축되고, 스텝 52에서는 표시를 위해서 블록이 출력된다. If the block is compressed, step 43 determines whether the block is compressed using DSC. If the block is compressed using a compression method other than DSC, the block is decompressed in step 44, the block is manipulated or altered if necessary in step 45, the block is compressed using DSC in step 50, and the block is displayed in step 52. A block is output for

블록이 DSC를 이용해서 압축되면, 스텝 46에서는 블록이 조작 또는 변경을 필요로 하는지 여부를 판정한다. 블록이 조작 또는 변경을 필요로 하지 않으면, 스텝 51에서는 디스플레이 컨트롤러(7)가 블록을 디스플레이에 제공한다.If a block is compressed using DSC, step 46 determines whether the block requires manipulation or alteration. If the block does not require manipulation or alteration, in step 51 the display controller 7 presents the block to the display.

블록이 조작 또는 변경을 필요로 하면, 스텝 47에서는 디스플레이 컨트롤러(7)가 블록을 압축 해제하고, 스텝 48에서는 필요에 따라 블록을 조작 또는 변경한다.If the block requires manipulation or modification, in step 47 the display controller 7 decompresses the block, and in step 48 the block is manipulated or altered as necessary.

스텝 49에서는 조작 또는 변경된 블록이 원래의 블록과 같거나 충분히 비슷한지 여부를 판정한다. 이것은 변경된 블록이 원래의 블록과 다른 정도가, 충분히 작은, 예를 들면 스레숄드(threshold) 이하가 되는 경우일 수도 있으므로, 즉 블록이 표시될 때는 어떤 차이든 감지할 수 없을 것이다. In step 49, it is determined whether the manipulated or altered block is the same or sufficiently similar to the original block. It may be the case that the difference between the modified block and the original block is small enough, eg below a threshold, that when the block is displayed, no difference will be noticed.

조작 또는 변경된 블록이 원래의 블록과 같거나 충분히 비슷하면, 스텝 51에서는 디스플레이 컨트롤러(7)가 원래의 압축된 블록을 디스플레이에 제공한다. 조작 또는 변경된 블록은 폐기된다.If the manipulated or altered block is identical or sufficiently similar to the original block, then in step 51 the display controller 7 presents the original compressed block to the display. Manipulated or altered blocks are discarded.

조작 또는 변경된 블록이 원래의 블록과 같지 않거나 충분히 비슷하지 않으면, 스텝 50에서는 디스플레이 컨트롤러가 DSC를 이용해서 변경된 블록을 압축하고, 스텝 52에서는 표시를 위해 블록을 출력한다.If the manipulated or altered block is not identical or sufficiently similar to the original block, at step 50 the display controller compresses the altered block using DSC and at step 52 outputs the block for display.

이와 같이, 블록이 변경되는 경우에는, 변경된 버전의 블록 또는 변경되지 않은 버전의 블록은, 이 변경이 블록에 충분한 변화를 일으켰는지 여부에 의존해서, 디스플레이 컨트롤러(7)에 의해 출력된다. 변경되지 않은 버전의 블록이 디스플레이 컨트롤러(7)에 의해 출력되는 경우에는, 변경된 버전의 블록이 폐기되고 디스플레이 컨트롤러(7)에 의해 압축되지 않음으로써, 디스플레이 컨트롤러(7)가 필요로 하는 처리량이 감소된다. In this way, when a block is changed, a changed version of the block or an unaltered version of the block is output by the display controller 7, depending on whether this change caused sufficient change in the block. If the unchanged version of the block is output by the display controller 7, the changed version of the block is discarded and not compressed by the display controller 7, thereby reducing the throughput required by the display controller 7. do.

하나의 대안 실시예에 있어서는, 스텝 49에서는 체크가 이루어지지 않고, 조작 또는 변경된 블록이 압축되고, 표시를 위해 출력된다.In one alternative embodiment, no check is made at step 49, and the manipulated or changed block is compressed and output for display.

도 4에 도시한 바와 같이, 이 프로세스는 프레임이 완전히 표시를 위해 출력되었을 때까지 프레임(면)의 각 블록에 대해서 반복된다(스텝 55에서).As shown in Fig. 4, this process is repeated for each block of the frame (surface) until the frame has been completely output for display (at step 55).

상기 설명한 바와 같이, 본 실시예에 있어서는, DSC, 또는 DSC와 비슷한 노이즈 특성들을 갖는 또 다른 손실 압축 방식이 업스트림 데이터(예를 들면, 발생된 프레임)를 압축하기 위해서 사용된다.As described above, in this embodiment, DSC, or another lossy compression method having similar noise characteristics to DSC, is used to compress upstream data (e.g., a generated frame).

업스트림 압축 방식이 DSC인 경우에는, 프레임을 발생하는 처리 스테이지가 픽셀들의 복수의 래스터 라인들(즉, 행)로서 각 프레임을 출력하도록 작동될 수 있다. 각 그러한 발생된 래스터 라인은 그 후에 DSC를 이용해서 평상시처럼 압축될 수 있다.If the upstream compression scheme is DSC, the processing stage that generates the frame can be operated to output each frame as a plurality of raster lines (ie rows) of pixels. Each such generated raster line can then be compressed as usual using DSC.

그 대신에, 프레임을 발생하는 처리 스테이지가 복수의 타일로서 각 프레임을 출력하는 경우에는, 그 후에 타일들의 각 행 내의 타일들의 각각의 맨 위에 있는 행들 내의 픽셀들이 함께 압축될 수 있고, 타일들의 행 내의 타일들의 각각의 제2 행 내의 픽셀들이 함께 압축될 수 있다. 알 수 있는 바와 같이, 면을 구성하는 타일들의 각각은 일반적으로 순서대로 발생될 것이고, 즉 동시에 발생되지 않는다. 이와 같이, 이 실시예에 있어서는, 상태 정보가 타일들이 발생되고 있는 동안에 압축 프로세스를 돕기 위해서 타일들 사이에 운반된다.Alternatively, if the processing stage generating the frame outputs each frame as a plurality of tiles, then the pixels in each top row of tiles within each row of tiles may be compressed together, and the row of tiles The pixels in each second row of tiles within may be compressed together. As can be seen, each of the tiles that make up a face will generally occur in sequence, ie not simultaneously. Thus, in this embodiment, state information is carried between tiles to assist in the compression process while the tiles are being generated.

도 5a는 각 프레임, 즉 픽셀 A1-A15, 및 픽셀 B1-B15 등의 각 래스터 라인을 압축하도록 동작하는 그러한 선형 압축 방식을 나타낸다.5A shows such a linear compression scheme that operates to compress each raster line in each frame, i.e. pixels A1-A15, and pixels B1-B15.

이 압축 방식은 압축된 영역들이 디스플레이 컨트롤러의 DSC 압축 방식과 직접 호환될 것이라는 것을 보장하고, 따라서 (상기 설명한 것처럼) 적절할 때 디스플레이 컨트롤러 압축 해제/압축 스테이지들을 바이패스하도록 구성될 수 있다.This compression scheme ensures that the compressed regions will be directly compatible with the display controller's DSC compression scheme, and can therefore be configured to bypass the display controller decompression/compression stages when appropriate (as described above).

또 다른 실시예에 있어서는, 손실 압축 방식은 타일의 데이터 위치들의 다수의 행의 각각을, 순서대로 즉 제1 행, 제2 행, 제 3 행 등을 함께 압축함으로써 별도로 각 타일을 압축하도록 구성된다. In another embodiment, the lossy compression scheme is configured to compress each tile separately by compressing each of the multiple rows of data locations in the tile in order, namely the first row, the second row, the third row, etc. together. .

이것은 도 5b에 도시되어 있다. 각 타일(도 5b에서는 3×3 그룹의 픽셀들로 이루어진다)이 DSC 알고리즘을 이용해서 함께 압축된다. 도 5b에 도시한 바와 같이, 이것은 함께 압축되어야 하는 픽셀 A1-A15를 재배열함으로써 행해진다. This is shown in Figure 5b. Each tile (consisting of a 3x3 group of pixels in Figure 5b) is compressed together using the DSC algorithm. As shown in Fig. 5b, this is done by rearranging the pixels A1-A15 to be compressed together.

이 방식으로 압축된 타일들은 디스플레이 컨트롤러 압축 해제/압축 스테이지들을 바이패스할 수 없을 것이지만, 이 방식은, 압축에 의해 도입된 노이즈 특성들이 보통의 선형 DSC 압축에 의해 도입된 노이즈 특성들과 매우 가깝다는 것을 보장하면서, 타일 기반 시스템과의 호환성을 유리하게 유지한다. Tiles compressed in this way will not be able to bypass the display controller decompression/compression stages, but this way the noise characteristics introduced by compression are very close to those introduced by normal linear DSC compression. while ensuring compatibility with tile-based systems.

다른 픽셀 배열 방식도 물론 예를 들면 Hilbert 곡선을 따라, 혹은 z-order에서 등, 사용될 수도 있다. Other pixel arrangement schemes may also be used, for example along the Hilbert curve, or in z-order.

래스터 라인 및 타일 기반 압축 방식들은 비슷한 하드웨어를 이용해서 구현될 수 있으므로, 이 하드웨어는 재사용될 수 있다.Raster line and tile based compression schemes can be implemented using similar hardware, so this hardware can be reused.

사용된 압축 알고리즘, 압축 블록 형상(예를 들면, 타일 또는 라인), 및 압축비는 디스플레이 출력 압축에 근거해서 선택될 수 있다. 예를 들면, 블록들이 조작될 것으로 예상되면, 타일 기반 압축 방식은 라인 기반 방식보다 더 바람직할 수도 있다. 라인 기반 DSC 압축은, 프레임 발생기가 타일들의 수평선들을 발생하면 사용될 수 있으므로, 즉 압축 상태가 처리되는 다음 타일에 걸쳐 수반될 수 있다.The compression algorithm used, compression block shape (eg, tile or line), and compression ratio may be selected based on display output compression. For example, if blocks are expected to be manipulated, a tile-based compression scheme may be more desirable than a line-based scheme. Line-based DSC compression can be used once the frame generator has generated horizontal lines of tiles, i.e. the compression state can be followed over the next tile being processed.

압축 방식의 레이트 컨트롤러는 압축 방식이 래스터 스캔 DSC와 비슷한 특성들을 갖도록 조정될 수 있고 및/또는 타일들의 사이즈에 근거해서 가시적 압축 아티팩트들을 최소화할 수 있다.The rate controller of the compression scheme can be adjusted so that the compression scheme has properties similar to raster scan DSC and/or can minimize visible compression artifacts based on the size of the tiles.

하나의 대안 실시예에 있어서는, 래스터 스캔 DSC와 비슷한 압축 아티팩트들을 갖는 다른 압축 방식이 구현될 수도 있다. 예를 들면, 손실 압축 방식은 최하위 비트들 중의 한 개 이상을 폐기함으로써 손실로 이루어지는 AFBC(ARM Frame Buffer Compression)의 변경된 버전을 구비할 수 있다.In an alternative embodiment, other compression schemes may be implemented that have compression artifacts similar to raster scan DSC. For example, a lossy compression scheme may have a modified version of ARM Frame Buffer Compression (AFBC) which is made lossy by discarding one or more of the least significant bits.

다른 압축 방식도 물론 사용될 수도 있다.Other compression schemes may of course also be used.

도 6은 업스트림 압축이 조정될 수 있는 실시예를 나타낸다. 프레임 발생기(20)(예를 들면, ISP(2), GPU(4), 비디오 디코더(5), 혹은 이미지 프로세서(6))는 압축된 프레임을 발생한다. 프레임은 메모리(10)에 기록된 후에, 디스플레이 컨트롤러(7)에 전해진다. 본 실시예에 있어서는, 디스플레이 컨트롤러(7)는 프레임에 대하여 몇몇 처리를 수행할 수 있다. 예를 들면, 프레임이 압축 해제될 수도 있고, 그 후에 손실 압축 방식을 이용해서 압축될 수도 있으며, 그 다음에는 디스플레이(12)에 전해질 수도 있다.Figure 6 shows an embodiment in which upstream compression can be tuned. Frame generator 20 (e.g., ISP 2, GPU 4, video decoder 5, or image processor 6) generates compressed frames. After the frame is written to the memory 10, it is passed to the display controller 7. In this embodiment, the display controller 7 can perform some processing on frames. For example, the frame may be decompressed, then compressed using a lossy compression scheme, and then passed to the display 12.

본 실시예에 있어서는, 디스플레이 컨트롤러(7)는 압축 조정 정보를 다시 프레임 발생기(20)에 제공한다. 이것은 업스트림 압축을 조정하기 위해서 사용될 수 있다. 예를 들면, 래스터 스캔 압축의 손실은 업스트림 손실 압축 스테이지로 피드백될 수 있고, 압축비를 적절히 제어하기 위해서 사용될 수 있다. 현재 및/또는 이전 프레임 또는 프레임들에 대한 디스플레이 컨트롤러 압축비는, 예를 들면, 다음 프레임 또는 프레임들의 세트에 대해서, 처리 스테이지 손실 압축 방식의 압축비를 제어하기 위해서 사용될 수 있다.In this embodiment, the display controller 7 provides the compression adjustment information back to the frame generator 20. This can be used to tune upstream compression. For example, lossy raster scan compression can be fed back to an upstream lossy compression stage and used to properly control the compression ratio. The display controller compression ratio for the current and/or previous frame or frames may be used to control the compression ratio of the processing stage lossy compression scheme, for example, for the next frame or set of frames.

다시 말해서, 프레임 발생기(20)는 디스플레이 컨트롤러(7)에 의해 그것에 제공된 조정 정보에 의존해서 적절한 정밀도로 그것의 데이터를 발생할 수 있다. 예를 들면, 프레임 발생기(20)는 디스플레이 컨트롤러(7) 손실 압축이 특정된 데이터량 이상을 폐기할 것이라는 것을 알고 있는 경우 더 낮은 품질 프레임들을 발생할 수 있다. In other words, the frame generator 20 can generate its data with appropriate precision depending on the adjustment information provided to it by the display controller 7. For example, frame generator 20 may generate lower quality frames if it knows that display controller 7 lossy compression will discard more than a specified amount of data.

이들 실시예에 있어서는, 처리 스테이지가 다수 있을 수도 있다. 예를 들면, 프레임 발생기(20)는, 다수의 프레임들을 합성해서 합성된 프레임을 발생하는, 컴포지션 엔진(6)에 의해 판독되는, 프레임을 메모리(10)에 전할 수도 있다. 합성된 출력 프레임이 메모리(10)에 기록된 후에, 디스플레이 컨트롤러(7)에 의해 판독되어 표시된다.In these embodiments, there may be multiple processing stages. For example, frame generator 20 may pass the frame to memory 10, which is read by composition engine 6, which composites multiple frames to generate a composited frame. After the synthesized output frame is written to the memory 10, it is read and displayed by the display controller 7.

일 실시예에 있어서는, 카메라 ISP가 디스플레이 컨트롤러(7)와의 직접적인 인터페이스가 있는 경우에는, 카메라 ISP로부터의 출력은 DSC 압축을 이용해서 압축될 수 있다. 이것은 ISP로부터 디스플레이 컨트롤러로 전해지는 데이터의 양을 줄임으로써, 전력 소모를 줄인다.In one embodiment, where the camera ISP has a direct interface with the display controller 7, the output from the camera ISP may be compressed using DSC compression. This reduces power consumption by reducing the amount of data passed from the ISP to the display controller.

본 발명은 표시되는 화상의 품질에 악영향을 미치지 않고, 감소된 양의 메모리 대역폭 및 전력을 필요로 하는 향상된 데이터 처리 시스템을 제공한다는 것을 상기로부터 알 수 있다. 이것은 바람직한 실시예에 있어서 적어도, 손실 압축된 형태로 디스플레이에 출력면을 제공하는 디스플레이 컨트롤러의 업스트림을 표시하기 위한 출력면을 발생하기 위해서 사용되는 적어도 한 개의 면을 손실 압축함으로써, 달성된다.It can be seen from the foregoing that the present invention provides an improved data processing system that requires a reduced amount of memory bandwidth and power without adversely affecting the quality of the displayed picture. This is achieved in a preferred embodiment by lossy compressing at least one face used to generate the output face for display upstream of a display controller providing the output face to the display in lossy compressed form.

Claims (25)

데이터 처리 시스템으로서,
손실 압축 방식을 이용해서 압축되었던 표시될 출력면의 압축된 버전을 디스플레이에 제공하도록 작동되는 디스플레이 컨트롤러와,
표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하도록 작동되는 한 개 이상의 처리 스테이지들을 구비하고,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나는, 손실 압축 방식을 이용하는 압축된 형태로 표시될 출력면을 형성할 때 사용되는, 처리 스테이지가 제공하는, 면 또는 면들의 한 개 이상의 영역들을 출력하도록 작동되고,
상기 디스플레이 컨트롤러는 압축 스테이지와 압축 해제 스테이지를 포함하고,
상기 데이터 처리 시스템은 손실 압축 방식을 이용하여 압축된 형태로 상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 한 개 이상의 영역들이 상기 디스플레이 컨트롤러 압축 스테이지와 압축 해제 스테이지를 바이패스할 수 있도록 구성되는 것을 특징으로 하는, 데이터 처리 시스템.
As a data processing system,
a display controller operative to provide a compressed version of an output surface to be displayed to a display that has been compressed using a lossy compression scheme;
having one or more processing stages operative to provide a surface or surfaces to be used in forming an output surface to be displayed;
At least one of the one or more processing stages is operative to output the surface or one or more regions of surfaces, provided by the processing stage, used in forming the output surface to be displayed in compressed form using a lossy compression scheme. become,
the display controller includes a compression stage and a decompression stage;
The data processing system is configured such that one or more regions output by at least one of the one or more processing stages in a compressed form using a lossy compression method bypass the display controller compression stage and decompression stage. Characterized in that, the data processing system.
제 1 항에 있어서,
상기 디스플레이에 제공되는 손실 압축된 출력면은, 상기 디스플레이 컨트롤러에 의해 압축되었던 한 개 이상의 영역들 및/또는 상기 디스플레이 컨트롤러 이외에 의해 압축되었던 한 개 이상의 영역들을 구비하는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1,
A data processing system, characterized in that the lossy compressed output surface provided to the display comprises one or more areas that have been compressed by the display controller and/or one or more areas that have been compressed by other than the display controller.
제 1 항 또는 제 2 항에 있어서,
상기 시스템은,
손실 압축 방식을 이용해서 압축되었던 한 개 이상의 면들의 한 개 이상의 영역들을 출력하도록 작동되는 한 개 이상의 프레임 발생기 처리 스테이지들과,
손실 압축 방식을 이용해서 압축되었던 합성된 출력면의 한 개 이상의 영역들을 출력하도록 작동되는 컴포지션 처리 스테이지와,
손실 압축 방식을 이용해서 압축되었던 한 개 이상의 면들의 한 개 이상의 영역들을 출력하도록 작동되는 한 개 이상의 압축 처리 스테이지들 중
한 개 이상 또는 모두를 구비하는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
The system,
one or more frame generator processing stages operative to output one or more regions of one or more faces that have been compressed using a lossy compression scheme;
a composition processing stage operative to output one or more regions of the synthesized output surface that have been compressed using a lossy compression scheme;
of one or more compression processing stages operative to output one or more regions of one or more faces that have been compressed using a lossy compression scheme.
A data processing system characterized by having one or more or all of them.
제 1 항 또는 제 2 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 사용된 손실 압축 방식은, 디스플레이 컨트롤러 손실 압축 방식에 근거하는 방식인 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
A data processing system according to claim 1, wherein the lossy compression scheme used by at least one of the one or more processing stages is based on a display controller lossy compression scheme.
제 1 항 또는 제 2 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 사용된 손실 압축 방식의 노이즈 특징들은, 디스플레이 컨트롤러 손실 압축 방식의 노이즈 특징들과 매치되는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
Noise characteristics of a lossy compression scheme used by at least one of the one or more processing stages match noise characteristics of a display controller lossy compression scheme.
제 1 항 또는 제 2 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 압축된 영역들의 각각의 사이즈 및/또는 형상은, 상기 디스플레이 컨트롤러가 상기 디스플레이에 제공하는 출력면의 복수의 영역들의 각 영역의 사이즈 및/또는 형상에 대응하는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
The size and/or shape of each of the compressed regions output by at least one of the one or more processing stages is determined by the size and/or shape of each region of the plurality of regions of the output surface provided to the display by the display controller. A data processing system characterized in that it corresponds to a shape.
제 1 항 또는 제 2 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 압축된 영역들의 각각의 사이즈 및/또는 형상은, 상기 디스플레이 컨트롤러가 상기 디스플레이에 제공하는 출력면의 복수의 영역들의 각 영역의 사이즈 및/또는 형상과 다른 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
The size and/or shape of each of the compressed regions output by at least one of the one or more processing stages is determined by the size and/or shape of each region of the plurality of regions of the output surface provided to the display by the display controller. A data processing system characterized by being different from the shape.
제 1 항 또는 제 2 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나는,
출력 데이터 어레이를, 상기 출력 데이터 어레이를 함께 구성하는 데이터 값들의 복수의 2차원 블록들로서 생성하고,
상기 출력 데이터 어레이를 구성하고 있는 한 개 이상의 2차원 데이터 값 블록들로부터 복수의 데이터 위치 행들로부터의 데이터 값들을 연결시킴으로써 손실 압축 방식을 이용해서 압축되어야 하는 출력 어레이의 데이터 값들의 행을 형성하며,
손실 압축 방식을 이용해서 그렇게 형성된 데이터 값들의 행을 선형 압축해서 상기 출력 데이터 어레이에 대한 압축된 출력 영역을 제공하도록 작동되는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
At least one of the one or more processing stages comprises:
generating an output data array as a plurality of two-dimensional blocks of data values that together constitute the output data array;
forming rows of data values of an output array to be compressed using a lossy compression scheme by concatenating data values from a plurality of data location rows from one or more two-dimensional data value blocks constituting the output data array;
characterized in that it is operative to linearly compress rows of data values so formed using a lossy compression scheme to provide a compressed output area for said output data array.
제 8 항에 있어서,
상기 복수의 데이터 위치 행들로부터의 데이터 값들은, Hilbert order; Z-orer; 및 데이터 값 블록 행 단위 순서(order) 중의 하나를 이용해서 연결되는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 8,
The data values from the plurality of data location rows are of Hilbert order; Z-orer; and a data value block row-by-row order.
제 1 항 또는 제 2 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 사용된 손실 압축 방식은, 디스플레이 컨트롤러 손실 압축에 근거해서 제어되는 것을 특징으로 하는, 데이터 처리 시스템.
According to claim 1 or 2,
A data processing system, characterized in that a lossy compression scheme used by at least one of said one or more processing stages is controlled based on display controller lossy compression.
삭제delete 삭제delete 메모리로부터 면 또는 면들을 판독하고, 손실 압축 방식을 이용해서 압축되었던 표시될 출력면의 압축된 버전을 디스플레이에 제공하도록 작동되는 디스플레이 컨트롤러와, 표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하도록 작동되는 한 개 이상의 처리 스테이지들을 구비하는 데이터 처리 시스템을 작동시키는 작동방법으로서, 상기 작동방법은
표시될 출력면을 형성할 때 사용되는 면 또는 면들을 제공하는 상기 한 개 이상의 처리 스테이지들 중의 한 개 이상과,
메모리로부터 처리 스테이지에 의해 제공된 면들 중의 적어도 하나의 면을 판독하고, 이 면을 이용해서 표시될 출력면을 형성하며, 손실 압축 방식을 이용하는 압축된 형태로 표시하기 위한 디스플레이에 출력면을 제공하는, 상기 디스플레이 컨트롤러를 구비하고,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나는, 손실 압축 방식을 이용하는 압축된 형태로 표시될 출력면을 형성할 때 사용되는, 처리 스테이지가 제공하는, 면 또는 면들의 한 개 이상의 영역들을 출력하고,
상기 디스플레이 컨트롤러는 압축 스테이지와 압축 해제 스테이지를 포함하고,
상기 작동방법은 상기 디스플레이 컨트롤러 압축 스테이지와 압축 해제 스테이지를 바이패스하는 손실 압축 방식을 이용하여 압축된 형태로 상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 한 개 이상의 영역들을 구비하는 것을 특징으로 하는, 작동방법.
A display controller operable to read a face or faces from memory and provide a compressed version of an output face to be displayed to a display that has been compressed using a lossy compression scheme, and a face or faces used in forming the output face to be displayed. A method of operation of a data processing system having one or more processing stages operable to provide, said method of operation comprising:
one or more of said one or more processing stages providing a surface or surfaces used in forming an output surface to be displayed;
reading at least one of the faces presented by the processing stage from memory, using this face to form an output face to be displayed, and providing the output face to a display for display in compressed form using a lossy compression scheme; having the display controller;
at least one of the one or more processing stages outputs a surface or one or more regions of surfaces, provided by the processing stage, used in forming an output surface to be displayed in compressed form using a lossy compression scheme;
the display controller includes a compression stage and a decompression stage;
The method of operation comprises one or more regions output by at least one of the one or more processing stages in a compressed form using a lossy compression scheme that bypasses the display controller compression stage and decompression stage. to, how it works.
제 13 항에 있어서,
상기 디스플레이에 제공되는 손실 압축된 출력면은, 상기 디스플레이 컨트롤러에 의해 압축되었던 한 개 이상의 영역들 및/또는 상기 디스플레이 컨트롤러 이외에 의해 압축되었던 한 개 이상의 영역들을 구비하는 것을 특징으로 하는, 작동방법.
According to claim 13,
A method of operation, characterized in that the lossy compressed output surface provided to the display comprises one or more areas compressed by the display controller and/or one or more areas compressed by other than the display controller.
제 13 항 또는 제 14 항에 있어서,
한 개 이상의 프레임 발생기 처리 스테이지들은, 손실 압축 방식을 이용해서 압축되었던 한 개 이상의 면들의 한 개 이상의 영역들을 출력하고, 및/또는
컴포지션 처리 스테이지는, 손실 압축 방식을 이용해서 압축되었던 합성된 출력면의 한 개 이상의 영역들을 출력하고,
한 개 이상의 압축 처리 스테이지들은, 손실 압축 방식을 이용해서 압축되었던 한 개 이상의 표면들의 한 개 이상의 영역들을 출력하는 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
one or more frame generator processing stages output one or more regions of one or more faces that have been compressed using a lossy compression scheme; and/or
A composition processing stage outputs one or more regions of the synthesized output surface that have been compressed using a lossy compression scheme;
A method of operation, characterized in that one or more compression processing stages output one or more regions of one or more surfaces that have been compressed using a lossy compression scheme.
제 13 항 또는 제 14 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 사용된 손실 압축 방식은, 디스플레이 컨트롤러 손실 압축 방식에 근거하는 방식인 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
characterized in that the lossy compression scheme used by at least one of the one or more processing stages is based on a display controller lossy compression scheme.
제 13 항 또는 제 14 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 사용된 손실 압축 방식의 노이즈 특징들은, 디스플레이 컨트롤러 손실 압축 방식의 노이즈 특징들과 매치되는 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
characterized in that noise characteristics of a lossy compression scheme used by at least one of said one or more processing stages match noise characteristics of a display controller lossy compression scheme.
제 13 항 또는 제 14 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 압축된 영역들의 각각의 사이즈 및/또는 형상은, 상기 디스플레이 컨트롤러가 상기 디스플레이에 제공하는 출력면의 복수의 영역들의 각 영역의 사이즈 및/또는 형상에 대응하는 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
The size and/or shape of each of the compressed regions output by at least one of the one or more processing stages is determined by the size and/or shape of each region of the plurality of regions of the output surface provided to the display by the display controller. Characterized in that it corresponds to the shape, the operating method.
제 13 항 또는 제 14 항에 있어서,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 출력된 압축된 영역들의 각각의 사이즈 및/또는 형상은, 상기 디스플레이 컨트롤러가 상기 디스플레이에 제공하는 출력면의 복수의 영역들의 각 영역의 사이즈 및/또는 형상과 다른 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
The size and/or shape of each of the compressed regions output by at least one of the one or more processing stages is determined by the size and/or shape of each region of the plurality of regions of the output surface provided to the display by the display controller. A method of operation, characterized in that it is different from the shape.
제 13 항 또는 제 14 항에 있어서,
출력 데이터 어레이를, 상기 출력 데이터 어레이를 함께 구성하는 데이터 값들의 복수의 2차원 블록들로서 생성하고,
상기 출력 데이터 어레이를 구성하고 있는 한 개 이상의 2차원 데이터 값 블록들로부터 복수의 데이터 위치 행들로부터의 데이터 값들을 연결시킴으로써 손실 압축 방식을 이용해서 압축되어야 하는 출력 어레이의 데이터 값들의 행을 형성하며,
손실 압축 방식을 이용해서 그렇게 형성된 데이터 값들의 행을 선형 압축하여 상기 출력 데이터 어레이에 대한 압축된 출력 영역을 제공하는,
상기 한 개 이상의 처리 스테이지들 중의 적어도 하나를 더 구비하는 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
generating an output data array as a plurality of two-dimensional blocks of data values that together constitute the output data array;
forming rows of data values of an output array to be compressed using a lossy compression scheme by concatenating data values from a plurality of data location rows from one or more two-dimensional data value blocks constituting the output data array;
linearly compressing the rows of data values so formed using a lossy compression scheme to provide a compressed output area for the output data array.
and further comprising at least one of said one or more processing stages.
제 20 항에 있어서,
상기 복수의 데이터 위치 행들로부터의 데이터 값들은, Hilbert order, Z-order, 및 데이터 값 블록 행 단위 순서 중의 하나를 이용해서 연결되는 것을 특징으로 하는, 작동방법.
21. The method of claim 20,
wherein the data values from the plurality of data location rows are concatenated using one of Hilbert order, Z-order, and data value block row-by-row order.
제 13 항 또는 제 14 항에 있어서,
디스플레이 컨트롤러 손실 압축에 근거해 상기 한 개 이상의 처리 스테이지들 중의 적어도 하나에 의해 사용된 손실 압축 방식을 제어하는 것을 더 구비하는 것을 특징으로 하는, 작동방법.
According to claim 13 or 14,
and controlling a lossy compression scheme used by at least one of said one or more processing stages based on display controller lossy compression.
삭제delete 삭제delete 프로그램이 데이터 처리 수단에서 실행될 때 청구항 13 또는 14의 작동방법을 수행하는 컴퓨터 소프트웨어 코드를 구비하는, 매체에 기억된, 컴퓨터 프로그램.A computer program, stored in a medium, comprising computer software codes for performing the operation method of claim 13 or 14 when the program is executed in data processing means.
KR1020160005745A 2015-01-26 2016-01-18 Data processing systems KR102467139B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1501247.9A GB2534420B (en) 2015-01-26 2015-01-26 Data processing systems
GB1501247.9 2015-01-26

Publications (2)

Publication Number Publication Date
KR20160091823A KR20160091823A (en) 2016-08-03
KR102467139B1 true KR102467139B1 (en) 2022-11-15

Family

ID=52673920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160005745A KR102467139B1 (en) 2015-01-26 2016-01-18 Data processing systems

Country Status (4)

Country Link
US (1) US10262632B2 (en)
KR (1) KR102467139B1 (en)
CN (1) CN105827896B (en)
GB (1) GB2534420B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180300840A1 (en) * 2017-04-17 2018-10-18 Joydeep Ray Display link compression by render engine
CN107333135B (en) * 2017-06-05 2020-07-10 贵阳朗玛信息技术股份有限公司 Image picture presenting method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143018A (en) * 1994-03-24 2003-05-16 Discovision Assoc Data processing system
US20140301464A1 (en) * 2013-04-08 2014-10-09 Microsoft Corporation Control data for motion-constrained tile set

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828780A (en) * 1993-12-21 1998-10-27 Ricoh Company, Ltd. Image processing apparatus with improved color correction
US6366289B1 (en) * 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US6587583B1 (en) * 1999-09-17 2003-07-01 Kurzweil Educational Systems, Inc. Compression/decompression algorithm for image documents having text, graphical and color content
US9185424B2 (en) * 2011-07-05 2015-11-10 Qualcomm Incorporated Image data compression
US9489331B2 (en) * 2012-10-10 2016-11-08 Samsung Display Co., Ltd. Method and protocol for high-speed data channel detection control
US9245491B2 (en) * 2012-12-13 2016-01-26 Texas Instruments Incorporated First de-compressing first compressing schemes for pixels from/to bus interface
CN104113759B (en) * 2013-04-17 2018-03-23 展讯通信(上海)有限公司 Video system, video frame buffer recompression/decompression method and device
US20140362098A1 (en) * 2013-06-10 2014-12-11 Sharp Laboratories Of America, Inc. Display stream compression
US9245214B2 (en) * 2014-06-27 2016-01-26 Ricoh Company Ltd. Image processing compression with a defined pixel window in a linear array

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143018A (en) * 1994-03-24 2003-05-16 Discovision Assoc Data processing system
US20140301464A1 (en) * 2013-04-08 2014-10-09 Microsoft Corporation Control data for motion-constrained tile set

Also Published As

Publication number Publication date
GB2534420B (en) 2021-01-13
US20160217771A1 (en) 2016-07-28
GB201501247D0 (en) 2015-03-11
CN105827896A (en) 2016-08-03
GB2534420A (en) 2016-07-27
KR20160091823A (en) 2016-08-03
CN105827896B (en) 2020-01-07
US10262632B2 (en) 2019-04-16

Similar Documents

Publication Publication Date Title
KR102520330B1 (en) Display controller
CN105049745B (en) Method and system for processing frames to provide on an electronic display
CN106254877B (en) Video processing system, method, device and storage medium for processing video data frame
US10283089B2 (en) Display controller
CN106030652B (en) Method, system and composite display controller for providing output surface and computer medium
US10896536B2 (en) Providing output surface data to a display in data processing systems
KR102467139B1 (en) Data processing systems
US11323678B2 (en) Method of and apparatus for processing frames in a data processing system
US20140354641A1 (en) Methods of and apparatus for compressing depth data
US10672367B2 (en) Providing data to a display in data processing systems
US11600026B2 (en) Data processing systems
JP6912158B2 (en) Video data processing system
KR101811774B1 (en) Apparatus and method for processing graphics
CN107154246B (en) Data processing system and method of operating a data processing system
WO2019122833A1 (en) Image compression
GB2548578A (en) Video data processing system
US10592146B2 (en) Data processing systems
KR20210117205A (en) Encoding Data Arrays

Legal Events

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