WO2022099534A1 - Automatic update for transmitting a command to a display panel - Google Patents

Automatic update for transmitting a command to a display panel Download PDF

Info

Publication number
WO2022099534A1
WO2022099534A1 PCT/CN2020/128294 CN2020128294W WO2022099534A1 WO 2022099534 A1 WO2022099534 A1 WO 2022099534A1 CN 2020128294 W CN2020128294 W CN 2020128294W WO 2022099534 A1 WO2022099534 A1 WO 2022099534A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
display panel
blanking period
value
display
Prior art date
Application number
PCT/CN2020/128294
Other languages
French (fr)
Inventor
Lizheng XIAO
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority to PCT/CN2020/128294 priority Critical patent/WO2022099534A1/en
Publication of WO2022099534A1 publication Critical patent/WO2022099534A1/en

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2092Details of a display terminals using a flat panel, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G3/2096Details of the interface to the display terminal specific for a flat panel
    • 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/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • 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/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/08Details of timing specific for flat panels, other than clock recovery
    • 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/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream

Definitions

  • the present disclosure relates generally to processing systems, and more particularly, to one or more techniques for display processing.
  • Computing devices often perform graphics and/or display processing (e.g., utilizing a graphics processing unit (GPU) , a central processing unit (CPU) , a display processor, etc. ) to render and display visual content.
  • Such computing devices may include, for example, computer workstations, mobile phones such as smartphones, embedded systems, personal computers, tablet computers, and video game consoles.
  • GPUs are configured to execute a graphics processing pipeline that includes one or more processing stages, which operate together to execute graphics processing commands and output a frame.
  • a central processing unit (CPU) may control the operation of the GPU by issuing one or more graphics processing commands to the GPU.
  • Modern day CPUs are typically capable of executing multiple applications concurrently, each of which may need to utilize the GPU during execution.
  • a display processor may be configured to convert digital information received from a CPU to analog values and may issue commands to a display panel for displaying the visual content.
  • a device that provides content for visual presentation on a display may utilize a GPU and/or a display processor.
  • a preceding or following blanking period of a frame or sync pulse may be used for transmitting commands to a display panel and/or receiving response information from the display panel.
  • the time period for the preceding or following blanking period of the frame or sync pulse is shorter than a time period for transmitting the command (s) to the display panel, a command sending failure may occur. Accordingly, there is a need for improved display processing techniques.
  • a “porch” region of a frame is a time period before or after a synchronization pulse (e.g., blanking period) where a display panel does not display video data.
  • a horizontal synchronization pulse which may be referred to as a line pulse or a column pulse, may synchronize the video data for horizontal columns of pixels of the display panel.
  • a vertical synchronization pulse which may be referred to as a frame pulse or a row pulse, may synchronize the video data for vertical rows of the display panel.
  • a blanking period that occurs before a synchronization pulse may be referred to as a “front porch” (e.g., a horizontal front porch (HFP) or a vertical front porch (VFP) )
  • a blanking period that occurs after the synchronization pulse may be referred to as a “back porch” (e.g., a horizontal back porch (HBP) or a vertical back porch (VBP) )
  • the front porch and back porch regions of the frame may define the boundaries of a visible content area of the frame to be displayed by the display panel.
  • a method, a computer-readable medium, and an apparatus may transmit a command to a display panel; determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period (e.g., VFP period) that precedes a frame; and calculate an updated blanking period value (e.g., porch time) when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
  • a blanking period e.g., VFP period
  • an updated blanking period value e.g., porch time
  • the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims.
  • the following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects may be employed, and this description is intended to include all such aspects and their equivalents.
  • FIG. 1 is a block diagram that illustrates an example content generation system in accordance with one or more techniques of this disclosure.
  • FIG. 2 is a call flow diagram illustrating example communications between a display processor and a display panel in accordance with one or more techniques of this disclosure.
  • FIG. 3 illustrates an example diagram corresponding to timing parameters for a display panel in accordance with one or more techniques of this disclosure.
  • FIG. 4 illustrates an example flowchart for increasing display command set (DCS) command sending robustness in accordance with one or more techniques of this disclosure.
  • DCS display command set
  • FIG. 5 is a flowchart of an example method of display processing in accordance with one or more techniques of this disclosure.
  • Vertical and horizontal porch regions that define the boundaries of a visible content region of a frame may be associated with buffer periods for which display data is not transferred between a host and a display module.
  • a display processor may transmit command (s) to a display panel and/or receive response information from the display panel.
  • the display processor may transmit a display command set (DCS) command or a panel customization command to the display panel during a time period for a vertical front porch (VFP) .
  • DCS display command set
  • VFP vertical front porch
  • the transmitted command is too large or if too many commands are transmitted together, a command sending failure may occur or incomplete content may be displayed on the display panel based on a length of a time period for the VFP being too short relative to a time period for transmitting the command (s) to the display panel.
  • the time period for the VFP may be at least initially fixed in software. However, as a size of the information to be transferred from the display processor to the display panel changes, the time period for the VFP may need to be adjusted. The time period for the VFP may be updated manually in some cases to increase the time for sending command information from the display processor to the display panel.
  • a processor may determine whether a time period for transmitting a command to the display panel is greater than a current time period for the VFP, such as the time period fixed in software or other subsequently adjusted time period. If so, the display processor may automatically update/increase the time period for the VFP based on the time period determined for transmitting the command to the display panel, such that the display processor may resend the command to the display panel based on the updated/increased time period for the VFP. By automatically updating the time period for the VFP, command transmission failures from the display processor to the display panel may be reduced.
  • FIG. 1 is a block diagram that illustrates an example content generation system 100 configured to implement one or more techniques of this disclosure.
  • the content generation system 100 includes a device 104.
  • the device 104 may include one or more components or circuits for performing various functions described herein.
  • one or more components of the device 104 may be components of a system-on-chip (SOC) .
  • SOC system-on-chip
  • the device 104 may include one or more components configured to perform one or more techniques of this disclosure.
  • the device 104 may include a processing unit 120, a content encoder/decoder 122, and a system memory 124.
  • the device 104 may include a number of optional components (e.g., a communication interface 126, a transceiver 132, a receiver 128, a transmitter 130, a display processor 127, and one or more displays 131) .
  • Display (s) 131 may refer to one or more displays 131.
  • the display 131 may include a single display or multiple displays, which may include a first display and a second display.
  • the first display may be a left-eye display and the second display may be a right-eye display.
  • the first display and the second display may receive different frames for presentment thereon. In other examples, the first and second display may receive the same frames for presentment thereon.
  • the results of the graphics processing may not be displayed on the device, e.g., the first display and the second display may not receive any frames for presentment thereon. Instead, the frames or graphics processing results may be transferred to another device. In some aspects, this may be referred to as split-rendering.
  • the processing unit 120 may include an internal memory 121.
  • the processing unit 120 may be configured to perform graphics processing using a graphics processing pipeline 107.
  • the content encoder/decoder 122 may include an internal memory 123.
  • the device 104 may include a processor, which may be configured to perform one or more display processing techniques on one or more frames generated by the processing unit 120 before the frames are displayed by the one or more displays 131. While the processor in the example content generation system 100 is configured as a display processor 127, it should be understood that the display processor 127 is one example of the processor and that other types of processors, controllers, etc., may be used as a substitute for the display processor 127.
  • the display processor 127 may be configured to perform display processing.
  • the display processor 127 may be configured to perform one or more display processing techniques on one or more frames generated by the processing unit 120.
  • the one or more displays 131 may be configured to display or otherwise present frames processed by the display processor 127.
  • the one or more displays 131 may include one or more of a liquid crystal display (LCD) , a plasma display, an organic light emitting diode (OLED) display, a projection display device, an augmented reality display device, a virtual reality display device, a head-mounted display, or any other type of display device.
  • LCD liquid crystal display
  • OLED organic light emitting diode
  • Memory external to the processing unit 120 and the content encoder/decoder 122 may be accessible to the processing unit 120 and the content encoder/decoder 122.
  • the processing unit 120 and the content encoder/decoder 122 may be configured to read from and/or write to external memory, such as the system memory 124.
  • the processing unit 120 may be communicatively coupled to the system memory 124 over a bus.
  • the processing unit 120 and the content encoder/decoder 122 may be communicatively coupled to the internal memory 121 over the bus or via a different connection.
  • the content encoder/decoder 122 may be configured to receive graphical content from any source, such as the system memory 124 and/or the communication interface 126.
  • the system memory 124 may be configured to store received encoded or decoded graphical content.
  • the content encoder/decoder 122 may be configured to receive encoded or decoded graphical content, e.g., from the system memory 124 and/or the communication interface 126, in the form of encoded pixel data.
  • the content encoder/decoder 122 may be configured to encode or decode any graphical content.
  • the internal memory 121 or the system memory 124 may include one or more volatile or non-volatile memories or storage devices.
  • internal memory 121 or the system memory 124 may include RAM, static random access memory (SRAM) , dynamic random access memory (DRAM) , erasable programmable ROM (EPROM) , EEPROM, flash memory, a magnetic data media or an optical storage media, or any other type of memory.
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • EPROM erasable programmable ROM
  • EEPROM electrically programmable ROM
  • flash memory a magnetic data media or an optical storage media, or any other type of memory.
  • the internal memory 121 or the system memory 124 may be a non-transitory storage medium according to some examples.
  • the term “non-transitory” may indicate that the storage medium is not embodied in a carrier wave or a propagated signal.
  • non-transitory should not be interpreted to mean that internal memory 121 or the system memory 124 is non-movable or that its contents are static.
  • the system memory 124 may be removed from the device 104 and moved to another device.
  • the system memory 124 may not be removable from the device 104.
  • the processing unit 120 may be a CPU, a GPU, GPGPU, or any other processing unit that may be configured to perform graphics processing.
  • the processing unit 120 may be integrated into a motherboard of the device 104.
  • the processing unit 120 may be present on a graphics card that is installed in a port of the motherboard of the device 104, or may be otherwise incorporated within a peripheral device configured to interoperate with the device 104.
  • the processing unit 120 may include one or more processors, such as one or more microprocessors, GPUs, ASICs, FPGAs, arithmetic logic units (ALUs) , DSPs, discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuitry, or any combinations thereof.
  • the processing unit 120 may store instructions for the software in a suitable, non-transitory computer-readable storage medium, e.g., internal memory 121, and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the foregoing, including hardware, software, a combination of hardware and software, etc., may be considered to be one or more processors.
  • the content encoder/decoder 122 may be any processing unit configured to perform content decoding. In some examples, the content encoder/decoder 122 may be integrated into a motherboard of the device 104.
  • the content encoder/decoder 122 may include one or more processors, such as one or more microprocessors, application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) , arithmetic logic units (ALUs) , digital signal processors (DSPs) , video processors, discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuitry, or any combinations thereof.
  • ASICs application specific integrated circuits
  • FPGAs field programmable gate arrays
  • ALUs arithmetic logic units
  • DSPs digital signal processors
  • video processors discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuitry, or any combinations thereof.
  • the content encoder/decoder 122 may store instructions for the software in a suitable, non-transitory computer-readable storage medium, e.g., internal memory 123, and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the foregoing, including hardware, software, a combination of hardware and software, etc., may be considered to be one or more processors.
  • the content generation system 100 may include an optional communication interface 126.
  • the communication interface 126 may include a receiver 128 and a transmitter 130.
  • the receiver 128 may be configured to perform any receiving function described herein with respect to the device 104. Additionally, the receiver 128 may be configured to receive information, e.g., eye or head position information, rendering commands, and/or location information, from another device.
  • the transmitter 130 may be configured to perform any transmitting function described herein with respect to the device 104. For example, the transmitter 130 may be configured to transmit information to another device, which may include a request for content.
  • the receiver 128 and the transmitter 130 may be combined into a transceiver 132. In such examples, the transceiver 132 may be configured to perform any receiving function and/or transmitting function described herein with respect to the device 104.
  • the display processor 127 may execute porch determination instructions 198 for transmitting a command to a display panel; determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period (e.g., VFP period) that precedes a frame; and calculating an updated blanking period value (e.g., porch time) when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
  • a blanking period e.g., VFP period
  • an updated blanking period value e.g., porch time
  • a device such as the device 104, may refer to any device, apparatus, or system configured to perform one or more techniques described herein.
  • a device may be a server, a base station, a user equipment, a client device, a station, an access point, a computer such as a personal computer, a desktop computer, a laptop computer, a tablet computer, a computer workstation, or a mainframe computer, an end product, an apparatus, a phone, a smart phone, a server, a video game platform or console, a handheld device such as a portable video game device or a personal digital assistant (PDA) , a wearable computing device such as a smart watch, an augmented reality device, or a virtual reality device, a non-wearable device, a display or display device, a television, a television set-top box, an intermediate network device, a digital media player, a video streaming device, a content streaming device, an in-vehicle computer, any mobile device, any device configured to generate graphical content, or
  • FIG. 2 is a call flow diagram 200 illustrating example communications between a display processor 202 and a display panel 204 in accordance with one or more techniques of this disclosure. While the processor in the call flow diagram 200 is configured as a display processor 202, it should be understood that the display processor 202 is one example type of processor that may be utilized for performing the communications with the display panel 204 and that other types of processors, controllers, etc., may be used as a substitute for the display processor 202.
  • the display processor 202 may transmit display information, such as a display command set (DCS) command or a panel customization command, to the display panel 204.
  • the display processor 202 may determine a time period for command sending. That is, the display processor 202 may determine a length of time that corresponds to the sending, at 206, of the DCS/panel customization command to the display panel 204.
  • DCS display command set
  • the display panel 204 may transmit an indication of command transmission success or non-success. If the display processor 202 determines based on the indication that the transmission of the command, at 206, was unsuccessful, the display processor 202 may determine, at 212, whether a transmission time of the command is greater than a VFP value.
  • the VFP value may be a unit of time that corresponds to a buffer period for which display data may be transferred from a host to a display panel prior to being displayed. If the transmission time of the command is determined, at 212, to be greater than the VFP value, the display processor 202 may calculate, at 214, an updated VFP value (e.g., based on the time period for command sending/the determined transmission time) .
  • the updated VFP value may correspond to an increased VFP value.
  • the display processor 202 may determine whether the updated VFP value is between a minimum VFP value (VFP_min) of the display panel 204 and a maximum VFP value (VFP_max) of the display panel 204. For example, the display processor 202 may determine whether VFP_min ⁇ updated VFP value ⁇ VFP_max. If so, the display processor 202 may switch, at 218, the VFP value to the updated VFP value and reinitialize, at 218, based on the updated VFP value.
  • VFP_min minimum VFP value
  • VFP_max maximum VFP value
  • the display processor 202 may further transmit, at 220, a display panel initialization trigger that causes the display panel 204 to reinitialize.
  • the display panel 204 may reinitialize, at 222, based on the trigger associated with the updated VFP value received, at 220, from the display processor 202.
  • the display processor 202 may switch, at 218, the VFP value to the updated VFP value and reinitializes, at 218, based on the updated VFP value
  • the display processor 202 may retransmit, at 224, the DCS command/panel customization command to the display panel 204 based on the updated VFP value.
  • FIG. 3 is a diagram 300 corresponding to example timing parameters for a display panel in accordance with one or more techniques of this disclosure.
  • a “porch” region of a frame is a time period before or after a synchronization pulse (e.g., blanking period) where a display panel does not display video data.
  • a horizontal synchronization (Hsync) pulse which may be referred to as a line pulse or a column pulse, may synchronize the video data for horizontal columns of pixels of the display panel.
  • a vertical synchronization (Vsync) pulse which may be referred to as a frame pulse or a row pulse, may synchronize the video data for vertical rows of the display panel.
  • a blanking period that occurs before a synchronization pulse may be referred to as a “front porch” (e.g., a horizontal front porch (HFP) or a vertical front porch (VFP) )
  • a blanking period that occurs after the synchronization pulse may be referred to as a “back porch” (e.g., a horizontal back porch (HBP) or a vertical back porch (VBP) )
  • the front porch and back porch regions of the frame may define the boundaries of a visible content area of the frame to be displayed by the display panel.
  • a vertical period of a frame to be displayed by the display panel may correspond to a sum of a Vsync period, a VBP, a vertical address (VAdr) , and a VFP.
  • a horizontal period of the frame to be displayed by the display panel may correspond to a sum of a Hsync period, a HBP, a horizontal address (HAdr) , and a HFP.
  • the diagram 300 includes an inner region 302 that may be a visible content region of the display panel and an outer region 304 that may be a porch region and/or a synchronization region of the display panel.
  • the front porch and back porch regions of the outer region 304 may be associated with buffer periods around the visible content region/inner region 302.
  • the synchronization periods may be associated with frames and/or lines to be displayed by the display panel. For example, the Vsync period may be used to determine when a next frame is to be received by the display panel and the Hsync period may be used to determine when a next line of the frame is to be received by the display panel.
  • the Vsync period which may be referred to as a frame pulse or a row pulse, may synchronize data vertically for rows of the display panel.
  • the Hsync period which may be referred to as a line pulse or a column pulse, may synchronize data horizontally for pixel columns of the display panel.
  • the visible content region/inner region 302 may be defined based on a VAdr parameter and a HAdr parameter. That is, VAdr + HAdr may define a period for which valid display data is transferred from a host to a display module.
  • VAdr + HAdr may define a period for which valid display data is transferred from a host to a display module.
  • the VFP and the HFP of the outer region 304 may respectively correspond to vertical and horizontal intervals where no valid display data is transferred/sent from the host to the display module.
  • the VBP together with the Vsync period and the HBP together with the Hsync period may also respectively correspond to intervals of the outer region 304 where no valid display data is transferred/sent from the host to the display module.
  • a command or other control signal may be sent to a control panel.
  • the porch regions may be used to redirect a data pointer. For instance, if the control panel reads a received data set and thereafter the pointer is associated with another pixel, the pointer may be redirected during a porch time period (e.g., the pointer may be returned to a net line beginning during the porch time period) .
  • Commands and/or control signals may also be sent to the control panel for other purposes.
  • an operating system may send one or more DCS commands for the display panel during a VFP period.
  • DCS commands such as for display serial interface (DSI) video on a liquid crystal display (LCD) panel
  • DSI display serial interface
  • LCD liquid crystal display
  • An increased robustness for DCS command sending techniques may be provided to reduce such command sending failures based on automatic changes/updates to the porch values, where a display processor may attempt to resend a failed DCS command to the control panel of a display based on the changed/updated porch values.
  • MIPI mobility industry processor interface
  • FIG. 4 illustrates an example flowchart 400 for increasing DCS command sending robustness in accordance with one or more techniques of this disclosure.
  • a display panel may have a fixed resolution based on fixed values, such as values associated with the VFP, VBP, Vsync, HFP, HBP, and Hsync timing parameters.
  • a host may communicate with the display panel based on the timing parameters and send control commands (e.g., DCS commands) to the display panel during a vertical porch period.
  • a time period for the VFP and the VBP may be based on a blanking or low-power (BLLP) interval for which video stream data may not be sent to the display panel.
  • BLLP blanking or low-power
  • the BLLP interval may be used to send control data from the host to the display panel or to send response information from the display panel to the host.
  • a data block is too large for a given porch value, a sending failure may occur or content displayed by the display panel may be incomplete.
  • a DCS command sending failure may occur if a current porch value is too small. While updating the porch value may allow the DCS command to be successfully sent to the display panel, a resolution of the display panel may be initially set/hardcoded in software. Thus, the porch value may be fixed such that the porch value may not be automatically adapted to different command sending configurations. By adapting the porch value automatically based on a time consumed for DCS command sending, a number of failed command sending instances may be decreased, as command sending instances that may otherwise be prone to failure absent a manual update to the porch value may instead be fully received by the display panel based on the automatic update.
  • a display driver executed by a display processor may ensure that sufficient time is provided for sending the one or more DCS commands to the display panel.
  • the display processor that executes the display driver may communicate with a display controller that may further communicate with the display panel via the DSI.
  • the display processor may send a command, such as a DCS command or a panel customization command, to the display panel.
  • a command such as a DCS command or a panel customization command
  • the display processor may transmit the command from a host-side of a display processing system to a panel-side of the display processing system.
  • the display processor may calculate a time consumed for the command sending operation. The time determined for sending the command to the display panel may be referred to as time A and may be recorded by the display processor.
  • the display processor may also determine and record a usable VFP range of the display panel.
  • the display processor may determine whether the command sending operation is successful. If the command is successfully sent to the display panel, a current VFP value (e.g., set in software) may not be adapted and the display processing operation may end, at 408. If the command is not successfully sent to the display panel, the current VFP value (e.g., set in software) may be too small.
  • the display processor may determine, at 410, whether time A is greater than the current VFP value (e.g., by comparing time A to the current VFP value) . If time A is not greater than the current VFP value, the display processing operation may end, at 412, as the DCS failure may not be caused by a short VFP value. If time A is greater than the current VFP value, the display processor may calculate, at 414, an updated (e.g., increased) VFP value, i.e., VFP value B. For example, the display processor may calculate VFP value B based on the time A determined to be consumed for the command sending operation. An increase to the VFP value may be based on comparing the time consumed for command sending with a remaining time of the updated VFP value.
  • the display processor may compare VFP value B to a minimum VFP value of the display panel and a maximum VFP value of the display panel. For example, the display processor may determine whether VFP_min ⁇ B ⁇ VFP_max. If the VFP value B is determined, at 416, to be greater than the maximum VFP value of the display panel, the display processing operation may end, at 418, as the VFP value may not be further increased based on the VFP value currently reaching/exceeding the maximum VFP value of the display panel.
  • the display processor may reset, at 420, the current VFP value with VFP value B.
  • the display processor may further cause a host to be reinitialized and transmit a command to the display panel that causes the display panel to be reinitialized.
  • the DSI module may be reinitialized based on the VFP value B.
  • the display processor may resend the failed command (e.g., the failed DCS command or the failed panel customization command) to the display panel.
  • the VFP value B may be further increased before resetting the current VFP value with VFP value B and reinitializing the host and the display panel.
  • FIG. 5 is a flowchart 500 of an example method of display processing in accordance with one or more techniques of this disclosure.
  • the method may be performed by an apparatus, such as an apparatus for display processing, a display processing unit (DPU) or other display processor, a wireless communication device, and the like, as used in connection with the examples of FIGs. 1-4.
  • an apparatus such as an apparatus for display processing, a display processing unit (DPU) or other display processor, a wireless communication device, and the like, as used in connection with the examples of FIGs. 1-4.
  • DPU display processing unit
  • wireless communication device and the like
  • the display processor may transmit a command to a display panel.
  • the command may be at least one of a DCS command or a panel customization command.
  • the display processor 202 may transmit, at 206, the DCS/panel customization command to the display panel 204.
  • DCS command sending or panel customization command sending may be performed, at 402.
  • the display processor may determine the time period for transmitting the command to the display panel. For example, referring to FIGs. 2 and 4, the display processor 202 may determine, at 208, a time period for sending the command, at 206, to the display panel 204. Similarly, a time A that is consumed for the command sending may be calculated, at 404. The time period for transmitting the command, at 206, to the display panel 204 may correspond to at least one of a command transmission time, a length of the command, or a MIPI clock value.
  • the time period for transmitting the command, at 206, to the display panel 204 may be determined based on a value of a timer that corresponds to the timer being initiated at a start of command transmission, at 206, and stopped at a completion of command transmission, at 206.
  • the display processor may receive, from the display panel, an indication of whether the transmission of the command to the display panel is successful.
  • the display processor 202 may receive, at 210, an indication of command transmission success/non-success from the display panel 204.
  • the display processor may determine whether the transmission of the command to the display panel is successful based on the indication. For example, referring to FIG. 4, the display processor may determine, at 406, whether or not the command sending to the display panel, at 402, was successful. In aspects, the determination, at 410, of whether the time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame is performed, at 410, when the transmission, at 402, of the command to the display panel is determined, at 406, to be unsuccessful. In aspects, the blanking period that precedes the frame may correspond to a VFP.
  • the display processor may determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame. For example, referring to FIGs. 2 and 4, the display processor 202 may determine, at 212, whether a transmission time of the command transmitted, at 206, is greater than a VFP value. Similarly, the display processor may determine, at 410, whether A > VFP.
  • the display processor may calculate an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame. For example, referring to FIGs. 2 and 4, the display processor 202 may calculate, at 214, an updated VFP value. Similarly, the display processor may calculate, at 414, an updated VFP value B based on time A when the display processor determines, at 410, that A > VFP. In aspects, the calculation of the updated blanking period value may be performed (e.g., at 214 and 414) based on the determined time period (e.g., at 208 and 404) for transmitting the command (e.g., at 206 and 402) to the display panel 204.
  • the display processor may determine whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel. For example, referring to FIGs. 2 and 4, the display processor 202 may determine, at 216, whether VFP_min ⁇ updated VFP ⁇ VFP_max of the display panel 204. Similarly, the display processor may determine, at 416, VFP_min ⁇ B ⁇ VFP_max.
  • the display processor may switch the blanking period value based on the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel. For example, referring to FIGs. 2 and 4, the display processor 202 may switch, at 218, the VFP to the updated VFP. Similarly, the display processor may reset, at 420, the VFP with VFP value B when the display processor determines, at 416, that VFP_min ⁇ B ⁇ VFP_max.
  • the display processor may perform an initialization based on switching the blanking period value to the updated blanking period value. For example, referring to FIGs. 2 and 4, the display processor 202 may reinitialize, at 218, based on the updated VFP after switching the VFP to the updated VFP. Similarly, at 420, the host may be reinitialized after the VFP is reset with VFP value B.
  • the display processor may transmit an initialization command to the display panel, the initialization command configured to cause the display panel to initialize.
  • the display processor 202 may transmit, at 220, a display panel initialization trigger to the display panel 204 that causes the display panel 204 to reinitialize, at 222, based on the trigger associated with the updated VFP.
  • the display processor may retransmit the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value. For example, referring to FIG. 2, after the display processor 202 switches, at 218, the VFP to the updated VFP and reinitializes, at 218, based on the updated VFP, the display processor 202 may further retransmit the DCS/panel customization command to the display panel 204 based on the updated VFP.
  • the apparatus may be a DPU, a display processor, or some other processor that may perform display processing.
  • the apparatus may be the display processor 127 within the device 104, or may be some other hardware within the device 104 or another device.
  • the apparatus may include means for transmitting a command to a display panel; means for determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and means for calculating an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
  • the apparatus may further include means for determining the time period for transmitting the command to the display panel.
  • the apparatus may further include means for receiving, from the display panel, an indication of whether the transmission of the command to the display panel is successful.
  • the apparatus may further include means for determining whether the transmission of the command to the display panel is successful based on the indication.
  • the apparatus may further include means for determining whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel.
  • the apparatus may further include means for switching the blanking period value to the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel.
  • the apparatus may further include means for transmitting an initialization command to the display panel, the initialization command configured to cause the display panel to initialize.
  • the apparatus may further include means for performing an initialization based on switching the blanking period value to the updated blanking period value; and means for retransmitting the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value.
  • the term “some” refers to one or more and the term “or” may be interpreted as “and/or” where context does not dictate otherwise.
  • Combinations such as “at least one of A, B, or C, ” “one or more of A, B, or C, ” “at least one of A, B, and C, ” “one or more of A, B, and C, ” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C.
  • combinations such as “at least one of A, B, or C, ” “one or more of A, B, or C, ” “at least one of A, B, and C, ” “one or more of A, B, and C, ” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C.
  • the functions described herein may be implemented in hardware, software, firmware, or any combination thereof.
  • processing unit has been used throughout this disclosure, such processing units may be implemented in hardware, software, firmware, or any combination thereof. If any function, processing unit, technique described herein, or other module is implemented in software, the function, processing unit, technique described herein, or other module may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
  • processors include microprocessors, microcontrollers, graphics processing units (GPUs) , general purpose GPUs (GPGPUs) , central processing units (CPUs) , application processors, digital signal processors (DSPs) , reduced instruction set computing (RISC) processors, systems-on-chip (SOCs) , baseband processors, application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) , programmable logic devices (PLDs) , state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
  • processors include microprocessors, microcontrollers, graphics processing units (GPUs) , general purpose GPUs (GPGPUs) , central processing units (CPUs) , application processors, digital signal processors (DSPs) , reduced instruction set computing (RISC) processors, systems-on-chip (SOCs) , baseband processors, application specific integrated circuits (ASICs)
  • One or more processors in the processing system may execute software.
  • Software can be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
  • the term application may refer to software.
  • one or more techniques may refer to an application (e.g., software) being configured to perform one or more functions.
  • the application may be stored in a memory (e.g., on-chip memory of a processor, system memory, or any other memory) .
  • Hardware described herein, such as a processor may be configured to execute the application.
  • the application may be described as including code that, when executed by the hardware, causes the hardware to perform one or more techniques described herein.
  • the hardware may access the code from a memory and execute the code accessed from the memory to perform one or more techniques described herein.
  • components are identified in this disclosure. In such examples, the components may be hardware, software, or a combination thereof. The components may be separate components or sub-components of a single component.
  • the functions described may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium.
  • Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computer.
  • such computer-readable media can comprise a random access memory (RAM) , a read-only memory (ROM) , an electrically erasable programmable ROM (EEPROM) , optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
  • RAM random access memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable ROM
  • optical disk storage magnetic disk storage
  • magnetic disk storage other magnetic storage devices
  • combinations of the aforementioned types of computer-readable media or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
  • instances of the term “content” may refer to “graphical content, ” “display data” , an “image, ” etc., regardless of whether the terms are used as an adjective, noun, or other parts of speech.
  • the term “graphical content, ” as used herein may refer to a content or display data produced by one or more processes of a graphics processing pipeline.
  • the term “graphical content, ” as used herein may refer to a content or display data produced by a processing unit configured to perform graphics processing.
  • the term “graphical content” may refer to content or display data produced by a graphics processing unit.
  • Aspect 1 is a method of display processing, characterized by: transmitting a command to a display panel; determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and calculating an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
  • Aspect 2 may be combined with aspect 1 and is characterized in that the blanking period that precedes the frame corresponds to a VFP.
  • Aspect 3 may be combined with any of aspects 1-2 and is further characterized by determining the time period for transmitting the command to the display panel.
  • Aspect 4 may be combined with any of aspects 1-3 and is characterized in that the time period for transmitting the command to the display panel is determined based on a value of a timer that corresponds to the timer being initiated at a start of command transmission and stopped at a completion of command transmission.
  • Aspect 5 may be combined with any of aspects 1-4 and is further characterized by receiving, from the display panel, an indication of whether the transmission of the command to the display panel is successful.
  • Aspect 6 may be combined with any of aspects 1-5 and is further characterized by determining whether the transmission of the command to the display panel is successful based on the indication.
  • Aspect 7 may be combined with any of aspects 1-6 and is characterized in that the determination of whether the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame is performed when the transmission of the command to the display panel is unsuccessful.
  • Aspect 8 may be combined with any of aspects 1-7 and is characterized in that the calculation of the updated blanking period value is performed based on the time period for transmitting the command to the display panel.
  • Aspect 9 may be combined with any of aspects 1-8 and is further characterized by determining whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel.
  • Aspect 10 may be combined with any of aspects 1-9 and is further characterized by switching the blanking period value based on the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel.
  • Aspect 11 may be combined with any of aspects 1-10 and is further characterized by transmitting an initialization command to the display panel, the initialization command configured to cause the display panel to initialize.
  • Aspect 12 may be combined with any of aspects 1-11 and is further characterized by performing an initialization based on switching the blanking period value to the updated blanking period value; and retransmitting the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value.
  • Aspect 13 may be combined with any of aspects 1-12 and is characterized in that the command is at least one of a DCS command or a panel customization command.
  • Aspect 14 may be combined with any of aspects 1-13 and is characterized in that the time period for transmitting the command to the display panel corresponds to at least one of a command transmission time, a length of the command, or a MIPI clock value.
  • Aspect 15 is an apparatus for display processing including at least one processor coupled to a memory and configured to implement a method as in any of aspects 1-14.
  • Aspect 16 may be combined with aspect 15 and is characterized in that the apparatus is a wireless communication device.
  • Aspect 17 is an apparatus for display processing including means for implementing a method as in any of aspects 1-14.
  • Aspect 18 is a computer-readable medium storing computer executable code, the code when executed by at least one processor causes the at least one processor to implement a method as in any of aspects 1-14.

Abstract

This disclosure provides systems, devices, apparatus, and methods, including computer programs encoded on storage media, for automatic updates for transmitting a command to a display panel. A display driver may be executed by a display processor that cause the display processor to transmit a command to a display panel and determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period (e.g., VFP period) that precedes a frame. If the time period for transmitting the command to the display panel is determined to be greater than the allotted time for the blanking period that precedes the frame, the display processor may calculate an updated/increased blanking period value, e.g., for retransmitting the command to the display panel.

Description

AUTOMATIC UPDATE FOR TRANSMITTING A COMMAND TO A DISPLAY PANEL TECHNICAL FIELD
The present disclosure relates generally to processing systems, and more particularly, to one or more techniques for display processing.
INTRODUCTION
Computing devices often perform graphics and/or display processing (e.g., utilizing a graphics processing unit (GPU) , a central processing unit (CPU) , a display processor, etc. ) to render and display visual content. Such computing devices may include, for example, computer workstations, mobile phones such as smartphones, embedded systems, personal computers, tablet computers, and video game consoles. GPUs are configured to execute a graphics processing pipeline that includes one or more processing stages, which operate together to execute graphics processing commands and output a frame. A central processing unit (CPU) may control the operation of the GPU by issuing one or more graphics processing commands to the GPU. Modern day CPUs are typically capable of executing multiple applications concurrently, each of which may need to utilize the GPU during execution. A display processor may be configured to convert digital information received from a CPU to analog values and may issue commands to a display panel for displaying the visual content. A device that provides content for visual presentation on a display may utilize a GPU and/or a display processor.
In display processing, a preceding or following blanking period of a frame or sync pulse may be used for transmitting commands to a display panel and/or receiving response information from the display panel. However, if the time period for the preceding or following blanking period of the frame or sync pulse is shorter than a time period for transmitting the command (s) to the display panel, a command sending failure may occur. Accordingly, there is a need for improved display processing techniques.
SUMMARY
The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later.
A “porch” region of a frame is a time period before or after a synchronization pulse (e.g., blanking period) where a display panel does not display video data. A horizontal synchronization pulse, which may be referred to as a line pulse or a column pulse, may synchronize the video data for horizontal columns of pixels of the display panel. A vertical synchronization pulse, which may be referred to as a frame pulse or a row pulse, may synchronize the video data for vertical rows of the display panel. A blanking period that occurs before a synchronization pulse may be referred to as a “front porch” (e.g., a horizontal front porch (HFP) or a vertical front porch (VFP) ) , while a blanking period that occurs after the synchronization pulse may be referred to as a “back porch” (e.g., a horizontal back porch (HBP) or a vertical back porch (VBP) ) . The front porch and back porch regions of the frame may define the boundaries of a visible content area of the frame to be displayed by the display panel.
In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus may transmit a command to a display panel; determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period (e.g., VFP period) that precedes a frame; and calculate an updated blanking period value (e.g., porch time) when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
To the accomplishment of the foregoing and related ends, the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of  various aspects may be employed, and this description is intended to include all such aspects and their equivalents.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram that illustrates an example content generation system in accordance with one or more techniques of this disclosure.
FIG. 2 is a call flow diagram illustrating example communications between a display processor and a display panel in accordance with one or more techniques of this disclosure.
FIG. 3 illustrates an example diagram corresponding to timing parameters for a display panel in accordance with one or more techniques of this disclosure.
FIG. 4 illustrates an example flowchart for increasing display command set (DCS) command sending robustness in accordance with one or more techniques of this disclosure.
FIG. 5 is a flowchart of an example method of display processing in accordance with one or more techniques of this disclosure.
DETAILED DESCRIPTION
Vertical and horizontal porch regions that define the boundaries of a visible content region of a frame may be associated with buffer periods for which display data is not transferred between a host and a display module. During such buffer periods a display processor may transmit command (s) to a display panel and/or receive response information from the display panel. For example, the display processor may transmit a display command set (DCS) command or a panel customization command to the display panel during a time period for a vertical front porch (VFP) . However, if the transmitted command is too large or if too many commands are transmitted together, a command sending failure may occur or incomplete content may be displayed on the display panel based on a length of a time period for the VFP being too short relative to a time period for transmitting the command (s) to the display panel.
In some configurations, the time period for the VFP may be at least initially fixed in software. However, as a size of the information to be transferred from the  display processor to the display panel changes, the time period for the VFP may need to be adjusted. The time period for the VFP may be updated manually in some cases to increase the time for sending command information from the display processor to the display panel.
Accordingly, command transmission robustness from the display processor to the display panel may be increased based on techniques for automatically updating a length of the porch time. In aspects, a processor (e.g., a display processor, a controller, etc. ) may determine whether a time period for transmitting a command to the display panel is greater than a current time period for the VFP, such as the time period fixed in software or other subsequently adjusted time period. If so, the display processor may automatically update/increase the time period for the VFP based on the time period determined for transmitting the command to the display panel, such that the display processor may resend the command to the display panel based on the updated/increased time period for the VFP. By automatically updating the time period for the VFP, command transmission failures from the display processor to the display panel may be reduced.
FIG. 1 is a block diagram that illustrates an example content generation system 100 configured to implement one or more techniques of this disclosure. The content generation system 100 includes a device 104. The device 104 may include one or more components or circuits for performing various functions described herein. In some examples, one or more components of the device 104 may be components of a system-on-chip (SOC) . The device 104 may include one or more components configured to perform one or more techniques of this disclosure. In the example shown, the device 104 may include a processing unit 120, a content encoder/decoder 122, and a system memory 124. In some aspects, the device 104 may include a number of optional components (e.g., a communication interface 126, a transceiver 132, a receiver 128, a transmitter 130, a display processor 127, and one or more displays 131) . Display (s) 131 may refer to one or more displays 131. For example, the display 131 may include a single display or multiple displays, which may include a first display and a second display. The first display may be a left-eye display and the second display may be a right-eye display. In some examples, the first display and the second display may receive different frames for presentment thereon. In other examples, the first and second display may receive the same frames for presentment thereon. In further examples, the results of the graphics  processing may not be displayed on the device, e.g., the first display and the second display may not receive any frames for presentment thereon. Instead, the frames or graphics processing results may be transferred to another device. In some aspects, this may be referred to as split-rendering.
The processing unit 120 may include an internal memory 121. The processing unit 120 may be configured to perform graphics processing using a graphics processing pipeline 107. The content encoder/decoder 122 may include an internal memory 123. In some examples, the device 104 may include a processor, which may be configured to perform one or more display processing techniques on one or more frames generated by the processing unit 120 before the frames are displayed by the one or more displays 131. While the processor in the example content generation system 100 is configured as a display processor 127, it should be understood that the display processor 127 is one example of the processor and that other types of processors, controllers, etc., may be used as a substitute for the display processor 127. The display processor 127 may be configured to perform display processing. For example, the display processor 127 may be configured to perform one or more display processing techniques on one or more frames generated by the processing unit 120. The one or more displays 131 may be configured to display or otherwise present frames processed by the display processor 127. In some examples, the one or more displays 131 may include one or more of a liquid crystal display (LCD) , a plasma display, an organic light emitting diode (OLED) display, a projection display device, an augmented reality display device, a virtual reality display device, a head-mounted display, or any other type of display device.
Memory external to the processing unit 120 and the content encoder/decoder 122, such as system memory 124, may be accessible to the processing unit 120 and the content encoder/decoder 122. For example, the processing unit 120 and the content encoder/decoder 122 may be configured to read from and/or write to external memory, such as the system memory 124. The processing unit 120 may be communicatively coupled to the system memory 124 over a bus. In some examples, the processing unit 120 and the content encoder/decoder 122 may be communicatively coupled to the internal memory 121 over the bus or via a different connection.
The content encoder/decoder 122 may be configured to receive graphical content from any source, such as the system memory 124 and/or the communication  interface 126. The system memory 124 may be configured to store received encoded or decoded graphical content. The content encoder/decoder 122 may be configured to receive encoded or decoded graphical content, e.g., from the system memory 124 and/or the communication interface 126, in the form of encoded pixel data. The content encoder/decoder 122 may be configured to encode or decode any graphical content.
The internal memory 121 or the system memory 124 may include one or more volatile or non-volatile memories or storage devices. In some examples, internal memory 121 or the system memory 124 may include RAM, static random access memory (SRAM) , dynamic random access memory (DRAM) , erasable programmable ROM (EPROM) , EEPROM, flash memory, a magnetic data media or an optical storage media, or any other type of memory. The internal memory 121 or the system memory 124 may be a non-transitory storage medium according to some examples. The term “non-transitory” may indicate that the storage medium is not embodied in a carrier wave or a propagated signal. However, the term “non-transitory” should not be interpreted to mean that internal memory 121 or the system memory 124 is non-movable or that its contents are static. As one example, the system memory 124 may be removed from the device 104 and moved to another device. As another example, the system memory 124 may not be removable from the device 104.
The processing unit 120 may be a CPU, a GPU, GPGPU, or any other processing unit that may be configured to perform graphics processing. In some examples, the processing unit 120 may be integrated into a motherboard of the device 104. In further examples, the processing unit 120 may be present on a graphics card that is installed in a port of the motherboard of the device 104, or may be otherwise incorporated within a peripheral device configured to interoperate with the device 104. The processing unit 120 may include one or more processors, such as one or more microprocessors, GPUs, ASICs, FPGAs, arithmetic logic units (ALUs) , DSPs, discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuitry, or any combinations thereof. If the techniques are implemented partially in software, the processing unit 120 may store instructions for the software in a suitable, non-transitory computer-readable storage medium, e.g., internal memory 121, and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the  foregoing, including hardware, software, a combination of hardware and software, etc., may be considered to be one or more processors.
The content encoder/decoder 122 may be any processing unit configured to perform content decoding. In some examples, the content encoder/decoder 122 may be integrated into a motherboard of the device 104. The content encoder/decoder 122 may include one or more processors, such as one or more microprocessors, application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) , arithmetic logic units (ALUs) , digital signal processors (DSPs) , video processors, discrete logic, software, hardware, firmware, other equivalent integrated or discrete logic circuitry, or any combinations thereof. If the techniques are implemented partially in software, the content encoder/decoder 122 may store instructions for the software in a suitable, non-transitory computer-readable storage medium, e.g., internal memory 123, and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the foregoing, including hardware, software, a combination of hardware and software, etc., may be considered to be one or more processors.
In some aspects, the content generation system 100 may include an optional communication interface 126. The communication interface 126 may include a receiver 128 and a transmitter 130. The receiver 128 may be configured to perform any receiving function described herein with respect to the device 104. Additionally, the receiver 128 may be configured to receive information, e.g., eye or head position information, rendering commands, and/or location information, from another device. The transmitter 130 may be configured to perform any transmitting function described herein with respect to the device 104. For example, the transmitter 130 may be configured to transmit information to another device, which may include a request for content. The receiver 128 and the transmitter 130 may be combined into a transceiver 132. In such examples, the transceiver 132 may be configured to perform any receiving function and/or transmitting function described herein with respect to the device 104.
Referring again to FIG. 1, in certain aspects, the display processor 127 may execute porch determination instructions 198 for transmitting a command to a display panel; determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period (e.g., VFP period) that precedes a frame; and calculating an updated blanking period value  (e.g., porch time) when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame. Although the following description may be focused on display processing, the concepts described herein may be applicable to other similar processing techniques.
A device, such as the device 104, may refer to any device, apparatus, or system configured to perform one or more techniques described herein. For example, a device may be a server, a base station, a user equipment, a client device, a station, an access point, a computer such as a personal computer, a desktop computer, a laptop computer, a tablet computer, a computer workstation, or a mainframe computer, an end product, an apparatus, a phone, a smart phone, a server, a video game platform or console, a handheld device such as a portable video game device or a personal digital assistant (PDA) , a wearable computing device such as a smart watch, an augmented reality device, or a virtual reality device, a non-wearable device, a display or display device, a television, a television set-top box, an intermediate network device, a digital media player, a video streaming device, a content streaming device, an in-vehicle computer, any mobile device, any device configured to generate graphical content, or any device configured to perform one or more techniques described herein. Processes herein may be described as performed by a particular component (e.g., a GPU) but in other embodiments, may be performed using other components (e.g., a CPU) consistent with the disclosed embodiments.
FIG. 2 is a call flow diagram 200 illustrating example communications between a display processor 202 and a display panel 204 in accordance with one or more techniques of this disclosure. While the processor in the call flow diagram 200 is configured as a display processor 202, it should be understood that the display processor 202 is one example type of processor that may be utilized for performing the communications with the display panel 204 and that other types of processors, controllers, etc., may be used as a substitute for the display processor 202. At 206, the display processor 202 may transmit display information, such as a display command set (DCS) command or a panel customization command, to the display panel 204. At 208, the display processor 202 may determine a time period for command sending. That is, the display processor 202 may determine a length of time that corresponds to the sending, at 206, of the DCS/panel customization command to the display panel 204.
At 210, the display panel 204 may transmit an indication of command transmission success or non-success. If the display processor 202 determines based on the indication that the transmission of the command, at 206, was unsuccessful, the display processor 202 may determine, at 212, whether a transmission time of the command is greater than a VFP value. The VFP value may be a unit of time that corresponds to a buffer period for which display data may be transferred from a host to a display panel prior to being displayed. If the transmission time of the command is determined, at 212, to be greater than the VFP value, the display processor 202 may calculate, at 214, an updated VFP value (e.g., based on the time period for command sending/the determined transmission time) . The updated VFP value may correspond to an increased VFP value.
At 216, the display processor 202 may determine whether the updated VFP value is between a minimum VFP value (VFP_min) of the display panel 204 and a maximum VFP value (VFP_max) of the display panel 204. For example, the display processor 202 may determine whether VFP_min < updated VFP value <VFP_max. If so, the display processor 202 may switch, at 218, the VFP value to the updated VFP value and reinitialize, at 218, based on the updated VFP value.
The display processor 202 may further transmit, at 220, a display panel initialization trigger that causes the display panel 204 to reinitialize. For example, the display panel 204 may reinitialize, at 222, based on the trigger associated with the updated VFP value received, at 220, from the display processor 202. After the display processor 202 switches, at 218, the VFP value to the updated VFP value and reinitializes, at 218, based on the updated VFP value, the display processor 202 may retransmit, at 224, the DCS command/panel customization command to the display panel 204 based on the updated VFP value.
FIG. 3 is a diagram 300 corresponding to example timing parameters for a display panel in accordance with one or more techniques of this disclosure. A “porch” region of a frame is a time period before or after a synchronization pulse (e.g., blanking period) where a display panel does not display video data. A horizontal synchronization (Hsync) pulse, which may be referred to as a line pulse or a column pulse, may synchronize the video data for horizontal columns of pixels of the display panel. A vertical synchronization (Vsync) pulse, which may be referred to as a frame pulse or a row pulse, may synchronize the video data for vertical rows of the display panel. A blanking period that occurs before a  synchronization pulse may be referred to as a “front porch” (e.g., a horizontal front porch (HFP) or a vertical front porch (VFP) ) , while a blanking period that occurs after the synchronization pulse may be referred to as a “back porch” (e.g., a horizontal back porch (HBP) or a vertical back porch (VBP) ) . The front porch and back porch regions of the frame may define the boundaries of a visible content area of the frame to be displayed by the display panel. A vertical period of a frame to be displayed by the display panel may correspond to a sum of a Vsync period, a VBP, a vertical address (VAdr) , and a VFP. A horizontal period of the frame to be displayed by the display panel may correspond to a sum of a Hsync period, a HBP, a horizontal address (HAdr) , and a HFP.
The diagram 300 includes an inner region 302 that may be a visible content region of the display panel and an outer region 304 that may be a porch region and/or a synchronization region of the display panel. The front porch and back porch regions of the outer region 304 may be associated with buffer periods around the visible content region/inner region 302. The synchronization periods may be associated with frames and/or lines to be displayed by the display panel. For example, the Vsync period may be used to determine when a next frame is to be received by the display panel and the Hsync period may be used to determine when a next line of the frame is to be received by the display panel. The Vsync period, which may be referred to as a frame pulse or a row pulse, may synchronize data vertically for rows of the display panel. The Hsync period, which may be referred to as a line pulse or a column pulse, may synchronize data horizontally for pixel columns of the display panel.
The visible content region/inner region 302 may be defined based on a VAdr parameter and a HAdr parameter. That is, VAdr + HAdr may define a period for which valid display data is transferred from a host to a display module. The VFP and the HFP of the outer region 304 may respectively correspond to vertical and horizontal intervals where no valid display data is transferred/sent from the host to the display module. The VBP together with the Vsync period and the HBP together with the Hsync period may also respectively correspond to intervals of the outer region 304 where no valid display data is transferred/sent from the host to the display module.
During porch time periods of the outer region 304, a command or other control signal may be sent to a control panel. In aspects, the porch regions may be used to  redirect a data pointer. For instance, if the control panel reads a received data set and thereafter the pointer is associated with another pixel, the pointer may be redirected during a porch time period (e.g., the pointer may be returned to a net line beginning during the porch time period) .
Commands and/or control signals may also be sent to the control panel for other purposes. For example, an operating system may send one or more DCS commands for the display panel during a VFP period. However, if the DCS commands, such as for display serial interface (DSI) video on a liquid crystal display (LCD) panel, are too large or if too many DCS commands are sent at a same time, a command sending failure may occur based on a configuration of the porch region being too short relative to a time period for transmitting the DCS command (s) to the display panel. An increased robustness for DCS command sending techniques (e.g., for mobility industry processor interface (MIPI) DSI video panels) may be provided to reduce such command sending failures based on automatic changes/updates to the porch values, where a display processor may attempt to resend a failed DCS command to the control panel of a display based on the changed/updated porch values.
FIG. 4 illustrates an example flowchart 400 for increasing DCS command sending robustness in accordance with one or more techniques of this disclosure. A display panel may have a fixed resolution based on fixed values, such as values associated with the VFP, VBP, Vsync, HFP, HBP, and Hsync timing parameters. A host may communicate with the display panel based on the timing parameters and send control commands (e.g., DCS commands) to the display panel during a vertical porch period. A time period for the VFP and the VBP may be based on a blanking or low-power (BLLP) interval for which video stream data may not be sent to the display panel. Thus, the BLLP interval may be used to send control data from the host to the display panel or to send response information from the display panel to the host. However, if a data block is too large for a given porch value, a sending failure may occur or content displayed by the display panel may be incomplete.
Accordingly, a DCS command sending failure may occur if a current porch value is too small. While updating the porch value may allow the DCS command to be successfully sent to the display panel, a resolution of the display panel may be initially set/hardcoded in software. Thus, the porch value may be fixed such that the porch value may not be automatically adapted to different command sending  configurations. By adapting the porch value automatically based on a time consumed for DCS command sending, a number of failed command sending instances may be decreased, as command sending instances that may otherwise be prone to failure absent a manual update to the porch value may instead be fully received by the display panel based on the automatic update. By automatically adjusting the porch value based on a completion time of the DCS command sending, a display driver executed by a display processor (e.g., a mobile display processor (MDP) or a mobile display sub-system (MDSS) ) may ensure that sufficient time is provided for sending the one or more DCS commands to the display panel. In configurations, the display processor that executes the display driver may communicate with a display controller that may further communicate with the display panel via the DSI.
At 402, the display processor may send a command, such as a DCS command or a panel customization command, to the display panel. For example, the display processor may transmit the command from a host-side of a display processing system to a panel-side of the display processing system. At 404, the display processor may calculate a time consumed for the command sending operation. The time determined for sending the command to the display panel may be referred to as time A and may be recorded by the display processor. The display processor may also determine and record a usable VFP range of the display panel. At 406, the display processor may determine whether the command sending operation is successful. If the command is successfully sent to the display panel, a current VFP value (e.g., set in software) may not be adapted and the display processing operation may end, at 408. If the command is not successfully sent to the display panel, the current VFP value (e.g., set in software) may be too small.
Hence, if the command sending is determined, at 406, to be unsuccessful, the display processor may determine, at 410, whether time A is greater than the current VFP value (e.g., by comparing time A to the current VFP value) . If time A is not greater than the current VFP value, the display processing operation may end, at 412, as the DCS failure may not be caused by a short VFP value. If time A is greater than the current VFP value, the display processor may calculate, at 414, an updated (e.g., increased) VFP value, i.e., VFP value B. For example, the display processor may calculate VFP value B based on the time A determined to be consumed for the command sending operation. An increase to the VFP value may  be based on comparing the time consumed for command sending with a remaining time of the updated VFP value.
At 416, the display processor may compare VFP value B to a minimum VFP value of the display panel and a maximum VFP value of the display panel. For example, the display processor may determine whether VFP_min < B < VFP_max. If the VFP value B is determined, at 416, to be greater than the maximum VFP value of the display panel, the display processing operation may end, at 418, as the VFP value may not be further increased based on the VFP value currently reaching/exceeding the maximum VFP value of the display panel.
If the VFP value B is determined, at 416, to be between the minimum VFP value of the display panel and the maximum VFP value of the display panel, the display processor may reset, at 420, the current VFP value with VFP value B. The display processor may further cause a host to be reinitialized and transmit a command to the display panel that causes the display panel to be reinitialized. For example, the DSI module may be reinitialized based on the VFP value B. Following re-initialization of the host and the display panel, the display processor may resend the failed command (e.g., the failed DCS command or the failed panel customization command) to the display panel. In configurations where the VFP value B is less than the minimum VFP value of the display panel, the VFP value B may be further increased before resetting the current VFP value with VFP value B and reinitializing the host and the display panel.
FIG. 5 is a flowchart 500 of an example method of display processing in accordance with one or more techniques of this disclosure. The method may be performed by an apparatus, such as an apparatus for display processing, a display processing unit (DPU) or other display processor, a wireless communication device, and the like, as used in connection with the examples of FIGs. 1-4.
At 502, the display processor may transmit a command to a display panel. In aspects, the command may be at least one of a DCS command or a panel customization command. For example, referring to FIGs. 2 and 4, the display processor 202 may transmit, at 206, the DCS/panel customization command to the display panel 204. Similarly, DCS command sending or panel customization command sending may be performed, at 402.
At 504, the display processor may determine the time period for transmitting the command to the display panel. For example, referring to FIGs. 2 and 4, the display  processor 202 may determine, at 208, a time period for sending the command, at 206, to the display panel 204. Similarly, a time A that is consumed for the command sending may be calculated, at 404. The time period for transmitting the command, at 206, to the display panel 204 may correspond to at least one of a command transmission time, a length of the command, or a MIPI clock value. For example, the time period for transmitting the command, at 206, to the display panel 204 may be determined based on a value of a timer that corresponds to the timer being initiated at a start of command transmission, at 206, and stopped at a completion of command transmission, at 206.
At 506, the display processor may receive, from the display panel, an indication of whether the transmission of the command to the display panel is successful. For example, referring to FIG. 2, the display processor 202 may receive, at 210, an indication of command transmission success/non-success from the display panel 204.
At 508, the display processor may determine whether the transmission of the command to the display panel is successful based on the indication. For example, referring to FIG. 4, the display processor may determine, at 406, whether or not the command sending to the display panel, at 402, was successful. In aspects, the determination, at 410, of whether the time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame is performed, at 410, when the transmission, at 402, of the command to the display panel is determined, at 406, to be unsuccessful. In aspects, the blanking period that precedes the frame may correspond to a VFP.
At 510, the display processor may determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame. For example, referring to FIGs. 2 and 4, the display processor 202 may determine, at 212, whether a transmission time of the command transmitted, at 206, is greater than a VFP value. Similarly, the display processor may determine, at 410, whether A > VFP.
At 512, the display processor may calculate an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame. For example, referring to FIGs. 2 and 4, the display processor 202 may calculate, at 214, an updated VFP value. Similarly, the display processor may calculate, at 414, an  updated VFP value B based on time A when the display processor determines, at 410, that A > VFP. In aspects, the calculation of the updated blanking period value may be performed (e.g., at 214 and 414) based on the determined time period (e.g., at 208 and 404) for transmitting the command (e.g., at 206 and 402) to the display panel 204.
At 514, the display processor may determine whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel. For example, referring to FIGs. 2 and 4, the display processor 202 may determine, at 216, whether VFP_min < updated VFP < VFP_max of the display panel 204. Similarly, the display processor may determine, at 416, VFP_min < B < VFP_max.
At 516, the display processor may switch the blanking period value based on the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel. For example, referring to FIGs. 2 and 4, the display processor 202 may switch, at 218, the VFP to the updated VFP. Similarly, the display processor may reset, at 420, the VFP with VFP value B when the display processor determines, at 416, that VFP_min < B < VFP_max.
At 518, the display processor may perform an initialization based on switching the blanking period value to the updated blanking period value. For example, referring to FIGs. 2 and 4, the display processor 202 may reinitialize, at 218, based on the updated VFP after switching the VFP to the updated VFP. Similarly, at 420, the host may be reinitialized after the VFP is reset with VFP value B.
At 520, the display processor may transmit an initialization command to the display panel, the initialization command configured to cause the display panel to initialize. For example, referring to FIG. 2, the display processor 202 may transmit, at 220, a display panel initialization trigger to the display panel 204 that causes the display panel 204 to reinitialize, at 222, based on the trigger associated with the updated VFP.
At 522, the display processor may retransmit the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value. For example, referring to FIG. 2, after the display processor 202 switches, at 218, the VFP to the updated VFP and reinitializes, at 218, based on the updated VFP, the display processor 202 may further retransmit the  DCS/panel customization command to the display panel 204 based on the updated VFP.
In configurations, a method or an apparatus for display processing is provided. The apparatus may be a DPU, a display processor, or some other processor that may perform display processing. In aspects, the apparatus may be the display processor 127 within the device 104, or may be some other hardware within the device 104 or another device. The apparatus may include means for transmitting a command to a display panel; means for determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and means for calculating an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame. The apparatus may further include means for determining the time period for transmitting the command to the display panel. The apparatus may further include means for receiving, from the display panel, an indication of whether the transmission of the command to the display panel is successful. The apparatus may further include means for determining whether the transmission of the command to the display panel is successful based on the indication. The apparatus may further include means for determining whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel. The apparatus may further include means for switching the blanking period value to the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel. The apparatus may further include means for transmitting an initialization command to the display panel, the initialization command configured to cause the display panel to initialize. The apparatus may further include means for performing an initialization based on switching the blanking period value to the updated blanking period value; and means for retransmitting the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value.
It is understood that the specific order or hierarchy of blocks in the processes /flowcharts disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the  processes /flowcharts may be rearranged. Further, some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” The word “exemplary” is used herein to mean “serving as an example, instance, or illustration. ” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Unless specifically stated otherwise, the term “some” refers to one or more and the term “or” may be interpreted as “and/or” where context does not dictate otherwise. Combinations such as “at least one of A, B, or C, ” “one or more of A, B, or C, ” “at least one of A, B, and C, ” “one or more of A, B, and C, ” and “A, B, C, or any combination thereof” include any combination of A, B, and/or C, and may include multiples of A, multiples of B, or multiples of C. Specifically, combinations such as “at least one of A, B, or C, ” “one or more of A, B, or C, ” “at least one of A, B, and C, ” “one or more of A, B, and C, ” and “A, B, C, or any combination thereof” may be A only, B only, C only, A and B, A and C, B and C, or A and B and C, where any such combinations may contain one or more member or members of A, B, or C. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. The words “module, ” “mechanism, ” “element, ” “device, ” and the like may not be a substitute for the word “means. ” As such, no claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for. ”
In one or more examples, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. For example, although the term “processing unit” has been used throughout this disclosure, such processing units may be implemented in hardware, software, firmware, or any combination thereof. If any function, processing unit, technique described herein, or other module is implemented in software, the function, processing unit, technique described herein, or other module may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
Various aspects of systems, apparatuses, computer program products, and methods have been described with reference to the accompanying drawings. This disclosure may, however, be embodied in many different forms and should not be construed as limited to any specific structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure is thorough and complete, and fully conveys the scope of this disclosure to those skilled in the art. Based on the teachings herein one skilled in the art should appreciate that the scope of this disclosure is intended to cover any aspect of the systems, apparatuses, computer program products, and methods disclosed herein, whether implemented independently of, or combined with, other aspects of the disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method which is practiced using other structure, functionality, or structure and functionality in addition to or other than the various aspects of the disclosure set forth herein. Any aspect disclosed herein may be embodied by one or more elements of a claim.
Although various aspects are described herein, many variations and permutations of these aspects fall within the scope of this disclosure. Although some potential benefits and advantages of aspects of this disclosure are mentioned, the scope of this disclosure is not intended to be limited to particular benefits, uses, or objectives. Rather, aspects of this disclosure are intended to be broadly applicable to different wireless technologies, system configurations, processing systems, networks, and transmission protocols, some of which are illustrated by way of example in the figures and in the following description. The detailed description and drawings are merely illustrative of this disclosure rather than limiting, the scope of this disclosure being defined by the appended claims and equivalents thereof.
Several aspects are presented with reference to various apparatus and methods. These apparatus and methods are described in the following detailed description and illustrated in the accompanying drawings by various blocks, components, circuits, processes, algorithms, and the like (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
By way of example, an element, or any portion of an element, or any combination of elements may be implemented as a “processing system” that includes one or more processors (which may also be referred to as processing units) . Examples of processors include microprocessors, microcontrollers, graphics processing units (GPUs) , general purpose GPUs (GPGPUs) , central processing units (CPUs) , application processors, digital signal processors (DSPs) , reduced instruction set computing (RISC) processors, systems-on-chip (SOCs) , baseband processors, application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) , programmable logic devices (PLDs) , state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system may execute software. Software can be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software components, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
The term application may refer to software. As described herein, one or more techniques may refer to an application (e.g., software) being configured to perform one or more functions. In such examples, the application may be stored in a memory (e.g., on-chip memory of a processor, system memory, or any other memory) . Hardware described herein, such as a processor may be configured to execute the application. For example, the application may be described as including code that, when executed by the hardware, causes the hardware to perform one or more techniques described herein. As an example, the hardware may access the code from a memory and execute the code accessed from the memory to perform  one or more techniques described herein. In some examples, components are identified in this disclosure. In such examples, the components may be hardware, software, or a combination thereof. The components may be separate components or sub-components of a single component.
In one or more examples described herein, the functions described may be implemented in hardware, software, or any combination thereof. If implemented in software, the functions may be stored on or encoded as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise a random access memory (RAM) , a read-only memory (ROM) , an electrically erasable programmable ROM (EEPROM) , optical disk storage, magnetic disk storage, other magnetic storage devices, combinations of the aforementioned types of computer-readable media, or any other medium that can be used to store computer executable code in the form of instructions or data structures that can be accessed by a computer.
As used herein, instances of the term “content” may refer to “graphical content, ” “display data” , an “image, ” etc., regardless of whether the terms are used as an adjective, noun, or other parts of speech. In some examples, the term “graphical content, ” as used herein, may refer to a content or display data produced by one or more processes of a graphics processing pipeline. In further examples, the term “graphical content, ” as used herein, may refer to a content or display data produced by a processing unit configured to perform graphics processing. In still further examples, as used herein, the term “graphical content” may refer to content or display data produced by a graphics processing unit.
The following aspects are illustrative only and may be combined with other aspects or teachings described herein, without limitation.
Aspect 1 is a method of display processing, characterized by: transmitting a command to a display panel; determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and calculating an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
Aspect 2 may be combined with aspect 1 and is characterized in that the blanking period that precedes the frame corresponds to a VFP.
Aspect 3 may be combined with any of aspects 1-2 and is further characterized by determining the time period for transmitting the command to the display panel.
Aspect 4 may be combined with any of aspects 1-3 and is characterized in that the time period for transmitting the command to the display panel is determined based on a value of a timer that corresponds to the timer being initiated at a start of command transmission and stopped at a completion of command transmission.
Aspect 5 may be combined with any of aspects 1-4 and is further characterized by receiving, from the display panel, an indication of whether the transmission of the command to the display panel is successful.
Aspect 6 may be combined with any of aspects 1-5 and is further characterized by determining whether the transmission of the command to the display panel is successful based on the indication.
Aspect 7 may be combined with any of aspects 1-6 and is characterized in that the determination of whether the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame is performed when the transmission of the command to the display panel is unsuccessful.
Aspect 8 may be combined with any of aspects 1-7 and is characterized in that the calculation of the updated blanking period value is performed based on the time period for transmitting the command to the display panel.
Aspect 9 may be combined with any of aspects 1-8 and is further characterized by determining whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel.
Aspect 10 may be combined with any of aspects 1-9 and is further characterized by switching the blanking period value based on the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel.
Aspect 11 may be combined with any of aspects 1-10 and is further characterized by transmitting an initialization command to the display panel, the initialization command configured to cause the display panel to initialize.
Aspect 12 may be combined with any of aspects 1-11 and is further characterized by performing an initialization based on switching the blanking period value to the updated blanking period value; and retransmitting the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value.
Aspect 13 may be combined with any of aspects 1-12 and is characterized in that the command is at least one of a DCS command or a panel customization command.
Aspect 14 may be combined with any of aspects 1-13 and is characterized in that the time period for transmitting the command to the display panel corresponds to at least one of a command transmission time, a length of the command, or a MIPI clock value.
Aspect 15 is an apparatus for display processing including at least one processor coupled to a memory and configured to implement a method as in any of aspects 1-14.
Aspect 16 may be combined with aspect 15 and is characterized in that the apparatus is a wireless communication device.
Aspect 17 is an apparatus for display processing including means for implementing a method as in any of aspects 1-14.
Aspect 18 is a computer-readable medium storing computer executable code, the code when executed by at least one processor causes the at least one processor to implement a method as in any of aspects 1-14.
Various aspects have been described herein. These and other aspects are within the scope of the following claims.

Claims (30)

  1. A method of display processing, comprising:
    transmitting a command to a display panel;
    determining whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and
    calculating an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
  2. The method of claim 1, wherein the blanking period that precedes the frame corresponds to a vertical front porch (VFP) .
  3. The method of claim 1, further comprising determining the time period for transmitting the command to the display panel.
  4. The method of claim 3, wherein the time period for transmitting the command to the display panel is determined based on a value of a timer that corresponds to the timer being initiated at a start of command transmission and stopped at a completion of command transmission.
  5. The method of claim 1, further comprising receiving, from the display panel, an indication of whether the transmission of the command to the display panel is successful.
  6. The method of claim 5, further comprising determining whether the transmission of the command to the display panel is successful based on the indication.
  7. The method of claim 6, wherein the determination of whether the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame is performed when the transmission of the command to the display panel is unsuccessful.
  8. The method of claim 1, wherein the calculation of the updated blanking period value is performed based on the time period for transmitting the command to the display panel.
  9. The method of claim 1, further comprising determining whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel.
  10. The method of claim 9, further comprising switching the blanking period value based on the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel.
  11. The method of claim 10, further comprising transmitting an initialization command to the display panel, the initialization command configured to cause the display panel to initialize.
  12. The method of claim 10, further comprising:
    performing an initialization based on switching the blanking period value to the updated blanking period value; and 
    retransmitting the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value.
  13. The method of claim 1, wherein the command is at least one of a display command set (DCS) command or a panel customization command.
  14. The method of claim 1, wherein the time period for transmitting the command to the display panel corresponds to at least one of a command transmission time, a length of the command, or a mobility industry processor interface (MIPI) clock value.
  15. An apparatus for display processing, comprising:
    a memory; and
    at least one processor coupled to the memory and configured to:
    transmit a command to a display panel;
    determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and
    calculate an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
  16. The apparatus of claim 15, wherein the blanking period that precedes the frame corresponds to a vertical front porch (VFP) .
  17. The apparatus of claim 15, wherein the at least one processor is further configured to determine the time period for transmitting the command to the display panel.
  18. The apparatus of claim 17, wherein the time period for transmitting the command to the display panel is determined based on a value of a timer that corresponds to the timer being initiated at a start of command transmission and stopped at a completion of command transmission.
  19. The apparatus of claim 15, wherein the at least one processor is further configured to receive, from the display panel, an indication of whether the transmission of the command to the display panel is successful.
  20. The apparatus of claim 19, wherein the at least one processor is further configured to determine whether the transmission of the command to the display panel is successful based on the indication.
  21. The apparatus of claim 20, wherein the determination of whether the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame is performed when the transmission of the command to the display panel is unsuccessful.
  22. The apparatus of claim 15, wherein the calculation of the updated blanking period value is performed based on the time period for transmitting the command to the display panel.
  23. The apparatus of claim 15, wherein the at least one processor is further configured to determine whether the updated blanking period value is between a minimum blanking period value of the display panel and a maximum blanking period value of the display panel.
  24. The apparatus of claim 23, wherein the at least one processor is further configured to switch the blanking period value based on the updated blanking period value when the updated blanking period value is between the minimum blanking period value of the display panel and the maximum blanking period value of the display panel.
  25. The apparatus of claim 24, wherein the at least one processor is further configured to transmit an initialization command to the display panel, the initialization command configured to cause the display panel to initialize.
  26. The apparatus of claim 24, wherein the at least one processor is further configured to:
    perform an initialization based on switching the blanking period value to the updated blanking period value; and
    retransmit the command to the display panel based on the initialization and the switching of the blanking period value to the updated blanking period value.
  27. The apparatus of claim 15, wherein the command is at least one of a display command set (DCS) command or a panel customization command.
  28. The apparatus of claim 15, wherein the time period for transmitting the command to the display panel corresponds to at least one of a command transmission time, a length of the command, or a mobility industry processor interface (MIPI) clock value.
  29. The apparatus of claim 15, wherein the apparatus is a wireless communication device.
  30. A computer-readable medium storing computer executable code, the code when executed by at least one processor, causes the at least one processor to:
    transmit a command to a display panel;
    determine whether a time period for transmitting the command to the display panel is greater than an allotted time for a blanking period that precedes a frame; and
    calculate an updated blanking period value when the time period for transmitting the command to the display panel is greater than the allotted time for the blanking period that precedes the frame.
PCT/CN2020/128294 2020-11-12 2020-11-12 Automatic update for transmitting a command to a display panel WO2022099534A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/128294 WO2022099534A1 (en) 2020-11-12 2020-11-12 Automatic update for transmitting a command to a display panel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/128294 WO2022099534A1 (en) 2020-11-12 2020-11-12 Automatic update for transmitting a command to a display panel

Publications (1)

Publication Number Publication Date
WO2022099534A1 true WO2022099534A1 (en) 2022-05-19

Family

ID=81601958

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/128294 WO2022099534A1 (en) 2020-11-12 2020-11-12 Automatic update for transmitting a command to a display panel

Country Status (1)

Country Link
WO (1) WO2022099534A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000253335A (en) * 1999-03-04 2000-09-14 Seiko Epson Corp Image display device
TW200907907A (en) * 2007-08-03 2009-02-16 Novatek Microelectronics Corp Method and related device for adjusting charge-time for a display device
EP2073530A1 (en) * 2007-12-17 2009-06-24 Victor Company Of Japan, Limited Image transmitting apparatus and wireless image receiving apparatus
US20180174551A1 (en) * 2016-12-21 2018-06-21 Intel Corporation Sending frames using adjustable vertical blanking intervals
WO2019245118A1 (en) * 2018-06-22 2019-12-26 재단법인 실감교류인체감응솔루션연구단 Synchronization device for stereo camera, stereo camera, and synchronization method for stereo camera

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000253335A (en) * 1999-03-04 2000-09-14 Seiko Epson Corp Image display device
TW200907907A (en) * 2007-08-03 2009-02-16 Novatek Microelectronics Corp Method and related device for adjusting charge-time for a display device
EP2073530A1 (en) * 2007-12-17 2009-06-24 Victor Company Of Japan, Limited Image transmitting apparatus and wireless image receiving apparatus
US20180174551A1 (en) * 2016-12-21 2018-06-21 Intel Corporation Sending frames using adjustable vertical blanking intervals
WO2019245118A1 (en) * 2018-06-22 2019-12-26 재단법인 실감교류인체감응솔루션연구단 Synchronization device for stereo camera, stereo camera, and synchronization method for stereo camera

Similar Documents

Publication Publication Date Title
CN107018370B (en) Display method and system for video wall
US8300056B2 (en) Seamless display migration
US10798334B2 (en) Image processing system, image display method, display device and storage medium
US11164357B2 (en) In-flight adaptive foveated rendering
US20120176396A1 (en) Mirroring graphics content to an external display
US20230073736A1 (en) Reduced display processing unit transfer time to compensate for delayed graphics processing unit render time
US20200105227A1 (en) Methods and apparatus for improving frame rendering
US8194065B1 (en) Hardware system and method for changing a display refresh rate
US9087473B1 (en) System, method, and computer program product for changing a display refresh rate in an active period
WO2022099534A1 (en) Automatic update for transmitting a command to a display panel
US20230148254A1 (en) Accelerated frame transmission
US11935502B2 (en) Software Vsync filtering
WO2021164002A1 (en) Delaying dsi clock change based on frame update to provide smoother user interface experience
WO2021056364A1 (en) Methods and apparatus to facilitate frame per second rate switching via touch event signals
KR20070011780A (en) Method for saving display picture of executive video contents on embedded system
US11705091B2 (en) Parallelization of GPU composition with DPU topology selection
WO2023136984A1 (en) Dpu driven adaptive sync for command mode panels
WO2023141917A1 (en) Sequential flexible display shape resolution
WO2021026868A1 (en) Methods and apparatus to recover a mobile device when a command-mode panel timing synchronization signal is lost
US20240104794A1 (en) Pvs over udp for split rendering
WO2024064031A1 (en) Pvs over udp for split rendering
US20060274034A1 (en) Apparatus and method accommodating to operating system for processing screen data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20961091

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20961091

Country of ref document: EP

Kind code of ref document: A1