System and method of composing graphics for 3D video on 2d capable media devices
The system addresses the issue of distorted graphics in 3D media content by using a method to generate and insert graphics into 3D media content, ensuring clear and undistorted graphical overlays on 3D video.
Patent Information
- Application Number
- PCT/EP2024/071961
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-25
- Filing Date
- 2024-08-02
- Publication Date
- 2025-03-06
AI Technical Summary
Current set-top boxes lack the capability to compose graphics onto decoded 3D video, resulting in distorted graphics with artifacts and transparency issues when displayed on televisions or other devices.
A method and system for generating graphics for 3D media content, involving receiving and decoding 3D media content, determining appropriate resolutions for graphics buffers, generating and inserting graphics into these buffers, and transmitting the combined video and graphics buffers to a display, all while avoiding distortions.
Enables the display of graphics in 3D media content without visual distortions, ensuring clear and undistorted graphical overlays on 3D video.
Smart Images

Figure IMGF000030_0001 
Figure 00000046_0000 
Figure 00000047_0000
Abstract
Description
SYSTEM AND METHOD OF COMPOSING GRAPHICS FOR 3D VIDEO ON 2D CAPABLE MEDIA DEVICESField of the Disclosure
[0001] The present disclosure relates generally to a method, system, and computer program product for generating graphics for three-dimensional media content, and more particularly to generating graphics for three-dimensional media content in two- dimensional capable media devices.Background of the Disclosure
[0002] Three-dimensional (3D) video is popular in many countries throughout the world, such as Japan. There are commercial video channels transmitting content in 3D and consumers are also in possession of a library of recorded 3D content. There are many television devices that are capable of processing and displaying 3D content. In a normal video set up, televisions receive content from a media device such as set-top box that handles the conditional access / DRM aspect. It is normally required to overlay graphics, e.g., user interface screens, notifications, etc. on top of video by the set-top box. While it is relatively straightforward to signal televisions to display 3D content in a 3D mode, a problem arises when the 3D content includes graphics generated by a set- top box not capable of generating graphics geared for stereoscopic (3D) video. Most of the hardware systems in current set-top boxes do not have the capability to compose graphics on to a decoded 3D video and thus when current set-top boxes overlaygraphics into 3D video, the graphics become distorted, e.g., artifacts, and / or transparency issues are present, when displayed on a television or other display device. Thus, there is a need for a technical solution for enabling the display of graphics in 3D media content without any visual distortions, e.g., artifacts, of the graphic.Summary of the Disclosure
[0003] The present disclosure provides a description of exemplary methods, systems, and computer program products for generating graphics for three-dimensional media content in accordance with exemplary embodiments.
[0004] A method for generating graphics for three-dimensional media content. The method includes receiving a piece of three-dimensional media content; decoding the piece of three-dimensional media content; generating a graphics buffer for three- dimensional media content, wherein the generating the graphics buffer for three- dimensional media content includes: determining a video resolution of the piece of three-dimensional media content, the video resolution having a length and a width defined by a number of pixels, determining a graphics buffer resolution, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution; generating a graphic; inserting the graphic into the graphics buffer for three-dimensional media content, wherein inserting the graphic into the graphics buffer for three-dimensional media content includes: dividing the graphics buffer for three-dimensional media content in half either vertically or horizontally, inserting the graphic into at least one half of the graphics buffer forthree-dimensional media content; and transmitting a video buffer of the three- dimensional media content and the graphics buffer for three-dimensional media content with the inserted graphic to a display.
[0005] A media device for generating graphics for three-dimensional media content. The media device including a receiving device configured to: receive a piece of three- dimensional media content; a processor configured to: decode the piece of three- dimensional media content, generate a graphics buffer for three-dimensional media content, wherein the generating the graphics buffer for three-dimensional media content includes: determining a video resolution of the piece of three-dimensional media content, the video resolution having a length and a width defined by a number of pixels, determining a graphics buffer resolution, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution, generate a graphic, insert the graphic into the graphics buffer for three- dimensional media content, wherein inserting the graphic into the buffer for three- dimensional media content includes: dividing the graphics buffer for three-dimensional media content in half either vertically or horizontally, inserting graphic into at least one half of the graphics buffer for three-dimensional media content; and a transmitting device configured to: transmit a video buffer of the three-dimensional media content and the graphics buffer for three-dimensional media content with the inserted graphic to a display.
[0006] A computer program product for generating graphics for three-dimensional media content. The computer program product including a computer-readable storagemedium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method, including: receiving a piece of three-dimensional media content; decoding the piece of three- dimensional media content; generating a graphics buffer for three-dimensional media content, wherein the generating the graphics buffer for three-dimensional media content includes: determining a video resolution of the piece of three-dimensional media content, the video resolution having a length and a width defined by a number of pixels, determining a graphics buffer resolution, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution; generating a graphic; inserting the graphic into the graphics buffer for three- dimensional media content, wherein inserting the graphic into the graphics buffer for three-dimensional media content includes: dividing the graphics buffer for three- dimensional media content in half either vertically or horizontally, inserting the graphic into at least one half of the graphics buffer for three-dimensional media content; and; and transmitting a video buffer of the three-dimensional media content and the graphics buffer for three-dimensional media content with the inserted two-dimensional graphic to a display.Brief Description of the Drawings
[0007] The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when read in conjunction with the accompanying drawings. Included in the drawings are the following figures:
[0008] FIG. 1 is a block diagram illustrating a prior art process for creating a three- dimensional frame for three-dimensional media content including a graphic;
[0009] FIG. 2 is a block diagram illustrating a high-level system architecture for generating graphics for three-dimensional media content in accordance with exemplary embodiments;
[0010] FIG. 3 is a block diagram illustrating the home gateway device of FIG. 2 in accordance with exemplary embodiments;
[0011] FIG. 4 is a block diagram illustrating a process for generating graphics for three- dimensional media content in accordance with exemplary embodiments;
[0012] FIG. 5 is a flow diagram illustrating a process for generating graphics for three- dimensional media content in accordance with exemplary embodiments;
[0013] FIG. 6 is a flow diagram illustrating an exemplary method for generating graphics for three-dimensional media content in accordance with exemplary embodiments; and
[0014] FIG. 7 is a block diagram illustrating a computer system architecture in accordance with exemplary embodiments.
[0015] Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description of exemplary embodiments are intended for illustration purposes only and are, therefore, not intended to necessarily limit the scope of the disclosureDetailed Description of the Preferred Embodiments and Methods
[0016] The present disclosure provides a novel technical solution for generating graphics for three-dimensional media content. Particularly, exemplary embodiments of themethods, systems, and computer program products provided for herein enable the display of graphics in 3D media content without any visual distortions of the graphic. Referring to FIG. 1 , an example prior art problem with displaying graphics in 3D media content is illustrated. In order to display graphics in 3D media content, current set-top boxes would transmit a signal to a television, or other display device, with the 3D media content with graphics overlayed. A television receiving the 3D media content with graphic 16 overlayed on a frame of the 3D media content is illustrated in frame 10. The television would then split frame 10 including the graphic 16 along line X into a left half 12 and a right half 14. The two pictures illustrated in the left half 12 and the right half 14 may appear similar, but they are not same. The television would then horizontally stretch the left half 12 and a right half 14 to the output resolution size of the media content resulting in frames 20 and 30, each having a half of the graphic 16, e.g., left half 22 and right half 32. This results in a first distortion of the graphic, e.g., each half 22 and 32 of the graphic 16 is stretched horizontally. The television then superimposes the frames 20 and 30 resulting in frame 40. The images when viewed with 3D glasses, will have 3D effect, but the graphic suffers yet another visual distortion. For example, the two halves 22 and 32 of the graphic 16, already stretched, now appear stacked on top of one another. It can be appreciated that while FIG. 1 is illustrated with a graphic 16 having no depth, e.g., a 2D graphic, the results would be the same with a graphic having depth, e.g., a 3D graphic. Exemplary embodiments of the methods, systems, and computer program products provided for herein provide a novel way for generating graphics for three-dimensional media content, in particular, exemplary embodiments of the methods, systems, and computer programproducts provided for herein enable the display of graphics in 3D media content without any visual distortions of the graphic.System for Generating Graphics for Three-Dimensional Media Content
[0017] FIG. 2 illustrates an exemplary system 100 for generating graphics for three- dimensional media content. The system 100 includes an edge serving office (ESO) 110, a network connection 120, a home gateway 130, and user devices 132, 134, 136, 138, 140, and 142.
[0018] The system 100 can be part of a communications network that can be used as a broadcast, ATSC, IPTV or IP Video delivery network that transports or delivers data files and multimedia content, including via multicast transmissions. The network environment can include an edge serving office (ESO) 110, which can be a head-end or central office of a multiple service provider (MSO) such as a cable, satellite, or telephone company. The ESO 110 can contain various communications equipment, such as one or more modulation / demodulation devices (not shown), a content server (not shown), and other communications equipment (not shown) that can provide video, data, and / or voice service to a user.
[0019] The communications equipment at the ESO 110 is operable to communicate with a home gateway 130 using a cable line network connection 120. In embodiments, the home gateway 130 may be a smart media device, a gateway device, an access point, a modem, a wireless router including an embedded modem, a wireless network extender or any other device operable to deliver, for example, data and / or video services from the ESO 110 to one or more of the user devices 132, 134, 136, 138, 140, and 142. In oneexample, the home gateway 130 includes the functionality of a set-top box (STB). The combination of the STB and the home gateway may be referred to as a set-top gateway. It is contemplated, however, that the STB may be separate from the home gateway 130. In this instance, the home gateway 130 provides the network connection 120 and the STB provides the media functionality. When the STB is separate from the home gateway 130, the STB may be connected to network connection 120 in parallel with the home gateway 130 or may be connected to the home gateway 130 to receive IPTV packets from ESO 110 via the home gateway.
[0020] The communications equipment at the ESO 110 can be operable to communicate with one or more user devices 132, 134, 136, 138, 140, and 142 through the home gateway 130. The home gateway 130 can provide, for example, voice, video, data, and / or loT services to one or more of the user devices 132, 134, 136, 138, 140, and 142. The user devices 132, 134, 136, 138, 140, and 142 may be customer premises equipment (CPE) devices such as a digital television (DTV) 132, a mobile device 134, a radio receiver 136, a digital video disc (DVD) player 138 including a streaming video facility, a network attached storage (NAS) device 140, a computer 142, or other Internet of things (loT) device (e.g. an appliance, surveillance camera, light fixture, etc.) that connects to the Internet through the home gateway 130. In the example system, one or more of the user devices 132, 134, 136, 138, 140, and 142 are capable of rendering and / or displaying three-dimensional media content. The user devices 132, 134, 136, 138, 140, and 142 can be located at or near a user's premises. The home gateway 130 may communicate with the one or more of the user devices132, 134, 136, 138, 140, and 142 over a local network such as a local area network(LAN), a wireless local area network (WLAN), a personal area network (PAN), a mobile communication network, a satellite network, the Internet, fiber optic, coaxial cable, infrared, radio frequency (RF), or any combination thereof. In the example system, the user devices 132, 134, 136, 138, 140, and 142 may have wireless telecommunications capabilities. In FIG.1 , while particular user devices 132, 134, 136, 138, 140, and 142 are shown for illustrative purposes, it can be appreciated that any number of user devices capable of storing, compiling, and organizing audio, visual, or textual data and receiving and sending that data to and from the home gateway 130 can be coupled to the ESO 110 via the home gateway 130. Further, it can be appreciated that each of the user devices 132, 134, 136, 138, 140, and 142 may include one or more computing devices.
[0021] Still referring to FIG.1 , the communications equipment at the ESO 110 can communicate with one or more of the user devices 132, 134, 136, 138, 140, and 142 through a transport network. Examples of ESO-to-Premises transport networks include one or more hybrid-fiber coaxial (HFC) networks and / or RF over Glass (RFoG) networks. An example HFC network can use a combination of optical fibers and coaxial cable as the network connection 120 to send data to and receive data from the communications equipment at the ESO 110. One or more RFoG networks can be deployed with existing HFC networks. RFoG networks typically include an all-fiber service from the ESO 110 to a field node, or the home gateway 130, which is typically located at or near the user's premises. Coaxial cable can be used to connect the optical network units (ONUs) of an RFoG network to one or more user devices 132, 134, 136, 138, 140, and 142. Additionally, any other wired or wireless networks can be used as the network connection 112, including WiFi, a mobile communication network, a satellitenetwork, the Internet, fiber optic, coaxial cable, infrared, radio frequency (RF), Passive Optical Networks (PON), Gigabit Passive Optical Networks (GPON), Digital Subscriber Line (DSL), Wi-MAX, Ethernet, or any combination thereof. Other suitable network types and configurations for the local network and the network connection 112 will be apparent to persons having skill in the relevant art. In general, the local area network and / or the network connection 112 can be any combinations of connections and protocols that will support communications between the ESO 110, the home gateway 130, and the user devices 132, 134, 136, 138, 140, and 142. A wireless connection between the ESO 110 and the home gateway 130 may be established through a protected setup sequence (for example, Wi-Fi protected setup (WPS)). The protected setup sequence may include the steps of scanning multiple wireless channels for an available access point, exchanging one or more messages between a station and access point, exchanging key messages (for example, pre-shared key (PSK)) between the station and access point, and installing a key (for example, PSK) at the station.
[0022] The DTV 132, the radio receiver 126, and the NAS device 140 may be coupled to the home gateway 130 via physical connections. The mobile device 134 may be coupled to the gateway 120 via a short-range radio frequency (RF), magnetic or optical connection (e.g. 802.11 WiFi, Bluetooth, Zigbee Radio Frequency for Consumer Electronics (RF4CE), near field communication (NFC) or infra-red (IR)), and the DVD player 1280 and computer 142, may be coupled to the home gateway 130 via a wired connection such as a universal serial bus (USB) cable, a FireWire cable, an Ethernet connection and / or via a short-range RF, magnetic or optical wireless connection. Each of these connections may be considered to be a separate communications channel.
[0023] The ESO 110 includes a network gateway 114 that provides access between a network and a data processing server 112 and, optionally to other networks, such as the Internet, and a telecommunications gateway 116 that provides telecommunications access to user devices such as mobile device 134 that is also coupled to the home gateway 130 via the short-range RF, magnetic or optical connection. The ESO 110 may include data sources (not shown), that provide content to the home gateway 130 and the user devices 132, 134, 136, 138, 140, and 142 via a standard cable television connection or as an IPTV or IP Video delivery network. These data sources, for example, may be servers coupled to the network gateway 114 in the same manner as the data processing server 112.Home Gateway 130
[0024] FIG. 3 illustrates an embodiment of a home gateway 130 in the system 100. It will be apparent to persons having skill in the relevant art that the embodiment of the home gateway 130 illustrated in FIG. 2 is provided as illustration only and may not be exhaustive to all possible configurations of the home gateway 130 suitable for performing the functions as discussed herein. For example, the computer system 600 illustrated in FIG. 6 and discussed in more detail below may be a suitable configuration of the home gateway 130.
[0025] The home gateway 130 may include a receiving device 202. The receiving device 202 may be configured to receive data over one or more networks via one or more network protocols. In some instances, the receiving device 202 may be configured to receive data from the user devices 132, 134, 136, 138, 140, and 142, the ESO 110, andother systems and entities via one or more communication methods, such as radio frequency, local area networks, wireless area networks, cellular communication networks, Bluetooth, the Internet, etc. In some embodiments, the receiving device 202 may be comprised of multiple devices, such as different receiving devices for receiving data over different networks, such as a first receiving device for receiving data over a local area network and a second receiving device for receiving data via the Internet. The receiving device 202 may receive electronically transmitted data signals, where data may be superimposed or otherwise encoded on the data signal and decoded, parsed, read, or otherwise obtained via receipt of the data signal by the receiving device 202. In some instances, the receiving device 202 may include a parsing module for parsing the received data signal to obtain the data superimposed thereon. For example, the receiving device 202 may include a parser program configured to receive and transform the received data signal into usable input for the functions performed by the home gateway 130 to carry out the methods and systems described herein.
[0026] The receiving device 202 may be configured to receive data signals electronically transmitted by one or more of the user devices 132, 134, 136, 138, 140, and 142, and / or the ESO 110 that may be superimposed or otherwise encoded with commands received from a user and / or the ESO 110. For example, the receiving device 202 may receive a user command for one or more pieces of media content from the ESO 110. The receiving device 202 may also receive data signals electronically transmitted by the user devices 132, 134, 136, 138, 140, and 142 for controlling one or more interfaces, one or more functionalities, and / or one or more displays, etc. associated with the home gateway 130. For example, the receiving device 202 may receive a data signal for executing a channelchange, a trickplay operation, a volume control, a display setting change, etc. The receiving device 202 may also receive data signals electronically transmitted by the ESO 110. For example, the receiving device 202 may receive audio and video data as a multimedia stream for a multimedia asset, e.g., a television program, a movie, etc., requested by a user of one or more of the user devices 132, 134, 136, 138, 140, and 142.
[0027] The home gateway 130 may also include a communication module 210. The communication module 210 may be configured to transmit data between modules, engines, databases, memories, and other components of the home gateway 130 for use in performing the functions discussed herein. The communication module 210 may be comprised of one or more communication types and utilize various communication methods for communications within a computing device. For example, the communication module 210 may be comprised of a bus, contact pin connectors, wires, etc. In some embodiments, the communication module 210 may also be configured to communicate between internal components of the home gateway 130 and external components of the home gateway 130, such as externally connected databases, display devices, input devices, etc. The home gateway 130 may also include a processing device. The processing device may be configured to perform the functions of the home gateway 130 discussed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the processing device may include and / or be comprised of a plurality of engines and / or modules specially configured to perform one or more functions of the processing device, such as the three-dimensional (3D) detector 204, the video decoder 206, the generation module 208, the video buffer 212, graphics buffer 214, the memory 216, and the compositor 218, etc. As used herein, the term “module” may besoftware or hardware particularly programmed to receive an input, perform one or more processes using the input, and provides an output. The input, output, and processes performed by various modules will be apparent to one skilled in the art based upon the present disclosure.
[0028] The home gateway 130 may include the three-dimensional (3D) detector 204. The three-dimensional (3D) detector 204 may be configured to analyze or otherwise process data for use by the home gateway 130 in performing the functions discussed herein. The three-dimensional (3D) detector 204 may determine if a piece of media content, e.g., a multimedia stream, received by the home gateway 130 contains any three-dimensional (3D) data. For example, the three-dimensional (3D) detector 204 may determine if a piece of media content is three-dimensional (3D) media content such as a 3D television program, a 3D movie, a 3D advertisement, etc. The three-dimensional (3D) detector 204 may determine if a piece of media content, e.g., a multimedia stream, received by the home gateway 130 contains any three-dimensional (3D) data by analyzing the piece of media content for specific markers for three-dimensional (3D) content. It can be appreciated that the three-dimensional (3D) detector 204 may determine if a piece of media content, e.g., a multimedia stream, received by the home gateway 130 contains any three-dimensional (3D) data using any other known and suitable method.
[0029] The home gateway 130 may include the video decoder 206. The video decoder 206 may be configured to decide any media content received by the home gateway 130. For example, the home gateway 130 may receive a piece of media content as a data stream in quadrature amplitude modulation (QAM) format from a broadcast server, e.g., the ESQ 110, in an IP-based content stream, as a first Internet Protocol-based (IP-based)content stream, or in a first digital video recorder (DVR) format from a digital video recorder. The video decoder 206 may convert a received encoded data stream, e.g., a piece of media content, into one or more outputs such as video, audio, and / or textual outputs, etc. that can be displayed on one or more of the user devices 132, 134, 136, 138, 140, and 142. For example, a piece of media content may contain a video stream and an audio stream which may be encoded, e.g., compressed, into a single data stream for transmission to the home gateway 130 and the video decoder 206 can decode, e.g., decompress, the respective video and audio streams. The video decoder 206 may store the decoded, e.g., decompressed, media content in the video buffer 210. The video buffer 210 may be configured to temporarily store data for use by the home gateway 130 in performing the functions discussed herein, such as one or more pieces of media content, e.g., video and audio data, etc. For example, in multimedia streaming the home gateway 130 may store a pre-configured amount of media content data, e.g., video and audio data, in the video buffer 210, while the media content is being processed and output to the one or more user devices 132, 134, 136, 138, 140, and 142. The video buffer 210 may be configured to temporarily store data using suitable data formatting methods and schema and may be any suitable type of memory, such as read-only memory, random access memory, etc. The video buffer 210 may include, for example, communication protocols and standards, data formatting standards and protocols, and other data that may be suitable for use by the home gateway 130 in the performance of the functions disclosed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the video buffer 210 may be comprised of or may otherwise include arelational database that utilizes structured query language for the storage, identification, modifying, updating, accessing, etc. of structured data sets stored therein.
[0030] The home gateway 130 may include the generation module 208. The generation module 208 may be configured to generate data for use by the home gateway 130 in performing the functions discussed herein. The generation module 208 may receive instructions as input, may generate data based on the instructions, and may output the generated data to one or more modules of the home gateway 130. In an embodiment, the generation module 208 may be configured to generate one or more graphics for display with a piece of media content on a user device 132, 134, 136, 138, 140, and 142. For example, the graphic generator 208 may generate one or more user interface screens (e.g., a menu, an electronic program guide (EPG), an information bar, etc.), a notification, a logo, a textual graphic (e.g., a glyph), or any other graphical output capable of being displayed on one or more of the user devices 132, 134, 136, 138, 140, and 142 along with a piece of media content. In the example system 100, the generation module 208 generates graphics for display with a piece of media content including three-dimensional (3D) pieces of media content. The generation module 208 may generate any graphic suitable for display with a piece of media content such as a two-dimensional (2D) graphic, e.g., a graphic having no depth, and / or a three-dimensional (3D) graphic, e.g., a graphic having a depth. It can be appreciated that the generation module 208 may generate a graphic for display with media content on one or more user devices 132, 134, 136, 138, 140, and 142 using any known and suitable method. The home gateway 130 may store the generated graphics in the graphics buffer 214. The graphics buffer 214 may be configured to temporarily store data using suitable data formatting methods and schemaand may be any suitable type of memory, such as read-only memory, random access memory, etc. The graphics buffer 214 may include, for example, communication protocols and standards, data formatting standards and protocols, and other data that may be suitable for use by the home gateway 130 in the performance of the functions disclosed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the graphics buffer 214 may be comprised of or may otherwise include a relational database that utilizes structured query language for the storage, identification, modifying, updating, accessing, etc. of structured data sets stored therein.
[0031] The generation module 208 may be configured to modify the graphics buffer 214. For example, if a piece of media content received by the home gateway 130 is three- dimensional (3D) media content, the generation module 208 may modify the graphics buffer 214 to enable the display of graphics with the three-dimensional (3D) media content on a user device 132, 134, 136, 138, 140, and 142. The graphics buffer 214 is allocated and configured based on the type of three-dimensional (3D) content, e.g., side by side horizontal and top and bottom vertical three-dimensional (3D) media content is being transmitted to by the home gateway 130. There are three common three-dimensional (3D) media output methods including, frame packing, side-by-side horizontal, and top and bottom vertical. In the frame packing method, the home gateway 130 codes alternate fames with left and right images resulting in twice the original frame rate and thus requiring twice the bandwidth. In the side-by-side horizontal method, the vertical resolution of the frames of the media content remains the same, but a display device, e.g., the DTV 132, will split the frame in half vertically at the center and then stretch the two halves horizontally until both halves have a horizontal resolution equal to the original frame, e.g.,both halves would have their horizontal resolution doubled. The two halves are then superimposed on one another resulting in a three-dimensional (3D) display output. In the top and bottom vertical method, the horizontal resolution of the frames of the media content remains the same, but a display device, e.g., the DTV 132, will split the frame in half horizontally at the center and then stretch the two halves vertically until both halves have a vertical resolution equal to the original frame, e.g., both halves would have their vertical resolution doubled. The two halves are then superimposed on one another resulting in a three-dimensional (3D) display output. The home gateway 130 utilizes the side-by-side horizontal method and / or the top and bottom vertical method for transmitting three-dimensional (3D) media content to one or more of the user devices 132, 134, 136, 138, 140, and 142. Therefore, in instances where the side-by-side horizontal method is used by the home gateway 130, the graphics buffer 214 configured by the generation module 208 would have a vertical resolution equal to original vertical resolution of the media content, e.g., the vertical resolution of the media content as it is received by the home gateway 130, and a horizontal resolution equal to twice the original horizontal resolution of the media content, e.g., the horizontal resolution of the media content as it is received by the home gateway 130. For example, if a piece of media content received by the home gateway 130 has a video resolution of 720, e.g., a horizontal resolution of 1280 pixels and a vertical resolution of 720 pixels, the graphics buffer 214 would have a horizontal resolution of 2560 pixels, e.g., double the 1280 pixel horizontal resolution of the media content, and a vertical resolution of 720 pixels, e.g., equal to the 720 pixel vertical resolution of the media content. In instances where the top and bottom vertical method is used by the home gateway 130, the graphics buffer 214 generated by thegeneration module 208 would have a horizontal resolution equal to original horizontal resolution of the media content, e.g., the horizontal resolution of the media content as it is received by the home gateway 130, and a vertical resolution equal to twice the original vertical resolution of the media content, e.g., the vertical resolution of the media content as it is received by the home gateway 130. For example, if a piece of media content received by the home gateway 130 has a video resolution of 720, e.g., a horizontal resolution of 1280 pixels and a vertical resolution of 720 pixels, the graphics buffer 214 would have a vertical resolution of 1440 pixels, e.g., double the 720 pixel vertical resolution of the media content, and a horizontal resolution of 1280 pixels, e.g., equal to the 1280 pixel horizontal resolution of the media content. While media content having a resolution of 720 is used in the above examples, it can be appreciated that the generation module 208 can generate a graphics buffer 214 for any resolution of media content such as 1080, e.g., 1920 x 1080 pixels, quad high definition (QHD), e.g., 2560 x 1440 pixels, 2K, e.g., 2048 x 1080 pixels, 4K or ultra-high-definition (UHD), e.g., 3840 x 2160 pixels, 8K, e.g., 7680 x 4320 pixels, and / or any other available media content resolution. In some embodiments of the side-by-side horizontal method and the top and bottom vertical method, the frames within the three-dimensional (3D) media content may be subsampled by the compositor 218 before the three-dimensional (3D) media content is transmitted to a user device, e.g., one or more of the user devices132, 134, 136, 138, 140, and 142. The graphics buffer 214 may be configured to temporarily store data using suitable data formatting methods and schema and may be any suitable type of memory, such as readonly memory, random access memory, etc. The graphics buffer 214 may include, for example, communication protocols and standards, data formatting standards andprotocols, and other data that may be suitable for use by the home gateway 130 in the performance of the functions disclosed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the graphics buffer 214 may be comprised of or may otherwise include a relational database that utilizes structured query language for the storage, identification, modifying, updating, accessing, etc. of structured data sets stored therein.
[0032] Once the graphics buffer 214 is generated, the home gateway 130, e.g., using the generation module 208, can insert any graphic into the graphics buffer 214. Referring now to FIG. 4, a method of inserting a graphic into the graphics buffer 214 using the side-by- side horizontal method is illustrated. The home gateway 103 may receive, e.g., via the receiving device 202, a frame of a piece of media content, e.g., a three-dimensional (3D) piece of media content, having two halves 310 and 312 split along line X. The frame of the piece of media content will have a horizontal resolution and a vertical resolution. While the images in both halves 310 and 312 look similar, they are slightly different so that when superimposed on one another, a three-dimensional (3D) image, e.g., three-dimensional (3D) frame 360, is generated. The generation module 208 generates the graphics buffer 214 as discussed above where the graphics buffer 214 has a horizontal resolution two times the horizontal resolution of the frame of the piece of media content and a vertical resolution equal to the vertical resolution of the frame of the piece of media content. The generation module 208 divides the three-dimensional (3D) graphics buffer 214 in half either vertically or horizontally depending on the three-dimensional (3D) output method being used. In present example using the side-by-size horizontal method, the generation module 208 divides three-dimensional (3D) graphics buffer 214 in half vertically. If thehome gateway 130 was using the top and bottom vertical method, the generation module 208 would divide the three-dimensional (3D) graphics buffer 214 in half vertically. The generation module 208 inserts the same graphic 320 into each half, e.g., right and left, of the three-dimensional (3D) graphics buffer 214. The generation module 208 may insert the graphic 320 only on one half e.g., left and replicate the entire left half memory to right half with the help of DMA (Direct Memory Access) copy often supported by hardware. If the home gateway 130 was using the top and bottom vertical method, the generation module 208 would insert the same graphic 320 into a top half and a bottom half of the graphics buffer 214. In embodiments, the generation module 208 may only insert a single graphic into the graphics buffer 214. For example, the generation module 208 may insert a graphic into one half, e.g., right, left, top, or bottom, of the graphics buffer 214. Inserting only a single graphic into one half of the graphics buffer 214 effects the opacity of the inserted graphic. For example, because the graphic will only be present in one frame of the three-dimensional (3D) piece of media content after one or more other user devices 132, 134, 136, 138, 140, and 142 process the final output of the compositor 218, discussed below, the graphic will appear less opaque, e.g., by fifty percent, than if the graphic were inserted into both halves of the graphics buffer 214.
[0033] Referring back to FIG. 3, the home gateway 130 may also include a memory 216. The memory 216 may be configured to store data for use by the home gateway 130 in performing the functions discussed herein, such as one or more pieces of media content, graphics, etc. The memory 216 may be configured to store data using suitable data formatting methods and schema and may be any suitable type of memory, such as readonly memory, random access memory, etc. The memory 216 may include, for example,communication protocols and standards, data formatting standards and protocols, program code for modules and application programs of the processing device, and other data that may be suitable for use by the home gateway 130 in the performance of the functions disclosed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the memory 216 may be comprised of or may otherwise include a relational database that utilizes structured query language for the storage, identification, modifying, updating, accessing, etc. of structured data sets stored therein. In embodiments, the memory 216 may include the video buffer 212, and graphics buffer 214.
[0034] The home gateway 130 may include the compositor 218. The compositor 218 may be configured to generate a final output to transmit to one or more of the user devices 132, 134, 136, 138, 140, and 142. The final output generated by the compositor 218 consists of bit stream containing the video from buffer 212 overlayed with graphics from buffer 214. The compositor may scale the graphics buffer 214 to fit a final media content resolution. For example, if the horizontal or vertical resolution of the (3D) graphics buffer 214 is twice that of the horizontal or vertical resolution of the original media content, e.g., the media content as received by the home gateway 130 and / or as stored in the video buffer 212, the compositor 218 would scale the horizontal or vertical resolution of the graphics buffer 214 to match the original horizontal or vertical resolution of the media content, e.g., as stored in the video buffer 212. The final output may be an HDMI signal, or any other suitable output signal for transmitting three-dimensional (3D) media content to one or more of the user devices 132, 134, 136, 138, 140, and 142. Referring to FIG. 4,the compositor 218 may scale the graphics buffer 214 down to the final output 330, e.g., having the same horizontal resolution as the original frame of the piece of media content.
[0035] Referring back to FIG. 3, the home gateway 130 may also include a transmitting device 220. The transmitting device 220 may be configured to transmit data over one or more networks via one or more network protocols. In some instances, the transmitting device 220 may be configured to transmit data to one or more user devices 132, 134, 136, 138, 140, and 142 user device 104, the ESO 110, and other entities via one or more communication methods, local area networks, wireless area networks, cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmitting device 220 may be comprised of multiple devices, such as different transmitting devices for transmitting data over different networks, such as a first transmitting device for transmitting data over a local area network and a second transmitting device for transmitting data via the Internet. The transmitting device 220 may electronically transmit data signals that have data superimposed that may be parsed by a receiving computing device. In some instances, the transmitting device 220 may include one or more modules for superimposing, encoding, or otherwise formatting data into data signals suitable for transmission.
[0036] The transmitting device 220 may be configured to electronically transmit data signals to one or more of the user devices 132, 134, 136, 138, 140, and 142, and / or the ESO 110, which may be superimposed or otherwise encoded with instructions related to a computer executable command based on a user input received by the home gateway 130. For example, the transmitting device 220 may transmit the final output, e.g., a piece of three-dimensional (3D) media content including the graphics, generated by thecompositor 218 to the DTV 132 or any other suitable user device 134, 136, 138, 140, and 142. The final output may include vendor specific information (VSI) frames to signal one or more of the user devices, e.g., the DTV 132, about the availability of the three- dimensional (3D) media content. The transmitting device 220 may transmit the final output to one or more of the user devices, e.g., the DTV 132, as an HDMI signal, or any other signal suitable for transmitting three-dimensional (3D) media content.
[0037] Continuing with the example illustrated in FIG. 4, the DTV 132 receives the final output 330 of the compositor 218 and splits the final output 330 in half vertically resulting in frames 340 and 350, each having the graphic 320. The DTV 132 superimposes the frames 340 and 350 resulting in the three-dimensional (3D) frame 360.Process for Generating Graphics for Three-Dimensional Media Content
[0038] FIG. 5 illustrates a process 400 for generating graphics for three-dimensional media content in accordance with exemplary embodiments.
[0039] In the block 410, the ESO 110 stores a piece of three-dimensional (3D) media content available for transmission to one or more users. For example, the ESO 110 may store one or more pieces of three-dimensional (3D) media content such as television programs, movies, advertisements, etc. that the ESO 110 provides to one or more customers of the ESO 110 via a home gateway, e.g., the home gateway 130. In block 412, the ESO 110 transmits a piece of three-dimensional (3D) media content, e.g., a three-dimensional (3D) television program, to the home gateway 130. For example, the ESO 110 may transmit the three-dimensional (3D) television program to the home gateway 130 as a media stream such as and IP-based data stream, or any othersuitable data transmission methods. The ESO 110 may transmit the piece of three- dimensional (3D) media content to the home gateway 130 in response to a request for the piece of three-dimensional (3D) media content received from one or more of the user devices 132, 134, 136, 138, 140, and 142 via the home gateway 130. For example, a user may select a piece of three-dimensional (3D) media content from a menu displayed on the DTV 132 or tune to a channel providing a piece of three- dimensional (3D) media content on the DTV 132. The DTV 132 may transmit the request for the piece of three-dimensional (3D) media content to the ESO 110 via the home gateway 130.
[0040] In the block 414, the home gateway 130 receives the piece of three-dimensional (3D) media content, e.g., via the receiving device 202, from the ESO 110 via the connection 120. In embodiments, the home gateway 130 may know that the piece of media content is three-dimensional (3D) media content and automatically begin processing the media content accordingly. For example, a user device such as the DTV 132 may be tuned to a three-dimensional (3D) television channel and the home gateway may know that any media content streamed to that television channel will be three-dimensional (3D) media content. In another example, a user of a user device, e.g., DTV 132, may select an option for three-dimensional (3D) media content via a menu display on the user device, e.g., the DTV 132 and the home gateway 130 would know any media content received in response to the user selection will be three- dimensional (3D) media content. In embodiments, the home gateway may not be aware ahead of time that the piece of media content is three-dimensional (3D) media content. In such an embodiment, the process 400 may include an option step of detecting by thehome gateway 130, e.g., via the three-dimensional (3D) detector 204, whether or not a piece of received media content is three-dimensional (3D) media content. For example, the home gateway 130, e.g., via the three-dimensional (3D) detector 204, may analyze the received piece of media content for one or more markers indicated three- dimensional (3D) data being present in the received piece of media content.
[0041] In block 416, the home gateway 130 decodes the received piece of three- dimensional (3D) media content, e.g., via the video decoder 206. For example, the received piece of three-dimensional (3D) media content may be an encoded data stream including a video stream and / or an audio stream. The video decoder 206 decodes the data the encoded data stream to obtain the video stream and / or audio stream. The video decoder 206 may store the video stream and / or the audio stream of the received piece of three-dimensional (3D) media content in one or more buffers such as the video buffer 210.
[0042] In the block 418, the home gateway 130 generates, e.g., via the generation module 208, the graphics buffer 214. In generating the graphics buffer 214, the home gateway 130 may determine, e.g., via the generation module 208, a video resolution of the received piece of three-dimensional (3D) media content, the video resolution having a length and a width defined by a number of pixels. For example, the received piece of three-dimensional (3D) media content may have a video resolution of 720, 1080, UHD, 2K, 4K, 8K, or any other available resolution. The home gateway 130 may determine, e.g., via the generation module 208, a graphics buffer resolution for the three- dimensional (3D) graphics buffer 214, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width ofthe graphics buffer resolution is twice the respective length or width of the video resolution. For example, the resolution of the three-dimensional (3D) graphics buffer 214 may depend upon the three-dimensional (3D) output method utilized by the home gateway 130 as discussed in more detail above with reference to the three-dimensional (3D) graphics buffer 214.
[0043] In the block 420, the home gateway 130 generates, e.g., via the generation module 208, a graphic. As discussed above, a graphic may be a two-dimensional graphic, a three-dimensional graphic, or any other suitable graphic for insertion is media content. Further, the graphic may be generated using any known suitable method for generating a graphic for insertion into media content. The graphic may be, for example, one or more user interface screens (e.g., a menu, an electronic program guide (EPG), an information bar, etc.), a notification, a logo, a textual graphic (e.g., a glyph), or any other graphical output capable of being displayed on one or more of the user devices 132, 134, 136, 138, 140, and 142 along with a piece of media content. The home gateway 130 may store the generated graphic in the graphics buffer 214 as discussed above with reference to the graphics buffer 214.
[0044] In the block 422, the home gateway 130 inserts, e.g., via the generation module 208, the graphic into the graphics buffer 214. To insert the graphic into the graphics buffer 214, the home gateway 130 may divide, e.g., via the generation module 208, the graphics buffer 214 in half either vertically or horizontally depending on the three- dimensional (3D) output method being utilized by the home gateway 130 as discussed in more detail above. The home gateway 130 may insert the graphic into at least one half of the graphics buffer 214 as discussed in more detail above.
[0045] In the block 424, the home gateway 130 composites, e.g., via the compositor 218, a video buffer of the three-dimensional (3D) media content and the graphics buffer 214 with the inserted graphic. The home gateway 130 may scale, e.g., via the compositor 218, the graphics buffer 214 to match the video resolution of the three- dimensional (3D) media content.
[0046] In the block 426, the home gateway 130 transmits, e.g., via the transmitting device 220, the video buffer of the three-dimensional (3D) media content and the graphics buffer 214 with the inserted graphic to a display device, e.g., one or more of the user devices 132, 134, 136, 138, 140, and 142. The video buffer 210 of the three- dimensional (3D) media content and the graphics buffer 214 with the inserted graphic may be transmitted as a bit stream as a result of the scaling and compositing by the compositor 218.
[0047] In the block 428, the DTV 132 and / or one or more of the user devices 134, 136, 138, 140, and 142 receives the output signal, e.g., a signal including the video buffer 210 of the three-dimensional (3D) media content and the three-dimensional (3D) graphics buffer 214 with the inserted graphic. As illustrated in FIG. 4, using the side-by-side horizontal method, the DTV 132 receives the final output 330 of the compositor 218 and splits the final output 330 in half vertically resulting in frames 340 and 350, each having the graphic 320. The DTV 132 superimposes the frames 340 and 350 resulting in the three-dimensional (3D) frame 360. While the side-by-side horizontal method is illustrated in FIG. 4, it can be appreciated that the DTV 132 / or one or more of the user devices 134, 136, 138, 140, and 142 can process an output signal transmitted using the top and bottom vertical method by splitting the final output 220 in half horizontally.
[0048] While the process 400 is illustrated and described in a series of numbered blocks, it can be appreciated that in some embodiments one or more blocks may be omitted or and / or the order of blocks may be rearranged without departing from the spirit of the disclosed subject matter.
[0049] Exemplary pseudocode for the process 400 may be written as illustrated in Table 1 :TABLE 1Exemplary Method for Generating Graphics for Three-Dimensional Media Content
[0050] FIG. 6 illustrates a flow chart of an exemplary method 500 for generating graphics for three-dimensional media content in accordance with exemplary embodiments.
[0051] In block 502, the home gateway 130 receives, e.g., via the receiving device 202, a piece of three-dimensional (3D) media content and decodes at block 504, e.g., via the video decoder 206, the piece of three-dimensional (3D) media content.
[0052] In block 506, the home gateway 130 generates, e.g., via the generation module 208, a graphics buffer, e.g., the graphics buffer 214. Generating the graphics buffer for three-dimensional media content, e.g., graphics buffer 214, may include determining, by the home gateway 130, e.g., via the generation module 208, a video resolution of the piece of three-dimensional (3D) media content where the video resolution has a length and a width defined by a number of pixels. Generating the graphics buffer for three- dimensional media content, e.g., graphics buffer 214, may further include determining, by the home gateway 130, e.g., via the generation module 208, a graphics buffer resolution, e.g., for the graphics buffer 214, where the graphics buffer resolution has a length and a width defined by a number of pixels, and either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution.
[0053] In block 508, the home gateway 130 generates, e.g. via the generation module 208, a graphic and inserts the graphic into the graphics buffer 214. Inserting the graphicinto the graphics buffer 214 may include dividing, by the home gateway 130, e.g., via the generation module 208, the graphics buffer 214 in half either vertically or horizontally and inserting the graphic into at least one half of the graphics buffer 214.
[0054] In the block 512, the home gateway 130, e.g., via the compositor 218, composites a video buffer, e.g., the video buffer 210, of the three-dimensional (3D) media content and the buffer 214 with the inserted graphic. The home gateway 130 may scale, e.g., via the compositor 218, the graphics buffer 214 to match the video resolution of the three-dimensional (3D) media content.
[0055] In block 514, the home gateway 130, transmits, e.g., via the transmitting device220, a video buffer, e.g., the video buffer 210, of the three-dimensional (3D) media content and the buffer 214 with the inserted graphic to a display device, e.g., one or more of the user devices 132, 134, 136, 138, 140, and 142. The video buffer 210 of the three-dimensional (3D) media content and the graphics buffer 214 with the inserted graphic may be transmitted as a bit stream as a result of the scaling and compositing by the compositor 218.Computer System Architecture
[0056] FIG. 7 illustrates a computer system 600 in which embodiments of the present disclosure, or portions thereof, may be implemented as computer-readable code. For example, the ESO 110, the home gateway 130, and the user devices 134, 136, 138, 140, and 142 of FIG. 2, may be implemented in the computer system 600 using hardware, software executed on hardware, firmware, non-transitory computer readable media having instructions stored thereon, or a combination thereof and may be implemented inone or more computer systems or other processing systems. Hardware, software, or any combination thereof may embody modules and components used to implement the processes and methods of FIGS. 5 and 6.
[0057] If programmable logic is used, such logic may execute on a commercially available processing platform configured by executable software code to become a specific purpose computer or a special purpose device (e.g., programmable logic array, application-specific integrated circuit, etc.). A person having ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device. For instance, at least one processor device and a memory may be used to implement the above-described embodiments.
[0058] A processor unit or device as discussed herein may be a single processor, a plurality of processors, or combinations thereof. Processor devices may have one or more processor “cores.” The terms “computer program medium,” “non-transitory computer readable medium,” and “computer usable medium” as discussed herein are used to generally refer to tangible media such as a removable storage unit 618, a removable storage unit 622, and a hard disk installed in hard disk drive 612.
[0059] Various embodiments of the present disclosure are described in terms of this example computer system 600. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the present disclosure using other computer systems and / or computer architectures. Although operations may be describedas a sequential process, some of the operations may in fact be performed in parallel, concurrently, and / or in a distributed environment, and with program code stored locally or remotely for access by single or multi-processor machines. In addition, in some embodiments the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.
[0060] Processor device 604 may be a special purpose or a general-purpose processor device specifically configured to perform the functions discussed herein. The processor device 604 may be connected to a communications infrastructure 606, such as a bus, message queue, network, multi-core message-passing scheme, etc. The network may be any network suitable for performing the functions as disclosed herein and may include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., WiFi), a mobile communication network, a satellite network, the Internet, fiber optic, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will be apparent to persons having skill in the relevant art. The computer system 600 may also include a main memory 608 (e.g., random access memory, read-only memory, etc.), and may also include a secondary memory 610. The secondary memory 610 may include the hard disk drive 612 and a removable storage drive 614, such as a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, etc.
[0061] The removable storage drive 614 may read from and / or write to the removable storage unit 618 in a well-known manner. The removable storage unit 618 may include a removable storage media that may be read by and written to by the removable storage drive 614. For example, if the removable storage drive 614 is a floppy disk drive oruniversal serial bus port, the removable storage unit 618 may be a floppy disk or portable flash drive, respectively. In one embodiment, the removable storage unit 618 may be non-transitory computer readable recording media.
[0062] In some embodiments, the secondary memory 610 may include alternative means for allowing computer programs or other instructions to be loaded into the computer system 600, for example, the removable storage unit 622 and an interface 620. Examples of such means may include a program cartridge and cartridge interface (e.g., as found in video game systems), a removable memory chip (e.g., EEPROM, PROM, etc.) and associated socket, and other removable storage units 622 and interfaces 620 as will be apparent to persons having skill in the relevant art.
[0063] Data stored in the computer system 600 (e.g., in the main memory 608 and / or the secondary memory 610) may be stored on any type of suitable computer readable media, such as optical storage (e.g., a compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (e.g., a hard disk drive). The data may be configured in any type of suitable database configuration, such as a relational database, a structured query language (SQL) database, a distributed database, an object database, etc. Suitable configurations and storage types will be apparent to persons having skill in the relevant art.
[0064] The computer system 600 may also include a communications interface 624. The communications interface 624 may be configured to allow software and data to be transferred between the computer system 600 and external devices. Exemplary communications interfaces 624 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and datatransferred via the communications interface 624 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals as will be apparent to persons having skill in the relevant art. The signals may travel via a communications path 626, which may be configured to carry the signals and may be implemented using wire, cable, fiber optics, a phone line, a cellular phone link, a radio frequency link, etc.
[0065] The computer system 600 may further include a display interface 602. The display interface 602 may be configured to allow data to be transferred between the computer system 600 and external display 630. Exemplary display interfaces 602 may include high- definition multimedia interface (HDMI), digital visual interface (DVI), video graphics array (VGA), etc. The display 630 may be any suitable type of display for displaying data transmitted via the display interface 602 of the computer system 600, including a cathode ray tube (CRT) display, liquid crystal display (LCD), light-emitting diode (LED) display, capacitive touch display, thin-film transistor (TFT) display, etc.
[0066] Computer program medium and computer usable medium may refer to memories, such as the main memory 608 and secondary memory 610, which may be memory semiconductors (e.g., DRAMs, etc.). These computer program products may be means for providing software to the computer system 600. Computer programs (e.g., computer control logic) may be stored in the main memory 608 and / or the secondary memory 610. Computer programs may also be received via the communications interface 624. Such computer programs, when executed, may enable computer system 600 to implement the present methods as discussed herein. In particular, the computer programs, when executed, may enable processor device 604 to implement the processes and methods illustrated by FIGS. 5 and 6, as discussed herein. Accordingly, such computer programsmay represent controllers of the computer system 600. Where the present disclosure is implemented using software, the software may be stored in a computer program product and loaded into the computer system 600 using the removable storage drive 614, interface 620, and hard disk drive 612, or communications interface 624.
[0067] The processor device 604 may comprise one or more modules or engines configured to perform the functions of the computer system 600. Each of the modules or engines may be implemented using hardware and, in some instances, may also utilize software, such as corresponding to program code and / or programs stored in the main memory 608 or secondary memory 610. In such instances, program code may be compiled by the processor device 604 (e.g., by a compiling module or engine) prior to execution by the hardware of the computer system 600. For example, the program code may be source code written in a programming language that is translated into a lower level language, such as assembly language or machine code, for execution by the processor device 604 and / or any additional hardware components of the computer system 600. The process of compiling may include the use of lexical analysis, preprocessing, parsing, semantic analysis, syntax-directed translation, code generation, code optimization, and any other techniques that may be suitable for translation of program code into a lower-level language suitable for controlling the computer system 600 to perform the functions disclosed herein. It will be apparent to persons having skill in the relevant art that such processes result in the computer system 600 being a specially configured computer system 600 uniquely programmed to perform the functions discussed above.
[0068] Techniques consistent with the present disclosure provide, among other features, systems and methods for generating graphics for three-dimensional media content. While various exemplary embodiments of the disclosed system and method have been described above it should be understood that they have been presented for purposes of example only, not limitations. It is not exhaustive and does not limit the disclosure to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the disclosure, without departing from the breadth or scope
Claims
WHAT IS CLAIMED IS:1 . A method for generating graphics for three-dimensional media content, the method comprising: receiving a piece of three-dimensional media content; decoding the piece of three-dimensional media content; generating a graphics buffer for three-dimensional media content, wherein the generating the graphics buffer for three-dimensional media content includes: determining a video resolution of the piece of three-dimensional media content, the video resolution having a length and a width defined by a number of pixels, determining a graphics buffer resolution, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution; generating a graphic; inserting the graphic into the graphics buffer for three-dimensional media content, wherein inserting the two-dimensional graphic into the graphics buffer for three- dimensional media content includes: dividing the graphics buffer for three-dimensional media content in half either vertically or horizontally, inserting the graphic into at least one half of the graphics buffer for three- dimensional media content;compositing the a video buffer of the three-dimensional media content and the graphics buffer for the three-dimensional media content with the inserted graphic; and transmitting the video buffer of the three-dimensional media content and the graphics buffer for three-dimensional media content with the inserted graphic to a display.
2. The method of claim 1 , wherein the resolution of the graphics buffer for three- dimensional media content is twice the length of the video resolution, the graphics buffer for three-dimensional media content is divided vertically into a left half and a right half, and the graphic is inserted into one of the right half or the left half of the graphics buffer for three-dimensional media content.3.The method of claim 1, wherein the resolution of the graphics buffer for three- dimensional media content is twice the length of the video resolution, the graphics buffer for three-dimensional media content is divided vertically into a left half and a right half, and the graphic is inserted in both the right half and the left half of the graphics buffer for three-dimensional media content.
4. The method of claim 1 , wherein the resolution of the graphics buffer for three- dimensional media content is twice the width of the video resolution, the graphics buffer for three-dimensional media content is divided horizontally into a top half and a bottomhalf, and the graphic is inserted in one of the top half or the bottom half of the graphics buffer for three-dimensional media content.
5. The method of claim 1 , wherein the resolution of the graphics buffer for three- dimensional media content is twice the width of the video resolution, the graphics buffer for three-dimensional media content is divided horizontally into a top half and a bottom half, and the graphic is inserted in both the top half and the bottom half of the graphics buffer for three-dimensional media content.
6. The method of claim 1 , wherein the compositing includes: scaling the graphics buffer for three-dimensional media content to fit a final video resolution of the three-dimensional media content, wherein the graphics buffer for three- dimensional media content is scaled horizontally if the graphics buffer for three- dimensional media content is twice the length of the video buffer or the graphics buffer for three-dimensional media content is scaled vertically if the graphics buffer for three- dimensional media content is twice the width of the video buffer.
7. The method of claim 1 , wherein the transmitting the video buffer and the graphics buffer for three-dimensional media content to a display includes transmitting vendor specific information (VSI) frames to the display.
8. The method of claim 1 , wherein the graphic is a user interface screen.
9. The method of claim 1 , wherein the graphic is a notification.
10. The method of claim 1, wherein three-dimensional media content is a three- dimensional video content.11 . A media device, the media device comprising: a receiving device, the receiver configured to: receive a piece of three-dimensional media content; a processor, the processor configured to: decode the piece of three-dimensional media content, generate a graphics buffer for three-dimensional media content, wherein the generating the graphics buffer for three-dimensional media content includes: determining a video resolution of the piece of three-dimensional media content, the video resolution having a length and a width defined by a number of pixels, determining a graphics buffer resolution, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution; instructions to generate a graphic; insert the graphic into the graphics buffer for three-dimensional media content, wherein inserting the graphic into the graphics buffer for three- dimensional media content includes:divide the graphics buffer for three-dimensional media content in half either vertically or horizontally, insert the graphic into at least one half of the graphics buffer for three- dimensional media content, composite the a video buffer of the three-dimensional media content and the graphics buffer for the three-dimensional media content with the inserted graphic; and a transmitting device, the transmitting device configured to: transmit the video buffer of the three-dimensional media content and the graphics buffer for three-dimensional media content with the inserted two graphic to a display.
12. The media device of claim 11 , wherein the resolution of the graphics buffer for three-dimensional media content is twice the length of the video resolution, the graphics buffer for three-dimensional media content is divided vertically into a left half and a right half, and the graphic is inserted into one of the right half or the left half of the graphics buffer for three-dimensional media content.
13. The media device of claim 11 , wherein the resolution of the graphics buffer for three-dimensional media content is twice the width of the video resolution, the graphics buffer for three-dimensional media content is divided horizontally into a top half and a42RECTIFIED SHEET (RULE 91) ISA / EPbottom half, and the graphic is inserted in one of the top half or the bottom half of the graphics buffer for three-dimensional media content.
14. The media device of claim 11 , wherein the resolution of the graphics buffer for three-dimensional media content is twice the width of the video resolution, the graphics buffer for three-dimensional media content is divided horizontally into a top half and a bottom half, and the graphic is inserted in both the top half and the bottom half of the graphics buffer for three-dimensional media content.
15. The media device of claim 11 , wherein the compositing includes: scaling the graphics buffer for three-dimensional media content to fit a final video resolution of the three-dimensional media content, wherein the graphics buffer for three- dimensional media content is scaled horizontally if the graphics buffer for three- dimensional media content is twice the length of the video buffer or the graphics buffer for three-dimensional media content is scaled vertically if the graphics buffer for three- dimensional media content is twice the width of the video buffer.
16. The media device of claim 11 , wherein the transmitting the video buffer and the graphics buffer for three-dimensional media content to a display includes transmitting vendor specific information (VSI) frames to the display.
17. The media device of claim 11 , wherein the graphic is a user interface screen.43RECTIFIED SHEET (RULE 91) ISA / EP18. The media device of claim 11 , wherein the graphic is a notification.
19. A computer program product for generating graphics for three-dimensional media content, the computer program product comprising: a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method, comprising: receiving a piece of three-dimensional media content; decoding the piece of three-dimensional media content; generating a graphics buffer for three-dimensional media content, wherein the generating the graphics buffer for three-dimensional media content includes: determining a video resolution of the piece of three-dimensional media content, the video resolution having a length and a width defined by a number of pixels, determining a graphics buffer resolution, the graphics buffer resolution having a length and a width defined by a number of pixels, wherein either one of the length or the width of the graphics buffer resolution is twice the respective length or width of the video resolution; generating a two-dimensional graphic; inserting the graphic into the graphics buffer for three-dimensional media content, wherein inserting the graphic into the graphics buffer for three- dimensional media content includes:RECTIFIED SHEET (RULE 91) ISA / EPdividing the graphics buffer for three-dimensional media content in half either vertically or horizontally, inserting the graphic into at least one half of the graphics buffer for three-dimensional media content, composite the a video buffer of the three-dimensional media content and the graphics buffer for the three-dimensional media content with the inserted graphic; and transmitting a video buffer of the three-dimensional media content and the graphics buffer for three-dimensional media content with the inserted graphic to a display.45RECTIFIED SHEET (RULE 91) ISA / EP
Citation Information
Patent Citations
Method for synthesizing video images and interface graphs by 3DTV receiving system
CN101984671A
Transmission of 3D image data
CN102292996A
Method and apparatus for processing 3D video image
WO2009157708A2