Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

A method for rendering one or more user interface objects on a television
screen is disclosed. The method is performed at a computer system coupled
with the television screen. The method includes receiving a request for
rendering a user interface object, and identifying a variable scaling
factor. The variable scaling factor is determined in accordance with a
distance parameter corresponding to a distance between a respective user
and the television screen. The method also includes rendering the user
interface object on the television screen in accordance with the variable
scaling factor while maintaining a display of a television program on the
television screen based on a fixed scaling factor.

Claims:

1. A method for rendering one or more user interface objects on a
television screen, comprising: at a computer system coupled with the
television screen, the computer system comprising one or more processors
and memory storing one or more programs, for execution by the one or more
processors, for rendering the one or more user interface objects on the
television screen, the method comprising: receiving a request for
rendering a user interface object; identifying a variable scaling factor,
wherein the variable scaling factor is determined in accordance with a
distance parameter corresponding to a distance between a respective user
and the television screen; and rendering the user interface object on the
television screen in accordance with the variable scaling factor while
maintaining a display of a television program on the television screen
based on a fixed scaling factor.

2. The method of claim 1, wherein the variable scaling factor is
determined in accordance with a resolution mode of the television screen.

3. The method of claim 1, further comprising determining the distance
between the respective user and the television screen.

4. The method of claim 1, wherein the distance parameter corresponds to a
predefined distance between the respective user and the television
screen.

5. The method of claim 1, further comprising receiving as an input from
the respective user the distance between the respective user and the
television screen.

6. The method of claim 1, wherein the user interface object rendered by
the computer system has a same apparent size to the respective user
watching the television screen as a corresponding user interface object
rendered by a personal device executing the one or more programs when the
corresponding user interface object is viewed by the respective user
using the personal device.

7. The method of claim 1, wherein: the user interface object has a first
angle when the user interface object is viewed by the respective user
watching the television screen; a corresponding user interface object
rendered by a personal device executing the one or more programs has a
second angle when the corresponding user interface object is viewed by
the respective user using the personal device; and the first angle
matches the second angle.

8. The method of claim 1, wherein the variable scaling factor is
determined in accordance with a screen size of the television screen.

9. A computer system coupled with a television screen for rendering one
or more user interface objects on the television screen, comprising: one
or more processors; memory storing one or more programs, for execution by
the one or more processors, for rendering the one or more user interface
objects on the television screen, the one or more programs including
instructions for: receiving a request for rendering a user interface
object; identifying a variable scaling factor, wherein the variable
scaling factor is determined in accordance with a distance parameter
corresponding to a distance between a respective user and the television
screen; and rendering the user interface object on the television screen
in accordance with the variable scaling factor while maintaining a
display of a television program on the television screen based on a fixed
scaling factor.

10. The computer system of claim 9, wherein the variable scaling factor
is determined in accordance with a resolution mode of the television
screen.

11. The computer system of claim 9, the one or more programs further
include instructions for determining the distance between the respective
user and the television screen.

12. The computer system of claim 9, wherein the user interface object
rendered by the computer system has a same apparent size to the
respective user watching the television screen as a corresponding user
interface object rendered by a personal device executing the one or more
programs when the corresponding user interface object is viewed by the
respective user using the personal device.

13. The computer system of claim 9, wherein: the user interface object
has a first angle when the user interface object is viewed by the
respective user watching the television screen; a corresponding user
interface object rendered by a personal device executing the one or more
programs has a second angle when the corresponding user interface object
is viewed by the respective user using the personal device; and the first
angle matches the second angle.

14. The computer system of claim 9, wherein the variable scaling factor
is determined in accordance with a screen size of the television screen.

15. A non-transitory computer readable storage medium storing one or more
programs for execution by one or more processors of a computer system
coupled with a television screen, the one or more programs including
instructions for: receiving a request for rendering a user interface
object; identifying a variable scaling factor, wherein the variable
scaling factor is determined in accordance with a distance parameter
corresponding to a distance between a respective user and the television
screen; and rendering the user interface object on the television screen
in accordance with the variable scaling factor while maintaining a
display of a television program on the television screen based on a fixed
scaling factor.

16. The computer readable storage medium of claim 15, wherein the
variable scaling factor is determined in accordance with a resolution
mode of the television screen.

17. The computer readable storage medium of claim 15, wherein the one or
more programs further include instructions for determining the distance
between the respective user and the television screen.

18. The computer readable storage medium of claim 15, wherein the user
interface object rendered by the computer system has a same apparent size
to the respective user watching the television screen as a corresponding
user interface object rendered by a personal device executing the one or
more programs when the corresponding user interface object is viewed by
the respective user using the personal device.

19. The computer readable storage medium of claim 15, wherein: the user
interface object has a first angle when the user interface object is
viewed by the respective user watching the television screen; a
corresponding user interface object rendered by a personal device
executing the one or more programs has a second angle when the
corresponding user interface object is viewed by the respective user
using the personal device; and the first angle matches the second angle.

20. The computer readable storage medium of claim 15, wherein the
variable scaling factor is determined in accordance with a screen size of
the television screen.

Description:

RELATED APPLICATION

[0001] This application claims priority to U.S. Provisional Application
Ser. No. 61/513,444, filed Jul. 29, 2011, entitled "Systems and Methods
for Rendering User Interface Objects in Accordance with a Variable
Scaling Factor," which is incorporated by reference herein in its
entirety.

TECHNICAL FIELD

[0002] The disclosed implementations relate generally to rendering user
interface objects on television screens. More particularly, the disclosed
implementations relate to methods and systems for rendering user
interface objects on television screens in accordance with variable
scaling factors.

BACKGROUND

[0003] Television devices (e.g., televisions and receivers coupled to
televisions) have been traditionally used to access various television
programs. Increasingly, non-television devices (e.g., desktop computers,
notebook computers, mobile telephones, etc.), typically used for
accessing other multimedia contents and information from websites and
executing and displaying programs, are also used to access television
programs. Conversely, instead of just being used to receive and display
television programming, television devices can also be used to access
other multimedia contents and information from websites and executing and
displaying programs.

[0004] Non-television devices typically have screens that are smaller than
the television screens. In addition, television screens, when in use, are
typically located further from users than the screens of the
non-television devices used by respective users. Thus, displaying user
interface objects on television devices requires considerations different
from displaying similar user interface objects on non-television devices.

SUMMARY

[0005] A number of implementations (e.g., of computer systems or devices,
and methods of operating such systems or devices) that overcome the
limitations and disadvantages described above are presented in more
detail below. These implementations provide methods, systems, and
graphical user interfaces (GUIs) for using rendering one or more
adjustable user interface objects on a television screen.

[0006] As described in more detail below, some implementations involve a
method performed at a computer system coupled with a television screen.
The computer system includes one or more processors and memory storing
one or more programs, for execution by the one or more processors, for
rendering one or more user interface objects on the television screen.
The method includes receiving a request for rendering a user interface
object, and identifying a variable scaling factor. The variable scaling
factor is determined in accordance with a distance parameter
corresponding to a distance between a respective user and the television
screen. The method also includes rendering the user interface object on
the television screen in accordance with the variable scaling factor
while maintaining a display of a television program on the television
screen based on a fixed scaling factor.

[0007] In accordance with some implementations, a computer system coupled
with a television screen includes one or more processors, and memory
storing one or more programs, for execution by the one or more
processors, for rendering one or more user interface objects on the
television screen. The one or more programs including instructions for
receiving a request for rendering a user interface object, and
identifying a variable scaling factor. The variable scaling factor is
determined in accordance with a distance parameter corresponding to a
distance between a respective user and the television screen. The one or
more programs also include instructions for rendering the user interface
object on the television screen in accordance with the variable scaling
factor while maintaining a display of a television program on the
television screen based on a fixed scaling factor.

[0008] In accordance with some implementations, a non-transitory computer
readable storage medium stores one or more programs for execution by one
or more processors of a computer system coupled with a television screen.
The one or more programs include instructions for receiving a request for
rendering a user interface object, and identifying a variable scaling
factor. The variable scaling factor is determined in accordance with a
distance parameter corresponding to a distance between a respective user
and the television screen. The one or more programs also include
instructions for rendering the user interface object on the television
screen in accordance with the variable scaling factor while maintaining a
display of a television program on the television screen based on a fixed
scaling factor.

[0010] For a better understanding of the aforementioned implementations as
well as additional aspects and implementations thereof, reference should
be made to the Description of Implementations below, in conjunction with
the following drawings in which like reference numerals refer to
corresponding parts throughout the figures.

[0011]FIG. 1 is a block diagram illustrating an exemplary content
distribution system, in accordance with some implementations.

[0012]FIG. 2 is a block diagram illustrating a computer system, in
accordance with some implementations.

[0015]FIG. 5 is a block diagram illustrating an exemplary data structure,
in accordance with some implementations.

[0016]FIG. 6 is a flowchart representing a method for rendering a user
interface object in accordance with a variable scaling factor, in
accordance with some implementations.

[0017] Like reference numerals refer to corresponding parts throughout the
drawings.

DETAILED DESCRIPTION

[0018] Methods and systems for rendering user interface objects in
accordance with variable scaling factors are described. Reference will be
made to certain implementations, examples of which are illustrated in the
accompanying drawings. While the invention will be described in
conjunction with the implementations, it will be understood that the
implementations are not intended to limit the invention to these
particular implementations alone.

[0019] Moreover, in the following description, numerous specific details
are set forth to provide a thorough understanding of the described
implementations. However, it will be apparent to one of ordinary skill in
the art that some implementations may be practiced without these
particular details. In other instances, methods, procedures, components,
and networks that are well-known to those of ordinary skill in the art
are not described in detail to avoid obscuring aspects of the
implementations described in this document.

[0020]FIG. 1 is a block diagram illustrating an exemplary content
distribution system 100, according to certain implementations. In FIG. 1,
the system 100 includes one or more content providers 102 and
communications networks 104. Connected to the communication networks 104
is a companion device 114 coupled with a television screen 112 or an
integrated television device 116 that includes the television screen 112
and components of the companion device 114. In some implementations, the
companion device 114 is a set-top box or is a computing device that
includes set-top box functionality. Various implementations of the
companion device 114 and/or the integrated television device 116
implement the methods described in this document. For the purposes of
this application, a television screen 112 is any large viewing screen
(e.g., in some implementations, a viewing screen 26'' or larger)
fabricated using any suitable display technology (e.g., projection, LCD,
plasma, OLED, CRT, etc.) that is intended for viewing from a distance of
more than a few feet and for displaying images--commonly in response to
some manner of remote control.

[0021] As used herein, content providers 102 are systems or devices
configured to provide media content (e.g., music, television programs,
movies, social media data, web data, etc.). The content providers 102 can
be any of a number of content provider systems, equipment, and/or devices
that provide media content (e.g., radio broadcasting systems, on-air
television broadcasting systems, cable service systems, direct satellite
broadcasting systems, Internet television service servers, Internet radio
station servers, web servers, digital video recorders, etc.). In some
implementations, at least a subset of the media contents distributed by
the content providers 102 includes audio data (e.g., music, radio
programs, television programs, movies, etc.). In some implementations, at
least a subset of the media contents distributed by the content providers
102 includes video data (e.g., photos, television programs, movies,
etc.). In some implementations, at least a subset of the media contents
distributed by the content providers 102 includes multimedia data (e.g.,
television programs, movies, etc.). In some implementations, at least a
subset of the media contents distributed by the content providers 102
includes user-readable text (e.g., messages sent via short message
services, postings on blogs or other social networking media, web pages,
etc.).

[0022] The content providers 102 distribute media contents via the
communication networks 104. The communication networks 104 may include
one or more of: radio-frequency communication networks used for on-air or
satellite television broadcasting, radio-frequency communication networks
used for on-air radio broadcasting, cable-based communication networks,
digital audio/video communication networks, the Internet, other wide area
networks, local area networks, metropolitan area networks, wireless
networks, cellular networks, and so on.

[0023] In some implementations, the companion device 114 or the integrated
television device 116 includes a receiver/converter 106 connected to the
communication networks 104 and configured to receive audio and/or video
signals, typically via one or more of radio-frequency communication
networks and/or one or more digital audio/video communication networks.

[0024] In some implementations, the companion device 114 or the integrated
television device 116 includes one or more computer communication network
interfaces 108 that are configured for interfacing with one or more
computer communication networks, such as the Internet, other wide area
networks, local area networks, metropolitan area networks, wireless
networks, cellular networks, and so on.

[0025] The companion device 114 or the integrated television device 116
stores and/or executes applications 122. The applications 122 include
application programs used for managing the companion device 114 or the
integrated television device 116, including, in some implementations,
applications for controlling the display on the television screen of
media content from one or more of the content providers 102. For example,
at least one of the applications 122 is configured to receive data from
the receiver/converter 106 and/or the computer communication network
interface 108 and send data and instructions to a graphics module 110 for
rendering media and program content, including user interfaces and/or
user interface objects.

[0026] As used herein, the term "user interface object" refers to a
display element displayed on a display screen of a device. Exemplary user
interface objects include, but are not limited to, buttons, icons, menus,
menu options, cursors, information bars, texts, windows, etc.

[0027] The graphics module 110 includes one or more display processors or
graphics processing units for rendering user interfaces and/or user
interface objects. In some implementations, the graphics module 110
receives data from the receiver/converter 106 and/or the computer
communication network interface 108, and additional data or instructions
from the applications 122 for rendering user interfaces and/or user
interface objects. The user interfaces and/or user interface objects
rendered by the graphics module 110 are sent to the television screen 112
for display. Visual characteristics of the media and program content
displayed on the television screen 112 (e.g., the size and detail of
particular user interfaces and/or interface objects) reflect a number of
display parameters of the television screen 112, including display
resolution, video resolution/pixel density, and size of the television
screen 112.

[0028] As used herein, the term "resolution" of a display refers to the
number of pixels (also called "pixel counts" or "pixel resolution") along
each axis or in each dimension of the display. For example, a display may
have a resolution of 1920×1080 pixels. Furthermore, as used herein,
the term "resolution" of a device refers to the resolution of a display
coupled with the device. The term "resolution" does not imply any
limitations on the size of each pixel or the spacing of pixels. For
example, compared to a first display with a 1920×1080-pixel
resolution, a second display with a 1280×720-pixel resolution has a
lower resolution. However, it should be noted that the physical size of a
display depends not only on the pixel resolution, but also on many other
factors, including the pixel size and the spacing of pixels. Therefore,
the first display may have the same, smaller, or larger physical size,
compared to the second display.

[0029] As used herein, the term "video resolution" of a display refers to
the density of pixels along each axis or in each dimension of the
display. The video resolution is often measured in a dots-per-inch (DPI)
unit, which counts the number of pixels that can be placed in a line
within the span of one inch along a respective dimension of the display.

[0030] The companion device 114 or the integrated television device 116
may include additional components not illustrated in FIG. 1.

[0031] Also illustrated in FIG. 1 is a personal device 118. The personal
device 118 may be any of a number of computing devices (e.g., Internet
kiosk, personal digital assistant, cell phone, smart phone, gaming
device, desktop computer, laptop computer, tablet computer, handheld
computer, or combinations thereof) used to enable the activities
described below. The personal device 118 includes a display screen 112
where a graphical user interface (GUI) can be displayed. In some
implementations, the personal device 118 is also configured to receive
media content from the content providers 102 via the communication
networks 104, and display the received media content.

[0032] In some implementations, the applications 122 can be executed on
either or both a personal device 118 or a companion device 114, in which
case the application output, including user interface elements, is
presented on either the television screen 112 or the personal device
screen 120. For example, an application can be an Android application
that can be executed on a companion device 114 (such as a Google
TV-enabled set-top box) and a smart phone/personal device 118 (such as an
Android phone). This presents the challenge of providing a consistent
user interface for an application 122 regardless of whether its visual
outputs are displayed at a distance, on a television screen 112, or
nearby, on a personal device screen 120. For example, depending on how
the user interface of an application 122 is configured, the user
interface elements when displayed on a television screen 112 might be
unreasonably large (occupying too much screen real estate) or too small
for a user to interact with from a distance using a remote control
device. A method is described herein for providing a consistent user
interface for applications 122 that can be executed on both device types
114, 118 by adjusting the size of a particular user interface element
when displayed on a television with particular display characteristics at
a particular distance from a user, such that the size of the particular
user interface element when viewed on such a television display 112 would
appear to be approximately the same size as if that interface element
were displayed on the portable device screen 120.

[0033]FIG. 2 is a block diagram illustrating a computer system 200 in
accordance with some implementations. In some implementations, the
computer system 200 corresponds to the companion device 114 or the
integrated television device 116 (FIG. 1).

[0034] The computer system 200 typically includes one or more processing
units (CPUs) 202, graphics module 110, and memory 206. In some
implementations, the computer system 200 also includes one or more of:
one or more network or other communications interfaces 108, one or more
receivers and/or converters 106, and one or more distance sensors 208.
The computer system 200 includes one or more communication buses 204 for
interconnecting these components. In some implementations, the
communication buses 204 include circuitry (sometimes called a chipset)
that interconnects and controls communications between system components.
In some other implementations, the computer system 200 includes a user
interface (not shown) (e.g., a keyboard, and a mouse or other pointing
device). The computer system 200 is coupled with the television screen
112, regardless of whether the television screen 112 is integrated with
the computer system 200 or located outside the computer system 200. The
television screen 112 may be used to display a graphical user interface.

[0035] In some implementations, the one or more distance sensors 208 are
used to determine a distance between a user of the computer system 200
and the television screen 112. In some implementations, the one or more
distance sensors 208 include one or more cameras that can monitor the
distance between the user of the computer system 200 and the television
screen 112. In some implementations, the one or more distance sensors 208
include ultrasound sensors or infrared sensors that are used to determine
the distance between the user of the computer system 200 and the
television screen 112. Typically, the one or more distance sensors 208
are activated only with an explicit permission (e.g., an opt-in approval)
of the user.

[0036] The memory 206 of the computer system 200 includes high-speed
random access memory, such as DRAM, SRAM, DDR RAM or other random access
solid state memory devices; and may include non-volatile memory, such as
one or more magnetic disk storage devices, optical disk storage devices,
flash memory devices, or other non-volatile solid state storage devices.
The memory 206 may optionally include one or more storage devices
remotely located from the CPU(s) 202. The memory 206, or alternately the
non-volatile memory device(s) within the memory 206, comprises a
non-transitory computer readable storage medium. In some implementations,
the memory 206 or the computer readable storage medium of the memory 206
stores the following programs, modules and data structures, or a subset
thereof: [0037] operating system 210 that includes procedures for
handling various basic system services and for performing hardware
dependent tasks; [0038] network communication module (or instructions)
212 that is used for connecting the computer system 200 to the content
providers (e.g., content providers 102, FIG. 1) via one or more network
interfaces 108 and one or more communications networks 104 (FIG. 1), such
as the Internet, other wide area networks, local area networks,
metropolitan area networks, wireless networks, cellular networks, and so
on; [0039] receiver/converter module (or instructions) 214 that is used
for receiving media content from the content providers (e.g., content
providers 102) via one or more receivers/converters 106 and one or more
communications networks 104, such as radio-frequency audio/video
communication networks, cable-based communication networks, digital
audio/video communication networks, and so on; [0040] application service
module 216 that provides various services to the applications 122; [0041]
applications 122 that include various applications executed by the one or
more processing units 202 causing the computer system 200 to perform
certain operations (e.g., a media player 220, which, when executed,
displays contents of media data; an email application 222, which, when
executed, displays one or more email messages, etc.); and [0042] data
storage 226 that stores various data used by the computer system 200.

[0043] The data storage 226 typically includes device characteristics 228
that identify characteristics (e.g., specifications, operating modes,
etc.) of the computer system 200 and/or the television screen 112. The
device characteristics 226 are described in detail with respect to FIG.
5.

[0044] In some implementations, the data storage 226 includes media
content storage 230. The media content storage 230 may store a complete
media data for a particular program (e.g., a music file corresponding to
an entire song, a multimedia data including an entire length of a
television program episode or a movie, etc.), which may be played at a
time desired by a user. The media content storage 230 may store a portion
of a particular program, which may be used for improving the quality of
playing the particular program (e.g., for caching or for content analysis
for finding related programs and/or services).

[0045] In some implementations, the data storage 226 includes user
interface objects 232. In some implementations, the user interface
objects 232 include a set of multiple user interface objects that
correspond to a same user interface object type, where each user
interface object in the set has a distinct resolution (e.g., a distinct
number of pixels). A respective user interface object in the set may be
used for rendering a user interface object of a distinct size.

[0046] The application service module 216 includes one or more service
modules to provide various application services (e.g., memory management,
graphics rendering, etc.) to the applications 122. In some
implementations, the application service module 216 is included in the
operating system 210. In some implementations, the application service
module 216 includes a rendering service module 218 for sending data
and/or instructions to the graphics module 110 for rendering user
interfaces and/or user interface objects. In some implementations, the
rendering service module 218 includes a scaling module 224, which is used
for determining a variable scaling factor and rendering one or more user
interface objects in accordance with the variable scaling factor.

[0048] Optionally, the memory 206 may include additional applications,
modules, or components. In some implementations, the computer system 200
includes additional components not illustrated in FIG. 2. For example,
the computer system 200 may include one or more audio modules for
generating and/or amplifying audio signals. The computer system 200 may
also include a security module for protecting the data stored in the
computer system 200.

[0049] Each of the above identified modules and applications corresponds
to a set of instructions for performing one or more functions described
above. These modules (i.e., sets of instructions) need not be implemented
as separate software programs, procedures or modules, and thus various
subsets of these modules may be combined or otherwise re-arranged in
various implementations. In some implementations, the memory 206 may
store a subset of the modules and data structures identified above.
Furthermore, the memory 206 may store additional modules and data
structures not described above.

[0050] Notwithstanding the discrete blocks in FIGS. 1 and 2, these figures
are intended to provide functional descriptions of some implementations
rather than structural descriptions of functional elements in the
implementations. One of ordinary skill in the art will recognize that an
actual implementation might have the functional elements grouped or split
among various components. In practice, and as recognized by those of
ordinary skill in the art, items shown separately could be combined and
some items could be separated. For example, in some implementations, the
television screen 112 is included in the computer system 200. In other
implementations, the television screen 112 is physically separated from
the computer system 200. In some implementations, the CPUs 202 and the
memory 206 are included in a single semiconductor package. In some
implementations, the CPUs 202 and the graphics module 110 are included in
a single semiconductor package. In some implementations, the computer
system 200 is implemented on multiple distributed computer systems. In
some implementations, the rendering service module 218 and/or the scaling
module 224 are integrated into the application service module 216, and
the rendering service module 218 and/or the scaling module 224 may not
exist as separate modules.

[0051] The actual number of components used to implement the computer
system 200 and how features are allocated among them will vary from one
implementation to another, and may depend in part on the amount of data
traffic that the system must handle during peak usage periods as well as
during average usage periods, and may also depend on the amount of data
stored by the computer system 200. Moreover, one or more of the blocks
(e.g., the television screen 112, and the receiver/converter 106, etc.)
in FIGS. 1 and 2 may be implemented on one or more separate devices
designed to provide the described functionality. Although the description
herein refers to certain features implemented in the television device
and the computer system 200, the implementations are not limited to such
distinctions. For example, features described herein as being part of the
computer system 200 can be implemented in whole or in part in the
television device, and vice versa.

[0052]FIG. 3 illustrates respective angles occupied by respective user
interface objects, in accordance with some implementations. As described
above, in some implementations the scaling module 224 (FIG. 2) adjusts
the size of an icon or other user interface element on the TV screen 112
such that the angle of that user interface element would appear to be
apparently the same as the same icon presented on a nearby portable
device 118.

[0053] Shown in FIG. 3 is an eye 302 of a respective user. Also shown in
FIG. 3 is a first user interface object 304 located at a distance D1 from
the eye 302. The first user interface object 304 when viewed from the eye
302 occupies a first angle α.

[0054] When a second user interface object 306 that has the same size as
the first user interface object 304 is viewed from the eye 302 located at
a distance D2 from the second user interface object 306, the second user
interface object 306 occupies a second angle β that is smaller than
the first angle α. Thus, when a user interface object (e.g., the
second user interface object 306) is located further away from the
respective user, it may be challenging for the respective user to
recognize, or resolve features (e.g., read characters) in, the user
interface object located further away from the respective user.

[0055] This problem is addressed by increasing the size of the user
interface object. As shown in FIG. 3, a third user interface object 308
that is larger than the first user interface object 304 is located at the
distance D2 from the eye 302. When the third user interface object 308 is
viewed from the eye 302, the third user interface object 308 occupies the
first angle α. Thus, both the first user interface object 304
located at the distance D1 and the third user interface object 308
located at the distance D2 occupy the same angle when viewed from the eye
302. As a result, the respective user may recognize the user interface
object 308 located at the distance D2 from the eye 302 as easily as
recognizing the user interface object 304 located at the distance D1 from
the eye 302.

[0056] However, increasing the size of the user interface object
excessively reduces the remaining area of a display screen that may be
used for displaying other content (e.g., a television program). Thus,
there needs to be a more systematic approach to increasing the size of
the user interface object. In some implementations, the size of the user
interface object is increased in accordance with a scaling factor. In
some implementations, the scaling factor is determined in accordance with
the distance between the eye 302 (or the respective user) and a display
screen that displays the user interface object so that the angle occupied
by the user interface object remains substantially the same (e.g., the
angle occupied by the user interface object varies less than five, ten,
or twenty percent when the distance between the respective user and the
user interface object doubles).

[0057] FIGS. 4A-4C illustrate exemplary user interfaces displayed on a
television screen 112 and a personal device 118 (e.g., a mobile phone, a
tablet computer, a notebook computer, a desktop computer, etc.) in
accordance with some implementations. It should be noted that FIGS. 4A-4C
are not drawn to scale.

[0058] In FIG. 4A, the personal device 118 displays a scene 414 from a
television program. The television screen 112-A displays a corresponding
scene 404 from the television program. Typically, the scene 404 is scaled
to fit a predefined region of the television screen 112-A (e.g., the
entire television screen 112-A or a portion thereof). Thus, the size of
the scene 404 (and its scaling factor) displayed on the television screen
112-A is often determined solely based on the size of the television
screen 112-A, and the scaling factor does not change in accordance with
the distance between the television screen 112-A and a respective user
watching the television screen 112-A.

[0059] The personal device 118 also displays user interface objects 416,
418, and 420. The size of each user interface object (e.g., the user
interface object 416, 418, or 420) is often characterized with a number
of pixels (e.g., 100 pixel-wide and 50 pixel-high). The television screen
112-A displays corresponding user interface objects 406, 408, and 410,
where each of the corresponding user interface objects 406, 408, and 410
has the same number of pixels as respective user interface objects 416,
418, and 420. Because the size of a pixel on the display of the personal
device 118 may be different from the size of a pixel on the television
screen 112-A, the user interface object 406, 408, and 410 may be
displayed on the television screen 112-A larger than the corresponding
user interface objects 416, 418, and 420 displayed on the personal device
118 (e.g., the personal device and the television screen typically have
different video resolutions, such as 240, 320, or 480 dpi for mobile
phones and 20 to 80 dpi for television screens). However, a user watching
the television screen 112-A from a distance may still have difficulty
recognizing (or reading characters in) the user interface object.

[0060]FIG. 4B illustrates an exemplary user interface displayed on the
television screen 112-B in accordance with some implementations. The
television screen 112-B concurrently displays the scene 404 from the
television program and user interface objects 426, 428, and 430 that
correspond to the user interface objects 416, 418, and 420 displayed on
the personal device 118. The user interface objects 426, 428, and 430 are
scaled so that the user watching the television screen 112-B from a
distance can easily recognize the user interface objects 426, 428, and
430. The scaling factor for scaling the user interface objects 426, 428,
and 430 is determined in accordance with a distance parameter that
corresponds to a distance between the user and the television screen
112-B. It should be noted that the scene 404 rendered on the television
screen 112-B has the same size as the scene 404 rendered on the
television screen 112-A (FIG. 4A). In other words, the scene 404 is
rendered in accordance with a scaling factor that is independent from the
distance between the user and the television screen 112.

[0061]FIG. 4c illustrates an exemplary user interface displayed on the
television screen 112-C in accordance with some implementations. The
television screen 112-C concurrently displays the scene 404 from the
television program and user interface objects 436, 438, and 440 that
correspond to the user interface objects 416, 418, and 420 displayed on
the personal device 118. The television screen 112-C is located further
away from the user than the television screen 112-B. Thus, the user
interface objects 436, 438, and 440 are rendered larger than the
corresponding user interface objects 426, 428, and 430 (FIG. 4B).

[0062]FIG. 5 is a block diagram illustrating an exemplary data structure
for the device characteristics 226 (FIG. 2), in accordance with some
implementations. The device characteristics 226 include the following, or
a subset or superset thereof: [0063] (optional) a device identifier
502, which indicates a type of the computer system 200 (e.g., whether the
computer system is integrated with the television screen 112 or whether
the computer system is a physically separable from the television screen
112, such as a set-top box); [0064] a screen resolution 504, which
identifies the resolution of the television screen (e.g., the television
screen 112) or a resolution mode the television screen is operating in
(e.g., 1080 p or 720 p); [0065] a variable scaling factor 506, which is
used for rendering one or more user interface objects; [0066] (optional)
a predefined distance 508, which is a presumed distance between a user
and the television screen (e.g., the television screen 112), typically
preselected by an engineer or a software developer; [0067] (optional) a
measured distance 510, which is an actual distance between the user and
the television screen (e.g., the television screen 112); [0068]
(optional) a user provided distance 512, which is a distance between the
user and the television screen (e.g., the television screen 112) as
provided by the user; and [0069] (optional) a screen size 514, which is a
size of the television screen (e.g., the television screen 112).

[0070] As stated previously, the device characteristics 226 may include
more or fewer data fields. In some implementations, the device
characteristics 226 include a predefined scaling factor, which may be
provided instead of, or in addition to, the predefined distance 508. The
predefined scaling factor may be used unless the measured distance or the
user provided distance deviates from the predefined distance by more than
a predefined threshold.

[0071]FIG. 6 is a flowchart representing a method 600 for rendering a
user interface object in accordance with a variable scaling factor, in
accordance with some implementations. The method is performed at a
computer system (e.g., the computer system 200, FIG. 2) coupled with a
television screen (e.g., the television screen 112). The computer system
includes one or more processors (e.g., the CPU(s) 202, FIG. 2) and memory
(e.g., the memory 206) storing one or more programs, for execution by the
one or more processors, for rendering one or more user interface objects
on the television screen.

[0072] The system receives (602) a request for rendering a user interface
object. For example, one of the applications 122 (e.g., a media player
220, FIG. 2) may send to the application service module 216 a request for
rendering one or more user interface objects, and the system receives the
request through the application service module 216.

[0073] The system identifies (604) a variable scaling factor. For example,
the system may retrieve the variable scaling factor 506 from the device
characteristics 226. In some implementations, the system determines
(e.g., calculates) the variable scaling factor 506 prior to receiving the
request. In some implementations, the system determines (e.g.,
calculates) the variable scaling factor 506 in response to receiving the
request. The variable scaling factor is determined in accordance with a
distance parameter corresponding to a distance between a respective user
and the television screen. In some implementations, the variable scaling
factor is increased proportionally to the distance parameter. For
example, when the distance between the respective user and the television
screen changes from five-feet to ten-feet, the variable scaling factor
doubles.

[0074] In some implementations, the variable scaling factor is represented
as a multiplier. For example, the variable scaling factor may have a
value of one when the size of the user interface object need not be
increased. When the size of the user interface object needs to be
doubled, the variable scaling factor may have a value of two. In some
implementations, the variable scaling factor is expressed using the unit
of video resolution (e.g., dots-per-inch). For example, for a display
that has an actual video resolution of 50 dpi, rendering a user interface
object at a 200 dpi resolution has the effect of increasing the size of
the user interface object by four times.

[0075] In some implementations, the variable scaling factor is determined
(606) in accordance with a resolution mode of the television screen. In
some implementations, the variable scaling factor is increased
proportionally to the resolution of the television screen. For example,
when the resolution mode of the television screen increases by 50% (e.g.,
from 720 p to 1080 p), the variable scaling factor also increases by 50%
(e.g., from 213 dpi to 320 dpi).

[0076] In some implementations, the system determines (608) the distance
between the respective user and the television screen. For example, the
system may use the distance sensor 208 (FIG. 2) to determine the distance
between the respective user and the television screen (e.g., the
television screen 112).

[0077] In some implementations, the distance parameter corresponds (610)
to a predefined distance (e.g., the predefined distance 508) between the
respective user and the television screen. Thus, the distance parameter
need not be based on the actual distance between the respective user and
the television screen.

[0078] In some implementations, the system receives (612) as an input from
the respective user the distance between the respective user and the
television screen. The distance received from the respective user may be
stored in the device characteristics 226 as the user provided distance
512. In some implementations, the distance parameter corresponds to the
distance received from the respective user.

[0079] In some implementations, the variable scaling factor is determined
(614) in accordance with a screen size of the television screen. For
example, when the screen size of the television screen doubles (at the
same resolution), the variable scaling factor is reduced by half. In some
implementations, the variable scaling factor is determined in accordance
with the screen size and the resolution of the television screen. In some
implementations, the video resolution is first determined from the screen
size and the resolution of the television screen, and in turn, the
variable scaling factor is determined in accordance with the video
resolution. For example, comparing a thirty-inch television screen at a
720 p resolution and a forty-inch television screen at the same 720 p
resolution, a respective pixel in the forty-inch television screen is
larger than each pixel in the thirty-inch television screen. Thus, a
fewer pixels are required to display a user interface object on the
forty-inch television screen compared to displaying a corresponding user
interface object of the same size on the thirty-inch television screen.

[0080] The system renders (616) the user interface object on the
television screen in accordance with the variable scaling factor while
maintaining a display of a television program on the television screen
based on a fixed scaling factor. As illustrated in FIGS. 4B and 4C, the
user interface objects illustrated in FIGS. 4B and 4C (e.g., the user
interface objects 426, 428, 430, 436, 438, and 440) are rendered in
accordance with the variable scaling factor (e.g., rendered large or
small based on the variable scaling factor), while the scene 404 from the
television program is displayed in accordance with the fixed scaling
factor (e.g., the size or zoom of the scene 404 remains independent of
the distance between the respective user and the television screen).

[0081] In some implementations, the system renders the user interface
object on the television screen in accordance with the variable scaling
factor by increasing the size of the user interface object based on the
variable scaling factor. In some implementations, the user interface
object is stored based on vector graphics so that the system can readily
scale the size of the user interface object. In some implementations, the
system stores a set of corresponding user interface objects, where each
user interface object has a distinct size. The system may retrieve the
user interface object of a particular size based on the variable scaling
factor.

[0082] In some implementations, the system renders the user interface
object on the television screen in accordance with the variable scaling
factor while maintaining a display of a first content (e.g., a photo,
movie, game, etc.) on the television screen based on the fixed scaling
factor.

[0083] In some implementations, the user interface object rendered by the
computer system has (618) a same apparent size to the respective user
watching the television screen as a corresponding user interface object
rendered by a personal device executing the one or more programs when the
corresponding user interface object is viewed by the respective user
using the personal device. The television screen is located further away
from the respective user than the personal device. For example, the user
interface object 416 (FIG. 4B) has the same apparent size as the user
interface object 426 when viewed by a user at respective distances. As
explained with respect to FIG. 3, the user interface object 308 has the
same apparent size to the user as the user interface object 304.

[0084] In some implementations, the user interface object has (620) a
first angle when the user interface object is viewed by the respective
user watching the television screen. The television screen is located
further away from the respective user than the personal device. A
corresponding user interface object rendered by a personal device
executing the one or more programs has a second angle when the
corresponding user interface object is viewed by the respective user
using the personal device. The first angle matches the second angle. For
example, in FIG. 3, the user interface object 308 and the user interface
object 304 occupy the same angle when viewed by the user.

[0085] The foregoing description, for purpose of explanation, has been
described with reference to specific implementations. However, the
illustrative discussions above are not intended to be exhaustive or to
limit the invention to the precise forms disclosed. Many modifications
and variations are possible in view of the above teachings. The
implementations were chosen and described in order to best explain the
principles of the invention and its practical applications, to thereby
enable others skilled in the art to best utilize the invention and
various implementations with various modifications as are suited to the
particular use contemplated.

[0086] It will be understood that, although the terms first, second, etc.
have been used herein to describe various elements, these elements should
not be limited by these terms. These terms are only used to distinguish
one element from another. For example, a first angle could be termed a
second angle, and, similarly, a second angle could be termed a first
angle. The first angle and the second angle are both angles, but they are
not the same angle.

[0087] The terminology used in the description of the implementations
herein is for the purpose of describing particular implementations only
and is not intended to be limiting of the claims. As used in the
description of the implementations and the appended claims and the
appended claims, the singular forms "a," "an," and "the" are intended to
include the plural forms as well, unless the context clearly indicates
otherwise. It will also be understood that the term "and/or" as used
herein refers to and encompasses any and all possible combinations of one
or more of the associated listed items. It will be further understood
that the terms "comprises" and/or "comprising," when used in this
specification, specify the presence of stated features, integers, steps,
operations, elements, and/or components, but do not preclude the presence
or addition of one or more other features, integers, steps, operations,
elements, components, and/or groups thereof.

[0088] As used herein, the term "if" may be construed to mean "when" or
"upon" or "in response to determining" or "in response to detecting,"
depending on the context. Similarly, the phrase "if it is determined" or
"if [a stated condition or event] is detected" may be construed to mean
"upon determining" or "in response to determining" or "upon detecting
(the stated condition or event)" or "in response to detecting (the stated
condition or event)," depending on the context.

Patent applications by Jason Bayer, San Francisco, CA US

Patent applications by Leo Baghdassarian, Palo Alto, CA US

Patent applications in class For display of additional information

Patent applications in all subclasses For display of additional information