US20180295261A1 - Fault tolerant display - Google Patents

Fault tolerant display Download PDF

Info

Publication number
US20180295261A1
US20180295261A1 US16/008,595 US201816008595A US2018295261A1 US 20180295261 A1 US20180295261 A1 US 20180295261A1 US 201816008595 A US201816008595 A US 201816008595A US 2018295261 A1 US2018295261 A1 US 2018295261A1
Authority
US
United States
Prior art keywords
application processor
display
vehicle
streaming video
hardware module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US16/008,595
Other versions
US11012593B2 (en
Inventor
Richard D. Beckert
Phillip G. Hays
Steven P. Maillet
Andrew W. Lovitt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to US16/008,595 priority Critical patent/US11012593B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAILLET, STEVEN P., BECKERT, RICHARD D., LOVITT, ANDREW W., HAYS, Phillip G.
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Publication of US20180295261A1 publication Critical patent/US20180295261A1/en
Application granted granted Critical
Publication of US11012593B2 publication Critical patent/US11012593B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/21Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
    • H04N5/213Circuitry for suppressing or minimising impulsive noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources

Definitions

  • Vehicle collisions are a leading cause of injury and property damage worldwide.
  • One way to increase safety is to reduce the chances of operator error.
  • On-board electronics and in-vehicle information systems are becoming standard in the industry. These systems are able to collect a wide range of information.
  • a fault tolerant display can display information from a first source and/or a second source. Fault tolerance is provided by switching to display of backup information from the second source should the first source fail. Failure of the first source includes generation of incorrect information, unresponsiveness within a defined time period, incorrect display of information and failure to display information.
  • the first source can include information from the second source.
  • the information displayed can be safety information.
  • a display can provide safety information such as but not limited to streaming video from one or more cameras mounted on a vehicle. Image overlays designed to increase driver safety can be provided from either the first source or the second source.
  • the first source can provide information from an application processor. Fault tolerance can be provided by switching to backup information from a second source should programs providing information to the fault tolerant display fail.
  • the display can be a shared display area that is shared by the fault tolerant display and another display-generating source. Similarly, information from the second source can be displayed during program boot, when information from the first source is unavailable.
  • Information from the second source can be displayed independently of the current state of the application processor and/or programs executing on the application processor.
  • the application processor can comprise an infotainment system.
  • the module that detects failure of the first source can be a separate processor or a piece of hardware such as a field programmable gate array (FPGA). Because the fault tolerant module can detect failure of the first source and can switch to displaying backup information from the second source, the information can be displayed even if the first source fails.
  • FPGA field programmable gate array
  • the information displayed can be information that displays streaming video from one or more cameras mounted on a vehicle, the one or more cameras capturing at least a portion of a 360 degree field of view surrounding the vehicle. Images from the one or more cameras can be merged or fused to create the displayed streaming video.
  • the streaming video can be displayed within one second of a triggering activity.
  • the triggering activity can be gear change, vehicle movement, a change in position of the steering wheel, a turn signal turning on, a hazard indicator turning on, information received from another application (e.g., navigation or hazard application) or other actions.
  • External logic provided from a field programmable gate array (FPGA) or from special-purpose hardware or from another module or component can provide both dynamic and static hardware overlays of a potential path of the vehicle based on the steering wheel position and/or based on navigation information which can be gathered from “the cloud” or from one or more devices installed or brought into the vehicle.
  • Graphical and textual overlays to assist the operator can be provided.
  • Dynamic overlays from a software application that provides hazard or navigation information can be displayed. For example, based on a steering wheel position or based on navigation information, etc.
  • information including a suggested lane to turn into, information concerning whether a vehicle continuing on the indicated trajectory will encounter on-coming traffic, whether a vehicle continuing on the indicated trajectory will proceed in a direction in conformance with input to a navigational application, etc. can be provided on the display.
  • a policy enforcing module can verify that information provided by the application processor is available, is acceptable and/or is displayed in appropriate areas of the display. The ability to trigger system resets or other failure recovery methods can also be provided.
  • FIG. 1 illustrates an example of a system 100 that provides a fault tolerant display in accordance with aspects of the subject matter described herein;
  • FIG. 2 illustrates an example of a method 200 that provides a fault tolerant display in accordance with aspects of the subject matter disclosed herein;
  • FIG. 3 is a block diagram of an example of a computing environment in accordance with aspects of the subject matter disclosed herein.
  • a fault tolerant display can be a display that provides information from one or more cameras mounted on a vehicle to help an operator of the vehicle drive safely.
  • the one or more cameras can be cameras that are mounted on a vehicle so as to provide a view of the surroundings behind the vehicle.
  • the video stream captured by the one or more rear view cameras may or may not be processed (e.g., converted from analog to digital, etc.).
  • the video stream captured by one camera may be merged with one or more video streams captured by another camera or cameras.
  • the merged display may be displayed on the fault tolerant display.
  • One or more overlays generated by an application or by hardware can be superimposed on the video stream.
  • a vehicle can be shifted into gear (e.g., reverse gear) and/or can start to move in a given direction (e.g., backwards) at any time, including while the vehicle's computer system is booting up or is unresponsive for any reason, software on the main processor of the vehicle's computer system may not be as fast or reliable as wanted. Similarly, the main processor may malfunction while the fault tolerant display is being displayed.
  • a fault tolerant module such as an FPGA, a general processor having a fault tolerant operating system and application running on it, or a piece of special-purpose hardware can be interposed between the application processor's video output and the display.
  • the streaming video from the rear view camera can be merged with video output from the application processor to drive the display when the application processor is operating correctly.
  • the display can switch to output generated directly from the one or more cameras.
  • the output displayed directly from the camera can be merged with overlays provided by the fault tolerant module.
  • the module interposed between the application processor's video output and the display can be supplied with the vehicle's directional state. If, for example, if the vehicle is in reverse gear or moving backwards, the RVC output modified by static and dynamic overlays can be displayed on the display area (or a portion thereof) otherwise used by the application processor.
  • Overlays can include overlays generated by the application processor or overlays provided by the fault tolerant module. Overlays can be provided or modified by the processor, application or by information or services provided from “the cloud”. Overlays can include steering information for turning lines based on input from the steering mechanism of the vehicle.
  • the fault tolerant module can overlay all or part of the RVC display with the application processor's display.
  • the fault tolerant module can overlay all or part of the RVC display with overlays generated by or stored by the fault tolerant module.
  • the fault tolerant module can automatically switch the display output to show the RVC display camera along with any appropriate hardware or software overlays generated by or stored by the fault tolerant module within 1 second of the vehicle shifting into reverse gear.
  • the fault tolerant module can detect when the application processor is unresponsive. Failure of the application processor may be detected by a watchdog timer.
  • a watchdog timer also called a computer operating properly (COP) timer
  • COP computer operating properly
  • a service pulse can be periodically sent to the application processor. Failure to receive a response can result in some action intended to bring the application processor back to normal operation.
  • Other detection schemes can include receiving continuous data from the processor, detecting whether the application is generating overlay information outside its prescribed zones, etc.
  • the fault tolerant module can detect if the software based overlays fail quality checks. Failures in formatting can be detected by a policy enforcing module.
  • a policy enforcing module can include: parameters for frame rate, line rate, average brightness of the display, number of non-black pixels, number of non-transparent pixels, pixel color statistics, tracking of features in the software generated overlay with the camera input video, etc. Failure of output from the application processor to comply with the parameters can be detected by the policy enforcing module.
  • a check field can be a field inserted into the RVC streaming video sent to the application processor by the fault tolerant module.
  • the check field can be a field that is sent in addition to the RVC streaming video along with the streaming video.
  • the application processor can echo the check field in its display output as received.
  • the application processor can perform an operation on the check field and return the modified check field to the fault tolerant module.
  • the fault tolerant module can verify receipt of the check field and can verify that the check field is in its expected form to determine correct operation of the application processor. If the check field is not received by the fault tolerant module within a specified time frame the fault tolerant module can determine that the application processor is in a fault mode. If the check field is received but is not the expected value, the fault tolerant module can determine that the application processor is in a fault mode.
  • the check field if incorporated with the streaming video, can be removed before the streaming video is displayed.
  • the camera is capable of displaying 640 pixels by 480 pixels.
  • some black or white pixels (such as a frame count or a more complex sequence) can be added to the streaming video on the left or the right edge.
  • the application processor may not change these bits.
  • the application processor may add other black or white pixels in well-known locations, and change them at specified rates.
  • the fault tolerant module can sync to the expected patterns in the display output from the application processor, and then blank these pixels in the image sent to the display. If the expected patterns are not received for some number of frames, then the fault tolerant display can switch to direct camera display for areas that might otherwise display software based overlays.
  • the fault tolerant module can display the RVC camera image when the car is in reverse, even if the application processor fails or becomes non-responsive.
  • a negotiation such as a handshake between the fault tolerant module and the application processor can be established to ensure a smooth transition between the RVC display to the application processor driven display and vice versa.
  • a handshake as the term is used in computing, is an automated process of negotiation.
  • the handshake protocol can dynamically set parameters of a communications channel established between two entities before normal communication over the channel begins.
  • FIG. 1 illustrates a block diagram of an example of a system 100 that provides a fault tolerant display in accordance with aspects of the subject matter described herein. All or portions of system 100 may reside on one or more computers or computing devices such as the computers described below with respect to FIG. 3 .
  • System 100 or portions thereof may be provided as a stand-alone system or as a plug-in or add-in. System 100 or portions thereof may be incorporated within a vehicle.
  • System 100 or portions thereof include information from a service (e.g., in the cloud) or can include a separate board connected by wired or wireless connections.
  • a cloud computing environment can be an environment in which computing services are not owned but are provided on demand. For example, policy information may reside on multiple devices in a networked cloud and/or data can be stored on multiple devices within the cloud.
  • System 100 can include any combination of: one or more cameras such as camera 104 , etc., one or more fault tolerant modules such as fault tolerant module 106 , etc., one or more computing devices having an application processor such as application processor 102 a, etc. one or more display areas such as display area 108 , etc. and/or one or more gear sensor and/or direction sensors such as vehicle sensors 114 .
  • a computing device can include one or more application processors such as application processor 102 a, etc.
  • Application processor 102 a can be an in-vehicle infotainment system (IFI).
  • the computing device can include one or more processors, a memory and one or more modules of an infotainment system as described more fully below.
  • Application processor 102 a can execute software that receives input from one or more cameras such as camera 104 , etc.
  • Application processor 102 a can receive input from a format conversion module 106 a, described more fully below.
  • Application processor 102 a can generate graphical display information such as graphical display information 110 .
  • Application processor 102 a can generate graphical or descriptive overlays such as overlay information 112 .
  • System 100 can include one or more cameras such as camera 104 , etc.
  • Camera 104 , etc. can be an analog camera.
  • Camera 104 , etc. can be a digital camera.
  • Camera 104 , etc. can be a video camera that generates live streaming video.
  • Camera 104 , etc. can provide streaming video to module 106 .
  • Fault tolerant module 106 can be interposed between an application processor such as application processor 102 a , etc. described more fully above and a display 108 described more fully below.
  • Camera 104 , etc. can be a camera mounted on a vehicle that captures video of the surroundings of the vehicle.
  • the camera 104 , etc. can be a rear view camera that captures video of what is behind the vehicle. Images or streaming video from two or more cameras can be fused or merged to create a single video stream used in the fault tolerant display.
  • System 100 can include one or more fault tolerant modules (represented by fault tolerant module 106 ) interposed between one or more cameras, an application processor such as application processor 102 a, etc. and a display 108 .
  • Fault tolerant module 106 can be a piece of special-purpose hardware, a custom ASIC (application specific integrated circuit), video processing hardware, an FPGA (field programmable gateway array), or a separate processor running fault tolerant software.
  • a fault tolerant module such as fault tolerant module 106 can include any combination of: a video format conversion module such as video format conversion module 106 a, an information filter such as an information filter 106 b, a display merging module such as display merging module 106 c, overlays such as overlays 112 and a policy enforcing module such as policy enforcing module 106 d.
  • a video format conversion module such as video format conversion module 106 a can receive streaming video from camera 104 , etc. and convert the streaming video to a format that can be received by application processor 102 a.
  • the analog video can be converted to digital video.
  • other conversions are contemplated including but not limited to converting analog video data into digital video data that separates any color into digital values for the primary colors red, green and blue, conversion into other color format schemes, various forms of video compression, contrast enhancement, panning, zooming (optical or digital), scaling, frame rates, frame sizes, resolution, and so on.
  • the information filter such as an information filter 106 b can receive information from application processor 102 a.
  • Information filter 106 b can filter out information that would otherwise be displayed on display 108 to generate filtered information 106 f.
  • a display merging module such as display merging module 106 c can receive information from the format conversion module 106 a, filtered information 106 f, overlay information such as overlays 112 and input from policy enforcing module 106 d and can merge this information to generate output that is displayed on display 108 .
  • Fault tolerant module 106 can include overlays such as overlays 112 . Overlays can be overlays received from application processor 102 a and permanently stored in fault tolerant module 106 . Overlays can be hardware-generated overlays. Overlays can be software generated overlays generated by fault tolerant module 106 , etc. Overlays can be graphical or can be descriptive (e.g., text).
  • Fault tolerant module 106 can include a policy enforcing module such as policy enforcing module 106 d . Policy enforcing module 106 d can include a watchdog function that periodically sends a request for acknowledgment to application processor 102 a.
  • policy enforcer 106 d can determine that application processor 102 a is in a failure state. Policy enforcing module 106 d can also receive information about the status of the vehicle on which camera 104 , etc. is mounted. Status information can include information from vehicle sensors 114 . Status of the vehicle can include the gear that the vehicle is in (reverse gear, park or drive for automatic transmission vehicles or reverse gear, neutral, first, second, third, fourth, fifth gear, etc. for manual transmission vehicles). Status of the vehicle can include information from the steering mechanism of the car concerning the position of the steering wheel (straight, degree of turn to left or degree of turn to right).
  • System 100 can include a display such as display 108 .
  • Display 108 can display in a central console area of a vehicle.
  • Display 108 can be a fault tolerant display that can display information from two or more sources independently, so that if display information is generated by a first source and the first source fails, the information can be displayed from the second source, as described above.
  • Display 108 can be a shared display that is shared by an infotainment system (first source) and a fault tolerant module (second source) that generates information for display including but not limited to safety information (e.g., operator safety information such as what is behind a vehicle that is in reverse gear).
  • Display 108 can display streaming video from a camera (e.g., an RVC).
  • Overlays can be superimposed over the streaming video and the overlaid streaming video can be displayed.
  • Graphical and/or descriptive (e.g., textual) information can be superimposed on the streaming video.
  • the display can switch from displaying information from a first source to displaying information from a second source.
  • the display can switch from displaying merged information from a first source and a second source to displaying information only from a second source. Information from the second source can be displayed independently of the state of the first source.
  • Display 108 can display the streaming video within one second of the vehicle entering reverse gear.
  • FIG. 2 illustrates a method 200 that can provide a fault tolerant display in accordance with aspects of the subject matter described herein.
  • the method described in FIG. 2 can be practiced by a system such as but not limited to the one described with respect to FIG. 1 . While method 200 describes a series of operations that are performed in a sequence, it is to be understood that method 200 is not limited by the order of the sequence. For instance, some operations may occur in a different order than that described. In addition, one operation may occur concurrently with another operation. In some instances, not all operations described are performed.
  • the fault tolerant display can be triggered.
  • the display can be triggered by a host vehicle being placed into reverse gear.
  • information from a camera e.g., rear view camera
  • a fault tolerant module Upon receipt of information from the camera, communication can be established between a policy enforcing module and an application processor at operation 206 .
  • the policy enforcing module can monitor the application processor.
  • the policy enforcing module can monitor the application processor using, for example, a watchdog mechanism as described more fully above.
  • the policy enforcing module can monitor the output of the application processor to determine if the output of the application processor passes quality checks.
  • the policy enforcing module can monitor a check field to determine if the output of the application processor is correct. At operation 210 , the policy enforcing module can determine that the application processor is functioning properly or that the application processor has entered a failure state. At operation 212 , in response to detecting failure of the application processor, the policy enforcing module can display streaming video directly from the camera (e.g., bypassing the application processor). Overlays generated by or supplied by the fault tolerant module can be superimposed on the streaming video. If the policy enforcing module determines at operation 210 that the application processor is operating correctly, processing can continue at operation 208 .
  • the information received by the fault tolerant module at 204 can be converted at operation 214 .
  • the information can be sent to the application processor, to the merging module and to the policy enforcing module.
  • the application processor can generate display information, overlays, and can establish communication with the merging module.
  • the display information and the overlays can be sent to the fault tolerant module.
  • the fault tolerant module can filter extraneous information from the information received from the application processor.
  • the fault tolerant module can receive the filtered, overlaid display information, state information from the host vehicle and can merge this information to develop the information that is displayed at operation 226 .
  • FIG. 3 and the following discussion are intended to provide a brief general description of a suitable computing environment 510 in which various embodiments of the subject matter disclosed herein may be implemented. While the subject matter disclosed herein is described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other computing devices, those skilled in the art will recognize that portions of the subject matter disclosed herein can also be implemented in combination with other program modules and/or a combination of hardware and software. Generally, program modules include routines, programs, objects, physical artifacts, data structures, etc. that perform particular tasks or implement particular data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
  • the computing environment 510 is only one example of a suitable operating environment and is not intended to limit the scope of use or functionality of the subject matter disclosed herein.
  • Computer 512 may include at least one processing unit 514 , a system memory 516 , and a system bus 518 .
  • the at least one processing unit 514 can execute instructions that are stored in a memory such as but not limited to system memory 516 .
  • the processing unit 514 can be any of various available processors.
  • the processing unit 514 can be a graphics processing unit (GPU).
  • the instructions can be instructions for implementing functionality carried out by one or more components or modules discussed above or instructions for implementing one or more of the methods described above. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 514 .
  • the computer 512 may be used in a system that supports rendering graphics on a display screen. In another example, at least a portion of the computing device can be used in a system that comprises a graphical processing unit.
  • the system memory 516 may include volatile memory 520 and nonvolatile memory 522 .
  • Nonvolatile memory 522 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM) or flash memory.
  • Volatile memory 520 may include random access memory (RAM) which may act as external cache memory.
  • the system bus 518 couples system physical artifacts including the system memory 516 to the processing unit 514 .
  • the system bus 518 can be any of several types including a memory bus, memory controller, peripheral bus, external bus, or local bus and may use any variety of available bus architectures.
  • Computer 512 may include a data store accessible by the processing unit 514 by way of the system bus 518 .
  • the data store may include executable instructions, 3D models, materials, textures and so on for graphics rendering.
  • Computer 512 typically includes a variety of computer readable media such as volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may be implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer readable media include computer-readable storage media (also referred to as computer storage media) and communications media.
  • Computer storage media includes physical (tangible) media, such as but not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices that can store the desired data and which can be accessed by computer 512 .
  • Communications media include media such as, but not limited to, communications signals, modulated carrier waves or any other intangible media which can be used to communicate the desired information and which can be accessed by computer 512 .
  • FIG. 3 describes software that can act as an intermediary between users and computer resources.
  • This software may include an operating system 528 which can be stored on disk storage 524 , and which can allocate resources of the computer 512 .
  • Disk storage 524 may be a hard disk drive connected to the system bus 518 through a non-removable memory interface such as interface 526 .
  • System applications 530 take advantage of the management of resources by operating system 528 through program modules 532 and program data 534 stored either in system memory 516 or on disk storage 524 . It will be appreciated that computers can be implemented with various operating systems or combinations of operating systems.
  • a user can enter commands or information into the computer 512 through an input device(s) 536 .
  • Input devices 536 include but are not limited to a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, voice recognition and gesture recognition systems and the like. These and other input devices connect to the processing unit 514 through the system bus 518 via interface port(s) 538 .
  • An interface port(s) 538 may represent a serial port, parallel port, universal serial bus (USB) and the like.
  • Output devices(s) 540 may use the same type of ports as do the input devices.
  • Output adapter 542 is provided to illustrate that there are some output devices 540 like monitors, speakers and printers that require particular adapters.
  • Output adapters 542 include but are not limited to video and sound cards that provide a connection between the output device 540 and the system bus 518 .
  • Other devices and/or systems or devices such as remote computer(s) 544 may provide both input and output capabilities.
  • Computer 512 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer(s) 544 .
  • the remote computer 544 can be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 512 , although only a memory storage device 546 has been illustrated in FIG. 3 .
  • Remote computer(s) 544 can be logically connected via communication connection(s) 550 .
  • Network interface 548 encompasses communication networks such as local area networks (LANs) and wide area networks (WANs) but may also include other networks.
  • Communication connection(s) 550 refers to the hardware/software employed to connect the network interface 548 to the bus 518 .
  • Communication connection(s) 550 may be internal to or external to computer 512 and include internal and external technologies such as modems (telephone, cable, DSL and wireless) and ISDN adapters, Ethernet cards and so on.
  • a computer 512 or other client device can be deployed as part of a computer network.
  • the subject matter disclosed herein may pertain to any computer system having any number of memory or storage units, and any number of applications and processes occurring across any number of storage units or volumes.
  • aspects of the subject matter disclosed herein may apply to an environment with server computers and client computers deployed in a network environment, having remote or local storage.
  • aspects of the subject matter disclosed herein may also apply to a standalone computing device, having programming language functionality, interpretation and execution capabilities.
  • the various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination of both.
  • the methods and apparatus described herein, or certain aspects or portions thereof may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing aspects of the subject matter disclosed herein.
  • the term “machine-readable storage medium” shall be taken to exclude any mechanism that provides (i.e., stores and/or transmits) any form of propagated signals.
  • the computing device will generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device.
  • One or more programs that may utilize the creation and/or implementation of domain-specific programming models aspects, e.g., through the use of a data processing API or the like, may be implemented in a high level procedural or object oriented programming language to communicate with a computer system.
  • the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language, and combined with hardware implementations.

Abstract

A fault tolerant display displays safety information on a display shared with an infotainment system even if the processor or software of the infotainment system is unresponsive. The display can be a streaming video from a rear view camera mounted on a vehicle. The safety displayed can be triggered by placing the vehicle in reverse. Failure of the infotainment software and/or processor can be detected by a policy enforcing module that switches to a backup display that streams video directly from the camera in the event of failure of the infotainment processor.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application is a continuation of U.S. patent application Ser. No. 13/671,570, filed on Nov. 8, 2012, and entitled “FAULT TOLERANT DISPLAY”, the entirety of which is incorporated herein by reference.
  • BACKGROUND
  • Vehicle collisions are a leading cause of injury and property damage worldwide. One way to increase safety is to reduce the chances of operator error. On-board electronics and in-vehicle information systems are becoming standard in the industry. These systems are able to collect a wide range of information.
  • SUMMARY
  • A fault tolerant display can display information from a first source and/or a second source. Fault tolerance is provided by switching to display of backup information from the second source should the first source fail. Failure of the first source includes generation of incorrect information, unresponsiveness within a defined time period, incorrect display of information and failure to display information. The first source can include information from the second source. The information displayed can be safety information. For example, a display can provide safety information such as but not limited to streaming video from one or more cameras mounted on a vehicle. Image overlays designed to increase driver safety can be provided from either the first source or the second source. The first source can provide information from an application processor. Fault tolerance can be provided by switching to backup information from a second source should programs providing information to the fault tolerant display fail. The display can be a shared display area that is shared by the fault tolerant display and another display-generating source. Similarly, information from the second source can be displayed during program boot, when information from the first source is unavailable.
  • Information from the second source can be displayed independently of the current state of the application processor and/or programs executing on the application processor. The application processor can comprise an infotainment system. The module that detects failure of the first source can be a separate processor or a piece of hardware such as a field programmable gate array (FPGA). Because the fault tolerant module can detect failure of the first source and can switch to displaying backup information from the second source, the information can be displayed even if the first source fails.
  • The information displayed can be information that displays streaming video from one or more cameras mounted on a vehicle, the one or more cameras capturing at least a portion of a 360 degree field of view surrounding the vehicle. Images from the one or more cameras can be merged or fused to create the displayed streaming video. The streaming video can be displayed within one second of a triggering activity. The triggering activity can be gear change, vehicle movement, a change in position of the steering wheel, a turn signal turning on, a hazard indicator turning on, information received from another application (e.g., navigation or hazard application) or other actions. External logic provided from a field programmable gate array (FPGA) or from special-purpose hardware or from another module or component can provide both dynamic and static hardware overlays of a potential path of the vehicle based on the steering wheel position and/or based on navigation information which can be gathered from “the cloud” or from one or more devices installed or brought into the vehicle. Graphical and textual overlays to assist the operator can be provided. Dynamic overlays from a software application that provides hazard or navigation information can be displayed. For example, based on a steering wheel position or based on navigation information, etc. or a combination thereof, information including a suggested lane to turn into, information concerning whether a vehicle continuing on the indicated trajectory will encounter on-coming traffic, whether a vehicle continuing on the indicated trajectory will proceed in a direction in conformance with input to a navigational application, etc. can be provided on the display.
  • A policy enforcing module can verify that information provided by the application processor is available, is acceptable and/or is displayed in appropriate areas of the display. The ability to trigger system resets or other failure recovery methods can also be provided. This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • In the drawings:
  • FIG. 1 illustrates an example of a system 100 that provides a fault tolerant display in accordance with aspects of the subject matter described herein;
  • FIG. 2 illustrates an example of a method 200 that provides a fault tolerant display in accordance with aspects of the subject matter disclosed herein; and
  • FIG. 3 is a block diagram of an example of a computing environment in accordance with aspects of the subject matter disclosed herein.
  • DETAILED DESCRIPTION Overview
  • In accordance with aspects of the subject matter described herein, a fault tolerant display can be a display that provides information from one or more cameras mounted on a vehicle to help an operator of the vehicle drive safely. For example, the one or more cameras can be cameras that are mounted on a vehicle so as to provide a view of the surroundings behind the vehicle. The video stream captured by the one or more rear view cameras may or may not be processed (e.g., converted from analog to digital, etc.). The video stream captured by one camera may be merged with one or more video streams captured by another camera or cameras. The merged display may be displayed on the fault tolerant display. One or more overlays generated by an application or by hardware can be superimposed on the video stream. Because a vehicle can be shifted into gear (e.g., reverse gear) and/or can start to move in a given direction (e.g., backwards) at any time, including while the vehicle's computer system is booting up or is unresponsive for any reason, software on the main processor of the vehicle's computer system may not be as fast or reliable as wanted. Similarly, the main processor may malfunction while the fault tolerant display is being displayed. In accordance with aspects of the subject matter disclosed herein, a fault tolerant module such as an FPGA, a general processor having a fault tolerant operating system and application running on it, or a piece of special-purpose hardware can be interposed between the application processor's video output and the display. The streaming video from the rear view camera can be merged with video output from the application processor to drive the display when the application processor is operating correctly. When the application processor is unresponsive, the display can switch to output generated directly from the one or more cameras. The output displayed directly from the camera can be merged with overlays provided by the fault tolerant module.
  • The module interposed between the application processor's video output and the display can be supplied with the vehicle's directional state. If, for example, if the vehicle is in reverse gear or moving backwards, the RVC output modified by static and dynamic overlays can be displayed on the display area (or a portion thereof) otherwise used by the application processor. Overlays can include overlays generated by the application processor or overlays provided by the fault tolerant module. Overlays can be provided or modified by the processor, application or by information or services provided from “the cloud”. Overlays can include steering information for turning lines based on input from the steering mechanism of the vehicle. The fault tolerant module can overlay all or part of the RVC display with the application processor's display. The fault tolerant module can overlay all or part of the RVC display with overlays generated by or stored by the fault tolerant module. In response to detecting failure of the application processor, the fault tolerant module can automatically switch the display output to show the RVC display camera along with any appropriate hardware or software overlays generated by or stored by the fault tolerant module within 1 second of the vehicle shifting into reverse gear.
  • The fault tolerant module can detect when the application processor is unresponsive. Failure of the application processor may be detected by a watchdog timer. A watchdog timer (also called a computer operating properly (COP) timer) is a computer hardware or software timer that triggers a system reset or other corrective action if the application processor, due to some fault condition such as a hang, neglects to regularly service the watchdog. A service pulse can be periodically sent to the application processor. Failure to receive a response can result in some action intended to bring the application processor back to normal operation. Other detection schemes can include receiving continuous data from the processor, detecting whether the application is generating overlay information outside its prescribed zones, etc.
  • The fault tolerant module can detect if the software based overlays fail quality checks. Failures in formatting can be detected by a policy enforcing module. For example, an application processor display format check can include: parameters for frame rate, line rate, average brightness of the display, number of non-black pixels, number of non-transparent pixels, pixel color statistics, tracking of features in the software generated overlay with the camera input video, etc. Failure of output from the application processor to comply with the parameters can be detected by the policy enforcing module.
  • Failure of the application processor can be detected by a check field. A check field can be a field inserted into the RVC streaming video sent to the application processor by the fault tolerant module. The check field can be a field that is sent in addition to the RVC streaming video along with the streaming video. The application processor can echo the check field in its display output as received. The application processor can perform an operation on the check field and return the modified check field to the fault tolerant module. The fault tolerant module can verify receipt of the check field and can verify that the check field is in its expected form to determine correct operation of the application processor. If the check field is not received by the fault tolerant module within a specified time frame the fault tolerant module can determine that the application processor is in a fault mode. If the check field is received but is not the expected value, the fault tolerant module can determine that the application processor is in a fault mode. The check field, if incorporated with the streaming video, can be removed before the streaming video is displayed.
  • Suppose for example that the camera is capable of displaying 640 pixels by 480 pixels. Instead of scaling, some black or white pixels (such as a frame count or a more complex sequence) can be added to the streaming video on the left or the right edge. The application processor may not change these bits. The application processor may add other black or white pixels in well-known locations, and change them at specified rates. The fault tolerant module can sync to the expected patterns in the display output from the application processor, and then blank these pixels in the image sent to the display. If the expected patterns are not received for some number of frames, then the fault tolerant display can switch to direct camera display for areas that might otherwise display software based overlays.
  • If a failure is detected, some or all of the software based overlays can be disabled by the fault tolerant module. The operator of the vehicle may be notified of the failure of the application processor. The fault tolerant module can display the RVC camera image when the car is in reverse, even if the application processor fails or becomes non-responsive. A negotiation such as a handshake between the fault tolerant module and the application processor can be established to ensure a smooth transition between the RVC display to the application processor driven display and vice versa. A handshake, as the term is used in computing, is an automated process of negotiation. The handshake protocol can dynamically set parameters of a communications channel established between two entities before normal communication over the channel begins.
  • Fault Tolerant Display
  • FIG. 1 illustrates a block diagram of an example of a system 100 that provides a fault tolerant display in accordance with aspects of the subject matter described herein. All or portions of system 100 may reside on one or more computers or computing devices such as the computers described below with respect to FIG. 3. System 100 or portions thereof may be provided as a stand-alone system or as a plug-in or add-in. System 100 or portions thereof may be incorporated within a vehicle. System 100 or portions thereof include information from a service (e.g., in the cloud) or can include a separate board connected by wired or wireless connections. A cloud computing environment can be an environment in which computing services are not owned but are provided on demand. For example, policy information may reside on multiple devices in a networked cloud and/or data can be stored on multiple devices within the cloud.
  • System 100 can include any combination of: one or more cameras such as camera 104, etc., one or more fault tolerant modules such as fault tolerant module 106, etc., one or more computing devices having an application processor such as application processor 102 a, etc. one or more display areas such as display area 108, etc. and/or one or more gear sensor and/or direction sensors such as vehicle sensors 114.
  • A computing device (e.g., within a vehicle) can include one or more application processors such as application processor 102 a, etc. Application processor 102 a can be an in-vehicle infotainment system (IFI). The computing device can include one or more processors, a memory and one or more modules of an infotainment system as described more fully below. Application processor 102 a can execute software that receives input from one or more cameras such as camera 104, etc. Application processor 102 a can receive input from a format conversion module 106 a, described more fully below. Application processor 102 a can generate graphical display information such as graphical display information 110. Application processor 102 a can generate graphical or descriptive overlays such as overlay information 112.
  • System 100 can include one or more cameras such as camera 104, etc. Camera 104, etc. can be an analog camera. Camera 104, etc. can be a digital camera. Camera 104, etc. can be a video camera that generates live streaming video. Camera 104, etc. can provide streaming video to module 106. Fault tolerant module 106 can be interposed between an application processor such as application processor 102 a, etc. described more fully above and a display 108 described more fully below. Camera 104, etc. can be a camera mounted on a vehicle that captures video of the surroundings of the vehicle. The camera 104, etc. can be a rear view camera that captures video of what is behind the vehicle. Images or streaming video from two or more cameras can be fused or merged to create a single video stream used in the fault tolerant display.
  • System 100 can include one or more fault tolerant modules (represented by fault tolerant module 106) interposed between one or more cameras, an application processor such as application processor 102 a, etc. and a display 108. Fault tolerant module 106 can be a piece of special-purpose hardware, a custom ASIC (application specific integrated circuit), video processing hardware, an FPGA (field programmable gateway array), or a separate processor running fault tolerant software. A fault tolerant module such as fault tolerant module 106 can include any combination of: a video format conversion module such as video format conversion module 106 a, an information filter such as an information filter 106 b, a display merging module such as display merging module 106 c, overlays such as overlays 112 and a policy enforcing module such as policy enforcing module 106 d.
  • A video format conversion module such as video format conversion module 106 a can receive streaming video from camera 104, etc. and convert the streaming video to a format that can be received by application processor 102 a. For example, if camera 104 is an analog camera, the analog video can be converted to digital video. It will be understood that other conversions are contemplated including but not limited to converting analog video data into digital video data that separates any color into digital values for the primary colors red, green and blue, conversion into other color format schemes, various forms of video compression, contrast enhancement, panning, zooming (optical or digital), scaling, frame rates, frame sizes, resolution, and so on. The information filter such as an information filter 106 b can receive information from application processor 102 a. Information filter 106 b can filter out information that would otherwise be displayed on display 108 to generate filtered information 106 f. A display merging module such as display merging module 106 c can receive information from the format conversion module 106 a, filtered information 106 f, overlay information such as overlays 112 and input from policy enforcing module 106 d and can merge this information to generate output that is displayed on display 108.
  • Fault tolerant module 106 can include overlays such as overlays 112. Overlays can be overlays received from application processor 102 a and permanently stored in fault tolerant module 106. Overlays can be hardware-generated overlays. Overlays can be software generated overlays generated by fault tolerant module 106, etc. Overlays can be graphical or can be descriptive (e.g., text). Fault tolerant module 106 can include a policy enforcing module such as policy enforcing module 106 d. Policy enforcing module 106 d can include a watchdog function that periodically sends a request for acknowledgment to application processor 102 a. In the event that application processor 102 a does not send an acknowledgment within a specified time period, policy enforcer 106 d can determine that application processor 102 a is in a failure state. Policy enforcing module 106 d can also receive information about the status of the vehicle on which camera 104, etc. is mounted. Status information can include information from vehicle sensors 114. Status of the vehicle can include the gear that the vehicle is in (reverse gear, park or drive for automatic transmission vehicles or reverse gear, neutral, first, second, third, fourth, fifth gear, etc. for manual transmission vehicles). Status of the vehicle can include information from the steering mechanism of the car concerning the position of the steering wheel (straight, degree of turn to left or degree of turn to right).
  • System 100 can include a display such as display 108. Display 108 can display in a central console area of a vehicle. Display 108 can be a fault tolerant display that can display information from two or more sources independently, so that if display information is generated by a first source and the first source fails, the information can be displayed from the second source, as described above. Display 108 can be a shared display that is shared by an infotainment system (first source) and a fault tolerant module (second source) that generates information for display including but not limited to safety information (e.g., operator safety information such as what is behind a vehicle that is in reverse gear). Display 108 can display streaming video from a camera (e.g., an RVC). Overlays can be superimposed over the streaming video and the overlaid streaming video can be displayed. Graphical and/or descriptive (e.g., textual) information can be superimposed on the streaming video. In response to a signal from the fault tolerant module, the display can switch from displaying information from a first source to displaying information from a second source. In response to a signal from the fault tolerant module, the display can switch from displaying merged information from a first source and a second source to displaying information only from a second source. Information from the second source can be displayed independently of the state of the first source. Display 108 can display the streaming video within one second of the vehicle entering reverse gear.
  • FIG. 2 illustrates a method 200 that can provide a fault tolerant display in accordance with aspects of the subject matter described herein. The method described in FIG. 2 can be practiced by a system such as but not limited to the one described with respect to FIG. 1. While method 200 describes a series of operations that are performed in a sequence, it is to be understood that method 200 is not limited by the order of the sequence. For instance, some operations may occur in a different order than that described. In addition, one operation may occur concurrently with another operation. In some instances, not all operations described are performed.
  • At operation 202 the fault tolerant display can be triggered. For example, the display can be triggered by a host vehicle being placed into reverse gear. At operation 204 information from a camera (e.g., rear view camera) can be received by a fault tolerant module. Upon receipt of information from the camera, communication can be established between a policy enforcing module and an application processor at operation 206. At operation 208, as described more fully above, the policy enforcing module can monitor the application processor. The policy enforcing module can monitor the application processor using, for example, a watchdog mechanism as described more fully above. The policy enforcing module can monitor the output of the application processor to determine if the output of the application processor passes quality checks. The policy enforcing module can monitor a check field to determine if the output of the application processor is correct. At operation 210, the policy enforcing module can determine that the application processor is functioning properly or that the application processor has entered a failure state. At operation 212, in response to detecting failure of the application processor, the policy enforcing module can display streaming video directly from the camera (e.g., bypassing the application processor). Overlays generated by or supplied by the fault tolerant module can be superimposed on the streaming video. If the policy enforcing module determines at operation 210 that the application processor is operating correctly, processing can continue at operation 208.
  • If necessary, the information received by the fault tolerant module at 204 can be converted at operation 214. At operation 216, the information can be sent to the application processor, to the merging module and to the policy enforcing module. At operation 218 the application processor can generate display information, overlays, and can establish communication with the merging module. At operation 220, the display information and the overlays can be sent to the fault tolerant module. At operation 222 the fault tolerant module can filter extraneous information from the information received from the application processor. At operation 224 the fault tolerant module can receive the filtered, overlaid display information, state information from the host vehicle and can merge this information to develop the information that is displayed at operation 226.
  • Example of a Suitable Computing Environment
  • In order to provide context for various aspects of the subject matter disclosed herein, FIG. 3 and the following discussion are intended to provide a brief general description of a suitable computing environment 510 in which various embodiments of the subject matter disclosed herein may be implemented. While the subject matter disclosed herein is described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other computing devices, those skilled in the art will recognize that portions of the subject matter disclosed herein can also be implemented in combination with other program modules and/or a combination of hardware and software. Generally, program modules include routines, programs, objects, physical artifacts, data structures, etc. that perform particular tasks or implement particular data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. The computing environment 510 is only one example of a suitable operating environment and is not intended to limit the scope of use or functionality of the subject matter disclosed herein.
  • With reference to FIG. 3, a computing device in the form of a computer 512 is described. Computer 512 may include at least one processing unit 514, a system memory 516, and a system bus 518. The at least one processing unit 514 can execute instructions that are stored in a memory such as but not limited to system memory 516. The processing unit 514 can be any of various available processors. For example, the processing unit 514 can be a graphics processing unit (GPU). The instructions can be instructions for implementing functionality carried out by one or more components or modules discussed above or instructions for implementing one or more of the methods described above. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit 514. The computer 512 may be used in a system that supports rendering graphics on a display screen. In another example, at least a portion of the computing device can be used in a system that comprises a graphical processing unit. The system memory 516 may include volatile memory 520 and nonvolatile memory 522. Nonvolatile memory 522 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM) or flash memory. Volatile memory 520 may include random access memory (RAM) which may act as external cache memory. The system bus 518 couples system physical artifacts including the system memory 516 to the processing unit 514. The system bus 518 can be any of several types including a memory bus, memory controller, peripheral bus, external bus, or local bus and may use any variety of available bus architectures. Computer 512 may include a data store accessible by the processing unit 514 by way of the system bus 518. The data store may include executable instructions, 3D models, materials, textures and so on for graphics rendering.
  • Computer 512 typically includes a variety of computer readable media such as volatile and nonvolatile media, removable and non-removable media. Computer readable media may be implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer readable media include computer-readable storage media (also referred to as computer storage media) and communications media. Computer storage media includes physical (tangible) media, such as but not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices that can store the desired data and which can be accessed by computer 512. Communications media include media such as, but not limited to, communications signals, modulated carrier waves or any other intangible media which can be used to communicate the desired information and which can be accessed by computer 512.
  • It will be appreciated that FIG. 3 describes software that can act as an intermediary between users and computer resources. This software may include an operating system 528 which can be stored on disk storage 524, and which can allocate resources of the computer 512. Disk storage 524 may be a hard disk drive connected to the system bus 518 through a non-removable memory interface such as interface 526. System applications 530 take advantage of the management of resources by operating system 528 through program modules 532 and program data 534 stored either in system memory 516 or on disk storage 524. It will be appreciated that computers can be implemented with various operating systems or combinations of operating systems.
  • A user can enter commands or information into the computer 512 through an input device(s) 536. Input devices 536 include but are not limited to a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, voice recognition and gesture recognition systems and the like. These and other input devices connect to the processing unit 514 through the system bus 518 via interface port(s) 538. An interface port(s) 538 may represent a serial port, parallel port, universal serial bus (USB) and the like. Output devices(s) 540 may use the same type of ports as do the input devices. Output adapter 542 is provided to illustrate that there are some output devices 540 like monitors, speakers and printers that require particular adapters. Output adapters 542 include but are not limited to video and sound cards that provide a connection between the output device 540 and the system bus 518. Other devices and/or systems or devices such as remote computer(s) 544 may provide both input and output capabilities.
  • Computer 512 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer(s) 544. The remote computer 544 can be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 512, although only a memory storage device 546 has been illustrated in FIG. 3. Remote computer(s) 544 can be logically connected via communication connection(s) 550. Network interface 548 encompasses communication networks such as local area networks (LANs) and wide area networks (WANs) but may also include other networks. Communication connection(s) 550 refers to the hardware/software employed to connect the network interface 548 to the bus 518. Communication connection(s) 550 may be internal to or external to computer 512 and include internal and external technologies such as modems (telephone, cable, DSL and wireless) and ISDN adapters, Ethernet cards and so on.
  • It will be appreciated that the network connections shown are examples only and other means of establishing a communications link between the computers may be used. One of ordinary skill in the art can appreciate that a computer 512 or other client device can be deployed as part of a computer network. In this regard, the subject matter disclosed herein may pertain to any computer system having any number of memory or storage units, and any number of applications and processes occurring across any number of storage units or volumes. Aspects of the subject matter disclosed herein may apply to an environment with server computers and client computers deployed in a network environment, having remote or local storage. Aspects of the subject matter disclosed herein may also apply to a standalone computing device, having programming language functionality, interpretation and execution capabilities.
  • The various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus described herein, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing aspects of the subject matter disclosed herein. As used herein, the term “machine-readable storage medium” shall be taken to exclude any mechanism that provides (i.e., stores and/or transmits) any form of propagated signals. In the case of program code execution on programmable computers, the computing device will generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs that may utilize the creation and/or implementation of domain-specific programming models aspects, e.g., through the use of a data processing API or the like, may be implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language, and combined with hardware implementations.
  • Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (20)

What is claimed is:
1. A fault tolerant display system for a vehicle, the system comprising:
a video camera;
an application processor;
a display in a cabin of the vehicle; and
a hardware module interposed between the video camera, the application processor, and the display;
the hardware module configured to:
receive streaming video from the video camera;
merge the streaming video with overlays from the application processor to create an overlaid streaming video;
display the overlaid streaming video on the display in the cabin of the vehicle;
detect failure of the application processor; and
in response to detecting failure of the application processor, switch to display on the display in the cabin of the vehicle the streaming video from the video camera and at least one overlay generated by the hardware module, the streaming video from the video camera and the at least one overlay generated by the hardware module displayed essentially simultaneously on the display.
2. The system of claim 1, wherein failure of the application processor is detected by incorrect formatting of the display information generated by the application processor.
3. The system of claim 2, wherein the incorrect formatting comprises at least one of: incorrect frame rate, incorrect line rate, average brightness of the display lower than a provided threshold for average brightness of the display, a quantity of non-black pixels lower than a provided threshold for non-black pixels, or placement of features generated by the application processor failing to correspond to objects in the streaming video.
4. The system of claim 1, wherein failure of the application processor is detected by a watchdog timer.
5. The system of claim 1, wherein the overlaid streaming video is displayed within one second of the vehicle shifting into reverse.
6. The system of claim 1, wherein the at least one overlay generated by the hardware module comprises a dynamic overlay of a backup path based on a steering wheel position of the vehicle.
7. The system of claim 1, wherein the at least one overlay generated by the hardware module comprises a dynamic overlay based on hazard detection information.
8. The system of claim 1, wherein the at least one overlay generated by the hardware module comprises a dynamic overlay based on navigation information.
9. The system of claim 1, wherein failure of the application processor is detected when the application processor is detected to be unresponsive.
10. The system of claim 1, wherein failure of the application processor is detected when graphical information received from the application processor fails a quality check.
11. The system of claim 1, wherein the hardware module is further configured to:
insert a check field into the streaming video sent to the application processor; and
verify a modified check field received from the application processor, the modified check field being returned by the application processor responsive to the check field;
wherein failure of the application processor is detected when the modified check field fails verification.
12. The system of claim 1, wherein the hardware module is one of an application specific integrated circuit (ASIC), a field programmable gateway array (FPGA), or a processor separate from the application processor that executes a fault tolerant operating system and application.
13. The system of claim 1, wherein the application processor is an in-vehicle infotainment system.
14. The system of claim 1, wherein the hardware module is further configured to:
receive status information of the vehicle from a vehicle sensor, the status information specifying a gear in which the vehicle is operating; and
display the streaming video from the video camera on the display in response to the vehicle being shifted into reverse gear when failure of the application processor is detected.
15. A method, comprising:
receiving streaming video from a video camera of a vehicle;
merging the streaming video with overlays from an application processor to create an overlaid streaming video by a hardware module;
displaying the overlaid streaming video on a display in a cabin of the vehicle, the hardware module interposed between the video camera, the application processor, and the display;
monitoring the application processor to detect failure of the application processor; and
in response to detecting failure of the application processor, switching to displaying on the display in the cabin of the vehicle, the streaming video from the video camera and at least one overlay generated by the hardware module, the streaming video from the video camera and the at least one overlay generated by the hardware module displayed essentially simultaneously.
16. The method of claim 15, wherein the application processor is an in-vehicle infotainment system.
17. The method of claim 15, wherein the hardware module is one of an application specific integrated circuit (ASIC), a field programmable gateway array (FPGA), or a processor separate from the application processor that executes a fault tolerant operating system and application.
18. A computer-readable storage medium comprising computer-executable instructions which when executed cause at least one processor of a computing device, when operably connected to a video camera, an application processor, and a display, to:
receive streaming video from a video camera of a vehicle;
merge the streaming video with overlays from an application processor to create an overlaid streaming video by a hardware module;
display the overlaid streaming video on a display in a cabin of the vehicle, the hardware module interposed between the video camera, the application processor, and the display;
monitor the application processor to detect failure of the application processor; and
in response to detecting failure of the application processor, switch to displaying on the display in the cabin of the vehicle, the streaming video from the video camera and at least one overlay generated by the hardware module, the streaming video from the video camera and the at least one overlay generated by the hardware module displayed essentially simultaneously.
19. The computer-readable storage medium of claim 18, wherein the application processor is an in-vehicle infotainment system.
20. The computer-readable storage medium of claim 18, wherein the hardware module is one of an application specific integrated circuit (ASIC), a field programmable gateway array (FPGA), or a processor separate from the application processor that executes a fault tolerant operating system and application.
US16/008,595 2012-11-08 2018-06-14 Fault tolerant display Active 2033-04-08 US11012593B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/008,595 US11012593B2 (en) 2012-11-08 2018-06-14 Fault tolerant display

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/671,570 US20140125802A1 (en) 2012-11-08 2012-11-08 Fault tolerant display
US16/008,595 US11012593B2 (en) 2012-11-08 2018-06-14 Fault tolerant display

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/671,570 Continuation US20140125802A1 (en) 2012-11-08 2012-11-08 Fault tolerant display

Publications (2)

Publication Number Publication Date
US20180295261A1 true US20180295261A1 (en) 2018-10-11
US11012593B2 US11012593B2 (en) 2021-05-18

Family

ID=49640207

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/671,570 Abandoned US20140125802A1 (en) 2012-11-08 2012-11-08 Fault tolerant display
US16/008,595 Active 2033-04-08 US11012593B2 (en) 2012-11-08 2018-06-14 Fault tolerant display

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/671,570 Abandoned US20140125802A1 (en) 2012-11-08 2012-11-08 Fault tolerant display

Country Status (5)

Country Link
US (2) US20140125802A1 (en)
EP (1) EP2917073B1 (en)
CN (1) CN105026212B (en)
ES (1) ES2698949T3 (en)
WO (1) WO2014074911A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474917B2 (en) * 2018-04-27 2022-10-18 Hewlett-Packard Development Company, L.P. Failure shield
US11585550B2 (en) * 2017-06-21 2023-02-21 Gree Electric Appliances (Wuhan) Co., Ltd Control method and control device for air conditioner

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043073B2 (en) 2011-11-16 2015-05-26 Flextronics Ap, Llc On board vehicle diagnostic module
US9081653B2 (en) 2011-11-16 2015-07-14 Flextronics Ap, Llc Duplicated processing in vehicles
WO2013074866A1 (en) 2011-11-16 2013-05-23 Flextronics Ap, Llc Feature recognition for configuring a vehicle console and associated devices
US9116786B2 (en) 2011-11-16 2015-08-25 Flextronics Ap, Llc On board vehicle networking module
US9173100B2 (en) 2011-11-16 2015-10-27 Autoconnect Holdings Llc On board vehicle network security
US9055022B2 (en) 2011-11-16 2015-06-09 Flextronics Ap, Llc On board vehicle networking module
US9008906B2 (en) 2011-11-16 2015-04-14 Flextronics Ap, Llc Occupant sharing of displayed content in vehicles
US8949823B2 (en) 2011-11-16 2015-02-03 Flextronics Ap, Llc On board vehicle installation supervisor
US9088572B2 (en) 2011-11-16 2015-07-21 Flextronics Ap, Llc On board vehicle media controller
US20140125802A1 (en) 2012-11-08 2014-05-08 Microsoft Corporation Fault tolerant display
US9448548B2 (en) * 2013-06-14 2016-09-20 Honeywell International Inc. Synchronizing and displaying fault tolerant Ethernet (FTE) status
JP6349637B2 (en) * 2013-07-11 2018-07-04 株式会社デンソー Image synthesizer for vehicles
US10000154B2 (en) 2014-08-07 2018-06-19 Ford Global Technologies, Llc Vehicle camera system having live video indication
US10656465B2 (en) 2015-05-29 2020-05-19 Harman International Industries, Incorporated Wide color-gamut vehicle infotainment display system with quantum dot element
WO2016196387A1 (en) * 2015-05-29 2016-12-08 Harman International Industries, Incorporated Wide color-gamut vehicle infotainment display system
US11112653B2 (en) 2015-05-29 2021-09-07 Harman International Industries, Incorporated Wide color-gamut vehicle infotainment display system with quantum dot element
KR101673776B1 (en) * 2015-06-05 2016-11-07 현대자동차주식회사 Method for diagnosing failing of head unit and camera unit
US10692126B2 (en) 2015-11-17 2020-06-23 Nio Usa, Inc. Network-based system for selling and servicing cars
US10057545B2 (en) 2016-05-19 2018-08-21 GM Global Technology Operations LLC Redundant video path for vehicle rear view camera system
US20180012197A1 (en) 2016-07-07 2018-01-11 NextEv USA, Inc. Battery exchange licensing program based on state of charge of battery pack
US9928734B2 (en) 2016-08-02 2018-03-27 Nio Usa, Inc. Vehicle-to-pedestrian communication systems
US10031523B2 (en) 2016-11-07 2018-07-24 Nio Usa, Inc. Method and system for behavioral sharing in autonomous vehicles
US10410064B2 (en) 2016-11-11 2019-09-10 Nio Usa, Inc. System for tracking and identifying vehicles and pedestrians
US10708547B2 (en) 2016-11-11 2020-07-07 Nio Usa, Inc. Using vehicle sensor data to monitor environmental and geologic conditions
US10694357B2 (en) 2016-11-11 2020-06-23 Nio Usa, Inc. Using vehicle sensor data to monitor pedestrian health
US10515390B2 (en) 2016-11-21 2019-12-24 Nio Usa, Inc. Method and system for data optimization
US10249104B2 (en) 2016-12-06 2019-04-02 Nio Usa, Inc. Lease observation and event recording
CN106713648B (en) * 2016-12-30 2019-07-26 Oppo广东移动通信有限公司 A kind of communication means and mobile terminal
US10074223B2 (en) 2017-01-13 2018-09-11 Nio Usa, Inc. Secured vehicle for user use only
US9984572B1 (en) 2017-01-16 2018-05-29 Nio Usa, Inc. Method and system for sharing parking space availability among autonomous vehicles
US10471829B2 (en) 2017-01-16 2019-11-12 Nio Usa, Inc. Self-destruct zone and autonomous vehicle navigation
US10031521B1 (en) 2017-01-16 2018-07-24 Nio Usa, Inc. Method and system for using weather information in operation of autonomous vehicles
US10464530B2 (en) 2017-01-17 2019-11-05 Nio Usa, Inc. Voice biometric pre-purchase enrollment for autonomous vehicles
US10286915B2 (en) 2017-01-17 2019-05-14 Nio Usa, Inc. Machine learning for personalized driving
EP3355188B1 (en) * 2017-01-31 2021-08-25 OpenSynergy GmbH Instrument display on a car dashboard by checking frames of a gui by a realtime os
US10897469B2 (en) 2017-02-02 2021-01-19 Nio Usa, Inc. System and method for firewalls between vehicle networks
KR20180095986A (en) * 2017-02-20 2018-08-29 두산인프라코어 주식회사 Displaying system and displaying method for construction machine
US10023121B1 (en) * 2017-05-17 2018-07-17 GM Global Technology Operations LLC Rear vision camera switching
US10234302B2 (en) 2017-06-27 2019-03-19 Nio Usa, Inc. Adaptive route and motion planning based on learned external and internal vehicle environment
US10710633B2 (en) 2017-07-14 2020-07-14 Nio Usa, Inc. Control of complex parking maneuvers and autonomous fuel replenishment of driverless vehicles
US10369974B2 (en) 2017-07-14 2019-08-06 Nio Usa, Inc. Control and coordination of driverless fuel replenishment for autonomous vehicles
US10837790B2 (en) 2017-08-01 2020-11-17 Nio Usa, Inc. Productive and accident-free driving modes for a vehicle
US10635109B2 (en) 2017-10-17 2020-04-28 Nio Usa, Inc. Vehicle path-planner monitor and controller
US10935978B2 (en) 2017-10-30 2021-03-02 Nio Usa, Inc. Vehicle self-localization using particle filters and visual odometry
US10606274B2 (en) 2017-10-30 2020-03-31 Nio Usa, Inc. Visual place recognition based self-localization for autonomous vehicles
US10717412B2 (en) 2017-11-13 2020-07-21 Nio Usa, Inc. System and method for controlling a vehicle using secondary access methods
US10369966B1 (en) 2018-05-23 2019-08-06 Nio Usa, Inc. Controlling access to a vehicle using wireless access devices
US10710536B1 (en) 2019-03-25 2020-07-14 Himax Technologies Limited Function safety system for vehicle malfunction display
US11939010B2 (en) 2019-05-10 2024-03-26 Steering Solutions Ip Holding Corporation Fault tolerant control of rear steer vehicles
CN110798659A (en) * 2019-07-31 2020-02-14 中国第一汽车股份有限公司 Vehicle monitoring method and system
CN112104819B (en) * 2020-09-04 2022-11-29 大连捷成科技有限公司 Multi-channel video synchronous switching system and method based on FPGA

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060125919A1 (en) * 2004-09-30 2006-06-15 Joseph Camilleri Vision system for vehicle
US20060164230A1 (en) * 2000-03-02 2006-07-27 Dewind Darryl P Interior mirror assembly with display
US20100312630A1 (en) * 2009-06-08 2010-12-09 Tammy Krutchik Method and system for transmitting and redeeming electronic coupons through use of mobile device
US20120154591A1 (en) * 2009-09-01 2012-06-21 Magna Mirrors Of America, Inc. Imaging and display system for vehicle
US20120218412A1 (en) * 2009-06-12 2012-08-30 Magna Electronics Inc. Scalable integrated electronic control unit for vehicle
US20140139670A1 (en) * 2012-11-16 2014-05-22 Vijay Sarathi Kesavan Augmenting adas features of a vehicle with image processing support in on-board vehicle platform
US20140168428A1 (en) * 2012-12-19 2014-06-19 Qnx Software Systems Limited Integrated system for media playback during startup
US20140368653A1 (en) * 2011-12-06 2014-12-18 Qi Wang Method and system for improving responsiveness in a vehicle computing platform

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530202A (en) * 2001-03-05 2004-09-30 シーメンス アクチエンゲゼルシヤフト Method and apparatus for removing image distortion for occupant protection systems, for example
WO2003100614A2 (en) * 2002-05-24 2003-12-04 Medius, Inc. Vehicle monitoring system
US6822624B2 (en) * 2002-09-10 2004-11-23 Universal Avionics Systems Corporation Display generation system
US20040061780A1 (en) * 2002-09-13 2004-04-01 Huffman David A. Solid-state video surveillance system
US20050093975A1 (en) * 2003-10-30 2005-05-05 Hamdan Majed M. Adaptation of vision systems for commerical vehicles
US7456847B2 (en) * 2004-08-12 2008-11-25 Russell Steven Krajec Video with map overlay
US7724259B2 (en) * 2005-08-24 2010-05-25 Innovative Solutions And Support, Inc. Aircraft flat panel display system with improved information availability
JP4934308B2 (en) * 2005-10-17 2012-05-16 三洋電機株式会社 Driving support system
KR100775123B1 (en) 2006-09-15 2007-11-08 삼성전자주식회사 Method of indexing image object and image object indexing system using the same
US8922585B2 (en) * 2006-10-24 2014-12-30 Hewlett-Packard Development Company, L.P. Display controller
US8451107B2 (en) * 2007-09-11 2013-05-28 Magna Electronics, Inc. Imaging system for vehicle
CN101442618A (en) * 2008-12-31 2009-05-27 葛晨阳 Method for synthesizing 360 DEG ring-shaped video of vehicle assistant drive
US8138899B2 (en) * 2009-07-01 2012-03-20 Ford Global Technologies, Llc Rear camera backup assistance with touchscreen display using two points of interest
US9205780B2 (en) * 2010-02-04 2015-12-08 Magna Mirrors Of America, Inc. Electro-optic rearview mirror assembly for vehicle
US9117123B2 (en) * 2010-07-05 2015-08-25 Magna Electronics Inc. Vehicular rear view camera display system with lifecheck function
US9264672B2 (en) * 2010-12-22 2016-02-16 Magna Mirrors Of America, Inc. Vision display system for vehicle
US9542846B2 (en) 2011-02-28 2017-01-10 GM Global Technology Operations LLC Redundant lane sensing systems for fault-tolerant vehicular lateral controller
US20140125802A1 (en) 2012-11-08 2014-05-08 Microsoft Corporation Fault tolerant display

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060164230A1 (en) * 2000-03-02 2006-07-27 Dewind Darryl P Interior mirror assembly with display
US20060125919A1 (en) * 2004-09-30 2006-06-15 Joseph Camilleri Vision system for vehicle
US20100312630A1 (en) * 2009-06-08 2010-12-09 Tammy Krutchik Method and system for transmitting and redeeming electronic coupons through use of mobile device
US20120218412A1 (en) * 2009-06-12 2012-08-30 Magna Electronics Inc. Scalable integrated electronic control unit for vehicle
US20120154591A1 (en) * 2009-09-01 2012-06-21 Magna Mirrors Of America, Inc. Imaging and display system for vehicle
US20140368653A1 (en) * 2011-12-06 2014-12-18 Qi Wang Method and system for improving responsiveness in a vehicle computing platform
US20140139670A1 (en) * 2012-11-16 2014-05-22 Vijay Sarathi Kesavan Augmenting adas features of a vehicle with image processing support in on-board vehicle platform
US20140168428A1 (en) * 2012-12-19 2014-06-19 Qnx Software Systems Limited Integrated system for media playback during startup

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11585550B2 (en) * 2017-06-21 2023-02-21 Gree Electric Appliances (Wuhan) Co., Ltd Control method and control device for air conditioner
US11474917B2 (en) * 2018-04-27 2022-10-18 Hewlett-Packard Development Company, L.P. Failure shield

Also Published As

Publication number Publication date
CN105026212B (en) 2018-05-04
WO2014074911A1 (en) 2014-05-15
CN105026212A (en) 2015-11-04
ES2698949T3 (en) 2019-02-06
EP2917073A1 (en) 2015-09-16
US11012593B2 (en) 2021-05-18
EP2917073B1 (en) 2018-08-29
US20140125802A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
US11012593B2 (en) Fault tolerant display
US20170277183A1 (en) Device, method, and program for detecting object
US10268535B2 (en) Vehicular image display system
EP3764639A1 (en) System and method for continuous operation of vision/radar systems in presence of bit errors
JP2017208750A (en) Video monitoring device, video display system, and vehicle
US9852502B2 (en) Image processing apparatus
US20160165211A1 (en) Automotive imaging system
WO2016027408A1 (en) Image processing apparatus, and failure diagnosis method for image processing apparatus
CN107933427A (en) A kind of embedded oversize vehicle parking assisting system
KR102420597B1 (en) Autonomous driving system fail-safe utility and method thereof
CN109146916B (en) Moving object tracking method and device
CN111078475B (en) Visual image data processing system and method and automatic driving automobile
CN115489536A (en) Driving assistance method, system, equipment and readable storage medium
KR20210090126A (en) Apparatus for vehicle alarm
KR20130036806A (en) System for deciding accident using black box and driving method thereof
CN113479136A (en) Display control method and device for digital rearview mirror system
CN111614952A (en) Method and device for detecting reliability of image transmission channel
CN114593394B (en) Method and system for inferring reduced image refresh frequency in high definition headlamps
KR20140074476A (en) System and method for detecting traffic lane in real time, navigation and black-box for vechicle using the same
Conrad et al. Improving Functional Safety of Automotive Video Data Transmission and Processing Systems
CN111163988B (en) Assisting a lead vehicle in a fleet using cameras
KR102203218B1 (en) Method and apparatus for sharing image information
US20230306707A1 (en) Around view monitoring system and the method thereof
JP6698779B2 (en) Image processing device
CN116101322A (en) Automatic driving control method, automatic driving vehicle and storage medium

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BECKERT, RICHARD D.;HAYS, PHILLIP G.;MAILLET, STEVEN P.;AND OTHERS;SIGNING DATES FROM 20121023 TO 20121029;REEL/FRAME:046098/0483

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:046098/0577

Effective date: 20141014

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STCV Information on status: appeal procedure

Free format text: NOTICE OF APPEAL FILED

STCV Information on status: appeal procedure

Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER

STCV Information on status: appeal procedure

Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE