HDMI image quality analysis

Systems and methods for evaluating video quality of HDMI data are provided. In one example an HDMI video quality evaluator controls a video device to render a test pattern and encode the pattern into HDMI. The video device is controlled to transmit the HDMI formatted pattern from an output port to an input port on the device, capture a frame of the pattern, and transmit the frame to the quality evaluator. The quality evaluator compares rendered pixels in the frame to test pixels in the test pattern to identify video quality errors. Errors that exceed a threshold are identified, and a test result is outputted that includes errors exceeding the threshold.

BACKGROUND

Video quality of analog and digital video produced by a source device may be tested in a variety of manners. Historically oscilloscopes such as wave form monitors and vectorscopes have been commonly used to measure aspects of video quality. For uncompressed digital video data transferred via the High Definition Multimedia Interface (HDMI) protocol, an HDMI analyzer may be used to evaluate the bitstream syntax of the digital data.

A source device that produces HDMI content includes an HDMI transmitter that formats and encodes video and audio data according to the HDMI protocol. The transmitter transmits the encoded content from an output port via an HDMI cable to an HDMI sink device, such as a television. Analyzing video quality produced by an HDMI source device may be performed by connecting the HDMI output port to an HDMI analyzer via an HDMI cable.

Connecting a source device to an HDMI analyzer in this manner necessitates that each unit is individually cabled to a separate analyzer for the duration of the analysis. Additionally, each unit is typically configured manually to set the desired output parameters for testing, such as resolution, scan type, etc. In some settings, such as a device manufacturing line or quality control station, performing such an analysis in this manner adds labor and dwell time at the analysis station, as well as line configuration limitations imposed by cabling requirements. Manufacturing line complexity is thereby increased and production volumes may be negatively impacted.

SUMMARY

To address the above issues, systems and methods for evaluating video quality of data transmitted by a video device via HDMI are provided. In one example the method may include, at an HDMI video quality evaluator, controlling the video device to render a test pattern and encode the rendered test pattern into an HDMI format. The video device is then controlled to transmit the HDMI formatted test pattern from an output port to an input port on the video device, capture a frame of the test pattern, and transmit the frame to the HDMI video quality evaluator.

The method further includes receiving the frame at the HDMI video quality evaluator from the video device and comparing rendered pixels in the frame to test pixels in the test pattern to identify one or more video quality errors in the frame. The one or more video quality errors are evaluated to identify any errors that exceed a threshold, and a test result is outputted that includes one or more of the video quality errors that exceed the threshold.

DETAILED DESCRIPTION

Aspects of this disclosure will now be described by example and with reference to the illustrated embodiments listed above. Components, process steps, and other elements that may be substantially the same in one or more embodiments are identified coordinately and are described with minimal repetition. It will be noted, however, that elements identified coordinately may also differ to some degree. It will be further noted that the drawing figures included herein are schematic and generally not drawn to scale. Rather, the various drawing scales and numbers of components shown in the figures may be purposely distorted to make certain features or relationships easier to see.

FIG. 1is a schematic view of one embodiment of an HDMI video quality evaluating system10for evaluating video quality of data transmitted by a video device via HDMI. The HDMI video quality evaluating system10may include an HDMI video quality evaluator14that may be communicatively coupled to a network16. The HDMI video quality evaluator14may take the form of a network computing device, desktop computing device, mobile computing device such as a smart phone, laptop, notebook or tablet computer, or other suitable type of computing device. The HDMI video quality evaluator14may include or be coupled with a display to present a visual representation of data held by a storage subsystem. Additional details regarding the components and computing aspects of the HDMI video quality evaluator14are described in more detail below with reference toFIG. 4.

The network16may take the form of a local area network (LAN), wide area network (WAN), wired network, wireless network, personal area network, or a combination thereof, and may include the Internet. As described in more detail below, in some examples the HDMI video quality evaluator14may be communicatively coupled via network16to one or more computing devices, such as gaming device18. Such devices may be located in a manufacturing facility and/or quality control setting in which the devices are manufactured and/or tested. In other examples such devices may be located in the field, such as when the gaming device18is located in a user's home. It will also be appreciated that HDMI video quality evaluator14may communicate with a plurality computing devices via network16.

The HDMI video quality evaluator14may comprise a validation program20that comprises instructions stored in mass storage22of the HDMI video quality evaluator14. The validation program20may be loaded into memory26and executed by a processor30of the HDMI video quality evaluator14to perform one or more of the methods and processes described in more detail below. The HDMI video quality evaluator14may also include an HDMI analyzer module34that is configured to measure HDMI data streams and record various characteristics and aspects of such streams including, but not limited to, HDMI protocol compliance, timing analysis, pixel color values, pixel errors, content protection status, etc. It will be appreciated that in other examples, the HDMI video quality evaluator14may be connected to a separate HDMI analyzer40.

The HDMI video quality evaluator14may further include a test pattern generator36configured to generate test patterns, such as test pattern42, in various formats for evaluating and testing HDMI content as described below. The HDMI video quality evaluator14may also include a Wi-Fi transceiver38for wirelessly connecting the evaluator to one or more other computing devices, such as gaming device18, via network16. It will be appreciated that in other examples the HDMI video quality evaluator14may use any other suitable networking or connectivity protocols or techniques to communicatively engage with other computing devices.

Gaming device18may also comprise a test pattern generator44that includes instructions stored in mass storage46of the gaming device. The test pattern generator44may be loaded into memory50and executed by a processor52of the gaming device18to generate test patterns, such as test pattern54. Gaming device18also comprises a video rendering pipeline that includes video pipeline software58stored in mass storage46, and video pipeline hardware including an HDMI transmitter62communicatively coupled to an HDMI output port66. It will be appreciated that gaming device18may be communicatively coupled to a display device68via the HDMI output port66to enable a user to play various games and view video content. The gaming device18may also include a capture module70that is configured to capture one or more HDMI frames generated by the video rendering pipeline. Any suitable video capture device or component that captures HDMI video content may be utilized.

The gaming device18may also include a Wi-Fi transceiver72for connecting the gaming device to the HDMI video quality evaluator14and/or other computing devices via network16. It will be appreciated that in other examples the gaming device18may use any other suitable networking or connectivity protocols or techniques to communicatively engage with other computing devices. Further, gaming device18includes an HDMI receiver74communicatively coupled to an HDMI input port78. As described in more detail below, in some examples the HDMI receiver74may receive HDMI-formatted test patterns rendered by the gaming device18and transferred via an HDMI cable80connected to the HDMI output port66.

With reference also toFIGS. 2A,2B and2C, example use cases of the HDMI video quality evaluating system10and associated components, such as the HDMI video quality evaluator14and gaming device18, will now be described.FIGS. 2A,2B and2C illustrate a flow chart of a method200for evaluating video quality of data transmitted by a video device using HDMI according to an embodiment of the present disclosure. The following description of method200is provided with reference to the software and hardware components of the HDMI video quality evaluator14and gaming device18described above and shown inFIG. 1. It will be appreciated that method200may also be performed in other contexts using other suitable hardware and software components.

In one example, the HDMI video quality evaluator14may be located in a manufacturing facility that produces gaming devices, such as gaming device18. The gaming device18may be configured to generate and transmit video via the video rendering pipeline including the video pipeline software58and HDMI transmitter62. To ensure proper operation of the gaming device18, it may be desirable to evaluate the quality of video generated and transmitted via HDMI by the gaming device18.

Accordingly, and with reference toFIG. 2A, in one example at202the method200includes coupling the HDMI output port66to the HDMI input port78with an HDMI cable80. At204the method200includes using the HDMI video quality evaluator14to control the gaming device18to perform a plurality of actions that manipulate the state of the gaming device and invoke various configurations related to generating and transmitting HDMI encoded video. At206, the gaming device18is controlled to generate a test pattern that may be utilized to evaluate various aspects of video quality. For example, the test pattern generator44may be controlled to generate one or more desired test patterns, such as test pattern54.

In one example, the HDMI video quality evaluator14may manipulate the gaming device18to generate test patterns having different desired bit depths. For example, at208the method200may include controlling the gaming device18to generate a test pattern having 8-bit color. It will be appreciated that in a 3 component color space such as RGB, YCbCr, HSL, etc., an 8-bit test pattern comprises 24 bits per pixel. In another example, at210the method200may include controlling the gaming device18to generate the same test pattern, or a different test pattern, having 10-bit color. It will be appreciated that in a 3 component color space a 10-bit test pattern comprises 30 bits per pixel. In another example, at212the method200may include controlling the gaming device18to generate the same test pattern, or a different test pattern, having 12-bit color. It will be appreciated that in a 3 component color space a 12-bit test pattern comprises 36 bits per pixel.

It will also be appreciated that test patterns having other bit depths may also be generated. Additionally, and as explained in more detail below, in these examples the test patterns are generated natively by the gaming device18at the direction of the HDMI video quality evaluator14. Accordingly, for such test patterns and/or other test patterns generated by the HDMI video quality evaluator14, the HDMI video quality evaluator may store one or more files that comprise various file and image attributes of the test patterns. Such attributes may include, but are not limited to, pixel locations such as x and y coordinates in the test pattern, native color space values (such as YCbCr), expected converted color space values (such as RGB), and content protection status (such as High-bandwidth Digital Content Protection (HDCP)). For example, an XML file84may comprise pixel locations, values, and other qualities of the test pattern54generated by the gaming device18.

Further, because the test pattern54is natively generated by the gaming device18and not previously routed through a video rendering pipeline, the imaging attributes of the test pattern as delivered to the video rendering pipeline may correspond exactly to the imaging attributes in the corresponding XML file84. As described in more detail below, the HDMI video quality evaluator14may receive a captured frame86of the rendered test pattern after it has passed through the video rendering pipeline of the gaming device18. Advantageously, in this manner rendered pixels from a captured frame of the rendered test pattern may be compared to test pixels in the test pattern from the XML file84to identify one or more video quality errors in the frame.

In another example, at214the HDMI video quality evaluator14may provide a test pattern, such as test pattern42, to the gaming device18. In still another example, at216the gaming device18may receive a test pattern from one or more other sources. Such other sources may include, but are not limited to, a DVD90, Blu-ray disc, and streaming digital content accessible via network16.

At218the HDMI video quality evaluator14may control the gaming device18to render the test pattern via the video pipeline software58and the HDMI transmitter62. In the rendering process various different formats and configurations of the test pattern may be generated and eventually evaluated by the HDMI video quality evaluator14as described in more detail below. For example, at220a scaler in the video rendering pipeline may scale a test pattern54from a first scan type, such as progressive scan, to a second scan type, such as interlaced scan. In other examples, at222the scaler may upconvert a test pattern from a first resolution, such as 720 lines, to a second resolution, such as 1080 lines. In still other examples, the scaler may scale a test pattern from a standard definition image to a high definition image.

In another example, at224the video rendering pipeline may convert the color space of test pattern54from a first color space, such as YCbCr, to a second color space, such as RGB. In another example, at226the video rendering pipeline may convert the bit depth of test pattern54from a first bit depth, such as 8-bit, to a second bit depth, such as 10-bit.

In an example where a test pattern has been generated, identified, or otherwise selected by the HDMI video quality evaluator14, at228the method200may include reading a corresponding XML file that comprises various expected pixel values, locations, and other file and image attributes of the test pattern as discussed above. In another example where the test pattern is generated by the test pattern generator44of the gaming device18, at230the method200may include calculating expected pixel values at various x,y coordinates in the generated test pattern. For example, and with reference to the test pattern300shown inFIG. 3and discussed in more detail below, the expected values of at least one of the rendered pixels of a frame of the test pattern may be calculated. Advantageously, calculating such values may enable the validation program20to randomly sample the rendered test pattern.

It will be appreciated that employing random or semi-random sampling of pixels in a test pattern may enhance the ability of the HDMI video quality evaluator14to consistently identify errors in video output. In some examples, if the same pixels or points are sampled with every test pattern and device tested, then a particular combination of device and pattern may result in one or more errors going undetected. Random or semi-random sampling increases the probability of identifying such errors.

In one example, a semi-random sampling approach may employ a component of random pixel sampling and a component of fixed pixel sampling that ensures one or more particular errors or features are always examined. For example, one approach may include a fixed component that captures an edge pixel from each edge of the test pattern to verify that cropping has not occurred. The approach may also randomly select the location in the column or row of that edge for the selected pixel. Such a semi-random approach may also ensure that particular errors or features are examined, while also potentially reducing the total number of samples required as compared to a densely populated, evenly distributed random pattern.

At232the method200may include controlling the gaming device18to encode the rendered test pattern into an HDMI format via the HDMI transmitter62. At234the method200may include controlling the gaming device18to transmit the HDMI formatted test pattern from the output port66to the input port78via the HDMI cable80. The HDMI receiver74in the gaming device18may receive the HDMI formatted test pattern.

At236the method200includes controlling the gaming device18to capture one or more frames86of the HDMI formatted test pattern using, for example, the capture module70. At238the method200includes controlling the gaming device18to transmit the captured frame86to the HDMI video quality evaluator14via the network16.

With reference now toFIG. 2B, at240the method200includes receiving the captured frame86at the HDMI video quality evaluator14. In one example, at242the method200includes generating a captured frame file88that includes video information and values of rendered pixels at x,y locations in the captured frame86. The captured frame file88may take the form of a CSV file, an .xls file, or any other suitable file format.

At244the method200includes comparing the values of rendered pixels in the captured frame86to values of corresponding test pixels in the test pattern to identify one or more video quality errors in the frame. Values of the test pixels in the test pattern may be accessed, for example, from the XML file84that corresponds to the test pattern54. In one example where the test pattern is generated by the gaming device18, at246the method200includes randomly sampling rendered pixels of the generated test pattern.

With reference now toFIG. 3, an example test pattern300is illustrated. As described above, captured frames86of test pattern300may be utilized by the HDMI video quality evaluator14to identify one or more video quality errors. In this example, the test pattern300includes a 40 pixel-wide border, indicated at304, that circumscribes the pattern. At306representative test pixels (not to scale) of the 40 pixel-wide border are illustrated. In one example, a pixel308at an outer edge310of the border304may have a value of 100. Moving in the y-direction across the border304the value of each adjacent pixel may linearly increase by one to the inner edge312of the border, with the pixel314at the inner edge having a value of 140.

Areas316,320,324and328may each comprise a 20 pixels-wide by 520 pixels-high portion of the test pattern300. In one example, area316may be solely comprised of pixel values representing a maximum black color. Area320may be solely comprised of pixel values representing a maximum white color. Area324may be solely comprised of pixel values representing a video black color. And area328may be solely comprised of pixel values representing a video white color.

The 6 vertically arranged color blocks indicated at332include, from top to bottom, pixel values representing 100% yellow, 100% cyan, 100% green, 100% magenta, 100% red, and 100% blue colors. The adjacent6vertically arranged color blocks indicated at336include, from top to bottom, pixel values representing 75% yellow, 75% cyan, 75% green, 75% magenta, 75% red, and 75% blue colors. It will be appreciated that the pixel values and corresponding color percentages relate to a video content range, such as an 8-bit, 16-235 range. In this example, 100% corresponds to a value of 235.

Areas340and344provide a color gradient from a maximum black color value to a maximum white color value. With the maximum black color represented by test pixels along the left edge350of area340, such as test pixel348, the gradient increases one value per pixel in the x-direction to pixels having a midpoint value along the right edge354, such as test pixel352. Beginning at pixels along the left edge358of area344, such as test pixel356, the gradient continues increasing one value per pixel in the x-direction from the midpoint value at test pixel356to a maximum white color at pixels along the right edge362, such as test pixel360. For example with the gradient increasing one value per pixel in the x-direction, representative test pixel364has a value one less than adjacent test pixel368(not to scale).

It will be appreciated that the number and arrangement of blocks and areas, dimensions, pixel values, colors and other properties of test pattern300are one example, and other test patterns having different blocks and areas, dimensions, pixel values, colors and/or other properties may also be used and are within the scope of the present disclosure. For example, with a 36 bit per pixel color depth and a 720p resolution, four areas that provide a color gradient or ramp from a maximum black color value to a maximum white color value may be utilized. Advantageously, by enabling the use of test patterns having various properties, the present disclosure enables a complete ramp for all color depths to be produced, even for pattern widths that are significantly smaller than the number of values in the ramp.

With reference again toFIG. 2B, at248the method200includes evaluating the one or more identified video quality errors to identify any errors that exceed a threshold. At250the method200may include evaluating a pixel crop error. For example, the test pattern border304in the captured frame86may be examined to determine if it is uniformly 40 pixels wide around the test pattern. If the border304deviates from 40 pixels wide at any point, such deviation may be recorded. At252the method200may include evaluating a color conversion or color accuracy error. For example, each of the 12 color blocks indicated at332and336in the test pattern300may be evaluated for any color accuracy errors.

At254the method200may include evaluating a dither error. For example, the presence of dither in the gradient areas340and344may be evaluated. At256the method200may include evaluating a monotonicity error. In one example, evaluating a monotonicity of the test pattern300may include examining areas340and344to determine whether adjacent pixel values in the x-direction are increasing in a continuous, monotonic manner. At258the method200may include evaluating an aspect ratio error. For example, where the captured frame86has been converted from a 16:9 aspect ratio to a 4:3 aspect ratio, the size and location of the windowboxing vertical and horizontal bars bordering the frame may be evaluated.

To evaluate whether one or more identified video quality errors exceeds a threshold, in one example at260the method200includes identifying a difference between a rendered pixel value of one of the rendered pixels and a test pixel value of one of the test pixels. For example, where the test pattern300is natively generated by the test pattern generator36of the HDMI video quality evaluator14, and then provided to the gaming device18, the absolute positions and values of each pixel in the pattern are known. Using this natively generated test pattern, the validation program20may calculate the expected positions and values of each pixel in the HDMI frame86captured from the test pattern that is rendered by the gaming device18. The validation program20may then compare each pixel value at each position in the captured frame86to the expected value at that position to identify any deviation. In one example of a manufacturing environment, this process advantageously enables identification of any video quality error present in a captured frame.

In another example, identifying errors that exceed a threshold may comprise identifying errors that exceed a visually noticeable threshold. For example, at262the method200may include applying a color difference metric to the one or more video quality errors. Where the video quality error is a color accuracy error, in one example a Delta-E formula, such as dE94, may be applied to determine whether the color accuracy error may be visually noticeable to a user.

In another example, the XML file84may identify the method or methods to be used for evaluating the relevant threshold. For example, the XML file could define the failure threshold for pixels within each of the areas340,344of test pattern300, comprising the color gradient or ramp, to be horizontally monotonic, in addition to a simple +/−threshold. For the color blocks indicated at332and336, however, the XML file could apply dE94.

In another example, a range of pixels from which to select a random sample of size n may be defined. For each sample n, each pixel may be evaluated based not only on the calculated value but on other specified criteria as well. Such specified criteria may vary based on the characteristics that range of pixels may be known to have. In the case of a ramp, if the sampled pixel value is correct, but the pixels on either side of the sampled pixel are not offset by one, then an error with respect to the ramp threshold would be indicated even though the sampled pixel value is correct.

At264the method200includes outputting a test result that includes any of the one or more video quality errors that exceed the threshold. In one example, the validation program20may generate a test result that comprises visual representations of the one or more quality errors that may be rendered on a display (not shown) associated with the HDMI video quality evaluator14. In another example, the validation program20may generate a test result that comprises a document that includes one or more quantifications, evaluations, or other descriptions of the one or more quality errors. It will be appreciated that the test result may comprise other forms, media types, file types and combinations of the foregoing.

With reference now toFIG. 2C, in one example the test pattern utilized in method200may comprise a first color space, such as YCbCr. In this example, at266the method200may include repeating all or selected steps204-264for the same test pattern rendered in a second, different color space, such as RGB. In another example the test pattern utilized in method200may have a first resolution, such as 720 lines. In this example, at268the method200may include repeating all or selected steps204-264for the same test pattern rendered in a second, different resolution, such as 1080. In still another example, the test pattern utilized in method200may have a first bit depth, such as 8-bits per pixel. In this example, at270the method200may include repeating all or selected steps204-264for the same test pattern rendered in a second, different bit depth, such as a 10-bits per pixel.

It will be appreciated that method200is provided by way of example and is not meant to be limiting. Therefore, it is to be understood that method200may include additional and/or alternative steps than those illustrated inFIGS. 2A,2B and2C. Further, it is to be understood that method200may be performed in any suitable order. Further still, it is to be understood that one or more steps may be omitted from method200without departing from the scope of this disclosure.

Accordingly and as described above, the present disclosure presents embodiments of an HDMI video quality evaluating system10and related method200that control a computing device to send HDMI formatted test patterns from an output port to an input port of the device, capture frames of the pattern and wirelessly transmit the captured frames to an HDMI video quality evaluator. In this manner, the HDMI video quality system10and method200provides a simple, minimally labor intensive process for testing video quality of HDMI content generated on a computing device.

Additionally, by configuring the computing device to include both an HDMI output port and HDMI input port, and by utilizing a wireless network, the present system and method enable HDMI video quality testing while imposing minimal constraints on the location of the HDMI video quality evaluator and devices under test. The present system and method also enable simple validation of one or more additional components that may be added to the video rendering pipeline of a device that has been previously evaluated. For example, once a video device has been evaluated for video quality errors, additional components may be added to the video rendering pipeline, and the pipeline may be easily validated using the same methods and/or test patterns. For example, a new video quality transform may be added to the pipeline of a device that has been validated by the present method, and the modified device/pipeline may be conveniently evaluated using the same method without changing the methodology or system setup.

FIG. 4schematically shows a nonlimiting embodiment of a computing system400that may perform one or more of the above described methods and processes. HDMI video quality evaluator14and gaming device18described above may take the form of computing system400. Computing system400is shown in simplified form. It is to be understood that virtually any computer architecture may be used without departing from the scope of this disclosure. In different embodiments, computing system400may take the form of a mainframe computer, server computer, desktop computer, laptop computer, tablet computer, home entertainment computer, network computing device, mobile computing device, mobile communication device, gaming device, etc.

As shown inFIG. 4, computing system400includes a logic subsystem404and a storage subsystem408. Computing system400may optionally include a display subsystem412, a communication subsystem416, an input subsystem420and/or other subsystems and components not shown inFIG. 4. Computing system400may also include computer readable media, with the computer readable media including computer readable storage media and computer readable communication media. Computing system400may also optionally include other user input devices such as keyboards, mice, game controllers, and/or touch screens, for example. Further, in some embodiments the methods and processes described herein may be implemented as a computer application, computer service, computer API, computer library, and/or other computer program product in a computing system that includes one or more computers.

Logic subsystem404may include one or more physical devices configured to execute one or more instructions. For example, the logic subsystem404may be configured to execute one or more instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more devices, or otherwise arrive at a desired result.

The logic subsystem404may include one or more processors that are configured to execute software instructions. Additionally or alternatively, the logic subsystem may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. Processors of the logic subsystem may be single core or multicore, and the programs executed thereon may be configured for parallel or distributed processing. The logic subsystem may optionally include individual components that are distributed throughout two or more devices, which may be remotely located and/or configured for coordinated processing. One or more aspects of the logic subsystem may be virtualized and executed by remotely accessible networked computing devices configured in a cloud computing configuration.

Storage subsystem408may include one or more physical, persistent devices configured to hold data and/or instructions executable by the logic subsystem404to implement the herein described methods and processes. When such methods and processes are implemented, the state of storage subsystem408may be transformed (e.g., to hold different data).

In some embodiments, aspects of logic subsystem404and storage subsystem408may be integrated into one or more common devices through which the functionally described herein may be enacted, at least in part. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC) systems, and complex programmable logic devices (CPLDs), for example.

FIG. 4also shows an aspect of the storage subsystem408in the form of removable computer readable storage media424, which may be used to store data and/or instructions executable to implement the methods and processes described herein. Removable computer-readable storage media424may take the form of CDs, DVDs, HD DVDs, Blu-Ray Discs, EEPROMs, and/or floppy disks, among others.

It is to be appreciated that storage subsystem408includes one or more physical, persistent devices. In contrast, in some embodiments aspects of the instructions described herein may be propagated in a transitory fashion by a pure signal (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for at least a finite duration. Furthermore, data and/or other forms of information pertaining to the present disclosure may be propagated by a pure signal via computer-readable communication media.

When included, display subsystem412may be used to present a visual representation of data held by storage subsystem408. As the above described methods and processes change the data held by the storage subsystem408, and thus transform the state of the storage subsystem, the state of the display subsystem412may likewise be transformed to visually represent changes in the underlying data. The display subsystem412may include one or more display devices, such as display68described above, utilizing virtually any type of technology. Such display devices may be combined with logic subsystem404and/or storage subsystem408in a shared enclosure, or such display devices may be peripheral display devices.

When included, communication subsystem416may be configured to communicatively couple computing system400with one or more networks and/or one or more other computing devices. Communication subsystem416may include wired and/or wireless communication devices compatible with one or more different communication protocols. As nonlimiting examples, the communication subsystem416may be configured for communication via a wireless telephone network, a wireless local area network, a wired local area network, a wireless wide area network, a wired wide area network, etc. In some embodiments, the communication subsystem may allow computing system400to send and/or receive messages to and/or from other devices via a network such as the Internet.

The terms “module” and “program” may be used to describe an aspect of the HDMI video quality evaluator14that is implemented to perform one or more particular functions. In some cases, such a module or program may be instantiated via logic subsystem404executing instructions held by storage subsystem408. It is to be understood that different modules and programs may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module or program may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module” and “program” are meant to encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.