`Stahl et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,738,826 B2
`May 27, 2014
`
`USOO8738826B2
`
`(54) SYSTEMAND METHOD FOR DISPLAY
`MIRRORING
`
`(71) Applicant: Apple Inc., Cupertino, CA (US)
`
`(72) Inventors: Geoffrey G. Stahl, San Jose, CA (US);
`Ian C. Hendry, San Jose, CA (US);
`Kenneth C. Dyke, Los Altos, CA (US);
`Patrick L. Coffman, San Francisco, CA
`(US); Steve S. Ko, Los Altos, CA (US);
`Nathaniel C. Begeman, San Jose, CA
`(US)
`(73) Assignee: Apple Inc., Cupertino, CA (US)
`c
`- r
`(*) Notice: Subsyster's
`p S.C. 154(b) by Oda
`M
`YW-
`(b) by
`yS.
`(21) Appl. No.: 13/631,310
`(22) Filed:
`Sep. 28, 2012
`
`(65)
`
`Prior Publication Data
`US 2013/0328878A1
`Dec. 12, 2013
`Related U.S. Application Data
`60) Provisional application No. 61/657.549, filed on J
`(60) Provisional application No.
`..)49, Illed On Jun.
`8, 2012.
`51) Int. C
`(51)
`o,F MOI
`(52) U.S. Cl.
`
`2006.O1
`(
`.01)
`
`USPC - - - - - - - - - - - ...- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 710/62; 71078
`
`(58) Field of Classification Search
`None
`See application file for complete search history.
`Ref
`Cited
`eerees e
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`9, 2009 Kurita
`2009/0219441 A1
`1/2010 Kawata et al.
`2010, OO11285 A1
`4/2010 Lin
`2010, OO97357 A1
`2010, 0138780 A1* 6, 2010 Marano et al. ................ T15,804
`2010/0299436 A1* 11/2010 Khalid et al. ......
`TO9,226
`2010/0302141 A1* 12/2010 Shankar et al. ....
`... 345,156
`2011/0032334 A1
`2/2011 Raveendran et al. ........... 348/46
`Continued
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`6, 2006
`1672613
`OTHER PUBLICATIONS
`Invitation to Pay Fees in application No. PCT/US2013/043848
`mailed Aug. 1, 2013 pp. 1-7.
`International Search Report and Written Opinion from PCT/US2013/
`043848, dated Oct. 22, 2013, Apple Inc., pp. 1-20.
`Extended European Search Report in Application No. 13170578.2,
`dated Sep. 9, 2013, pp. 1-18.
`Primary Examiner — Cheng-Yuan Tseng
`FIFOF EXOFilter — C9- Ya S.
`(74) Attorney, Agent, or Firm — Robert C. Kowert:
`Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C.
`(57)
`ABSTRACT
`A computing system that Supports the use of multiple dis
`plays in display mirroring mode and extended display mode
`may automatically determine a display mode in which to
`configure the system (with little or no user input) based on
`h
`f the displays in the sy
`F
`Var1OuS Character1 St1CS Of the d1SolaVS 1n the SVStem. For
`example, the system may determine that a television, projec
`tor, or other presentation type display is connected in the
`system, and in response, may determine that the system
`
`should be configured in a display mirroring mode, rather than
`
`in an extended display mode. The system may also determine
`that the presentation type display is the preferred display, and
`p
`pe d1splay
`p
`play,
`may render image content in a best (or preferred) mode for
`that display using its native resolution, aspect ratio or color
`profile. The system may then scale the rendered image con
`tent for display on other (non-preferred) displays. Such as an
`internal display, without re-rendering it.
`
`8.264,519 B2 * 9/2012 Lunde et al. ............... 348, 14.09
`2008, 0231546 A1
`9, 2008 Li
`
`25 Claims, 8 Drawing Sheets
`
`distis is of OF8 characterisis
`of an external display that is
`connected to a computing device
`12
`
`determine whether to configure the
`computing device, an internal display of the
`computing device, and the externai display for
`extsndsddisplay mods or mirroring mods
`42
`
`
`
`configure for
`standet
`display mode
`a35
`
`- configure
`iQ -->
`for mirroring mode?
`
`determine whether the external display or the
`internal display is the preferred display
`442
`
`render contant is a best display
`mode forths preferred display;
`present rendered content on preferred display
`432
`
`re-sample and/or scale rendered content for
`display on the non-preferred display.
`present re-sampled/scaled content
`on the non-preferred display
`46
`
`Roku EX1012
`U.S. Patent No. 10,334,311
`
`
`
`US 8,738,826 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2011/OO32338 A1*
`2011 0164.184 A1*
`2012fOO32783 A1
`
`2/2011 Raveendran et al. ........... 34.8/51
`7/2011 Avkarogullarietal. ...... 348,571
`2/2012 Ahn et al.
`
`2012fOO42275 A1
`2012fOO72609 A1*
`2012/0176396 A1*
`2012,0306926 A1*
`2012/0307141 A1*
`* cited by examiner
`
`2, 2012
`3, 2012
`T/2012
`12/2012
`12/2012
`
`Neerudu et al.
`Rajamani et al. ............. TO9,231
`Harper et al. ................. 345,589
`Millet et al. .................. 345,660
`Millet et al. .................. 348/441
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 1 of 8
`
`US 8,738,826 B2
`
`
`
`Display
`120
`
`Computing
`Device
`110
`
`130
`
`FIG. 1
`
`External
`Display
`160
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 2 of 8
`
`US 8,738,826 B2
`
`External
`Display
`160
`
`Computing Device
`110
`Internal Display
`120
`
`Display
`Generation
`Unit
`210
`
`
`
`Computing Device
`110
`Internal Display
`120
`
`Display
`Generation
`Unit
`210
`
`Display
`Driver(s)
`230
`
`FIG. 2A
`
`FIG. 2B
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 3 of 8
`
`US 8,738,826 B2
`
`N
`
`Internal
`
`N
`FIG. 3A
`
`
`
`FIG. 3B
`
`Internal
`Display
`330
`
`External
`Monitor
`335
`
`3:4 Aspect Ratio
`
`16:9 Aspect Ratio
`
`FIG. 3C
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 4 of 8
`
`US 8,738,826 B2
`
`
`
`determine One OrnOre CharacteristicS
`of an external display that is
`Connected to a Computing device
`410
`
`determine whether to configure the
`Computing device, an internal display of the
`Computing device, and the external display for
`extended display mode or mirroring mode
`42O
`
`COnfidure for
`9.
`extended
`display mode
`435
`
`-
`- -
`u-1 configures
`- for mirroring mode?
`43O
`
`determine whether the external display or the
`internal display is the preferred display
`440
`
`render Content in a best display
`mode for the preferred display,
`present rendered content on preferred display
`450
`
`re-sample and/or Scale rendered Content for
`display on the non-preferred display,
`present re-sampled/Scaled Content
`on the non-preferred display
`460
`
`FIG. 4
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 5 of 8
`
`US 8,738,826 B2
`
`begin
`502
`
`detect boot-up,
`Wake, Or hot plug
`504
`
`primary
`display?
`506
`
`
`
`eS
`
`
`
`
`
`has
`EDID >= v1.3?
`508
`
`
`
`
`
`EDID
`Override existS2
`510
`
`
`
`
`
`
`
`
`
`
`
`
`
`3CCeSS
`Override DB
`512
`
`determine and
`return type
`514
`
`
`
`
`
`
`
`Video Timings?
`516
`
`reSOlution
`> 1080p?
`518
`
`projector
`
`EDID
`physical size <=
`16nrn x 9nnnn?
`520
`
`
`
`
`
`
`
`is not a
`presentation
`device
`524
`
`is a projector
`528
`
`FIG. 5
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 6 of 8
`
`US 8,738,826 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`determine whether the external display or the
`internal display is the preferred display
`610
`
`determine native resolution of preferred display
`and of non-preferred display(s)
`620
`
`determine native aspect ratio of preferred display
`and of non-preferred display(s)
`630
`
`determine native Color profile of preferred display
`and of non-preferred display(s)
`640
`
`render Content dependent on determined
`native resolution, aspect ratio, and/or Color
`profile of preferred display
`650
`
`Scale and/or re-sample rendered content for
`non-preferred display(s) dependent on resolution
`and/or aspect ratio of non-preferred display(s)
`660
`
`translate Color profile of rendered content for non
`preferred display(s) dependent on color profile of
`non-preferred display(s)
`670
`
`
`
`
`
`
`
`
`
`
`
`
`
`present Content on preferred display and
`non-preferred display(s) in mirroring mode
`680
`
`FIG. 6
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 7 of 8
`
`US 8,738,826 B2
`
`
`
`
`
`Computing device
`delays or aborts
`pending Change
`755
`
`user causes a change in available display devices
`710
`
`Computing device detects change in available
`display devices, determines display type(s)
`720
`
`computing device automatically determines most
`likely display mode and preferred display,
`stores display parameters for this configuration
`730
`
`
`
`
`
`Computing device notifies application(s)
`and/or user of pending change in display
`mode and preferred display
`740
`
`LSe
`and/or application(s) rejec
`pending Change?
`750
`FO
`
`Computing device makes change, stores display
`parameters for modified configuration, and notifies
`user and/or application(s) of Configuration change
`760
`
`Computing device acceSSes Stored
`display parameters for modified configuration
`in response to Subsequent detection of same
`combination of display device(s)
`770
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 7
`
`
`
`U.S. Patent
`
`May 27, 2014
`
`Sheet 8 of 8
`
`US 8,738,826 B2
`
`
`
`09
`
`JOSS000ICH
`
`?J?
`
`JOSS0001)
`
`80| 9
`
`
`
`
`
`
`
`@@@
`
`SJ049ueued
`MeIds[G]
`
`F@
`
`
`
`1.
`SYSTEMAND METHOD FOR DISPLAY
`MIRRORING
`
`BACKGROUND
`
`This application claims benefit of priority to U.S. Provi
`sional Application Ser. No. 61/657.549, entitled “System and
`Method for Display Mirroring.” filed Jun. 8, 2012.
`
`TECHNICAL FIELD
`
`This disclosure relates generally to the use of video dis
`plays, and more specifically to the display of images on
`multiple devices.
`
`DESCRIPTION OF THE RELATED ART
`
`10
`
`15
`
`In some situations, there is a need to display the same
`images concurrently on multiple displays of a computer sys
`tem. For example, considera system with a computing device
`having an internal display and an external interface to which
`an external display is coupled. This system may be used for a
`presentation (e.g., for a Software demonstration to an audi
`ence in a large room). The presenter may wish to view the
`demonstration on the device's internal display while the audi
`ence views the demonstration on the external display. The
`presenter may configure the system to operate in this mode
`and/or select the resolution and/or other parameters for ren
`dering the image content on the internal and/or external dis
`plays by explicitly specifying multiple display options using
`multiple user interface mechanisms.
`In other situations, there may be a need to display different
`images on multiple displays of a computer system. For
`example, a system with a computing device having an internal
`display and an external interface to which an external display
`is coupled may be used by a single user running an application
`that displays large amounts of information. The user may
`wish to view the information across both the internal and the
`40
`external displays (e.g., in an extended desktop mode). The
`user may configure the system to operate in this mode and/or
`select the resolution and/or other parameters for rendering
`different portions of the image content on the internal or
`external displays by explicitly specifying multiple display
`options using multiple user interface mechanisms.
`
`25
`
`30
`
`35
`
`45
`
`SUMMARY
`
`This disclosure relates to computers that include an inter
`nal display and that are also connected to one or more external
`displays. The computers, internal displays, and external dis
`play(s) may be configured to collectively operate in a display
`mirroring mode or in an extended display mode (e.g., an
`extended desktop mode). Embodiments of the present disclo
`Sure may allow the automatic configuration of a computer and
`multiple displays so that content appears best on the display
`on which the user would like it to appear best with little or no
`input from the user. In some embodiments, the computer may
`detect the characteristics of an external display that is con
`nected to the computer, and may infer the intended use of the
`external display. For example, if the external display is a
`presentation device (e.g., a television or projector), the com
`puter may infer that the intended use of the external display is
`for a presentation formatin which the external display mirrors
`the internal display of the computer. On the other hand, if the
`external display is not a presentation device (e.g., if it is a
`
`50
`
`55
`
`60
`
`65
`
`US 8,738,826 B2
`
`2
`computer monitor), the computer may infer that the intended
`use of the external display is as an auxiliary monitor for an
`extended display mode.
`Embodiments of the present disclosure may allow the com
`puter to determine which display is the preferred display and
`to render content so that it appears best on the preferred
`display. The rendered content may then be resampled, scaled,
`and/or its color profile translated for display on the other
`display(s) without re-rendering it. The computer may remem
`ber the intended use and preferred display for a specific com
`bination of displays and may infer that the intended use and
`other preferences are the same when that same combination
`of displays is Subsequently detected.
`In some embodiments, when a display configuration
`changes (or is about to change), a display re-configure noti
`fication may be sent out in the system. Various applications
`may respond to the notification to accept, reject, or modify a
`pending change, may take advantage of a completed change,
`or may ignore (or be oblivious to) a pending or completed
`change. In some embodiments, the computer may automati
`cally determine a display mode, a preferred display, and a
`preferred display mode for the preferred display, and a user
`may override the automatic selections through various user
`interface mechanisms.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram illustrating one embodiment of a
`computer system having multiple displays.
`FIG. 2A is a block diagram illustrating one embodiment of
`a computer system that includes a computing device with an
`internal Scaling unit.
`FIG. 2B is a block diagram illustrating one embodiment of
`a computer system that includes a computing device with one
`or more display drivers for use in display mirroring.
`FIGS. 3A-3B illustrate examples of re-scaling image con
`tent for a non-preferred display that was rendered for a pre
`ferred display mode of a preferred display, according to some
`embodiments.
`FIG. 3C illustrates an example of the display of image
`content on two displays in an extended display mode, accord
`ing to one embodiment.
`FIG. 4 is a flow diagram illustrating one embodiment of a
`method for implementing display mirroring.
`FIG. 5 is a flow diagram illustrating one embodiment of a
`method for determining whether a display is a presentation
`device.
`FIG. 6 is a flow diagram illustrating one embodiment of a
`method for displaying image content on a preferred display
`and mirroring the image content on another display.
`FIG. 7 is a flow diagram illustrating one embodiment of a
`method for configuring multiple displays in a computing
`system.
`FIG. 8 illustrates an example computer system configured
`to implement display mirroring, according to various
`embodiments.
`This specification includes references to “one embodi
`ment.” “an embodiment,” “one implementation.” or “an
`implementation.” The appearances of these phrases do not
`necessarily refer to the same embodiment or implementation.
`Particular features, structures, or characteristics may be com
`bined in any Suitable manner consistent with this disclosure.
`Further, various units, circuits, or other components may
`be described or claimed as “configured to perform a task or
`tasks. In Such contexts, “configured to' is used to connote
`structure by indicating that the units/circuits/components
`include structure (e.g., circuitry) that performs those task or
`
`
`
`US 8,738,826 B2
`
`3
`tasks during operation. As such, the unit/circuit/component
`can be said to be configured to perform the task even when the
`specified unit/circuit/component is not currently operational
`(e.g., is not on). The units/circuits/components used with the
`“configured to language include hardware—for example,
`circuits, memory storing program instructions executable to
`implement the operation, etc. Reciting that a unit/circuit/
`component is "configured to perform one or more tasks is
`expressly intended not to invoke 35 U.S.C. S112, sixth para
`graph, for that unit/circuit/component.
`
`DETAILED DESCRIPTION
`
`As noted above, computing devices of various types may
`include an internal display and may also be connected to one
`or more external displays. The computing devices, internal
`displays, and external display(s) may, in various embodi
`ments and in different situations, be configured to collectively
`operate in a display mirroring mode or in an extended display
`mode (e.g., an extended desktop mode). Embodiments of the
`present disclosure may allow the automatic configuration of a
`computing device and multiple displays so that content
`appears best on the display on which the user would like it to
`appear best with little or no input from the user, in accordance
`with the most likely use model currently being employed, as
`determined by the computer.
`In some embodiments, a computer may detect the charac
`teristics of an external display that is connected to the com
`puter, and may infer the intended use of the external display
`based, at least in part, on those characteristics. For example, if
`the computer determines, based on the characteristics of the
`external display, that the external display is a presentation
`device (e.g., a television or projector), the computer may infer
`that the intended use of the external display is for a presenta
`tion format in which the external display mirrors the internal
`display of the computer. On the other hand, if the computer
`determines, based on the characteristics of the external dis
`play, that the external display is not a presentation device
`(e.g., if both the internal display and the external display are
`computer monitors), the computer may infer that the intended
`use of the external display is as an auxiliary monitor for an
`extended display mode (e.g., an extended desktop mode in
`which the internal and external monitors collectively act as a
`single display that is the size of the combined displays).
`In some embodiments, a computer may determine which,
`if either, display is the preferred display and may render
`image content so that it appears best on the preferred display.
`For example, when in mirroring mode with an external dis
`play that is a television or projector, the image content may be
`rendered in a best or preferred mode for display on the tele
`vision or projector (e.g., using a native resolution, aspect
`ratio, and/or color profile for the television or projector, or a
`derivative thereof). The rendered content may then be resa
`mpled, Scaled, and/or its color profile translated for display on
`the internal display (e.g., without re-rendering the image con
`tent). The computer may remember the intended use and
`preferred display for a specific combination of displays and
`may infer that the intended use and other preferences are the
`same when that same combination of displays is Subsequently
`detected. For example, the computer may store data indicat
`ing the display mode (e.g., display mirroring mode or
`extended display mode) and/or the preferred display (e.g., the
`internal display or an external display) for the particular com
`bination of internal and external display(s), and may access
`that stored data to infer the intended use and/or other display
`preferences if and when that same combination of display is
`Subsequently connected to the computer.
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`4
`In some embodiments, when a display configuration
`changes (or is about to change) due to any of a variety of
`display re-configuration events (e.g., connecting or discon
`necting an external display, detecting a user-initiated change
`in one or more display preferences, etc.), a display re-config
`ure notification may be sent out in the system (e.g., to a user
`and/or to various applications that are currently executing in
`the system). In some embodiments, various applications (or a
`user) may respond to Such a notification to accept, reject, or
`request a modification of a pending change, may take advan
`tage of a completed change, or may ignore (or be oblivious to)
`a pending or completed change. In response to a rejection of
`a pending change by an application or a user, the computer
`may delay, modify, or abort a pending change.
`Turning now to FIG. 1, a block diagram of a computer
`system with multiple displays is shown. Computer system
`100 includes computing device 110, which may be any suit
`able type of computing device. In one embodiment, device
`110 is a tablet computing device, such as an IPAD product.
`As shown, device 110 is coupled to display 120. In one
`embodiment, display 120 is integrated or internal to comput
`ing device 110. In some of the examples described herein, this
`display may be referred to as the “primary' display of device
`110. In some embodiments, primary display 120 may be
`connected to device 110 through an external interface. Dis
`play 120 is represented with a dotted line in FIG. 1 to indicate
`that it may be located either internal or external to device 110.
`Note that in some examples described herein, the primary
`display (i.e., the main or default display for a computing
`device 110) may be referred to as the “internal display,
`regardless of whether it is actually integrated within the com
`puting device or is connected to the computing device
`through an external interface. As used herein, the term "dis
`play may refer to any device that is configured to present a
`visual image in response to control signals being provided to
`the display. A variety of technologies may be used in the
`display, such as cathode ray tube (CRT), thin film transistor
`(TFT), liquid crystal display (LCD), light emitting diode
`(LED), plasma, etc. A display may also include touch screen
`input functionality, or projection capability, in Some embodi
`ments. The display devices may also be referred to as panels,
`in some cases.
`In the example illustrated in FIG. 1, in addition to display
`120, computing device 110 includes an external interface 130
`that is coupled to an “external' or “secondary display 160
`via connection 150. Interface 130 may be any type of standard
`or proprietary interface, and may be wired or wireless, in
`different embodiments. A given interface 130 can be under
`stood to have a “data width” (e.g., a number of pins) that
`dictates how much data the interface can transfer at one time.
`In FIG. 1, connection 150 is a logical representation of the
`connection between device 110 and secondary display 160. In
`various embodiments, connection 150 may be wireless. In
`other embodiments, connection 150 may be wired, and may
`include one or more intervening hardware components. Such
`as a scaling unit discussed below. Like primary display 120,
`secondary display 160 may be any suitable type of device. For
`example, in Some embodiments, secondary display 160 may
`be a high-definition TV (HDTV) compatible device or a pro
`60 jection device. As described in more detail herein, an internal
`(or primary) display or an external (or secondary) display
`may at various times be the “preferred display for a comput
`ing device 100 (i.e., the device on which the user would like
`image content to be displayed in a best display mode for that
`display).
`Computing device 110 may include various structures (not
`depicted in FIG. 1) that are common to many computing
`
`65
`
`
`
`US 8,738,826 B2
`
`5
`devices. These structures may include one or more proces
`sors, memories, graphics circuitry, I/O devices, bus control
`lers, etc. One embodiment of Such a computing device is
`illustrated in FIG. 8 and described in detail below.
`In various embodiments, computing device 110 may oper
`ate to display frames of data. Generally, a frame is data
`describing an image to be displayed. A frame may include
`pixel data describing the pixels included in the frame (e.g. in
`terms of various color spaces, such as RGB or YCrCb), and
`may also include metadata Such as an alpha value for blend
`ing. Static frames may be frames that are not part of a video
`sequence. Alternatively, video frames may be frames in a
`Video sequence. Each frame in the video sequence may be
`displayed after the preceding frame, at a rate specified for the
`Video sequence (e.g. 15-30 frames a second). Video frames
`may also be complete images, or may be compressed images
`that refer to other images in the sequence. If the frames are
`compressed, a video pipeline in device 110 may decompress
`the frames.
`In some embodiments, display generation unit within
`device 110 may be configured to generate (i.e. render), fetch,
`and/or process frame data to provide a stream of pixel values
`for display. The display generation unit may be configured as
`a display pipeline in some embodiments. Additionally, the
`display generation unit may be configured to blend multiple
`frames to produce an output frame. For example, in one
`embodiment, each frame pixel may have an associated alpha
`value indicating its opaqueness.
`Generally, a pixel value in a stream of pixel values may be
`a representation of a pixel to be displayed on a display
`coupled to device 110. The pixel value may include a one or
`more color space values. For example, in an RGB color space,
`the pixel value includes a red value, a green value, and a blue
`value. Each value may range from zero to 2'-1, and describes
`an intensity of the color for that pixel. Similarly, in the YCrCb
`color space, the pixel value includes aY value, a Cr value, and
`a Cb value. The location of a pixel on the display may be
`inferred from the position of the corresponding pixel value in
`the pixel stream. For example, the pixel stream may be a
`series of rows of pixels, each row forming a line on the display
`screen. In a progressive-mode display, the lines are drawn in
`consecutive order and thus the next line in the pixel stream is
`immediately adjacent to the previous line. In an interlaced
`mode display, consecutive passes over the display draw either
`the even or the odd lines, and thus the next line in the pixel
`stream skips one line from the previous line in the pixel
`stream. Forbrevity, the stream of pixel values may be referred
`to as a pixel stream, or a stream of pixels. Pixel processing
`units within device 110 may be configured to perform various
`pixel operations on the pixel stream and may provide the
`processed pixel stream to the respective physical interfaces
`(PHYs), or display drivers. For example, pixel operations
`may include one or more of color space conversions, back
`light control, gamma correction, contrast ratio improvement,
`filtering, dithering, etc. The PHY's may generally include the
`circuitry that physically controls the corresponding displayS.
`The PHY's may drive control signals that physically control
`the respective display panels in response to the pixel values.
`Thus, for example, a PHY for a display that is controlled by
`RGB signals may transmit Voltages on the R,G, and B signals
`that correspond to the R, G, and B components of the pixel.
`There may also be a display clock that may be transmitted by
`the PHYs, or the display clock may be embedded in one of the
`control signals. Different PHY's for different displays may
`have clocks that are within different clock domains.
`It is often desirable to use computing device 110 to make a
`presentation—for example, to an audience in a large room. In
`
`40
`
`45
`
`6
`Such a situation, the size of primary display 120 may be
`inadequate for audience members. To facilitate such presen
`tations, secondary display 160 (which may be a television, a
`projector, or another presentation type device) may be
`coupled to device 110 via interface 130 and connection 150.
`In this manner, the presenter may view the presentation on
`display 120 while the audience views the presentation on
`display 160. In such embodiments, the two images may be
`displayed concurrently, Such that when the presenter is
`describing a feature of the presentation appearing on display
`120, this same feature is also appearing on display 160 at the
`same time. Note that there may be some inherent phase dif
`ference between images on different displays. As used herein,
`however, references to “synchronized.” “synchronous,” or
`“concurrent display of images includes display of images on
`different displays that do not have visually discernable image
`drift.
`Concurrent display of images becomes more difficult when
`the internal display and external display have different reso
`lutions (i.e., different number of pixels in the horizontal and
`vertical directions). One possible solution is to have different
`display generation units for each display. However, Such an
`approach may have significant drawbacks. Consider a game
`developer who wishes to demonstrate a new video game using
`internal and external displays. If the video game is pushing
`the processing power of device 110, it may be a waste of
`processing power to have a second display generation unit
`running for the external display, when in effect it would be
`rendering the same image as for the first display generation
`unit. Thus, Sucha configuration might not allow the developer
`the ability to showcase the video game running at peak per
`formance.
`An alternative solution is the use of a display mirroring
`mode in which a single display generation unit is used to
`provide output (e.g., pixels) to displays 120 and 160. This
`Solution may involve rendering image data only once (or
`fetching rendered image data from memory only a single
`time), and utilizing a scaling unit or display drivers to resa
`mple or otherwise Scale the rendered image data for presen
`tation on a display other than the one for which it was ren
`dered.
`As noted above, a computer system that includes multiple
`displays may in some embodiments be configured to operate
`in a display mirroring mode or an extended display mode, at
`different times. When mirroring on multiple displays that
`have different sizes and/or resolutions, it may be difficult to
`efficiently provide image data to the different displays that
`has a pleasing appearance on all of the displays. Some current
`mirroring techniques may render images at a resolution that is
`common to both an internal display and an external display,
`but that may not look sharp on both displays. In some embodi
`ments, the techniques described herein may instead optimize
`the resolution for a “preferred display', i.e., one on which the
`user would most likely prefer images to appear at their best.
`Note that in Some embodiments, the system may automati
`cally designate a display as the preferred display, depending
`on the inferred use case for the combination of displays. For
`example, the system may always designate a projector or
`television as the preferred display when it is connected in the
`system.
`In some embodiments, the techniques described herein
`may provide ways to automatically manage display mirroring
`and various use cases for systems with both internal and
`external displays with little to no input from users. In other
`words, the techniques described herein may be employed in a
`computer system that is capable of supporting various display
`modes using multiple displays, and to automatically config
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`
`
`7
`ure the system so that the displays present image data in a
`manner most likely to be the preferred manner (e.g., in a most
`likely display mode and/or with the image appearing at its
`best on the display that is most likely to be the preferred
`display) without manual intervention.
`In some embodiments, depending on the type of external
`display device that is connected to a computer, the computer
`may be configured to automatically determine (or infer)
`whether to mirror the images presented on an internal or
`primary display of the computer on the external display
`device, or to share or split the presentation of images between
`the internal and external displays. For example, the computer
`may infer that it should mirror images if it is connected to a
`television, a projector, or another types of presentation
`15
`device, as opposed to being connected to an auxiliary com
`puter monitor. The computer may also be configured to opti
`mize the images for display on a presentation device as the
`preferred one of the displays (e.g., dependent on the size,
`resolution, aspect ratio, and/or color profiles of the presenta
`tion device). In other words, the images may be automatically
`rendered in a best or preferred mode for display on the pre
`sentation device (e.g., using a GPU or other available com
`puting facilities), a