1. Field of the Invention
This invention relates generally to audio and video network testing and specifically to centralized network testing of streaming video, audio and video telephony.
2. Description of Related Art
End-to-end testing of voice, data and video is utilized to identify data quality scores, video quality scores, and voice quality scores.
For data testing, a file is housed in the data device 120 and is transmitted via the Internet 160 and via the cellular network 170 to the receiving device 140. The receiving device 140 includes data testing software 185 to determine a data quality score for the received data file. A reference data file, stored on the receiving device 140, may be utilized in determining the data quality score for the data file. The data quality score is determined remotely at the receiving device 140.
A video streaming file is housed in the multi-media server 130. A receiving device 140 initiates an internet connection with the multi-media server 130 through the cellular network 170 and the Internet 160. A uniform resource locator corresponding to the location of a streaming video file is input into a web browser on the receiving device 140. A connection is then made between the multi-media server and the receiving device and the streaming video file is downloaded on a frame-by-frame basis to the receiving device 140. The receiving device receives the frames of the streaming video file and display the streaming video file on a display of the receiving device 140. After display of the streaming video file, the receiving device 140 stores the frames of the streaming video file. A video quality score is determined from the stored frames of the video receiving device 140.
Each of the above-described methods requires that the receiving device includes voice testing software, data testing software or video testing software. In addition, there may be additional scoring software that the receiving device may required to be stored on the receiving device. Including this software on the receiving device 140 reduces the processing power available for other receiving device tasks. In addition, the requirement of testing software being installed on each receiving device utilized within a network requires a large expenditure of money.
In an embodiment of the invention, the initial device has a streaming video file stored 310 at a certain location. Under certain operating conditions, the initial device 210 may be a computer and other operating conditions, the initial device may be a mobile device, a server or a laptop computer. The initial device 210 may be referred to as a multimedia server.
A copy of the streaming video file is transferred 320 to the analyzing device 220. The copy of the streaming video file is stored in the analyzing device 220 and may be referred to as the streaming video reference file. The copy of streaming video file may be transferred via the global communications network 250 and may be transferred utilizing any wired or wireless networking protocol.
On the remote device 230, a network connection software module 260 opens or enables an internet connection 330. A web browser 270 is opened 340 on the remote device 230. A uniform resource letter (URL) corresponding to the location of the streaming video file on the initial device 210 is input 350 to the web browser 270. When the URL is input, a connection is then made to the initial device 210 through the Internet, as is illustrated by reference number 2. The streaming video then starts to download 355 from the initial device 210 to the remote device 230. Under certain operating conditions, the streaming video passes through the Internet 250 and the cellular network 240 before arriving at the remote device 230, as is illustrated by reference number 3.
The streaming video file starts 355 to download from the initial device to the remote device. The streaming video file then continues 360 to download the remote device. After a period of time, the streaming file finishes 365 downloading to the remote device 230. As the streaming file is being downloaded from initial device and being received at the remote device, the streaming video file is loaded into a media player module 280 at the remote device 230. The media player 280 then transmits frames of the streaming video file to be displayed on a display of the remote device.
As the streaming video file is downloading and being displayed on the remote device 230, a capture algorithm captures 370 pixels of the image being generated from the engine of the media player 280. In other words, a frame including pixels is captured using a capture algorithm. Alternatively, a number of frames are captured using iterations of the capture algorithm. In an embodiment of the invention, a Helix media player is outputting the pixels (i.e., a frame) to the display of the remote device 230 while the capture algorithm is capturing the pixel data that has been generated and then generating an extra copy of the pixels.
The captured pixels, which are the same pixels that form the image being displayed, are saved 380 into a file in a memory 290 on the remote device and represent a “degraded image.” The image represents a “degraded image” because the image quality has likely been reduced due to losses/errors caused by transmission of the streaming video file over the cellular network 240 or the Internet 250. Under certain operating conditions, one or more frames of the streaming video file may be saved to memory 290 in the remote device create the degraded file. Under certain operating conditions, video is being captured to memory at a predefined frame rate for a predefined length of time. Depending on the predefined length of time, a certain number of frames are captured. A predefined color depth (e.g., bits per pixel) may be captured of each frame.
The degraded image file, which corresponds to the stored frames of pixels, is transferred 390 to the analyzing device 220. The degraded image file is transmitted via a wired or wireless network protocol. The degraded image file is transferred from the remote device 230 through the cellular network 240 and the global communications network 250 to the analyzing device 220, as is illustrate by reference number 4.
The analyzing device may be a laptop computer, a server, or a computing device. The analyzing device compares 395 a reference frame or frames (which may have been transferred from the computing device) to the degraded image file to determine a video quality score for the degraded image file.
A wireless telephone connection is made 530 between the initial device 210 and the remote device 230. In an embodiment of the invention, the initial device 210 initiates the call through the public telephone switched network 255 and then through the cellular or wireless network 240 to the remote device 230. This is illustrated by reference number 1 in
After the wireless telephone connection is made between the initial device 210 and the remote device 230, an audio file is played 540 on the initial device 210. In order to play the audio file, the initial device may have an integrated audio player where the audio file is played. Alternatively, the initial device 210 may include an audio processor and a speaker. The audio file is transmitted or played 550 via the PSTN 255 and cellular network 240 with a wireless telephone connection and the remote device 230 receives 560 the audio file at a receiver 420. This is illustrated by reference number 2 in
As the audio file is played on the speaker 430 by an audio processor or media player 440, the received audio file is recorded 570 into a memory 450 on the remote device 230. The recorded audio file may be referred to as the degraded audio file because it is an audio file after the file has been played over the wireless connection and thus is subject to any transmission errors or degradation in the wireless or cellular network 240.
The degraded audio file is then transferred 580 to the analyzing device 220 from the remote device 230. In addition, positional information and time information may be transferred with the degraded audio file to identify when the audio file was captured or stored and where the audio file was captured, i.e., over what network and at what geographical location. The transferring of the degraded audio file is illustrated as reference number 3.
At the analyzing device 220, the degraded audio file is compared 590 to the reference audio file to determine an audio quality score for the time, remote device, and network utilized. One of the testing algorithms may be a PESQ audio testing methodology.
A combined audio/video file is stored 710 on an initial device 210. The combined file is used in a video telephony system. For the remainder of this application, the combined audio/video file is referred to as a video telephony file.
The video telephony file is transferred 720 to an analyzing device 220. The video telephony file transferred to the analyzing device 220 is referred to as a video telephony reference file.
In an embodiment of the invention, a video telephone connection made 730 between initial device 210 and the remote device 230 using the telephone network 255 and cellular network 240. This is illustrated by reference number 1 in
After the video telephone connection is made, an initial device 210 plays 740 the video telephony file via an integrated player or a video telephony player.
The video telephony call is transmitted 750 over the established telephone connection to the remote device 230. The video telephony file is received 760 at a receiver 620 at the remote device 230. The receiver 620 transfers the receive video telephony call to a video telephony player 630 which plays the integrated audio and video via a display and speaker 640 on the remote device 230. This is illustrated by reference number 2 in
The received and played video telephony call is recorded 770 at the remote device 230 and stored in a memory 650 in the remote device. The stored call is referred to as the degraded video telephony file.
The degraded video telephony file is transferred. 780 from the remote device 230 to the analyzing device 220 via wired or wireless protocol. The path followed is illustrated by reference number 3 in
The degraded video telephony file is compared 790 to the reference video telephony file. First, both of the degraded and reference video telephony files are separated in audio and video components and the audio and video components of the degraded and reference video telephony files are compared with each other to generate separate audio and video quality scores. In an embodiment of the invention, a combined audio and video quality score may also be calculated.
The rendered video file is transferred to an engine of a media player 840, e.g., a Helix engine, and then is played, one frame at a time, on the media player 850, e.g., a Symbian player. As the frame is being sent from the engine 840 to the media player 850, a Comarco capture module 860 captures a copy of the frame being displayed by the media player 850. The Comarco capture module 860 may be a dynamic link library (DLL). The Comarco capture module 860 includes a control interface 861, a frame manager 862, an AVI processor 863 and a statistics interface 864. The frame manager 862 stores the captured frame information and assists in managing the display and/or transfer of the frames. The control interface 861 of the Comarco capture module 860 allows external programs, e.g., like an automated test system (Comarco's Quota system), to utilize the dynamic link library. The statistics interface 862 allows eternal programs, e.g., Comarco's Quota system, to access various video metrics. This video metrics include, but are not limited to, bit error rate, frame loss, etc. The video metrics are provided by the Comarco capture module 860 DLL. The audio video interleaved (AVI) processor 864 of the Comarco capture module 860 DLL is the processor utilized by the Comarco Capture module to process, analyze and synchronize both the captured audio and video. In an embodiment of the invention, a test driver 870 is provided for testing and debugging. In this embodiment of the invention, the Comarco capture module 860 does not have a user interface so the test driver 870 provides the user interface. The Comarco capture module 860 transfers the captured and stored frame(s) to Quota testing software module 880 on the remote device. The Quota testing software 880 module transfers the captured and stored frame(s) to the analyzing device.
The invention may be implemented in hardware or software, or a combination of both (e.g., programmable logic arrays). Unless otherwise specified, the algorithms included as part of the invention are not inherently related to any particular computer or other apparatus. In particular, various general purpose machines may be used with programs written in accordance with the teachings herein, or it may be more convenient to construct more specialized apparatus (e.g., integrated circuits) to perform particular functions. Thus, the invention may be implemented in one or more computer programs executing on one or more programmable computer systems each comprising at least one processor, at least one data storage system (which may include volatile and non-volatile memory and/or storage elements), at least one input device or port, and at least one output device or port. Program code is applied to input data to perform the functions described herein and generate output information. The output information is applied to one or more output devices, in known fashion.
Each such program may be implemented in any desired computer language (including machine, assembly, or high level procedural, logical, or object oriented programming languages) to communicate with a computer system. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on or downloaded to a storage media or device (e.g., solid state memory or media, or magnetic or optical media) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer system to perform the procedures described herein. The inventive system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer system to operate in a specific and predefined manner to perform the functions described herein.
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, some of the steps described above may be order independent, and thus can be performed in an order different from that described. Accordingly, other embodiments are within the scope of the following claims.