U.S. patent application number 12/157292 was filed with the patent office on 2008-10-09 for handheld wireless video receiver.
Invention is credited to Kendyl A. Roman.
Application Number | 20080250459 12/157292 |
Document ID | / |
Family ID | 38619094 |
Filed Date | 2008-10-09 |
United States Patent
Application |
20080250459 |
Kind Code |
A1 |
Roman; Kendyl A. |
October 9, 2008 |
Handheld wireless video receiver
Abstract
A handheld, wireless video receiver that receives compressed
video, decompresses the compressed video, displays the decompressed
video. The receiver is part of a system comprising methods, medium,
and handheld, wireless devices which compress, enhance, encode,
transmit, decompress and display digital video images in real time.
Real time wireless videoconferences connect multiple handheld video
devices. Real time compression is achieved by sub-sampling each
frame of a video signal, filtering the pixel values, and encoding.
Real time transmission is achieved due to high levels of effective
compression. Real time decompression is achieved by decoding and
decompressing the encoded data to display high quality images. The
receiver can alter various setting including but not limited to the
format for the compression, image size, frame rate, brightness and
contrast. A zoom control can be used select a portion of interest
of video being transmitted or being played back. The receiver may
also have a touch sensitive display screen providing controls for
video display and mobile telephone operation.
Inventors: |
Roman; Kendyl A.;
(Sunnyvale, CA) |
Correspondence
Address: |
KENDYL A ROMAN
730 BARTEY COURT
SUNNYVALE
CA
94087
US
|
Family ID: |
38619094 |
Appl. No.: |
12/157292 |
Filed: |
June 7, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11823493 |
Jun 27, 2007 |
|
|
|
12157292 |
|
|
|
|
11262106 |
Oct 27, 2005 |
|
|
|
11823493 |
|
|
|
|
09467721 |
Dec 20, 1999 |
7233619 |
|
|
11262106 |
|
|
|
|
60113051 |
Dec 21, 1998 |
|
|
|
Current U.S.
Class: |
725/62 ;
375/E7.202; 375/E7.252; 455/3.06 |
Current CPC
Class: |
H04N 5/23216 20130101;
H04N 19/93 20141101; H04N 7/147 20130101; H04N 19/136 20141101;
H04N 19/132 20141101; H04N 7/15 20130101; H04N 7/142 20130101; H04N
19/59 20141101; H04N 2007/145 20130101; H04N 19/184 20141101; H04N
7/148 20130101 |
Class at
Publication: |
725/62 ;
455/3.06 |
International
Class: |
H04N 7/16 20060101
H04N007/16; H04H 40/00 20080101 H04H040/00 |
Claims
1-50. (canceled)
51. A handheld wireless video receiver, in a system for
transmission and display of video and other media, the system
comprising a wireless network, a media exchange, and a plurality of
devices, each connected to the wireless network, wherein at least
one device is capable of transferring a plurality of compressed
video frames which make up a video stream, said handheld video
receiver comprising: a) a color display having a predetermined
display width and display height and having a touch screen for
receiving input from a user, wherein the display width is a
predetermined first number of pixels and the display height is a
predetermined second number of pixels, b) an audio output, c) a
program memory, for storing computer programs, d) a processor, for
executing computer programs from the program memory, e) a data
memory, for storing data, f) a user interface on the touch screen
comprising controls for interfacing with the executing computer
programs, g) a wireless network interface for connecting to the
wireless network via wireless a communications channel, wherein the
handheld video receiver maintains connection to the wireless
network when being moved from one location to another location or
while being freely carried by the user, h) a decompressor,
cooperating with the processor, i) a video camera for capturing
images in real-time, j) a microphone for capturing an audio portion
in real-time, and k) a compressor configured to compress captured
images, wherein the handheld video receiver has a weight of less
than about six ounces, wherein the handheld device has physical
dimension allowing it to be held substantially in one hand of the
user, wherein the user interface is operated by one or more fingers
of the user, wherein each of the communications channels from the
wireless network to the handheld video receiver has a predetermined
bandwidth such that the maximum sustainable bandwidth measured in
millions of bits per second, wherein the compressed video frames
are received over one of the communications channel, wherein the
decompressor decompresses the compressed video frames, wherein the
compressed video frames is stored in a video file, wherein the data
memory is configured to store a plurality of video files, wherein
at least a portion of the decompressed video frames is displayed on
the color display in real time, wherein the audio portion plays on
the audio output, wherein the handheld wireless video receiver
receives one or more video files from the media exchange after the
user agrees to pay a license fee determined by interaction of the
user with the media exchange over the wireless network, whereby
user enters commands via the touch screen to play back any of the
stored video files, and whereby the video is displayed while the
user carries the handheld wireless video receiver.
52. The handheld wireless video receiver of claim 51, wherein the
controls further comprise: i) a zoom interface for issuing zoom in,
zoom out, and pan commands, wherein the magnification and position
of the portion of the displayed media are changed in response to
one or more of the zoom in, zoom out, and pan commands, and ii)
mobile telephone controls for entering numeric telephone numbers
and for controlling mobile telephone calls.
53. The handheld wireless video receiver of claim 51, further
comprising an external digital camera interface for downloading
still photographic images to the handheld wireless video
receiver.
54. The handheld wireless video receiver of claim 51, further
comprising an external video camera interface for downloading video
images to the handheld wireless video receiver.
55. The handheld wireless video receiver of claim 51, further
comprising an external computer interface connecting to a computer,
whereby the data memory of the handheld wireless video receiver
functions as an external disk drive of the computer.
56. The handheld wireless video receiver of claim 51, wherein the
data memory of the handheld wireless video receiver stores
graphical user programs such as games, wherein processor further
executes the user programs from the data memory.
57. The handheld wireless video receiver of claim 51, wherein the
display height is greater than or equal to 480 pixels.
58. The handheld wireless video receiver of claim 51, wherein the
display width is greater than or equal to 320 pixels.
59. The handheld wireless video receiver of claim 51, wherein the
display width is less than or equal to 640 pixels.
60. The handheld wireless video receiver of claim 51, wherein the
handheld video receiver has a weight of less than about four
ounces.
61. The handheld wireless video receiver of claim 51, wherein the
magnification and position of the portion of the displayed media
are changed in response to one or more of the zoom in, zoom out,
and pan commands.
62. The handheld wireless video receiver of claim 51, wherein the
controls further comprises commands relating to video quality and
transmission, wherein the handheld video receiver dynamically
interprets control commands entered by the user via the touch
screen, whereby the user of the receiver views the optimum quality
live video.
63. The handheld wireless video receiver of claim 51, wherein the
data memory comprises a hard disk drive, wherein the video file is
stored on the hard disk drive, and wherein the video file stored on
the hard disk drive is played back.
64. The handheld wireless video receiver of claim 51, wherein the
data memory comprises a non-volatile memory, wherein the video file
is stored on the non-volatile memory, and wherein the video file
stored on the non-volatile memory is played back.
65. The handheld wireless video receiver of claim 51, wherein the
video frames are compressed using a color lossless compression
method.
66. The handheld wireless video receiver of claim 51, further
comprising a battery with a limited battery life, wherein the
processor is less powerful than the processors typically found in
non-handheld devices, wherein the processor and decompressor
cooperate to decompress each of the video frames in a single pass,
whereby the processor speed requirements are reduced and the
battery life is extended while maintaining high quality video with
optimal effective compression ratios.
67. The handheld wireless video receiver of claim 51, wherein the
wireless network is connected to the Internet, and wherein the
computer programs further comprise programs for receiving and
displaying still graphic images and text downloaded from the
network.
68. A method of exchanging digital video files between a media
exchange and a handheld wireless video receiver, comprising the
steps of: a) capturing real-time, full-frame, full-color video from
a video input device, b) digitizing the captured video, c)
compressing the digital video with a compressor configured to
preserve the level of spatial quality and motion quality of the
compressed video that the handheld video receiver is capable of
displaying, d) storing the compressed video in a data memory in a
device in communication with a wireless network, e) transferring
the compressed video to the media exchange via the network, f)
downloading the compressed video from the media exchange via the
network to the handheld wireless video receiver after a user of the
handheld wireless video receiver agrees to pay a fee for use of the
downloaded video, g) storing the downloaded video in a data memory
of handheld wireless video receiver, h) decompressing the
downloaded video to a format that is optimal for display on a touch
screen display on the handheld wireless video receiver, i)
displaying at least a portion of the decompressed video on the
display, j) playing an audio portion of the decompressed video on
an audio output of the handheld wireless video receiver, whereby
the user downloads and plays back video from the media
exchange.
69. A handheld wireless video receiver, comprising: a) a
computer-based circuit including a processor, a memory for storing
computer programs and data, and a decompressor for decompressing
compressed video frames, b) a color display coupled to the circuit,
c) a user interface coupled to the circuit and configured to
provide user interaction with computer programs operating in the
processor thereby providing user control to one or more programmed
functions, and d) a wireless network interface coupled to the
circuit for connecting to a wireless network via a communications
channel, for receiving a stream of compressed video frames from the
network, wherein the compressed video frames are stored into
memory, and the user interface controls playback by having the
circuit retrieve the compressed video frames from memory, send them
to the decompressor to thereby decompress the video frames, and
display the decompressed video frames on the color display.
70. The handheld wireless video receiver of claim 69, further
comprising: a) a video camera coupled to the circuit for capturing
video frames in real-time, and b) a compressor included with the
circuit for compressing the captured video frames, wherein the
compressed video frames are stored into memory, and the user
interface controls playback by having the circuit retrieve the
compressed video frames from memory, send them to the decompressor
to thereby decompress the video frames, and display the
decompressed video frames on the color display.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of co-pending U.S. patent
application Ser. No. 11/262,106, filed on Oct. 27, 2005, published
Jun. 1, 2006, as U.S. patent application publication 2006/0114987,
entitled "HANDHELD VIDEO TRANSMISSION AND DISPLAY," which hereby is
incorporated by reference.
[0002] U.S. patent application Ser. No. 11/262,106 is a
continuation in part of co-pending U.S. patent application Ser. No.
09/467,721, filed on Dec. 20, 1999, and entitled "VARIABLE GENERAL
PURPOSE COMPRESSION FOR VIDEO IMAGES (ZLN)", now U.S. Pat. No.
7,233,619, which hereby is incorporated by reference.
[0003] This application and application Ser. No. 09/467,721 claim
priority under 35 U.S.C. .sctn. 119(e) of U.S. provisional
application Ser. No. 60/113,051, filed on Dec. 21, 1998, and
entitled "METHODS OF ZERO LOSS (ZL) COMPRESSION AND ENCODING OF
GRAYSCALE IMAGES", which hereby is incorporated by reference.
[0004] My U.S. patent application Ser. No. 09/312,922, filed on May
17, 1999, and entitled "SYSTEM FOR TRANSMITTING VIDEO IMAGES OVER A
COMPUTER NETWORK TO A REMOTE RECEIVER," now U.S. Pat. No. ______,
is also hereby incorporated by reference.
[0005] My U.S. patent application Ser. No. 09/433,978, now U.S.
Pat. No. 6,803,931, filed on Nov. 4, 1999, and entitled GRAPHICAL
USER INTERFACE INCLUDING ZOOM CONTROL REPRESENTING IMAGE AND
MAGNIFICATION OF DISPLAYED IMAGE", is also hereby incorporated by
reference. A co-pending divisional application of U.S. Pat. No.
6,803,931, is U.S. patent application Ser. No. 10/890,079, filed on
Jul. 13, 2004, published on Dec. 9, 2004 as publication number
2004/0250216, and entitled GRAPHICAL USER INTERFACE INCLUDING ZOOM
CONTROL REPRESENTING IMAGE AND MAGNIFICATION OF DISPLAYED IMAGE",
and is also hereby incorporated by reference.
[0006] My U.S. patent application Ser. No. 09/470,566, now U.S.
Pat. No. 7,016,417, filed on Dec. 22, 1999, and entitled GENERAL
PURPOSE COMPRESSION FOR VIDEO IMAGES (RHN)", describes a
compression method known as the "RHN" method, and is also hereby
incorporated by reference.
[0007] My co-pending U.S. patent application Ser. No. 09/473,190,
filed on Dec. 20, 1999, and entitled "ADDING DOPPLER ENHANCEMENT TO
GRAYSCALE COMPRESSION (ZLD)" is also hereby incorporated by
reference.
[0008] My co-pending U.S. patent application Ser. No. 10/154,775,
filed on May 24, 2002, published as US 2003/0005428, and entitled
"GLOBAL MEDIA EXCHANGE" is also hereby incorporated by
reference.
[0009] U.S. patent application Ser. No. 09/436,432, filed on Nov.
8, 1999, and entitled "SYSTEM FOR TRANSMITTING VIDEO IMAGES OVER A
COMPUTER NETWORK TO A REMOTE RECEIVER," now U.S. Pat. No.
7,191,462, is wholly owned by the inventor of the present
invention.
BACKGROUND
[0010] 1. Field of the Invention
[0011] This invention relates to handheld devices for video
transmission, including video capture, wired and wireless file
transfer and live streaming, and display. Embodiments of the
invention relate to data compression, specifically to the
compression and decompression of video and still images, and relate
to graphical user interfaces for controlling video transmission and
display.
[0012] 2. Description of Prior Art
[0013] In the last few years, there have been tremendous advances
in the speed of computer processors and in the availability of
bandwidth of worldwide computer networks such as the Internet.
These advances have led to a point where businesses and households
now commonly have both the computing power and network connectivity
necessary to have point-to-point digital communications of audio,
rich graphical images, and video. However the transmission of video
signals with the full resolution and quality of television is still
out of reach. In order to achieve an acceptable level of video
quality, the video signal must be compressed significantly without
losing either spatial or temporal quality.
[0014] A number of different approaches have been taken but each
has resulted in less than acceptable results. These approaches and
their disadvantages are disclosed by Mark Nelson in a book entitled
The Data Compression Book, Second Edition, published by M&T
Book in 1996. Mark Morrision also discusses the state of the art in
a book entitled The Magic of Image Processing, published by Sams
Publishing in 1993.
Video Signals
[0015] Standard video signals are analog in nature. In the United
States, television signals contain 525 scan lines of which 480
lines are visible on most televisions. The video signal represents
a continuous stream of still images, also known as frames, that are
fully scanned, transmitted and displayed at a rate of 30 frames per
second. This frame rate is considered full motion.
[0016] A television screen has a 4:3 aspect ratio.
[0017] When an analog video signal is digitized each of the 480
lines is sampled 640 times, and each sample is represented by a
number. Each sample point is called a picture element, or pixel. A
two dimensional array is created that is 640 pixels wide and 480
pixels high. This 640.times.480 pixel array is a still graphical
image that is considered to be full frame. The human eye can
perceive 16.7 thousand colors. A pixel value comprised of 24 bits
can represent each perceivable color. A graphical image made up of
24-bit pixels is considered to be full color. A single,
second-long, full frame, full color video requires over 220
millions bits of data.
[0018] The transmission of 640.times.480 pixels.times.24 bits per
pixel times 30 frames requires the transmission of 221,184,000
million bits per second. A Ti Internet connection can transfer up
to 1.54 million bits per second. A high-speed (56 Kb) modem can
transfer data at a maximum rate of 56 thousand bits per second. The
transfer of full motion, full frame, full color digital video over
a TI Internet connection, or 56 Kb modem, will require an effective
data compression of over 144:1, or 3949:1, respectively.
[0019] A video signal typically will contain some signal noise. In
the case where the image is generated based on sampled data, such
as an ultrasound machine, there is often noise and artificial
spikes in the signal. A video signal recorded on magnetic tape may
have fluctuations due the irregularities in the recording media.
Florescent or improper lighting may cause a solid background to
flicker or appear grainy. Such noise exists in the real world but
may reduce the quality of the perceived image and lower the
compression ratio that could be achieved by conventional
methods.
Basic Run-length Encoding
[0020] An early technique for data compression is run-length
encoding where a repeated series of items are replaced with one
sample item and a count for the number of times the sample repeats.
Prior art shows run-length encoding of both individual bits and
bytes. These simple approaches by themselves have failed to achieve
the necessary compression ratios.
Variable Length Encoding
[0021] In the late 1940s, Claude Shannon at Bell Labs and R.M. Fano
at MIT pioneered the field of data compression. Their work resulted
in a technique of using variable length codes where codes with low
probabilities have more bits, and codes with higher probabilities
have fewer bits. This approach requires multiple passes through the
data to determine code probability and then to encode the data.
This approach also has failed to achieve the necessary compression
ratios.
[0022] D. A. Huffman disclosed a more efficient approach of
variable length encoding known as Huffman coding in a paper
entitled "A Method for Construction of Minimum Redundancy Codes,"
published in 1952. This approach also has failed to achieve the
necessary compression ratios.
Arithmetic, Finite Context, and Adaptive Coding
[0023] In the 1980s, arithmetic, finite coding, and adaptive coding
have provided a slight improvement over the earlier methods. These
approaches require extensive computer processing and have failed to
achieve the necessary compression ratios.
Dictionary-Based Compression
[0024] Dictionary-based compression uses a completely different
method to compress data. Variable length strings of symbols are
encoded as single tokens. The tokens form an index to a dictionary.
In 1977, Abraham Lempel and Jacob Ziv published a paper entitled,
"A Universal Algorithm for Sequential Data Compression" in IEEE
Transactions on Information Theory, which disclosed a compression
technique commonly known as LZ77. The same authors published a 1978
sequel entitled, "Compression of Individual Sequences via
Variable-Rate Coding," which disclosed a compression technique
commonly known as LZ78 (see U.S. Pat. No. 4,464,650). Terry Welch
published an article entitled, "A Technique for High-Performance
Data Compression," in the June 1984 issue of IEEE Computer, which
disclosed an algorithm commonly known as LZW, which is the basis
for the GIF algorithm (see U.S. Pat. Nos. 4,558,302, 4,814,746, and
4,876,541). In 1989, Stack Electronics implemented a LZ77 based
method called QIC-122 (see U.S. Pat. No. 5,532,694, U.S. Pat. No.
5,506,580, and U.S. Pat. No. 5,463,390).
[0025] These lossless (method where no data is lost) compression
methods can achieve up to 10:1 compression ratios on graphic images
typical of a video image. While these dictionary-based algorithms
are popular, these approaches require extensive computer processing
and have failed to achieve the necessary compression ratios.
JPEG and MPEG
[0026] Graphical images have an advantage over conventional
computer data files: they can be slightly modified during the
compression/decompression cycle without affecting the perceived
quality on the part of the viewer. By allowing some loss of data,
compression ratios of 25:1 have been achieved without major
degradation of the perceived image. The Joint Photographic Experts
Group (JPEG) has developed a standard for graphical image
compression. The JPEG lossy (method where some data is lost)
compression algorithm first divides the color image into three
color planes and divides each plane into 8 by 8 blocks, and then
the algorithm operates in three successive stages: [0027] (a) A
mathematical transformation known as Discrete Cosine Transform
(DCT) takes a set of points from the spatial domain and transforms
them into an identical representation in the frequency domain.
[0028] (b) A lossy quantization is performed using a quantization
matrix to reduce the precision of the coefficients. [0029] (c) The
zero values are encoded in a zig-zag sequence (see Nelson, pp.
341-342).
[0030] JPEG can be scaled to perform higher compression ratio by
allowing more loss in the quantization stage of the compression.
However this loss results in certain blocks of the image being
compressed such that areas of the image have a blocky appearance
and the edges of the 8 by 8 blocks become apparent because they no
longer match the colors of their adjacent blocks. Another
disadvantage of JPEG is smearing. The true edges in an image get
blurred due to the lossy compression method.
[0031] The Moving Pictures Expert Group (MPEG) uses a combination
of JPEG based techniques combined with forward and reverse temporal
differencing. MPEG compares adjacent frames and, for those blocks
that are identical to those in a previous or subsequent frame, only
a description of the previous or subsequent identical block is
encoded. MPEG suffers from the same blocking and smearing problems
as JPEG.
[0032] These approaches require extensive computer processing and
have failed to achieve the necessary compression ratios without
unacceptable loss of image quality and artificially induced
distortion.
QuickTime: CinePak, Sorensen, H.263
[0033] Apple Computer, Inc. released a component architecture for
digital video compression and decompression, named QuickTime. Any
number of methods can be encoded into a QuickTime
compressor/decompressor (codec). Some popular codec are CinePak,
Sorensen, and H.263. CinePak and Sorensen both require extensive
computer processing to prepare a digital video sequence for
playback in real time; neither can be used for live compression.
H.263 compresses in real time but does so by sacrificing image
quality resulting in severe blocking and smearing.
Fractal and Wavelet Compression
[0034] Extremely high compression ratios are achievable with
fractal and wavelet compression algorithms. These approaches
require extensive computer processing and generally cannot be
completed in real time.
Sub-sampling
[0035] Sub-sampling is the selection of a subset of data from a
larger set of data. For example, when every other pixel of every
other row of a video image is selected, the resulting image has
half the width and half the height. This is image sub-sampling.
Other types of sub-sampling include frame sub-sampling, area
sub-sampling, and bit-wise sub-sampling.
Image Stretching
[0036] If an image is to be enlarged but maintain the same number
of pixels per inch, data must be filled in for the new pixels that
are added. Various methods of stretching an image and filling in
the new pixels to maintain image consistency are known in the art.
Some methods known in the art are dithering (using adjacent colors
that appear to be blended color), and error diffusion, "nearest
neighbor", bilinear and bicubic.
Portable Hand Held Devices: Pen-based Computers and PDAs
[0037] In the early 1990s, a number of pen based computers were
developed. These portable computers were characterized by a display
screen that could be also used as an input device when touched or
stroked with a pen or finger. For example in 1991, NCR developed a
"notepad" computer, the NCR 3125. Early pen-based computers ran
three operating systems: DOS, Microsoft's Windows for Pen Computing
and Go Corp.'s PenPoint. In 1993, Apple developed the Newton
MessagePad, an early personal digital assistant (PDA). Palm
developed the Palm Pilot in 1996. Later, in 2002, Handspring
released the Treo which runs the Palm OS and features a Qwerty
keyboard. In 2000, the Sony Clie, used the Palm OS and could play
audio files. Later versions included a built-in camera and could
capture and play Apple QuickTime.TM. video. Compaq (now Hewlett
Packard) developed the iPAQ in 2000. The iPAQ and other PocketPCs
run a version of Windows CE. Some PocketPC and PDA have wireless
communication capabilities.
[0038] In 2001, Apple released a music player, called the iPod,
featuring a small, internal hard disk drive that could hold over
1000 songs and fit in your pocket. The original iPod has a display,
a set of controls, and ports for connecting to a computer, such as
a Macintosh or PC, via Firewire, and for connecting to headphones.
However, the original iPod did not have a color display, a built-in
camera, built-in speakers, built-in microphone or wireless
communications.
Portable Hand Held Devices: Cell Phone and Picture Phones
[0039] The first cellular telephones had simple LCD displays
suitable for displaying only a limited amount of text. More
recently, cell phones have been developed which have larger, higher
resolution displays that are both grayscale and color. Some cell
phones have been equipped with built-in cameras with the ability to
save JPEG still photos to internal memory. In April 2002, Samsung
introduced a cell phone with a built-in still photo camera and a
color display. The Samsung SCH-X590 can store up to 100 photos in
its memory and can transfer still photos wirelessly.
[0040] Cell phones can be used as wireless modems. Initially they
had limited data bandwidth. Next, digital cell phones were
developed. By early 2002, bandwidth was typically 60-70 Kbps.
Higher bandwidth wireless networks are being developed.
Hand Held Devices are Limited is Size and Weight
[0041] Hand held devices are limited in size and weight. Many users
are only willing to use a handheld device that weights a few ounces
and can fit inside a typical shirt pocket, or even worn on their
waist or arm. These size and weight limitation prevent handheld
devices from having the electronic circuitry, processors, and
batteries found in laptops and other larger computers. These
limitations have made it impossible to provide full frame, full
motion video display or live transmission on handheld devices.
PDAs, PocketPCs, and Picture Phones are Limited by Battery Life,
Processor Speed, and Network Bandwidth
[0042] The existing, commercially available hand held devices have
not been able to support live or streaming video for a number of
reasons. Uncompressed full-motion, full frame video requires
extremely high bandwidth that is not available to handheld portable
devices. In order to reduce the bandwidth, lossy compression such
as MPEG has been used to reduce the size of the video stream. While
MPEG is effective in desktop computers with broadband connections
to the Internet, decoding and displaying MPEG encoded video is very
processor intensive. The processors of existing handheld devices
are slower or less powerful than those used in desktop computers.
If MPEG were used in a handheld device, the processor would quickly
drains the battery of most handheld devices. Further, the higher
bandwidth wireless communications interfaces would also place a
large strain on the already strained batteries. Live video
transmission and reception would be even more challenging. For this
reason, handheld device have not been able to transmit or receive
streaming, or especially, live video.
[0043] What is needed is an enhanced handheld device that is
capable of receiving streaming and live video. Further a handheld
device that could capture and transmit live video would provide
live coverage of events that would otherwise not be able to be
seen. With handheld video devices that both transmit and receive
live video, handheld wireless videoconferencing could become a
reality. Also a video compression method that requires
significantly reduced processing power and would be less draining
on the battery of a handheld device is needed. Additionally since,
handheld video display screens which are smaller than typical
computer screens, a user of a handheld video receiver needs to be
able control the portion of a video be transmitted to allow a
smaller, higher quality video to be received and viewed on the
handheld screen with dimensions smaller than the original
video.
SUMMARY OF THE INVENTION
[0044] In accordance with the present invention a handheld device
comprises a black and white or color video display screen, speakers
or headphones for hearing audio associated with the video display,
controls for user input, a memory for storing compressed video
data, and a processor for running computer programs which
decompress the compressed video data and play the video on the
display screen, and the video's audio on speakers and/or
headphones. Further, some embodiments of the present invention
include a microphone and video camera for inputting audio and
video. A plurality of handheld video devices are connected to a
network for exchanging video file, streaming video from a
pre-recorded video file or live transmission from one device to one
or more devices in remote locations. The network connections can be
wired or wireless.
[0045] One embodiment of the present invention comprises a video
camera that can be removably mounted on an iPod-type device to add
the video capture capability. Further the separate camera unit
could include a microphone or speakers. Further, wireless
communications could be added to the separate camera unit or as yet
another removable unit.
[0046] Further, the present invention includes a method of
compression of a video stream comprising steps of sub-sampling a
video frame, and run-length encoding the sub-sampled pixel values,
whereby the method can be executed in real time, and whereby the
compressed representation of pixels saves substantial space on a
storage medium and requires substantially less time and bandwidth
to be transported over a communications link. The present invention
includes a corresponding method for decompressing the encoded
data.
[0047] Further, the present invention includes a zoom control that
is graphically displayed on the display screen and receives input
from either the touch screen or the controls of the handheld
device. A user may use the zoom control to send remote control
commands to a transmitting device to dynamically specify an area to
be transmitted. Alternatively, the user may use the zoom control to
magnify video that is being played from a file.
Objects and Advantages
[0048] Accordingly, beside the objects and advantages of the method
described above, some additional objects and advantages of the
present invention are: [0049] (a) to provide a handheld device for
capturing audio and video which can be transmitted to another video
display device. [0050] (b) to provide a handheld device for
displaying video that has been received from a video capture and
transmission device. [0051] (c) to provide a handheld wireless
video conferencing system comprising handheld devices which act as
both transmitters and receivers connected over a data network.
[0052] (d) to provide an add-on module that will allow an iPod-type
device to capture, transmit, or receive video. [0053] (e) to
provide a graphical zoom control on a hand held video display
device whereby the user can remotely control the area of the video
that is being transmitted in high resolution. [0054] (f) to provide
a graphical zoom control on a hand held video display device
whereby the user can magnify a video being displayed. [0055] (g) to
provide a method of compressing and decompressing video signals so
that the video information can be transported across a digital
communications channel in real time. [0056] (h) to provide a method
of compressing and decompressing video signals such that
compression can be accomplished with software on commercially
available computers without the need for additional hardware for
either compression or decompression. [0057] (i) to provide a high
quality video image without the blocking and smearing defects
associated with prior art lossy methods. [0058] (j) to provide a
high quality video image that suitable for use in medical
applications. [0059] (k) to enhance images by filtering noise or
recording artifacts. [0060] (l) to provide a method of compression
of video signals such that the compressed representation of the
video signals is substantially reduced in size for storage on a
storage medium. [0061] (m) to provide a level of encryption so that
images are not directly viewable from the data as contained in the
transmission.
DRAWING FIGURES
[0062] In the drawings, closely related figures have the same
number but different alphabetic suffixes.
[0063] FIG. 1 shows the high level steps of compression and
decompression of an image.
[0064] FIGS. 2A to 2H show alternatives for selecting a pixel value
for encoding.
[0065] FIG. 3A shows the variable encoding format.
[0066] FIG. 3B shows an example of a code where N is 5 bits wide
and U is 3 bits wide.
[0067] FIG. 4A shows the flowchart for the compression method.
[0068] FIG. 4B shows an image and a corresponding stream of
pixels.
[0069] FIGS. 5A to 5C shows the formats for the run-length encoding
of the RHN method.
[0070] FIG. 6 shows a series of codes and the resulting encoded
stream.
[0071] FIG. 7 shows a series of codes and the resulting encoded
stream of the RHN method.
[0072] FIG. 8A shows examples of variable formats.
[0073] FIG. 8B shows a format that preserves 9 bits of color.
[0074] FIG. 9 shows the flow chart for the decompression
method.
[0075] FIG. 10 shows image stretching by interpolation.
[0076] FIGS. 11A and 11B show an encryption table and a decryption
table.
[0077] FIGS. 12A and 12B show machines for compressing and
decompressing, respectively.
[0078] FIG. 12C shows a compressor and decompressor connected to a
storage medium.
[0079] FIG. 12D shows a compressor and decompressor connected to a
communications channel.
[0080] FIG. 13A shows elements of a compressor.
[0081] FIG. 13B shows an embodiment of an encoding circuit.
[0082] FIG. 13C shows a generic pixel sub-sampler.
[0083] FIGS. 13D through 13J show embodiments of pixel
sub-samplers.
[0084] FIGS. 14A through 14C shows embodiments of a machine element
for variably altering the number of bits.
[0085] FIG. 15 shows elements of a decompressor.
[0086] FIG. 16A shows elements for setting width, height, frame
rate, brightness, and contrast which are variably altered by a
receiver.
[0087] FIG. 16B shows elements for setting the number of pixel bits
that are variably altered by a receiver.
[0088] FIG. 17 shows a lossless compression step for further
compression of an encoded data buffer.
[0089] FIG. 18 shows images being enlarged by stretching.
[0090] FIGS. 19A through 19C show various network configuration
comprising handheld video devices.
[0091] FIGS. 20A through 20D show various embodiments of handheld
video devices.
[0092] FIGS. 21A through 21C show handheld video devices comprising
graphical zoom controls.
REFERENCE NUMERALS IN DRAWINGS 100 compression steps 228 averaged
value 110 sub-sampling step 230 blue selection diagram 130 encoding
step 232 blue instance 140 encoded data 234 green instance 150
decompression steps 236 red instance 160 decoding step 240 selected
blue value 180 image reconstitution step 250 green selection
diagram 200 32 bit pixel value 260 selected green value 202 blue
channel 270 red selection diagram 204 green channel 280 selected
red value 206 red channel 290 grayscale pixel 208 alpha channel 292
grayscale blue 210 24 bit pixel value 294 grayscale green 212 blue
component 296 grayscale red 214 green component 298 selected
grayscale value 216 red component 299 filtered pixel value 220 RGB
averaging diagram 300 N 222 blue value 301 U 224 green value 302 W
226 red value 310 pixel bit 7 312 pixel bit 6 570 data bit 5 314
pixel bit 5 575 data bit 4 316 pixel bit 4 580 data bit 3 318 pixel
bit 3 585 data bit 2 320 pixel bit 2 590 data bit 1 322 pixel bit 1
595 data bit 0 324 pixel bit 0 610 decimal values 325 8 bit pixel
620 first value 330 5 bit sample 622 second value 332 sample bit 4
624 third value 334 sample bit 3 626 fourth value 336 sample bit 2
628 fifth value 338 sample bit 1 630 sixth value 340 sample bit 0
632 seventh value 350 3 low order bits 640 binary code 360
formatted code 650 first byte 362 encoded bit 4 651 first data 364
encoded bit 3 652 first count 366 encoded bit 2 653 second byte 368
encoded bit 1 654 second data 370 encoded bit 0 655 second count
380 3 bit count value 656 third byte 400 encode flowchart 657 third
data 402 encode entry 658 third count 403 encode initialization
step 740 RHN binary code 404 get pixel step 803 ZL3 format 405 get
value step 804 ZL4 format 406 lookup encoded value step 805 ZL5
format 408 compare previous 808 ZL8 format 410 increment counter
step 809 ZL9 format 412 check count overflow 812 ZL12 format 414
new code step 820 ZL9C format 416 check end of data 900 decode
entry 418 set done 901 decode initialize step 420 counter overflow
step 902 get code step 422 check done 908 decode lookup step 428
encode exit 909 check zero count 430 image 910 place pixel step 440
image width 914 reset counter step 450 image height 916 check
length 460 pixel stream 918 decode exit 500 code byte 920 decode
flowchart 510 flag bit 1010 first adjacent pixel 520 repeat code
1012 second adjacent pixel 530 count 1014 first subsequent adjacent
pixel 550 data code 1016 second subsequent adjacent pixel 560
wasted bits 1052, 1054, 1056, 1058, 1060 565 data bit interpolated
pixels 1100 encryption table 1383 value path 1110 decryption table
1384 coder 1200 video frames 1385 path 1385 1205a first video frame
1390 data/count 1205b second video frame 1392 code index 1205n nth
video frame 1395 path 1395 1210 compressor 1400 24-bit to variable
bit sub-sampler 1215 video signal 1401 generic 3-bit sub-sampler
1220 series of encoded data 1402 generic 4-bit sub-sampler 1225
encoded data buffer 1403 generic 8-bit sub-sampler 1225a first
encoded data 1404 generic 10-bit sub-sampler 1225b second encoded
data 1410 number of bits selector 1225n nth encoded data 1420
number of bits indicator 1230 received encoded data 1430 36-bit to
variable bit sub-sampler 1230a first received encoded data 1440
24/36 bit variable bit sub-sampler 1230b second received encoded
data 1450 second selector 1230n nth received encoded data 1460
selection logic 1235 encoded data stream 1470 selection signal 1238
received encoded data 1510 decoding circuit 1240 I/O device 1520
decoded pixel values 1245 input encoded data stream 1530 decoder
pixel index 1250 decompressor 1540 image memory 1260 decoded video
frame 1600 transmitter 1260a first decoded video frame 1610
receiver 1260b second decoded video frame 1615 setting control path
1260n nth decoded video frame 1620 frame sub-sampler 1268 decoded
video frames 1621 path 1621 1270 video sequence 1630 selected frame
1280 storage medium 1632 pixel from frame 1290 communications
channel 1640 transmitter pixel sub-sampler 1310 video digitizer
1642 path 1642 1320 path 1320 1650 run length encoder 1330 video
memory 1660 settings 1331 scan 1661 brightness 1332 pixel index
1662 contrast 1340 path 1340 1663 height 1350 encoding circuit 1664
width 1360 path 1360 1665 frame rate 1370 encoded data 1670 frame
selector 1380 pixel sub-sampler 1675 frame select indicator 1380a
24 to 5 bit sub-sampler 1680 number of pixel bits setting 1380b
24-bit RGB to 5 bit sub-sampler 1690 alternate transmitter 1380c
32-bit RGB to 5 bit sub-sampler 1700 run-length encoding step 1380d
color 9-bit sub-sampler 1710 run-length encoded output 1380e YUV
sub-sampler 1720 further lossless compression step 1380f 36-bit RGB
to 24-bit sub-sampler 1730 further lossless compression 1380g
15-bit sub-sampler output 1382 pixel extractor 1800 unstretched
frame 1810 enlarged image 2022c integrated microphone 1820
stretching step 2022d phone microphone 1901a first video 2023 left
speaker 1901b first reflected video 2023b left built-in speaker
1902a second video 2023c left integrated speaker 1902b second
reflected video 2023d left phone speaker 1910 network 2024
speaker/microphone cable 1910a wired network 2030 camera 1910b
wireless network 2030b built-in camera 1910c combined network 2030c
integrated camera 1920a first node 2030d phone camera 1920b second
node 2032 lens 1920c third node 2034 camera cable 1920d fourth node
2040 second handheld device 1920e fifth node 2050 wireless
connection 1930 reflector 2051 wired connection 1940 point-to-point
transmission 2051a first wired connection 1942 first indirect path
2051b second wired connection 1944 second indirect path 2052 video
source 2010 first handheld device 2054 video transmitter 2012
display 2056 video storage 2012b second display 2060 integrated
handheld device 2012d phone display 2062 A/V module 2014 controls
2064 wireless module 2014d phone controls 2070 cellular integrated
device 2016 wireless port 2100 zoom control 2016b second wireless
port 2102a inner region 2016c integrated wireless port 2102b second
inner region 2016d cellular port 2102c third inner region 2020
headphone 2104a magnification factor 2021 right speaker 2104b
second magnification factor 2021b right built-in speaker 2104c
third magnification factor 2021c right integrated speaker 2106a
outer region 2021d right phone speaker 2106b second outer region
2021e phone earphone 2106c second outer region 2022 microphone
2110a video display window 2022b built-in microphone 2110b
alternate video display window
DESCRIPTION OF THE INVENTION
FIG. 1--Compression and Decompression Steps
[0093] FIG. 1 illustrates a sequence of compression steps 100 and a
sequence of decompression steps 150 of the present invention. The
compression steps 100 comprise a sub-sampling step 110 and an
encoding step 130. After completion of the compression steps 100, a
stream of encoded data 140 is output to either a storage medium or
a transmission channel. The decompression steps 150 comprise a
decoding step 160 wherein the stream of encoded data 140 is
processed and an image reconstitution step 180.
FIGS. 2A to 2H Selecting Pixel Values for Encoding
[0094] FIGS. 2A to 2G illustrate alternatives for selecting a pixel
value for encoding. The sub-sampling step 110 (FIG. 1) includes
sub-sampling of a pixel value to obtain a variable selected number
of bits.
[0095] Video digitizing hardware typical has the options of storing
the pixel values as a 32 bit pixel value 200 or a 24 bit pixel
value 210, shown in FIG. 2A and FIG. 2B, respectively. The 32 bit
pixel value 200 is composed of a blue channel 202, a green channel
204, a red channel 206, and an alpha channel 208. Each channel
contain 8 bits and can represent 256 saturation levels for the
particular color channel. For each channel the saturation intensity
value of zero represents the fully off state, and the saturation
intensity value of "255" represents the fully on state. A common
alternative not shown is a sixteen-bit format where the three color
channels contain 5 bits each and the alpha channel is a single bit.
The present invention anticipates the use of the color channels of
16 bit pixel value is a manner substantially the same as the 32-bit
pixel value 200 except the number of bits per channel is 5 instead
of 8.
[0096] The 24-bit pixel value 210 is composed of a blue component
212, a green component 214, and a red component 216. There is no
component for the alpha channel in the 24 bit pixel value 210.
Regardless of the structure, the blue channel 202 is equivalent to
the blue component 212, the green channel 204 is equivalent to the
green component 214, and the red channel 206 is equivalent to the
red component 216.
[0097] In the present invention, the 32 bit pixel value 200
alternative is preferred due to the consistent alignment of 32 bit
values in most computer memories; however for simplicity of
illustration the alpha channel 208 will be omitted in FIGS. 2C to
2G.
[0098] If the video signal is digitized in color, the three color
components may have different values. For example in FIG. 2C, a RGB
averaging diagram 220 illustrates a blue value 222 of 35 decimal, a
green value 224 of 15, and a red value 226 of 10. One alternative
is to sub sample from 24 bits to 8 bits by averaging the three
color values to obtain an averaged value 228 that, in this example,
has the value of 20. (10+15+35)/3=20. This will produce a grayscale
image. Alternatively, a color image can be preserved by sampling
bits from each color component (see FIG. 8B).
[0099] FIG. 2D illustrates another alternative for selecting an 8
bit value in a blue selection diagram 230. In this example, a blue
instance 232 has the value of 35, a green instance 234 has the
value of 15, and a red instance 236 has the value of 10. In this
alternative the blue instance 232 is always selected as a selected
blue value 240.
[0100] FIG. 2E illustrates another alternative for selecting an 8
bit value in a green selection diagram 250. In this alternative the
green instance 234 is always selected as a selected green value
260.
[0101] FIG. 2F illustrates another alternative for selecting an 8
bit value in a red selection diagram 270. In this alternative the
red instance 236 is always selected as a selected red value
280.
[0102] If the video signal being digitized is grayscale, the three
color components will have the same values. For example in FIG. 2G,
a grayscale pixel 290 comprises a grayscale blue 292 with a value
of decimal 40, a grayscale green 294 with a value of 40, and a
grayscale red with a value of 40. Because the values are all the
same, it makes no difference which grayscale color component is
selected, a selected grayscale value 298 will have the value of 40
in this example.
[0103] The preferred embodiment of this invention uses the low
order byte of the pixel value, which is typically the blue
component as shown in FIG. 2D.
[0104] FIG. 2H illustrates a filtered pixel value 299 of 8 bits
that may be selected by one of the alternatives described above. In
these examples, the filtered pixel value 299 is equivalent to items
referenced by numerals 228, 240, 260, 280, or 298. This reduction
of the 32 bit pixel value 200 or the 24 bit pixel value 210
contributes a reduction in data size of 4:1 or 3:1, respectively.
This reduction recognizes that for some images, such as medical
images or grayscale images, no relevant information is lost.
[0105] For additional compression, the filtered pixel value 299 can
variably select any number of bits. For example, selection of the
most significant four bits instead of all eight bits filters noise
that may show up in the low order bits may be very suitable for an
image such as one produced by an ultrasound medical device. An
example of this is shown by ZL4 804 in FIG. 8A.
FIGS. 3A and 3B--Encoding Formats
[0106] Speed of compression and decompression may be enhanced if
the algorithms fit into computer memory native storage elements
such as 8 bit bytes, 16 bit words, or 32 bit double words, or some
other size for which the computer architecture is optimized.
[0107] A grayscale image may be stored at a higher bit level than
the actual values require. This may occur when an image is
generated by an imaging technology such as radar, ultrasound,
x-ray, magnetic resonance, or similar electronic technology. For
example an ultrasound machine may only produce 16 levels of
grayscale, requiring 4 bits of data per pixel, but the image
digitizing may be performed at 8 to 12 bits per pixel. In this
example, the low order bits (4 to 8) respectively provide no
significant image data.
[0108] In the present invention, a fast and efficient compression
and encoding method is implemented by using unused bits to store a
repeat count for repeated values.
[0109] The most significant N bits of the pixel value are selected
where N is the number of significant bits (determined by data
analysis or by user selection). If N is less than W, where W is a
native machine data type such as 8 bit byte, 16 bit word, or 32 bit
double word or some other size for which the computer architecture
is optimized, then W-N equals the number of unneeded bits, U. A
repeat count, C, can contain a value from 1 to CMAX where CMA is 2
to the power of U. For example, if U equals 4, C can be a number
from 1 to 16. In practice the maximum value will be encoded as a
zero because the high order bit is truncated. In the example,
decimal 16 has a binary value "10000" will be stored as "0000".
[0110] For example, when W is 8, value pairs for N and U could
include without limitation (2,6), (3,5), (4,4), (5,3), and (6,2).
When W is 16, value pairs for N and U could include without
limitation (2, 14), (3, 13), (4, 12), (5, 11), (6, 10), (7, 9), (8,
8), (9, 7), (10, 6), (11, 5), (12, 4), (13, 3), and (14, 2). When W
is 32, value pairs for N and U could include without limitation all
combinations of values pairs for N and U where N+U equals 32 and
N>1 and U>1. When W is not a multiple of 8, value pairs for N
and U could include without limitation all combinations of values
pairs for N and U where N+U equals W and N>1 and U>1.
[0111] FIG. 3A shows the encoded format where N 300 represent the N
most significant bits of the pixel value 299, U 301 represents the
bits that are not used for the data and are used for the repeat
count, and W 302 where W is the width of the encoded data and equal
to sum of N and U
[0112] FIG. 3B illustrates bit sub-sampling where N's 300 bit width
is 5, U's 301 bit width is 3, and W 302 is 8. The high order 5 bits
310-318 of an 8 bit pixel 325 are extracted to form a five bit
sample 330. The lower 3 bits of 330 are ignored bits 350. In the
formatted code 360, the ignored bits 350 are replaced with the
repeat count value 380.
Encoding
[0113] The most significant N bits of each pixel are selected from
the image to obtain value V.
[0114] In the encryption embodiment of this invention V may be used
to select an encoded value, E, from the encoding table. E is also a
N-bit value. The number of elements in the encode table 1100 (FIG.
11) is 2 to the Nth power.
[0115] In the other embodiments of this invention V is used as
E.
[0116] E is saved as the prior value, P. For each subsequent pixel,
the encoded value, E, is obtained and compared to the prior value,
P. If the prior value, P, is the same as E, then a repeat counter,
C, is incremented; otherwise the accumulated repeat count, C, for
the prior value, P, is merged with P and placed in an array A that
implements the encoded data 140 (FIG. 1) buffer. For example, if W
is 8 and N is 4 and C is 10, U is 4, CMAX is 16, and
((P<<U)|C) is the merged value. If the repeat count, C, is
greater CMAX, then CMAX is merged with P ((P<<U)|CMAX) and
placed in the encoded data 140 (FIG. 1) buffer, A. CMAX is
subtracted from C and merged values are placed in A until C is less
than CMAX. All pixels are processed in this manner until the final
value is compressed and encoded. The length, L, of the encoded data
140 (FIG. 1) is also placed in the encoded data 140 buffer.
FIG. 4A--Encode Flowchart
[0117] FIG. 4A illustrates the encode flowchart 400 which
represents the details of the encryption embodiment of the encoding
step 130 (FIG. 1) for the present invention.
[0118] The encoding begins at an encode entry 402. In an encode
initialization step 403, a prior value P is set to a known value,
preferably decimal "255" or hexadecimal 0.times.FF, a repeat
counter C is set to zero, an encoded length L is set to 0, and a
completion flag "Done" is set to a logical value of false. Next, a
get pixel step 404 obtains a pixel from the image being encoded. At
a get value step 405, a value V is set to the N bit filtered pixel
value 299 as derived from the pixel using one of the methods shown
in FIGS. 2C to 2G, preferably the fastest as explained above, and
extracting the N most significant bits. At a lookup encoded value
step 406, an encoded value E is set to the value of one of the
codes 1105 (FIG. 11A) of the encode table 1100 as indexed by V. (In
the non-encrypted embodiment of this invention, step 406 is
bypassed because V is used as E) Next, a compare previous 408
decision is made by comparing the values of E and P. If the values
are the same, an increment counter step 410 is executed and flow
continues to the get pixel step 404 that obtains the next pixel
from the image.
[0119] If the encode value E does not match the prior value P, then
a check count overflow 412 decision is made. If the counter C is
less than or equal to CMAX, then a new code step 414 is executed,
otherwise a counter overflow step 420 is executed.
[0120] At step 414, the counter C is masked and bit-wise OR-ed with
P shifted left by U bit positions and is placed in the A at the
next available location as indexed by the encoded length L. Then,
continuing inside flowchart step 414, L is incremented, the repeat
count C is set to 1 and the prior value P is set to E. After step
414, a "check end of data" decision is made by checking to see if
there are any more pixels in the image, and, if not, if the last
value has been processed. Because this method utilizes a read ahead
technique step 414 must be executed one more time after the end of
data is reached to process the last run-length. If there is more
data in the image, flow continues to a check of the completion flag
"Done" at step 422. If the check indicates that the process is not
completed, flow continues to step 404.
[0121] If the end of data is reached but the completion flag "Done"
is still false, flow continues to a set done step 418. At step 418,
the completion flag "Done" is set to logical true, and flow
continues to decision 412 where the last run-length will be output
and flow will eventually exit through step 414, decision 416,
decision 422, and then terminate at encode exit 428.
[0122] It is possible for the repeat count C to become larger than
CMAX requiring more bits than allocated by this method. This
situation is handled by making the check count overflow 412
decision and executing the counter overflow step 420. At step 420,
the counter C is masked and bit-wise OR-ed with P shifted left by U
bit positions and is placed in the A at the next available location
as indexed by the encoded length L. Then, continuing inside
flowchart step 414, L is incremented, and the repeat count C is
decrement by CMAX. After step 420, flow continues to the check
count overflow 412 decision. Thus when the encode value E repeats
more than CMAX times, multiple sets of repeat counts and encoded
values are output to the encoded data 140 buffer.
[0123] This entire process is repeated for each image or video
frame selected during optional image sub-sampling (see 110 in FIG.
1) and the encoded length L is transmitted with the encoded data
associated with each frame. The encoded length varies from frame to
frame depending on the content of the image being encoded.
FIG. 4B--Image and Pixel Stream
[0124] FIG. 4B illustrates an image and its corresponding stream of
pixels. A rectangular image 430 is composed of rows and columns of
pixels. The image 430 has a width 440 and a height 450, both
measured in pixels. In this illustrative embodiment, pixels in a
row are accessed from left to right. Rows are accessed from top to
bottom. Some pixels in the image are labeled from A to Z. Pixel A
is the first pixel and pixel Z is the last pixel. Scanning left to
right and top to bottom will produce a pixel stream 460. In the
pixel stream 460, pixels A and B are adjacent. Also pixels N and O
are adjacent even though they appear on different rows in the
image. If adjacent pixels have the same code the process in FIG. 4A
will consider them in the same run.
[0125] Because the video signal being digitized is analog there
will be some loss of information in the analog to digital
conversion. The video digitizing hardware can be configured to
sample the analog data into the image 430 with almost any width 440
and any height 450. The present invention achieves most of its
effective compression by sub-sampling the data image with the width
440 value less than the conventional 640 and the height 450 value
less than the convention 480. In a preferred embodiment of the
invention, for use in a medical application with TI Internet
transmission bandwidth, image dimensions are sub-sampled at 320 by
240. However an image dimension sub-sampling resolution of 80 by 60
may be suitable for some video application.
FIGS. 5A to 5C-Run-length Encoding Formats of the RHN Method
[0126] FIGS. 5A to 5C show use of a different structure than the
present invention. FIGS. 5A to 5C show the formats for the
run-length encoding of RHN. In FIG. 5A, a code byte 500, with its
high order bit designated as a flag bit 510.
[0127] FIG. 5B shows a repeat code 520 comprising a Boolean value
one in its flag bit 510 and a 7 bit count 530 in the remaining 7
low order bits. The seven bit count 530 can represent 128 values
with a zero representing "128" and 1 through 127 being their own
value.
[0128] FIG. 5C shows a data code 550 comprising: [0129] 1. a
Boolean value zero in its flag bit 510 [0130] 2. two unused data
bits: data bit 6 reference by 565 and data bit 5 reference by 570,
and [0131] 3. five bits, data bits 4 to 0, reference by 575, 580,
585, 590, and 595, respectively.
[0132] FIG. 5C shows that in every byte of the RHN data code 550
two bits are unused and one bit is used for the flag bit, so that
only five of the eight bits are used for data. The remaining three
bits are wasted bits 560. The present invention uses a different
structure by placing the repeat count in bits that the RHN format
would not have used for data (U). The corresponding ZLN format, ZL5
(where N is 5, U is 3, and W is 8), always uses five bits for data
and the remaining 3 bits for the repeat count. In practice, repeat
counts are small and often can fit in 3 bits, so this embodiment of
the present invention will result in superior compression
performance over the RHN method.
[0133] In addition, the present invention provides for a larger
count when the bit filtering is larger. For example, the alternate
ZLN format where each byte contains 4 data bits, ZL4 (where N is 4
and U is 4), allows for a four bits of repeat count. For example,
in practice, ZL4 is superior to RHN on a typical ultrasound image
containing 16 shades of gray.
FIG. 6--Encoded Data Stream
[0134] FIG. 6 shows a series of exemplary decimal values 610
comprising a first value 620 equal to decimal 0, a second value 622
equal to 0, a third value 624 equal to 0, a fourth value 626 equal
to 0, a fifth value 628 equal to 0, a sixth value 630 equal to 2,
and a seventh value 632 equal to 10. The value of zero is merely
exemplary and could be any binary value. After the encoding step
130 (FIG. 1), the corresponding encoded data 140 (FIG. 1) would be
compressed down to three bytes of binary code 640 comprising a
first byte 650, a second byte 653, and a third byte 656 each
containing a merged value and count, (651, 652), (654, 655), and
(657, 658), respectively. The first data 651 has a binary value of
"00000" which equals the exemplary repeated decimal value. The
first count 652 has a binary value "101" which equals decimal five
representing the run-length of the repeating value in the first
five of the decimal values 610. The second data 654 has a binary
value of "00010" which equals the non-repeated decimal value two.
The second count 655 has a value of 1. The third data 657 has a
binary value of "01010" which equals the non-repeated decimal value
ten. The third count 658 has a value of 1.
FIG. 7--RHN Codes and Encoded Stream
[0135] FIG. 7 shows the same series of decimal values 610 (FIG. 6)
comprising the first value 620 equal to decimal 0, the second value
622 equal to 0, the third value 624 equal to 0, the fourth value
626 equal to 0, the fifth value 728 equal to 0, the sixth value 730
equal to 2, and the seventh value 732 equal to 10. After encoding
by RHN, the corresponding encoded data 140 (FIG. 1) would be
compressed down to four bytes of RHN binary code 740.
[0136] The embodiment of the present invention shown in FIG. 6 only
requires three bytes to encode the same data. In this example, the
present invention is 25% better than the RHN format.
FIGS. 8A and 8B--ZLN Formats
[0137] The ZLN method of the present invention provides for
variable formats. The values of N 300, U 301, and W 302 can be
dynamically changed between frames. For ease of communication a
format is named with the prefix "ZL" and a digit representing the
value of N. For example, "ZL5" refers to a format where bit width
of N is equal to 5. There are multiple values of U depending of the
W. To also specify the bit width of U a hyphen and a number can be
appended. For example, "ZL5-13" represents a format where N=5 and
U=13. "ZL5-3" is a common format and may be imprecisely referred to
as "ZL5."
[0138] FIG. 8A shows a number of formats with adjacent labels: ZL3
803, ZL4 804, ZL5 805, ZL8 808, ZL9 809, and ZL12 812. Data bits
are represented by "D," and count bits are represented by "C".
[0139] FIG. 8B shows how the most significant 3 bits of each color
component (216, 214, and 212 of FIG. 2B) are extracted and
formatted in ZL9-7C format (the "C" append indicates that the color
is preserved). With three red bits represented by "R", three green
bits represented "G" and three blue bits represented by "B".
Decoding
[0140] To decode the compressed array, the decoder has a decode
table that corresponds with the encode table. For W*4 bit color
pixels, the decode table contains the appropriate alpha, red,
green, and blue values. For W*3 bit color pixels, the alpha value
is not used. The compressed array is processed W bits at a time as
X. The repeat count, C, is extracted from X by masking off the data
value (C=X&(((2**N)-1)<<U)). The encoded value, E, is
extracted from X by masking off the count (E=X&((2**U)-1)). The
encoded value, E maybe used to index into the decryption. The
decoded pixels are placed in a reconstructed image and repeated C
times. Each element of the compressed array, A, is processed until
its entire length, L, has been processed.
FIG. 9--Decode Flowchart
[0141] FIG. 9 illustrates the decode flowchart 920 which presents
the details of the decryption embodiment of the decode step 160
(FIG. 1) and the image reconstitution step 180 (FIG. 1).
[0142] The decoding begins at a decode entry 900. In a "decode
initialization" step 901, a repeat counter C is set to one, an
encoded length L is set to the value obtained with the encoded data
140 (FIG. 1), and an index I is set to 0. Next, a "get code" step
902 obtains a signed byte X from the encoded data 140 (FIG. 1)
array A. The index I is incremented. The count (for example the
3-bit count 380 as shown in FIG. 3B) is extracted from X by masking
off the data bits and placed in the repeat counter C
(C=X&((2**N)-1<<U). The value of E is extracted from X by
masking off the count bits (E=X&(2**U)-1). In practice, the
count mask and value mask can be pre-computed with the following
two lines of code in the C programming language:
[0143] valueMask=-1<<U;
[0144] countMask=.about.valueMask;
[0145] In this illustrative decryption embodiment of the present
invention, flow goes to a "decode lookup" step 908 where the value
of E is used to index into the decode table 1110 (FIG. 11) to
obtain a pixel value V. In the other embodiments where E is not
encrypted, E is used as V and step 908 is bypassed. Flow continues
to a "check zero count" 909 decision.
[0146] The 909 decision always fails the first time ensuring that a
place pixel step 910 is executed. The place pixel step 910 places
the pixel value V in the next location of the decompressed image
and decrements the repeat counter C and returns to the 909
decision. The pixel value V is placed repeatedly until C decrements
to zero. Then the 909 decision branches flow to a "reset counter"
step 914. At step 914 the repeat counter is reset to 1.
[0147] Flow continues to the "check length" 916 decision where the
index I is compared to the encoded length L to determine if there
are more codes to be processed. If I is less than L flow returns to
step 902, otherwise the decode process terminates at a "decode
exit" 918.
[0148] The entire decode process is repeated for each encoded frame
image.
FIG. 10--Interpolation
[0149] FIG. 10 illustrates interpolation when two adjacent pixels
1010 and 1012 and two subsequent row adjacent pixels 1014 and 1016
are stretched to insert a new row and column of pixels.
[0150] Pixels 1052, 1054, 1056, 1058 and 1060 are inserted due to
the enlargement of the image. Their values are calculated by
averaging the values of the two pixels above and below or to the
left or the right of the new pixel. A preferred sequence is
calculation of:
[0151] 1. 1052 between 1010 and 1012
[0152] 2. 1054 between 1010 and 1014
[0153] 3. 1058 between 1012 and 1016
[0154] 4. 1056 between 1054 and 1058
Pixel 1060 can be calculated on the interpolation for the
subsequent row.
FIG. 11--Encryption
[0155] By using corresponding encoding and decoding tables the data
can be encrypted and decrypted without using actual values.
Encryption provides a level of security for the encoded data 140
while in storage or transit.
[0156] FIG. 11 shows an example of an encryption table 1100, where
N is 3 and W is 8, and a decryption table 1110, where N is 3 and U
is 5.
[0157] The encode table 1100 is 2 the power of N in length. If the
target color image format is W*4 bit color, then the decode table
1110 has W bits for alpha, red, green, and blue each, respectively.
If the target color image format is W*3 bit color, then the alpha
value is not used. If the image is W bit grayscale then only the
grayscale value is used to create the decompressed and decoded
image.
[0158] The corresponding table elements are mapped to each other.
For example, 0 could encode to 22 as long as the 22.sup.nd element
of the decode table returns
(.theta..times.ff<<24|.theta.<<16|.theta.<<8|.theta.).
[0159] When these versions of the tables are used, the encode and
decode processes and their speed of execution are substantially the
same but the encoded data 140 (FIG. 1) becomes a cipher and has a
higher level of security. It should be recognized by one with
ordinarily skill in the art that there are other embodiments of the
present invention with different encryption/decryption table
rearrangements.
FIGS. 12A through 12D--Compression and Decompression Devices
[0160] FIGS. 12A and 12B show devices for compressing and
decompressing, respectively, a stream video frames.
[0161] FIG. 12A shows a video signal 1215 being compressed and
encoded by a compressor 1210 to form an encoded data stream 1235,
which is sent to an I/O device 1240. The video signal 1215
comprises a series of video frames 1200, shown as first video frame
1205a, second video frame 1205b, . . . through nth video frame
1205n. The encoded data stream 1235 comprises a series of encoded
data 1220, shown as first encoded data 1225a, second encoded data
1225b, . . . , through nth encoded data 1225n.
[0162] FIG. 12B shows an input encoded data stream 1245 being
received from an I/O device 1240, and then, decoded and
decompressed by a decompressor 1250 to form a video sequence 1270.
The input encoded data stream 1245 comprises received encoded data
1238, shown as first received encoded data 1230a, second received
encoded data 1230b, . . . , through nth received encoded data
1230n. The video sequence 1270 comprises a series of decoded video
frames 1268, shown as first decoded video frame 1260a, second
decoded video frame 1260b, . . . , through nth decoded video frame
1260n.
[0163] FIG. 12C shows an embodiment where the I/O device 1240 of
FIGS. 12A and 12B is a storage medium 1280. The encoded data stream
1235 from the compressor 1210 is stored in the storage medium 1280.
The storage medium 1280 provides the input encoded data stream 1245
as input to the decompressor 1250.
[0164] FIG. 12D shows an embodiment where the I/O device 1240 of
FIGS. 12A and 12B is a communications channel 1290. The encoded
data stream 1235 from the compressor 1210 is transmitted over the
communications channel 1290. The communications channel 1290
provides the input encoded data stream 1245 as input to the
decompressor 1250.
FIGS. 13A through 13J--Compressor Details, Encoding Circuit, and
Bitwise Pixel Sub-Samplers
[0165] FIG. 13A shows details of an embodiment of the compressor
1210, which comprises a video digitizer 1310, a video memory 1330,
an encoding circuit 1350, and encoded data 1370. Each video frame
1205 in the series of video frames 1200 is digitized by the video
digitizer 1310 and stored along path 1320 in the video memory 1330.
The encoding circuit 1350 access the digitized video frame via path
1340 and outputs the encoded data 1370 along path 1360. The encoded
data 1225 corresponding to each video frame 1205 is then output
from the compressor 1210.
[0166] FIG. 13B shows further details of an embodiment of the
encoding circuit 1350. A pixel sub-sampler 1380 scans each pixel
from the digitized video frame in the video memory 1330. A pixel
index 1332 is used to drive a scan 1331 signal to select each pixel
from the video memory, in a predetermined sequence. A novel aspect
of the present invention is that the compression method can be
accomplished with a single scan of the video memory for each frame.
The pixel sub-sampler 1380 selects a predetermined number of bits
from each pixel and outputs the data value along path 1385.
Alternatively, the pixel sub-sampler 1380 encodes the sub-sampled
data by using a lookup table similar to FIG. 11A. Different pixel
sub-samplers 1380 will be discussed in reference to FIGS. 13C
through 13J. The data/count 1390 unit increments the count each
time the output of the pixel sub-sampler 1380 is the same;
otherwise, when the output of the pixel sub-sampler 1380 is
different (or when the counter reaches the maximum count value, the
data and count are combined as a code and output along path 1395 to
the encoded data 1225 for the frame currently in the video memory
1330. The location of the code in the encoded data 1225 is selected
by the code index 1392 signal.
[0167] FIG. 13C shows further details of a generic pixel
sub-sampler 1380. When a pixel is scanned from video memory along
path 1340, it has an original pixel bit width, P. A pixel extractor
1382 extracts a subset of bits from each pixel with a value bit
width, V, along value path 1383. The value bit width V is less than
the pixel bit width P. A coder 1384 takes the V bits from the pixel
path 1383 and outputs a code with an encoded bit width, E, as the
data value along path 1385. One embodiment of the coder is a null
coder, or pass-through coder. Another embodiment of the coder uses
an encryption table to encrypt the data value as an encrypted data
value.
[0168] FIGS. 13D through 13J show embodiments of pixel
sub-samplers.
[0169] FIG. 13D illustrates a 24 to 5 bit sub-sampler 1380a, where
the pixel bit width, P, is 24; the value bit width, V, output from
the pixel extractor 1382 is 8 (see FIG. 2H); and the encoded bit
width, E, output from the coder 1384 is 5. In this embodiment, the
extracted 8 bits could be any component of the grayscale (e.g. FIG.
2G) or the high order 8 bits of the 24-bit value.
[0170] FIG. 13E illustrates a 24-bit RGB to 5 bit sub-sampler
1380b, where the pixel bit width, P, is 24 divided into 8 bits of
red, green, and blue (RGB, see FIG. 2B); the value bit width, V,
output from the pixel extractor 1382 is 8; and the encoded bit
width, E, output from the coder 1384 is 5. In this embodiment, the
extracted 8 bits could be an average (e.g. FIG. 2C) or one of the
colors (e.g. FIG. 2D, 2E, or 2F).
[0171] FIG. 13F illustrates a 32-bit RGB to 5 bit sub-sampler
1380c, where the pixel bit width, P, is 32 divided into 8 bits of
red, green, blue, and alpha (see FIG. 2A); the value bit width, V,
output from the pixel extractor 1382 is 8; and the encoded bit
width, E, output from the coder 1384 is 5. In this embodiment, the
extracted 8 bits could be an average (e.g. FIG. 2C) or one of the
colors (e.g. FIG. 2D, 2E, or 2F).
[0172] FIG. 13G illustrates a color 9-bit sub-sampler 1380d, where
the pixel bit width, P, is 24 divided into 8 bits each of red,
green, and blue; the value bit width, V, output from the pixel
extractors 1382 is 9; and the encoded bit width, E, output from the
coder 1384 is 9. In this embodiment, the high order 3 bits of each
color component are selected (e.g. ZL9C shown FIG. 8B).
[0173] FIG. 13H illustrates a YUV sub-sampler 1380e, where the
pixel bit width, P, is 24 divided into 8 bits for each of YUV; the
value bit width, V, output from the pixel extractors 1382 is 8; and
the encoded bit width, E, output from the coder 1384 is 5. In this
embodiment, four bits of the Y value is extracted and 2 bits of
each of the U and V values are extracted. This 8 bit value is
further coded as a 5 bit value.
[0174] FIG. 13I illustrates a 36-bit RGB to 24-bit sub-sampler
1380f, where the pixel bit width, P, is 36 divided into 12 bits
each of red, green, and blue; the value bit width, V, output from
the pixel extractors 1382 is 24; and the encoded bit width, E,
output from the coder 1384 is also 24. In this embodiment, the high
order 8 bits of each 12-bit color component are selected.
[0175] FIG. 13J illustrates a 15-bit sub-sampler 1380g, where the
pixel bit width, P, is 24 divided into 8 bits from each color
component; the value bit width, V, output from the pixel extractor
1382 is 15; and the encoded bit width, E, output from the coder
1384 is 15. In this embodiment, the high order 5 bits of each 8-bit
color component are selected.
FIGS. 14A through 14C--Variable Selection of Bit-wise
Sub-sampling
[0176] FIGS. 14A through 14C shows embodiments of a device for
variably altering the number of bits.
[0177] FIG. 14A illustrates 24-bit to variable bit sub-sampler
1400. When a pixel is scanned from video memory along path 1340, it
has an original pixel bit width, P, equal to 24 bits. These 24 bits
are passed as input to a number of sub-samplers. The variable
number of bits is selected by a number of bits selector 1410 as
indicated by a number of bits indicator 1420 and outputs a code
with an variable encoded bit width, E, as the data value along path
1385. A user at remote receiver 1610 sets the number of bits
indicator 1420 (see discussion regarding FIGS. 16A and 16B). The
variable bit sub-sampler comprises a generic 3-bit sub-sampler
1401, a generic 4-bit sub-sampler 1402, generic 8-bit sub-sampler
1403, and generic 10-bit sub-sampler 1404 which are embodiments of
the generic sub-sampler shown in FIG. 13C with specific values for
E. The variable bit sub-sampler further comprises nested
sub-samplers: the 24 to 5 bit sub-sampler 1380a of FIG. 13D, the
1380d of FIG. 13G, and the 15-bit sub-sampler 1380g of FIG. 13J.
This is illustrative of the types of bit sub-samplers that can be
variably selected.
[0178] Likewise, FIG. 14B illustrates a 36-bit to variable bit
sub-sampler 1430, where P is 36 and the number of bit that can be
selected are 12, 15, or 24, respectively.
[0179] FIG. 14C shows that the 24-bit to variable bit sub-sampler
1400 of FIG. 14A and the 36-bit to variable bit sub-sampler 1430 of
FIG. 14B can be further combined to form at 24/36 bit variable bit
sub-sampler 1440 where a second selector 1450 is used to selected
either the 24 bit inputs or the 36 bit inputs using selection logic
1460 that also receives the number of bits indicator 1420. A
selection signal 1470 enables either the output of 24-bit to
variable bit sub-sampler 1400 or the output of 36-bit to variable
bit sub-sampler 1430. Sub-samplers 1400 and 1430 both receive the
number of bits indicator 1420 as shown in FIG. 14A and FIG. 14B. In
this way any number of bits may reasonably be selected from either
a 36 or 24-bit pixel bit width.
FIG. 15--Decompressor Elements
[0180] FIG. 15 shows details of an embodiment of the decompressor
1250, which comprises a decoding circuit 1510 which inputs received
encoded data 1230 and outputs decoded pixel values 1520 to an image
memory 1540. A decoder pixel index 1530 selects the location in the
image memory 1540 to store the decoded pixels values 1520. The
image memory 1540 delivers each decoded video frame 1260 to the
video display.
FIGS. 16A and 16B-Parameters Altered by a Remote Receiver
[0181] FIG. 16A shows a system for setting width, height, frame
rate, brightness, and contrast in a transmitter 1600 which are
variably altered by a receiver 1610. The receiver sends commands to
the transmitter 1600 via setting control path 1615. The commands
alter the transmitter settings 1660.
[0182] The settings 1660 include brightness 1661, contrast 1662,
height 1663, width 1664, and frame rate 1665. The brightness 1661,
contrast 1662, height 1663, and width 1664 setting alter the
attributes of each frame as it is digitized in a frame sub-sampler
1620. The brightness 1661 and contrast 1662 settings alter the
video digitizer 1310 (FIG. 13A) as it senses the video frame. The
height 1663 and 1664 allow for optionally selecting a subset area
of each frame; this is area sub-sampling. Alternatively, height
1663 and 1664 allow for optionally selecting a subset of pixels
from an array of pixels that make up a single frame, by skipping
pixels in a row or by skipping rows; this is image sub-sampling.
The frame rate 1665 setting alters the frame selector 1670 which
drives the frame select indicator 1675 to optionally sub-sample
frames from a sequence of video frames; this is frame
sub-sampling.
[0183] The frame sub-sampler 1620 outputs a selected frame 1630
along path 1621. The transmitter pixel sub-sampler 1640 scans the
selected frame 1630 getting each pixel from frame 1632 and outputs
data values along path 1642 to a run length encoder 1650. The
encoded data stream 1235 is then transmitted to the remote receiver
1610.
[0184] FIG. 16B shows additional elements of a system for setting
the number of pixel bits in an alternate transmitter 1690 which is
variably altered by a receiver 1610. The receiver sends commands to
the transmitter 1600 via setting control path 1615. The commands
alter the transmitter settings 1660. The settings include a number
of pixel bits setting 1680 which affect the number of bits selected
by the transmitter pixel sub-sampler 1640. The pixel sub-sampler
1640 could be any pixel sub-sampler, for example, see FIGS. 13C
through 13J and 14A through 14C. The transmitter pixel sub-sampler
1640 scans the selected frame 1630 (as in FIG. 16A) getting each
pixel from frame 1632 and outputs data values along path 1642 to a
run length encoder 1650. The encoded data stream 1235 is then
transmitted to the remote receiver 1610.
[0185] These embodiments illustrate the novel feature of the
present invention of allowing a user at a remote receiver 1610 to
control aspects of the transmitter 1600 or 1690 from a remote
location, including brightness, contrast, frame dimensions, frame
rate, image area, and the type of compression used.
FIG. 17--Further Lossless Compression Step
[0186] FIG. 17 shows a lossless compression step for further
compressing an encoded data buffer. After a run-length encoding
step 1700 in the transmitter, a run-length encoded output 1710 can
be further processed with a further lossless compression step 1720
resulting in further lossless compression output 1730. The further
lossless compression step 1720 could be implemented as a variable
length coding, arithmetic coding, or other compression step known
in the art.
FIG. 18--Image Stretching
[0187] FIG. 18 shows images being enlarged by stretching. An
unstretched frame 1800 is stretched during stretching step 1820
resulting in an enlarged image 1810. When a frame is image
sub-sampled or area sub-sampled, the remaining data can be
stretched to fill the full display area on the receiver 1610. This
results in an interpolated image or magnified image,
respectively.
FIGS. 19A through 19C-Handheld Video Transmission Networks
[0188] FIGS. 19A through 19C show various network configuration
comprising handheld video devices.
[0189] FIG. 19A illustrates an exemplary network 1910 comprising a
first node 1920a, a second node 1920b, and an optional reflector
1930. The network 1910 is shown as a wired network 1910a. The first
node 1920a is displaying a first video 1901a of a man. The second
node 1920b is displaying a second video 1902a of a woman. This
illustrates a videoconference between the man at the second node
1920b and the woman at the first node 1920a. In the first mode of
operation, the respective videos are transmitted over a
point-to-point transmission 1940 path between the two nodes over
the network 1910. In another mode of operation each of the videos
is transmitted to the reflector where both videos are displayed as
first reflected video 1901b and second reflected video 1902b. The
second video 1902a originates at the first node 1920a is
transmitted to the reflector over first indirect path 1942. The
second video 1901a originates at the second node 1920b is
transmitted to the reflector over second indirect path 1944. The
reflector then retransmits the two videos to the respective display
nodes, 1920a and 1920b, over the indirect paths. In other
configurations, the reflector would also transmit the combined
video to other nodes participating in the videoconference.
[0190] FIG. 19B shows an example of three nodes, third node 1920c,
fourth node 1920d, and fifth node 1920e in a wireless network. The
wireless connections are shown as waves. The three nodes operate in
the same manner as the three nodes in FIG. 19A.
[0191] FIG. 19C shows an example of a combined network 1910c where
five nodes are connect in a network comprised of both a wired
network 1910a and a wireless network 1910b. Any of the five nodes
could transmit video to any of the other nodes in the combined
network. Any node, for example third node 1920c as shown, could act
as a reflector 1930.
[0192] In another embodiment of the present invention, any node
could act as a video server and transmit pre-recorded video to one
or more other nodes.
[0193] These illustrations are exemplary. In practice, combined
networks could consist of any number of nodes. Any of the nodes in
the network could be a handheld video device.
FIGS. 20A through 20D--Handheld Video Devices
[0194] FIGS. 20A through 20D show various embodiments of handheld
video devices.
[0195] FIG. 20A shows a handheld video transmitter comprising a
video source 2052, a video transmitter 2054, and video storage
2056.
[0196] FIG. 20B shows two handheld video devices in communication
over either a wireless connection 2050 or a wired connection
2051.
[0197] A first handheld device 2010 comprises a display 2012,
manual controls 2014, a wireless port 2016, and a first wired
connection 2051a. While either the wireless port 2016 or the wired
connection 2051a could be present, only one of the two would be
necessary to receive video from or transmit video to other nodes in
the network 1910. In this example, the first handheld device is
shown as an iPod-type device with an internal hard disk drive. The
first handheld device 2010 further comprises a headphone 2020,
connected via a speaker/microphone cable 2024, and a camera 2030,
connected via a camera cable 2034. The headphone 2020 comprises a
right speaker 2021, a microphone 2022, and a left speaker 2023. The
camera 2030 has a lens 2032 and internal circuitry that converts
the light that passes through the lens 2032 into digital video
data.
[0198] In the best mode for this embodiment, the iPod-type device
is implemented using a standard Apple iPod (enhanced with an audio
input for the microphone and, optionally, with a wireless port, and
appropriate software), and the camera 2030 is implemented using an
iBot Firewire camera manufactured by Orange Micro, a lower
performing Connectix USB camera, or similar camera. Alternatively,
if the iPod-type device were only used of viewing video, the Apple
iPod could be used without hardware modification. In another
variation, the microphone could be build into the camera (not
shown) instead of the headphones.
[0199] A second handheld device 2040 comprises a second display
2012b, a second wireless port 2016b, and a second wired connection
2051b. While either the wireless port 2016b or the wired connection
2051b could be present, only one of the two would be necessary to
receive video from or transmit video to other nodes in the network
1910. In this example, the second handheld device is shown as a
device with a touch screen. The second handheld device 2040 further
comprises a right built-in speaker 2021b, a built-in microphone
2022b, a left built-in speaker 2023b, and a built-in camera 2030b
with lens 2032.
[0200] The configuration of the second handheld device 2040 has the
advantage of eliminating the cables for the external headphone and
camera of the first handheld device 2010 by having all elements
built-in.
[0201] These two devices are exemplary. A two-device handheld
videoconferencing network could have two identical handheld
devices, such as the first handheld device 2010. Further, a single
device with a camera (as shown) could transmit video for display on
any number of hand held devices that do not have cameras or
microphones.
[0202] FIG. 20C illustrates an integrated handheld device 2060
comprising an iPod type device 2010, an A/V module 2062 and an
optional wireless module 2064. The iPod type device 2010 comprises
display 2012, controls 2014, and a wired connection 2051. The A/V
module 2062 comprises a right integrated speaker 2021c, an
integrated microphone 2022c, a left integrated speaker 2023c, and a
integrated camera 2030c with lens 2032. The A/V module 2062 could
be manufactured and marketed separately (as shown) as an add-on
module for standard iPods, or could be incorporated into the iPod
packaging as an enhanced iPod-type device. The wireless module 2064
comprises an integrated wireless port 2016c. The wireless module
2064 also could be manufactured and marketed separately (as shown)
as an add-on module for standard iPods, or could be incorporated
into the iPod packaging as an enhanced iPod-type device.
[0203] The configuration of the integrated handheld device 2060 has
the advantage of eliminating the cables for the external headphone
and camera of the first handheld device 2010 by having all elements
integrated into removably attached modules that form a single unit
when attached. The user can configure the standard iPod based on
the user's intended use. If only a wireless connection is needed,
only the wireless module 2064 can be attached to the iPod; in this
configuration video can be received and displayed but not
transmitted. If only video transmission is necessary and a wired
connection is convenient, the wireless module 2064 can be omitted.
Either configuration provides a single integrated unit that can be
carried in the user's pocket and can store and display videos.
[0204] FIG. 20D illustrates an cellular integrated device 2070
comprising phone display 2012d, phone controls 2014d (including a
number keypad), a cellular port 2016d, a right phone speaker 2021d,
a phone earphone 2021e, phone microphone 2022d, left phone speaker
2023d, and a phone camera 2030d with lens 2032.
[0205] Any of the handheld devices shown in FIGS. 20A through 20D
could be nodes in video transmission networks, such as those shown
in FIGS. 12D and 19A through 19C. Each transmitting device
preferably would include a compressor 1210 as shown in FIGS. 12A
and 12D. Each receiving device preferably would include a
decompressor 1250 as shown in FIGS. 12B and 12D. The compressor
1210 and decompressor 1250 preferably would implement one or more
embodiments of the compression methods discussed above.
FIGS. 21A through 21C--Handheld Video Devices with Graphical Zoom
Control
[0206] FIGS. 21A through 21C show exemplary handheld video devices
comprising graphical zoom controls.
[0207] A graphical user interface (GUI) graphically corresponds to
a video display window 2110 through which a single image or a
stream of video frames is displayed. The GUI and the video display
window 2110 are displayed on a display 2012 (or 2012b or 2012d).
The GUI includes a zoom control 2100 having an inner region 2102
positioned within an outer region 2106. The zoom control 2100 is a
graphical way for the user of a remote receiver 1610 (see FIGS. 16A
and 16B) to send remote control commands to set the parameters of a
video transmitter (1600 or 1690) for control the area of the video
to be compressed and transmitted.
[0208] FIG. 21A shows an embodiment of the iPod-type handheld
device 2010 of FIG. 20C displaying a zoom control 2100 having an
inner region 2102a positioned within an outer region 2106a. The
zoomed video image is show in video display window 21 10a. In this
embodiment the zoom control 2100 is displayed on top of the video
display window 2110a. The size and position of the inner region
2102a relative to the outer region 1206a shows the user which
portion of the original video is being received and magnified. Only
the selected portion of the original video (in this example, the
hair and top of the face) needs to be transmitted in full
resolution or high quality. A low resolution, or thumbnail version
of the original video frame is optionally displayed in the outer
region 2106a. The thumbnail can be updated at a rate slower than
the frame rate of the magnified video, such as once or twice a
second. The magnification factor 2104a shows the text 2.times.
showing that the portion being displayed in the video display
window 2110a is being displayed at twice the size.
[0209] FIG. 21B shows an embodiment of the cellular integrated
device 2070 of FIG. 20D displaying a zoom control 2100 having an
second inner region 2102b positioned within an second outer region
2106b. The zoomed video image is shown in alternate video display
window 2110b. In this embodiment, the zoom control 2100 is
displayed outside and below the alternate video display window
2110b. The size and position of the second inner region 2102b
relative to the second outer region 1206b shows the user which
portion of the original video is being received and magnified. Only
the selected portion of the original video (in this example, the
lower face and tie) needs to be transmitted in full resolution or
high quality. A low resolution, or thumbnail version of the
original video frame is optionally displayed in the second outer
region 2106b. The second magnification factor 2104b shows the text
2.times. showing that the portion being displayed in the alternate
video display window 2110b is being displayed at twice the
size.
[0210] FIG. 21C shows an embodiment of the second handheld device
2040 of FIG. 20B displaying a zoom control 2100 having an third
inner region 2102c positioned within an third outer region 2106c.
The zoomed video image is shown in a video display window 2110a
shown filling the second display 2112b. In this embodiment, the
zoom control 2100 is displayed over the video display window 2110a.
The size and position of the third inner region 2102c relative to
the third outer region 1206c shows the user which portion of the
original video is being received and magnified. Only the selected
portion of the original video (in this example, the right shoulder
of the woman) needs to be transmitted in full resolution or high
quality. A low resolution, or thumbnail version of the original
video frame is optionally displayed in the third outer region
2106c. The third magnification factor 2104c shows the text 3.times.
showing that the portion being displayed in the video display
window 2110a is being displayed at three times the size. In this
embodiment the controls (similar in function to controls 2014) are
incorporated into a touch screen of the second display 2012b. The
user enters zoom in, zoom out, and pan commands by tapping the
third inner region 2102c or the third outer region 2106, or by
selecting and dragging the outline of the third inner region
2102c.
Operation of Graphical Zoom Controls
[0211] A user controls aspects and changes parameters of the image
displayed within the video display window 2110 using the controls
2014 to enter input commands within the zoom control 2100 by
selecting appropriate parts of the controls 2104 (or regions of the
zoom control 2100 on a touch screen or with a pointing device). The
controls 2014 can be a touch screen, touch pad, iPod-like scroll
pad, remote control or other device, depending on the configuration
of the handheld device.
[0212] The size of the inner region 2102 relative to the outer
region 2106 represents the magnification of the portion of the
image being displayed within the video display window 2110. A
magnification factor 104 representing the current magnification of
the image being displayed within the video display window 2110 from
the original image is displayed within the inner region 2102. The
magnification of the image being displayed is increased by tapping
within the inner region 2102, or while in zoom control mode,
pressing the "zoom in" button on a iPod-type control 2104 or cell
phone control 2014d. As the magnification is thus increased, the
size of the inner region 2102 is decreased appropriately relative
to the outer region 2106 and the magnification factor 104 is
appropriately incremented. The magnification of the image being
displayed is decreased by tapping outside of the inner region but
inside of the outer region, or while in zoom control mode clicking
the "zoom out" button on a iPod-type control 2104 or cell phone
control 2014d. As the magnification is thus decreased, the size of
the inner region 102 is increased appropriately relative to the
outer region 2106 and the magnification factor 104 is appropriately
decremented.
[0213] The position of the inner region 2102 within the outer
region 2106 represents the portion of the entire original image
being displayed within the video display window 2110. The portion
of the image being displayed within the video display window 2110
is changed by moving the inner region 2102 to the desired position
within the outer region 2106 using the touch screen, a pointing
device, or the controls 2014 or 2014d. As the position of the inner
region 2102 changes within the outer region 2106, the portion of
the image displayed within the video display window 2110 changes
appropriately.
[0214] The display 2012 including the video display window 2110 and
a graphical user interface including the zoom control 2100,
according to the present invention. The zoom control 2100 of the
present invention preferably includes two regions 2102 and 2106.
The outer region 2106 forms the outer edge of the zoom control 2100
and represents the entire available original image. The inner
region 2102, is included and positioned within the outer region
2106 and represents a region of interest of the original image
currently being displayed within the video display window 2110.
Within the inner region 2102, a magnification factor 104 is
optionally displayed, representing the current magnification being
applied to the image displayed within the video display window
2110.
[0215] The magnification factor 104 is changed by using the touch
screen or controls 2014 (or 2014d) to zoom in or zoom out. By
zooming in a number of times, the inner region 102 becomes
continually smaller in size and the magnification factor 104 is
incremented a number of times equal to the number of times that the
control zoomed in.
[0216] A user zooms out on a specific portion of the image to
decrease the magnification factor 104; the inner region 102 becomes
appropriately larger in size and the magnification factor 104 is
decremented. By zooming out a number of times, the inner region 102
becomes increasingly larger with each zoom out and the
magnification factor 104 is decremented a number of times equal to
the number of times the user zooms out, until the magnification
factor is equal to 1.
[0217] The inner region 2102 also has a pan or positional feature
within the outer region 2106, such that the position of the inner
region 2102 within the outer region 2106 represents the portion of
the entire original image that is being displayed within the video
display window 2110. The position of the inner region 2102 is
changed within the outer region 2106 by using the touch screen, a
pointing device, or controls 2014 to move the inner region 2102 to
the desired position within the outer region 2106. Accordingly, the
inner region 2102 graphically represents what portion of the entire
image is currently being displayed within the video display window
2110 and what magnification factor 104 is currently being used to
make this selected portion of the original image fit within the
video display window 2110.
Advantages
Video Coverage of Remote Events
[0218] The present invention will allow low cost, portable, video
transmission of events of interest whenever and wherever they
happen. These handheld wireless video transmitters will be able to
provide news coverage of wars, natural disasters, terrorist
attacks, traffic and criminal activities in a way that has never
before been possible.
Improved Continuous Communication
[0219] The present invention will enabled enhanced personal
communication between friends, family, and co-workers in ways never
before possible.
Improved Entertainment and Education
[0220] The present invention will enabled the transmission of
video-based entertainment and education in ways never before
possible. User will be able to use pocket-sized, handheld device to
watch video that are downloaded from a global media exchange,
streamed from a video server, or transmitted live from a
performance, classroom, laboratory, or field experience.
Improved Healthcare
[0221] The present invention would enable a physician or medical
specialist to receive medical quality video any time in any
location. For example, a critical emergency room ultrasound study
could be monitored while it is being performed by less skilled
emergency room personnel ensuring that the best medical image is
acquired. A rapid diagnosis can be made and the results of a study
can be verbally dictated for immediate transcription and use within
the hospital.
[0222] Further, the present invention could be used to transmit
medical quality video from a remote, rural location, including a
battle ground. It could also be used to transmit guidance and
advice from an expert physician into a remote, rural location.
[0223] Thus, the present invention can improve medical care, reduce
the turnaround for analysis of medical studies, reduce the
turnaround for surgery, and provide medical professionals with
continuous access to medical quality imaging.
Noise Filtering and Image Enhancement
[0224] The removal of the least significant bits of pixel values
results in high quality decompressed images when the original image
is generated by an electronic sensing device, such as an ultrasound
machine, which is generating only a certain number of bits of
grayscale resolution. By variably altering the number of most
significant bits, various filters can be implemented to enhance the
image quality. Such a noise filter can be beneficial when the image
is generated by an imaging technology such as radar, ultrasound,
x-ray, magnetic resonance, or similar technology. Variations can be
made to enhance the perceived quality of the decompressed image.
Therefore, altering the number of data bits selected and altering
the width of the repeat count is anticipated by this invention and
specific values in the examples should not be construed as limiting
the scope of this invention.
Dynamic Variable Formats
[0225] While a video stream is being viewed a viewer on the
decoding end of the transmission can vary the settings for the
compressor. Different tradeoffs between image spatial and temporal
quality can be made. As the contents of the video signal change an
appropriate format can be selected. Control signals can be sent
back to the compressor via a communications link.
Execution Speed
[0226] The preferred embodiment of this invention uses a number of
techniques to reduce the time required to compress and decompress
the data.
[0227] The methods require only a single sequential pass through
the data. Both the compression steps 100 and the decompression
steps 150 access a pixel once and perform all calculations.
[0228] When selecting the filtered pixel value 299, the preferred
embodiment selects the low order byte from the 32 bit pixel value
200 or the 24 bit pixel value 210 so that an additional shift
operation or addressing operation is avoided.
[0229] The shift operation is a fast and efficient way to convert a
byte or word to the filtered pixel value 299.
General Purpose
[0230] The lossless compression of the sampled data achieved by the
preferred embodiment of the present invention results in high
quality video streams that have general purpose application in a
number of areas including, without limitation, video conferencing,
surveillance, manufacturing, rich media advertising, and other
forms of video transmission, storage, and processing.
Lossless Nature/No Artifacts
[0231] Once the analog signal is sub-sampled and filtered to select
a filtered pixel value that eliminates some of the real world
defects, the methods of the present invention compress and
decompress the data with no irreversible data loss. Unlike JPEG and
MPEG, the decompressed image never suffers from artificially
induced blocking or smearing or other artifacts that are result of
the lossy compression algorithm itself. As a result even a small
sub-sample of the image remains clear and true to the perceived
quality of the original image.
Superior Features over RHN Format
[0232] When compared against the RHN format, the format and methods
of the present invention provide a number of advantages, including,
but not limited to, faster speed and smaller size of encoded data,
better performance for both medical and typical video images, and a
typically closer representation of the original video signal.
Conclusion, Ramification, and Scope
[0233] Accordingly, the reader will see that handheld wireless
devices are used to receive and display high quality video. The
video can be displayed as it is received live and a graphical zoom
control can be used to dynamically control the area of the source
image that is to be transmitted in full resolution. In other
embodiments, a handheld wireless device captures the video with an
attached video camera and microphone and the device transmits the
video images live as they are captured. A single handheld wireless
video transmitter can transmit to multiple handheld wireless
receivers. A plurality of handheld wireless video devices which
capture, transmit, receive, and display video over a network are
used for mobile video conferencing. In other embodiments the video
data is transferred as a video file or streamed from a video server
contain pre-recorded video files.
[0234] Further the compression and decompression steps of the
present invention provides a means of digitally compressing a video
signal in real time, communicating the encoded data stream over a
transmission channel, and decoding each frame and displaying the
decompressed video frames in real time.
[0235] Furthermore, the present invention has additional advantages
in that: [0236] 1. it enables live video transmission and display
on pocket-sized handheld devices; [0237] 2. it enables wireless
videoconferencing with portable, handheld video devices; [0238] 3.
it provides an iPod-type device which is able to display high
quality color video; [0239] 4. it provides an iPod-type device
which is able to be used as a wireless video transmitter or
receiver. [0240] 5. it enables video coverage of remote events or
catastrophic events; [0241] 6. it improves interpersonal
communication, productivity, and effectiveness; [0242] 7. it
improves education; [0243] 8. it improves entertainment; [0244] 9.
it improves and expands healthcare at lower costs; [0245] 10. it
provides a means of filtering real world defects from the video
image and enhancing the image quality; [0246] 11. it allows for
execution of both the compression and decompression steps using
software running on commonly available computers without special
compression or decompression hardware; [0247] 12. it provides
decompressed images that have high spatial quality that are not
distorted by artifacts of the compression algorithms being used;
[0248] 13. it provides a variably scalable means of video
compression; and [0249] 14. it provides a means for reducing the
space required in a storage medium.
[0250] Although the descriptions above contain many specifics,
these should not be construed as limiting the scope of the
invention but as merely providing illustrations of some of the
preferred embodiments of this invention. For example, the physical
layout, cable type, connectors, packaging, and location of the
video display or video camera can all be altered without affecting
the basic elements of the claimed embodiments. Further, bit
ordering can be altered and the same relative operation, relative
performance, and relative perceived image quality will result.
Also, these processes can each be implemented as a hardware
apparatus that will improve the performance significantly.
[0251] Thus the scope of the invention should be determined by the
appended claims and their legal equivalents, and not solely by the
examples given.
* * * * *