U.S. patent number RE34,965 [Application Number 08/004,689] was granted by the patent office on 1995-06-13 for inter-frame predictive encoding system with encoded and transmitted prediction error.
This patent grant is currently assigned to Victor Company of Japan Limited. Invention is credited to Kenji Sugiyama.
United States Patent |
RE34,965 |
Sugiyama |
June 13, 1995 |
Inter-frame predictive encoding system with encoded and transmitted
prediction error
Abstract
In an inter-frame predictive encoding system, reference frames
are set. The reference frames are separated at equal intervals. The
reference frames are selected from successively inputted frames of
a video signal. Each of the reference frames is encoded. A
prediction signal for a dependent frame between the reference
frames is generated on the basis of a signal of the reference
frames which precedes and follows the dependent frame respectively.
A signal of the dependent frame is generated on the basis of the
prediction signal corresponding thereto. An error of the predicting
of the signal of the dependent frame is encoded. .Iadd.A
complementary decoding system reconstructs the video signal from
the encoded reference frames and the encoded error. .Iaddend.
Inventors: |
Sugiyama; Kenji (Kanagawa,
JP) |
Assignee: |
Victor Company of Japan Limited
(Yokohama, JP)
|
Family
ID: |
26347033 |
Appl.
No.: |
08/004,689 |
Filed: |
January 14, 1993 |
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
Reissue of: |
465747 |
Jan 18, 1990 |
04985768 |
Jan 15, 1991 |
|
|
Foreign Application Priority Data
|
|
|
|
|
Jan 20, 1989 [JP] |
|
|
1-11587 |
Feb 14, 1989 [JP] |
|
|
1-34161 |
|
Current U.S.
Class: |
348/415.1;
348/409.1 |
Current CPC
Class: |
H04N
5/9264 (20130101); H04N 19/50 (20141101); H04N
19/503 (20141101); H04N 19/61 (20141101); H04N
19/82 (20141101); H04N 19/53 (20141101); H04N
19/587 (20141101); H04N 19/59 (20141101); H04N
19/577 (20141101) |
Current International
Class: |
G06T
9/00 (20060101); H04N 7/26 (20060101); H04N
7/50 (20060101); H04N 7/46 (20060101); H04N
007/13 () |
Field of
Search: |
;358/136,135,105 |
References Cited
[Referenced By]
U.S. Patent Documents
Foreign Patent Documents
Primary Examiner: Kostak; Victor R.
Attorney, Agent or Firm: Amster, Rothstein &
Ebenstein
Claims
What is claimed is:
1. An inter-frame predictive encoding system comprising:
means for separating successively-inputted frames of a video signal
into reference frames and dependent frames, the reference frames
being spaced at predetermined intervals, the dependent frames
situated between the reference frames;
means for encoding display information of the reference frames;
means for predicting display information of each dependent frame on
the basis of display information of reference frames which precede
and follow said dependent frame respectively;
means for generating an error between the predicted display
information and corresponding actual display information of said
dependent frame; and
means for encoding said error.
2. The inter-frame predictive encoding system of claim 1 wherein
said predicting means comprises means for multiplying the two
dimensional position of the preceding reference frame by a first
predetermined weight coefficient; means for multiplying the display
information of the following reference frame by a second
predetermined weight coefficient; and means for predicting the
display information of the dependent frame on the basis of a
resultant of said multiplication between the display information
and the first weight coefficient and a resultant of said
multiplication between the display information and the second
weight coefficient.
3. In an inter-frame predictive encoding system comprising means
for performing motion-compensated inter-frame prediction using
motion vectors between successively inputted frames of a video
signal; the improvement comprising:
means for setting specified frames separated at equal intervals,
the specified frames being selected from successively inputted
frames of a video signal;
means for detecting motion vectors between the specified
frames;
means for detecting motion vectors between .[.adjacent.]. .Iadd.a
.Iaddend.non-specified .[.frames.]. .Iadd.frame located
.Iaddend.between the specified frames .Iadd.and the specified
frames .Iaddend.as differences with respect to said motion vectors
between the specified frames.
4. An inter-frame predictive encoding system as recited in claim 3
further comprising:
means for generating a prediction signal for a non-specified frame
between the specified frames on the basis of a signal of the
specified frames which precede and follow the non-specified frame
respectively;
means for generating a prediction error representing a difference
between the prediction signal and a signal of the non-specified
frame corresponding thereto;
encoding means for encoding said prediction error; and
means for outputting and transmitting encoded data which are
generated by the encoding in the encoding means.
5. An inter-frame predictive encoding system comprising:
means for setting reference frames separated at equal intervals,
the reference frames being selected from successively inputted
frames of a video signal;
first encoding means for encoding each of the reference frames;
means for generating a prediction signal for a dependent frame
between the reference frames on the basis of a signal of the
reference frames which precede and follow the dependent frame
respectively;
means for generating a prediction error representing a difference
between the prediction signal and a signal of the dependent frame
corresponding thereto;
second encoding means for encoding said prediction error; and
means for outputting and transmitting encoded data which are
generated by the encoding in the first encoding means and the
second encoding means. .Iadd.
6. A decoding system for decoding video signals encoded by the
system of claim 1, said decoding system comprising:
decoding means for receiving and decoding the encoded display
information of said reference frames and said encoded error, each
of said decoded reference frames producing an output which
corresponds to the display information for said reference
frame;
prediction signal generating means for reconstructing said
predicted display information for each dependent frame based upon
the two reference frames which respectively precede and follow said
dependent frame;
means for combining said error and said predicted display
information for said dependent frame; and
means for outputting the display information for each reference and
dependent frame in proper sequence to produce a video signal.
.Iaddend. .Iadd.7. A decoding system for decoding video signals
that have been encoded in an encoder by arranging said video
signals into spaced-apart reference frames and dependent frames
located therebetween; said display information of said reference
frames being out from said encoder in encoded form and used therein
to predict the display information for said dependent frames, said
encoder generating and outputting a prediction error signal for
each dependent frame corresponding to the difference between the
predicted and actual display information for each dependent frame,
said decoding system comprising:
decoding means for receiving and decoding each of the encoded
reference frames and the prediction error signal for each of the
dependent frames; and
processing means for reconstructing the display information for
each dependent frame from the corresponding prediction error signal
and the reference frames which precede and follow said dependent
frame. .Iaddend. .Iadd.8. The decoding system in accordance with
claim 7 including means for outputting the display information for
said reference frames and said dependent frames in proper sequence.
.Iaddend. .Iadd.9. The decoding system in accordance with claim 7,
wherein said processing means includes
memory means for storing the display information of said two
reference frames which respectively precede and follow said
dependent frame;
means for combining weighted values of said display information for
said two reference frames to generate predicted display information
for said dependent frame; and
means for combining the predicted display information and the
prediction error signal for each dependent frame to reconstruct the
display information for each dependent frame. .Iaddend. .Iadd.10.
The decoding system in accordance with claim 9, wherein said
weighted values are generated by multiplying said display
information by weighting coefficients selected such that the
reference frame temporally closer to the dependent frame is given a
greater weight. .Iaddend. .Iadd.11. The decoding system in
accordance with claim 9, wherein said weighted values are generated
by multiplying said display information by weighting coefficients
that are selected to be linearly related to the temporal position
of said dependent frame relative to the two reference frames on
either side thereof. .Iaddend. .Iadd.12. The decoding system in
accordance with claim 9, wherein said processing means further
includes means for calculating motion vectors representative of
image movement between said two reference frames and means for
calculating motion-compensated predicted display information for
each of said dependent frames located between said two reference
frames from said motion vectors and the display information of said
reference frames. .Iaddend. .Iadd.13. A method for decoding video
signals that have been encoded in an encoder by arranging said
video signals into spaced-apart reference frames and dependent
frames located therebetween, said display information of said
reference frames being output from said encoder in encoded form and
used therein to predict the display information for said dependent
frames, said encoder generating and outputting a prediction error
signal for each dependent frame corresponding to the difference
between the predicted and actual display information for each
dependent frame, said method comprising the steps of:
(a) receiving and decoding each of the encoded reference frames and
the prediction error signal for each of the dependent frames;
(b) reconstructing the display information for each dependent frame
from the corresponding prediction error signal and the reference
frames which precede and follow said dependent frame; and
(c) outputting the display information for said reference frames
and said dependent frames in proper sequence to generate a video
signal. .Iaddend. .Iadd.14. The method in accordance with claim 13
wherein step (b) includes the steps of;
storing the display information of said two reference frames which
respectively precede and follow each dependent frame;
combining weighted values of said display information for said two
reference frames to generate predicted display information for said
dependent frame; and
combining the predicted display information and the prediction
error signal for each dependent frame to reconstruct the display
information for each
dependent frame. .Iaddend. .Iadd.15. The method in accordance with
claim 14 wherein said weighted values are generated by multiplying
said display information for said two reference frames by weighting
coefficients selected such that the reference frame temporally
closer to the dependent frame is given a greater weight. .Iaddend.
.Iadd.16. The method in accordance with claim 13, wherein step (b)
includes the steps of;
calculating motion vectors representative of image movement between
said two reference frames; and
calculating motion-compensated predicted display information for
each of said dependent frames located between said two frames from
said motion vectors and the display information of said two
reference frames. .Iaddend.
Description
BACKGROUND OF THE INVENTION
.Iadd.This application is a reissue of Ser. No. 07/465,747, now
U.S. Pat. No. 4,985,768. .Iaddend.
This invention relates to an inter-frame predictive encoding system
for a video signal.
In a general video signal, display information of a frame tends to
correlate with display information of a subsequent frame and a
preceding frame. In the transmission of a digitized video signal,
such a correlation between successive frames is used in reducing a
digital data transmission rate.
Inter-frame predictive encoding uses the correlation between
successive frames to reduce the digital data transmission rate. The
inter-frame predictive encoding is generally effective in handling
a video signal representing moving pictures.
As will be explained later, a prior-art inter-frame predictive
encoding system has some problems.
SUMMARY OF THE INVENTION
It is an object of this invention to provide an improved
inter-frame predictive encoding system.
According to a first aspect of this invention, an inter-frame
predictive encoding system comprises means for setting reference
frames separated at equal intervals, the reference frames being
selected from successively inputted frames of a video signal; means
for encoding each of the reference frames; means for generating a
prediction signal for a dependent frame between the reference
frames on the basis of a signal of the reference frames which
precedes and follows the dependent frame respectively; means for
predicting a signal of the dependent frame on the basis of the
prediction signal corresponding thereto; and means for encoding an
error of said predicting of the signal of the dependent frame.
According to a second aspect of this invention, an inter-frame
predictive encoding system comprises means for separating
successively-inputted frames of a video signal into reference
frames and dependent frames, the reference frames being spaced at
predetermined intervals, the dependent frames residing between the
reference frames; means for encoding display information of the
reference frames; means for predicting display information of each
dependent frame on the basis of display information of reference
frames which precede and follow said dependent frame respectively;
means for generating an error between the predicted display
information and corresponding actual display information of said
dependent frame; and means for encoding said error.
According to a third aspect of this invention, an inter-frame
predictive encoding system comprises means for performing
motion-compensated inter-frame prediction using motion vectors
between successively inputted frames of a video signal; the
improvement comprising means for setting specified frames separated
at equal intervals, the specified frames being selected from
successively inputted frames of a video signal; means for detecting
motion vectors between the specified frames; means for detecting
motion vectors between adjacent non-specified frames between the
specified frames as differences with respect to said motion vectors
between the specified frames.
BRIEF DESCRIPTION OF THE DRAWING
FIG. 1 is a block diagram of a conventional inter-frame predictive
encoding system.
FIG. 2 is a block diagram of a conventional decoding system.
FIG. 3 is a diagram of a stream of successive frames in an
inter-frame predictive encoding system and a decoding system
according to a first embodiment of this invention.
FIG. 4 is a block diagram of the inter-frame predictive encoding
system according to the first embodiment of this invention.
FIG. 5 is a diagram showing the relation between prediction values
and successive frames in the encoding system of FIG. 4.
FIG. 6 is a block diagram of a decoding system according to the
first embodiment of this invention.
FIG. 7 is a block diagram of an inter-frame predictive encoding
system according to a second embodiment of this invention.
FIG. 8 is a block diagram of an inter-frame predictive encoding
system according to a third embodiment of this invention.
FIG. 9 is a block diagram of the motion vector detector of FIG.
8.
FIG. 10 is a block diagram of the vector difference detector of
FIG. 8.
FIG. 11 is a block diagram of a circuit for generating a control
signal fed to the switches of FIG. 4.
FIG. 12 is a timing diagram of signals generated in the circuit of
FIG. 11.
DESCRIPTION OF THE PRIOR ART
FIG. 1 shows a conventional inter-frame predictive encoding system.
With reference to FIG. 1, a digitized video signal is fed to a
subtracter 2 via an input terminal 1. The subtracter 2 subtracts a
prediction digital signal from the digitized video signal to
generate a prediction error (difference) signal. The prediction
signal will be explained later.
The prediction error signal outputted from the substracter 2 is
subjected to an orthogonal transform by an orthogonal transform
device 3. The orthogonal transform increases the efficiency of
encoding. The output signal from the orthogonal transform device 3
is quantized by a quantizer 4. The output data from the quantizer 4
is encoded by an encoder S into variable-length codes such as
Huffman codes. The codes outputted from the encoder S are
transmitted via an output terminal 6.
The output data from the quantizer 4 is subjected to an inverse
quantization by an inverse quantizer 7 so that it is converted into
a representative (setting of a representative). The representative
outputted from the inverse quantizer 7 is subjected to an inverse
orthogonal transform by an inverse transform device 8. The output
signal from the inverse transform device 8 corresponds to a
prediction error (difference) which is generated through a decoding
process in a decoding system explained later. An adder 9 adds the
prediction error and a one-frame preceding prediction signal,
generating a digitized video signal which corresponds to a
digitized video signal generated by a decoding process in the
decoding system. A frame memory 10 delays the output signal from
the adder 9 by a time corresponding to a period of one frame. The
output signal from the frame memory 10 is passed through a spatial
low pass filter (a spatial LPF) 11, being converted into the
prediction signal. The prediction signal is fed from the spatial
LPF 11 to the subtracter 2 and the adder 9 via a switch 12. The
spatial LPF 11 multiples the output data from the adder 9 by a
coefficient which varies with a spatial frequency. The spatial LPF
11 ensures that a quantization error remains in the prediction
error at a reduced rate. The spatial LPF 11 is effective and
advantageous since a larger quantity of quantization errors are
present in a high-frequency range and an inter-frame correlation is
weakened by noises in the high-frequency range.
The switch 12 periodically couples and uncouples the spatial LPF 11
to and from the subtracter 2 and the adder 9 to periodically reset
the inter-frame prediction. The period of the resetting the
inter-frame prediction is generally set so as to correspond to 30
to 100 frames. When the inter-frame prediction is being reset, the
prediction signal is fixed and essentially intra-frame coding is
performed. The resetting prevents calculation errors from
accumulating up to an unacceptable level. The calculation error
would result from error codes generated in a transmission line and
mismatching between orthogonal converters of a transmitter side and
a receiver side in recursive-type inter-frame predictive en coding
such as shown in FIG. 1. A shorter period of the resetting enables
calculating errors from less accumulating but decreases the
efficiency of the encoding.
FIG. 2 shows a conventional decoding system designed for the
combination with the encoding system of FIG. 1. With reference to
FIG. 2, variable-length digital data is fed to a decoder 22 via an
input terminal 21. The decoder 22 converts the variable-length data
into original fixed-length data. The output data from the decoder
22 is subjected to an inverse quantization by an inverse quantizer
23 so that it is converted into a representative (setting of a
representative). The representative outputted from the inverse
quantizer 23 is subjected to an inverse orthogonal transform by an
inverse transform device 24. The output signal from the inverse
transform device 24 corresponds to a prediction error (difference).
An adder 25 adds the prediction error and a one-frame preceding
prediction signal, generating a digitized video signal. A frame
memory 27 delays the output signal from the adder 25 by a time
corresponding to a period of one frame. The output signal from the
frame memory 27 is passed through a spatial low pass filter (a
spatial LPF) 28, being converted into the prediction signal. The
prediction signal is fed from the spatial LPF 28 to the adder 25.
The spatial LPF 28 is similar to the spatial LPF 11 of the encoding
system.
The conventional encoding system of FIG. 1 and the conventional
decoding system of FIG. 2 have problems as follows. In the case
where these conventional systems are used for recording and
reproducing data into a storage medium such as an information
recording disk or an information recording tape, a short period of
resetting the inter-frame prediction is necessary to decode data
from arbitrary storage locations of the recording medium during a
random access or a search. Especially, a visual search requires a
very short period of resetting the inter-frame prediction since the
decoding is performed at intervals of several frames. The short
period of resetting the inter-frame prediction decreases the
efficiency of encoding.
In the case of reverse play back from the recording medium, the
predictive decoding is impossible since the direction of a time
axis is opposite to the direction of a time axis which occurs
during the encoding and recording.
Since the inter-frame prediction uses the preceding frame but does
not use the subsequent frame, the accuracy and efficiency of the
prediction tends to be inadequate. When a picture represented by
data changes greatly or when a scene represented by data changes,
the inter-frame prediction tends to be unreliable.
Since it is necessary for the encoding system to also perform the
decoding process, the structure of the encoding system tends to be
complicated.
DESCRIPTION OF THE FIRST PREFERRED EMBODIMENT
In an inter-frame predictive encoding system and an inter-frame
predictive decoding system according to a first embodiment of this
invention, as shown in FIG. 3, frames are separated into
independent frames (denoted by hatched squares) and dependent
frames (white squares). The independent frames are also referred to
as the reference frames. On a time axis, the independent frames are
separated at predetermined equal intervals corresponding to two or
more frames. A predetermined number of dependent frames are present
between two adjacent independent frames. Display information in an
independent frame is encoded independent of other frames. Display
information in a dependent frame is encoded by prediction using the
preceding and subsequent independent frames.
FIG. 4 shows an inter-frame predictive encoding system according to
a first embodiment of this invention. With reference to FIG. 4, a
digitized video signal is fed to a movable contact 37c of a switch
37 via an input terminal 1. The movable contact 37c of the switch
37 periodically changes between a first position and a second
position at a predetermined period. When the movable contact 37c of
the switch 37 assumes the first position, it contacts with a first
fixed contact 37a of the switch 37 and separates from a second
fixed contact 37b of the switch 37. When the movable contact 37c of
the switch 37 assumes the second position, it contacts with the
second fixed contact 37b of the switch 37 and separates from the
first fixed contact 37a of the switch 37. As will be made clear
hereinafter, when the movable contact 37c of the switch 37 contacts
with the first fixed contact 37a of the switch 37, the frame
represented by the current input video signal is defined as an
independent frame. Otherwise, the frame represented by the current
input video signal is defined as a dependent frame.
When the movable contact 37c of the switch 37 contacts with the
first fixed contact 37a of the switch 37, the input video signal is
transmitted through the switch 37 to a first fixed contact 38a of a
switch 38. A movable contact 38c of the switch 38 is connected to
an input terminal of an orthogonal transform device 3. The movable
contact 38c of the switch 38 periodically contacts with and
separates from the first fixed contact 38a and a second fixed
contact 38b of the switch 38 in a manner and at a timing similar to
those of the switch 37. Specifically, when the movable contact 37c
of the switch 37 contacts with the first fixed contact 37a of the
switch 37, the movable contact 38c of the switch 38 contacts with
the first fixed contact 38a of the switch 38 so that the input
video signal is further transmitted through the switch 38 to the
orthogonal transform device 3.
When the movable contact 37c of the switch 37 contacts with the
second fixed contact 37b of the switch switch 37 to a multi-frame
memory 31. The multi-frame memory 31 delays the input video signal
by a time corresponding to a predetermined number of frames.
Specifically, the delay time of the multi-frame memory 31
corresponds to (N-1) frames in the case where one independent frame
occurs per N successive frames and the letter N denotes a
predetermined natural number equal to two or greater. The output
video signal from the multi-frame memory 31 is fed to a subtracter
2. The subtracter 2 substracts a prediction signal from the video
signal to generate a prediction error (difference) signal. The
prediction signal will be explained later. The prediction error
signal is outputted from the subtracter 2 to the second fixed
contact 38b of the switch 38. When the movable contact 37c of the
switch 37 contacts with the second fixed contact 37b of the switch
37, the movable contact 38c of the switch 38 contacts with the
second fixed contact 38b of the switch 38 so that the prediction
error signal is transmitted through the switch 38 to the orthogonal
transform device 3.
During one-frame periods separated by equal intervals corresponding
to a predetermined number of frames, that is, during periods
corresponding to independent frames, the movable contact 37c of the
switch 37 contacts with the first fixed contact 37a of the switch
37 while the movable contact 38c of the switch 38 contacts with the
first fixed contact 38a of the switch 38. During other periods,
that is, during periods corresponding to dependent frames, the
movable contact 37c of the switch 37 contacts with the second fixed
contact 37b of the switch 37 while the movable contact 38c of the
switch 38 contacts with the second fixed contact 38b of the switch
38.
The independent-frame video signal or the dependent-frame
prediction error signal outputted from the subtracter 2 is
subjected to an orthogonal transform by the orthogonal transform
device 3. The orthogonal transform increases the efficiency of
encoding. The output signal from the orthogonal transform device 3
is quantized by a quantizer 4. The output data from the quantizer 4
is encoded by an encoder 5 into variable-length codes such as
Huffman codes. The codes outputted from the encoder 5 are
transmitted via an output terminal 6.
The output data from the quantizer 4 is applied to a first fixed
contact 39a of a switch 39. A second fixed contact 39b of the
switch 39 has no connection with other circuits. The movable
contact 39c of the switch 39 is connected to an input terminal of
an inverse quantizer 7. The movable contact 39c of the switch 39
periodically contacts with and separates from the first fixed
contact 39a and a second fixed contact 39b of the switch 39 in a
manner and at a timing similar to those of the switch 37.
Specifically, when the output signal from the quantizer 4
represents an independent frame, the movable contact 39c of the
switch 39 contacts with the first fixed contact 39a of the switch
39 so that the output signal from the quantizer 4 is transmitted to
the inverse quantizer 7. When the output signal from the quantizer
4 represents a dependent frame, the movable contact 39c of the
switch 39 contacts with the second fixed contact 39b of the switch
39 so that the transmission of the output signal from the quantizer
4 to the inverse quantizer 7 is interrupted. In this way, only the
output signal from the quantizer 4 which represents an independent
frame is transmitted to the inverse quantizer 7.
The independent-frame output signal from the quantizer 4 is
subjected to an inverse quantization by the inverse quantizer 7 so
that it is convened into a representative (setting of a
representative). The representative outputted from the inverse
quantizer 7 is subjected to an inverse orthogonal transform by an
inverse transform device 8. The output signal from the inverse
transform device 8 corresponds to a reproduced signal of an
independent frame. The output signal from the inverse transform
device 8, that is, the reproduced signal of an independent frame,
is written into a frame memory 32.
A first fixed contact 40a of a switch 40 is connected to the output
terminal of the frame memory 32. A second fixed contact 40b of the
switch 40 has no connection with other circuits. A movable contact
40c of the switch 40 is connected to an input terminal of a frame
memory 33. The movable contact 40c of the switch 40 periodically
contacts with and separates from the first fixed contact 40a and
the second fixed contact 40b of the switch 40 in a manner and at a
timing similar to those of the switch 37. Specifically, when the
output signal from the inverse transform device 8 which represents
the current independent frame is written into the frame memory 32,
the movable contact 40c of the switch 40 connects with the first
fixed contact 40a of the switch 40 so that the reproduced signal of
the preceding independent frame is transferred from the frame
memory 32 to the frame memory 33 via the switch 40. In this way,
the reproduced signal of the current independent frame and the
reproduced signal of the preceding independent frame are prepared
in the frame memory 32 and the frame memory 33 respectively.
The reproduced signal of the current independent frame and the
reproduced signal of the preceding independent frame remain stored
in the frame memory 32 and the frame memory 33 respectively until
the frame memory 32 is fed with the reproduced signal of the
subsequent independent frame from the inverse transform device 8.
The reproduced signal of the current independent frame and the
reproduced signal of the preceding independent frame are repeatedly
outputted from the frame memory 32 and the frame memory 33 to
multipliers 34 and 35 respectively. Specifically, the number of
times of outputting the reproduced signal of the current
independent frame and the reproduced signal of the preceding
independent frame is equal to N-1.
The multiplier 34 multiplies the reproduced signal of the current
independent frame by a weight coefficient ct and outputs the
resultant to an adder 36. The multiplier 35 multiplies the
reproduced signal of the preceding independent frame by a weight
coefficient (1-.alpha.) and outputs the resultant to the adder 36.
The adder 36 adds the resultants of the multiplications, generating
a prediction signal fed to the subtracter 2.
The weight coefficients a and (1-.alpha.) are determined in
accordance with the time relation between the dependent frame
inputted into the subtracter 2 and the independent frames related
to the prediction signal inputted into the subtracter 2. For
example, a linear prediction is used in the determination of the
weight coefficients a and (1-.alpha.). Specifically, the weight
coefficient .alpha. is given by the following equation.
where the character m denotes the order number (1, 2, 3, . . . ) of
the frame being a coded object; the character mp denotes the order
number (0, N, 2N, . . . ) of the previous independent frame; the
number m is larger than the number mp; and the character N denotes
a predetermined natural number equal to or larger than 2.
FIG. 5 shows the relation between the frame number and the level of
the prediction signal (the prediction value) in the case where the
number N equals 4. In the generation of the prediction signal, a
larger weight is offered to the independent frame closer to the
objective dependent frame while a smaller weight is offered to the
other independent frame. As understood from FIG. 5, in the case
where display information of dependent frames linearly varies from
the display information of the preceding independent frame to the
display information of the current independent frame, very accurate
prediction values are presented.
In the encoding system of FIG. 4, the operation of the switches 37
and 38 determines independent frames which are separated in a time
axis at equal intervals corresponding to a predetermined number of
frames. In addition, dependent frames are defined between
independent frames. The inter-frame correlation between coded data
is cut at each independent frame. Therefore, a visual search is
enabled by decoding only data of independent frames or by
performing a random access in unit corresponding to independent
frames.
In the encoding system of FIG. 4, the prediction signal is
generated by adding the data of the two adjacent independent frames
with variable weighting parameters. Specifically, the weight
coefficients .alpha. and (1-.alpha.) used in the generation of the
prediction signal are determined in accordance with the time
relation between the dependent frame inputted into the subtracter 2
and the independent frames related to the prediction signal
inputted into the subtracter 2. Therefore, the prediction can well
follow the variation of display information between successive
frames, and an S/N (a signal to noise ratio) of the prediction
signal can be high.
In the encoding system of FIG. 4, encoded data are arranged
symmetrically on a time axis so that a reverse reproduction of data
from a recording medium can be realized.
The switches 37-40 are changed in response to a switch control
signal. FIG. 11 shows a circuit for generating the switch control
signal. As shown in FIG. 11, the switch control circuit includes a
frame sync separator 501 which separates a frame sync signal from
the input video signal. As shown in FIG. 12, the frame sync signal
has a train of pulses. The pulses of the frame sync signal
outputted from the frame sync separator 501 are counted by a
counter 502. Each time four successive pulses of the frame sync
signal are counted by the counter 502, the counter 502 outputs a
pulse as shown in FIG. 12. The duration of each output pulse from
the counter 502 agrees with the one-frame period. The
sequentially-outputted pulses from the counter 502 compose the
switch control signals fed to the switches 37-40.
FIG. 6 shows an inter-frame predictive decoding system according to
the first embodiment of this invention. With reference to FIG. 6,
variable-length digital data is fed to a decoder 22 via an input
terminal 21. The decoder 22 converts the variable-length data into
original fixed-length data. The output data from the decoder 22 is
subjected to an inverse quantization by an inverse quantizer 23 so
that it is converted into a representative (setting of a
representative). The representative outputted from the inverse
quantizer 23 is subjected to an reverse orthogonal transform by an
inverse transform device 24. For independent frames, the output
signal from the inverse transform device 24 corresponds to a
reproduced video signal. For dependent frames, the output signal
from the inverse transform device 24 corresponds to a prediction
error signal.
The output signal from the inverse transform device 24 is applied
to a movable contact 47c of a switch 47. A first fixed contact 47a
of the switch 47 is connected to an input terminal of a frame
memory 42. A second fixed contact 47b of the switch 47 is connected
to an adder 41. The movable contact 47c of the switch 47
periodically changes between a first position and a second position
at a predetermined period. When the movable contact 47c of the
switch 47 assumes the first position, it contacts with the first
fixed contact 47a of the switch 47 and separates from the second
fixed contact 47b of the switch 47. When the movable contact 47c of
the switch 47 assumes the second position, it contacts with the
second fixed contact 47b of the switch 47 and separates from the
first fixed contact 47a of the switch 47. When the output signal
from the inverse transform device 24 represents an independent
frame, the movable contact 47c of the switch 47 contacts with the
first fixed contact 47a of the switch 47 so that the
independent-frame signal is fed to and written into the frame
memory 42. When the output signal from the inverse transform device
24 represents a dependent frame, the movable contact 47c of the
switch 47 contacts with the second fixed contact 47b of the switch
47 so that the dependent-frame signal is fed to the adder 41.
The adder 41 adds the dependent-frame signal and a prediction
signal, reproducing a digitized video signal of a dependent frame.
The prediction signal will be explained later. The adder 41 outputs
the reproduced video signal of a dependent frame to a second fixed
contact 48b of a switch 48. A first fixed contact 48a of the switch
48 is connected to a first fixed contact 49a of a switch 49 which
will be explained later. A movable contact 48c of the switch 48 is
connected to an output terminal 26. The movable contact 48c of the
switch 48 periodically contacts with and separates from the first
fixed contact 48a and the second fixed contact 48b of the switch 48
in a manner and at a timing similar to those of the switch 47.
Specifically, when the adder 41 outputs the reproduced video signal
of a dependent frame, the movable contact 48c of the switch 48
contacts with the second fixed contact 48b of the switch 48 so that
the dependent-frame video signal is transmitted from the adder 41
to the output terminal 26 via the switch 48.
As described previously, the output signal from the inverse
transform device 24 which agrees with the reproduced signal of an
independent frame is written into the frame memory 42. A movable
contact 49c of a switch 49 is connected to the output terminal of
the frame memory 42. A first fixed contact 49a of the switch 49 is
connected to an input terminal of a frame memory 43. A second fixed
contact 49b of the switch 49 has no connection with other circuits.
The movable contact 49c of the switch 49 periodically contacts with
and separates from the first fixed contact 49a and the second fixed
contact 49b of the switch 49 in a manner and at a timing similar to
those of the switch 47. Specifically, when the output signal from
the inverse transform device 24 represents the current independent
frame and is thus written into the frame memory 42, the movable
contact 49c of the switch 49 connects with the first fixed contact
49a of the switch 49 so that the reproduced signal of the preceding
independent frame is transferred from the frame memory 42 to the
frame memory 43 via the switch 49. At the same time, the movable
contact 48c of the switch 48 connects with the first fixed contact
48a of the switch 48 so that the reproduced signal of the preceding
independent frame is transferred from the frame memory 42 to the
output terminal 26 via the switches 48 and 49. As understood from
the previous description, the reproduced signal of the current
independent frame and the reproduced signal of the preceding
independent frame are prepared in the frame memory 42 and the frame
memory 43 respectively.
The reproduced signal of the current independent frame and the
reproduced signal of the preceding independent frame remain stored
in the frame memory 42 and the frame memory 43 respectively until
the frame memory 42 is fed with the reproduced signal of the
subsequent independent frame from the inverse transform device 24.
The reproduced signal of the current independent frame and the
reproduced signal of the preceding independent frame are repeatedly
outputted from the frame memory 42 and the frame memory 43 to
multipliers 44 and 45 respectively. Specifically, the number of
times of outputting the reproduced signal of the current
independent frame and the reproduced signal of the preceding
independent frame is equal to N-1.
The multiplier 44 multiplies the reproduced signal of the current
independent frame by a weight coefficient a and outputs the
resultant to an adder 445. The multiplier 45 multiplies the
reproduced signal of the current independent frame by a weight
coefficient (1-.alpha.) and outputs the resultant to the adder 445.
The adder 46 adds the resultants of the multiplications, generating
a prediction signal fed to the adder 41. The weight coefficients
.alpha. and (1-.alpha.) are determined similarly to the
determination of the weight coefficients in the encoding system of
FIG. 4.
The switches 47-49 are changed in response to a control signal
generated by a circuit similar to the circuit of FIG. 11.
During the processing of the input video signal by the encoding
system of FIG. 4, independent frames are advanced relative to
dependent frames. To compensate the advance of the independent
frames, the reproduced video signal of an independent signal is
outputted from the frame memory 42 to the output terminal 26 when
the prediction process related to dependent frames between two
independent frames is completed. Accordingly, the frame memory 42
also functions to perform the time correction.
DESCRIPTION OF THE SECOND PREFERRED EMBODIMENT
FIG. 7 shows an inter-frame predictive encoding system according to
a second embodiment of this invention which is similar to the
embodiment of FIG. 4 except for designs explained later.
In the encoding system of FIG. 7, the inverse quantizer 7, the
inverse transform device 8, and the switch 39 (see FIG. 4) are
omitted while the input terminal of the frame memory 32 is
connected to the first fixed contact 37a of the switch 37.
When the input video signal of an independent frame is fed to the
orthogonal transform device 3 via the switches 37 and 38, the
independent-frame signal is also fed to the frame memory 32 and is
written thereinto. Accordingly, the input video signal of
independent frames is directly used in the generation of a
prediction signal fed to the subtracter 2. It should be noted that,
in the encoding system of FIG. 4, the resultant of the processing
of the input video signal of an independent frame by the devices 3,
4, 7, and 8 is used in the generation of a prediction signal.
The encoding system of FIG. 7 dispenses with a decoding process. In
addition, the encoding system of FIG. 7 has advantages similar to
those of the encoding system of FIG. 4.
DESCRIPTION OF THE THIRD PREFERRED EMBODIMENT
In an inter-frame predictive encoding system according to a third
embodiment of this invention, frames are separated into independent
frames and dependent frames as in the embodiment of FIGS. 3-6.
FIG. 8 shows an inter-frame predictive encoding system according to
a third embodiment of this invention. With reference to FIG. 8, a
digitized video signal is fed to a movable contact 142c of a switch
142 via an input terminal 101. The movable contact 142c of the
switch 142 periodically changes between a first position and a
second position at a predetermined period. When the movable contact
142c of the switch 142 assumes the first position, it contacts with
a first fixed contact 142a of the switch 142 and separates from a
second fixed contact 142b of the switch 142. When the movable
contact 142c of the switch 142 assumes the second position, it
contacts with the second fixed contact 142b of the switch 142 and
separates from the first fixed contact 142a of the switch 142. As
will be made clear hereinafter, when the movable contact 142c of
the switch 142 contacts with the first fixed contact 142a of the
switch 142, the frame represented by the current input video signal
is defined as an independent frame. Otherwise, the frame
represented by the current input video signal is defined as a
dependent frame.
When the movable contact 142c of the switch 142 contacts with the
first fixed contact 142a of the switch 142, the input video signal
is transmitted through the switch 142 to a first fixed contact 143a
of a switch 143. A movable contact 143c of the switch 143 is
connected to an input terminal of an orthogonal transform device
103. The movable contact 143c of the switch 143 periodically
contacts with and separates from the first fixed contact 143a and a
second fixed contact 143b of the switch 143 in a manner and at a
timing similar to those of the switch 142. Specifically, when the
movable contact 142c of the switch 142 contacts with the first
fixed contact 142a of the switch 142, the movable contact 143c of
the switch 143 contacts with the first fixed contact 143a of the
switch 143 so that the input video signal is further transmitted
through the switch 143 to the orthogonal transform device 103.
When the movable contact 142c of the switch 142 contacts with the
second fixed contact 142b of the switch 142, the input video signal
is transmitted through the switch 142 to a multi-frame memory 131.
The multi-frame memory 131 delays the input video signal by a time
corresponding to a predetermined number of frames. Specifically,
the delay time of the multi-frame memory 131 corresponds to (N-1)
frames in the case where one independent frame occurs per N
successive frames and the letter N denotes a predetermined natural
number equal to two or greater. The output video signal from the
multi-frame memory 1;31 is fed to a subtracter 102. The subtracter
102 subtracts a prediction signal from the video signal to generate
a prediction error (difference) signal. The prediction signal will
be explained later. The prediction error signal is outputted from
the subtracter 102 to the second fixed contact 143b of the switch
143. When the movable contact 142c of the switch 142 contacts with
the second fixed contact 142b of the switch 142, the movable
contact 143c of the switch 143 contacts with the second fixed
contact 143b of the switch 143 so that the prediction error signal
is transmitted through the switch 143 to the orthogonal transform
device 103.
During one-frame periods separated by equal intervals corresponding
to a predetermined number of frames, that is, during periods
corresponding to independent frames, the movable contact 142c of
the switch 142 contacts with the first fixed contact 142a of the
switch 142 contacts while the movable contact 143c of the switch
143 contacts with the first fixed contact 143a of the switch 143.
During other periods, that is, during periods corresponding to
dependent frames, the movable contact 142c of the switch 142
contacts with the second fixed contact 142b of the switch 142 while
the movable contact 143c of the switch 143 contacts with the second
fixed contact 143b of the switch 143.
The video signal of the independent-frame or the prediction error
signal of the dependent-frame outputted from the subtracter 102 is
subjected to an orthogonal transform by the orthogonal transform
device 103. The orthogonal transform increases the efficiency of
encoding. The output signal from the orthogonal transform device
103 is quantized by a quantizer 104. The output data from the
quantizer 104 is encoded by an encoder 105 into variable-length
codes such as Huffman codes. The codes outputted from the encoder
105 are transmitted via an output terminal 106.
The independent-frame video signal is transmitted via the switch
142 and is written into a frame memory 132. A movable contact 144c
of a switch 144 is connected to an output terminal of the frame
memory 132. A first fixed contact 144a of the switch 144 is
connected to an input terminal of a frame memory 133. A second
fixed contact 144b of the switch 144 has no connection with other
circuits. The movable contact 144c of the switch 144 periodically
contacts with and separates from the first fixed contact 144a and
the second fixed contact 144b of the switch 144 in a manner and at
a timing similar to those of the switch 142. Specifically, when the
current independent-frame signal is transmitted via the switch 142
and is written into the frame memory 132, the movable contact 144e
of the switch 144 connects with the first fixed contact 144a of the
switch 144 so that the preceding independent-frame signal is
transferred from the frame memory 132 to the frame memory 133 via
the switch 144. In this way, the current independent-frame signal
and the preceding independent-frame signal are prepared in the
frame memory 132 and the frame memory 133 respectively.
The current independent-frame signal and the preceding
independent-frame signal remain stored in the frame memory 132 and
the frame memory 133 respectively until the frame memory 132 is fed
with the subsequent independent-frame signal via the switch 142.
The current independent-frame signal and the preceding
independent-frame signal are repeatedly outputted from the frame
memory 132 and the frame memory 133 to position shifters 134 and
135 respectively. The position shifter 134 two-dimensionally shifts
the current independent-frame signal by a magnitude which is
determined by a shift calculator 136. Similarly, the position
shifter 135 shifts the preceding independent-frame signal by a
magnitude which is determined by the shift calculator 136.
The position shifter 134 includes an address generator, and a
temporal memory into and from which the current independent-frame
signal is written and read in accordance with an address signal
from the address generator. During the reading out the signal from
the temporal memory, the address generator shifts addresses
relative to the write addresses in accordance with a signal from
the shift calculator 136 to provide the two dimensional shift of
the current independent-frame signal. The position shifter 135 is
designed similarly to the position shifter 134.
An output signal from a vector difference detector 141 which
represents a motion vector is inputted into the shift calculator
136. The shift calculator 136 multiplies the motion vector by
(N-i), generating a magnitude of shift fed to the position shifter
134. In addition, the shift calculator 136 multiplies the motion
vector by (-i), generating a magnitude of shift fed to the position
shifter 135. The character i denotes the order number of a
predicted frame which is determined in view of the time relation
between frames. Specifically, the number i is 0 for each
independent frame and varies as i=1, 2, 3, . . . , (N-i) for
dependent frames.
Output signals from the position shifters 134 and 135 are fed to
multipliers 137 and 138 respectively. The multiplier 137 multiplies
the output signal from the position shifter 137 by a weight
coefficient a and feeds the resultant to an adder 139. The
multiplier 138 multiplies the output signal from the position
shifter 135 by a weight coefficient (1-.alpha.) and feeds the
resultant to the adder 139. The adder 139 adds the resultants of
the multiplications, generating a prediction signal fed to the
subtracter 102. For example, according to a linear prediction, the
weight coefficient .alpha. is defined as i/N.
The current independent-frame video signal is transmitted via the
switch 142 to a motion vector detector 140. The preceding
independent-frame video signal is fed from the frame memory 132 to
the motion vector detector 140. The motion vector detector 140
detects motion vectors from the current independent-frame signal
and the preceding independent-frame signal in a known way such as a
block matching method. The motion vector detector 140 outputs a
signal representative of the detected motion vectors to the vector
difference detector 141.
As shown in FIG. 9, the motion vector detector 140 includes RAMs
153 and 154 receiving the current independent-frame signal and the
preceding independent frame signal via input terminals 151 and 152
respectively. The current independent-frame signal and the
preceding independent-frame signal are written into the RAMs 153
and 154 respectively. Each of the signals stored in the RAMs 153
and 154 is divided into spatial regions whose number is greater
than the number of spatial regions corresponding to blocks of
8.times.8 or 16.times.16 pixels which are used in determining
motion vectors.
Since motion vectors are used for dependent frames between the
current independent frame and the preceding independent frame, it
is necessary to handle the two independent frames similarly.
Therefore, the two frames are moved symmetrically during the
determination of motion vectors.
During the writing of the signal into each of the RAMs 153 and 154,
addresses fed to each of the RAMs 53 and 154 are directly made by
main addresses of pixels in blocks. During the reading of the
signal from each of the RAMs 153 and 154, addresses fed to each of
the RAMs 153 and 154 are modified by a value of motion vectors
which are generated in a vector generator 55. The writing of the
signal into each of the RAMs 53 and 154 is performed once for each
independent frame, while the reading of the signal from each of the
RAMs 153 and 154 is repeatedly performed a number of times which
equals the number of motion vectors. The address shift is composed
of a vector which is generated by a vector generator 155 in
correspondence with intervals of N frames. For example, the vector
generator 155 includes a counter.
Specifically, addresses to the RAM 153 for the current independent
frame are generated by adding the vector output from the vector
generator 155 to an output signal from a main address generator
156. This addition is performed by an adder 157. For example, the
main address generator 156 includes a counter. Addresses to the RAM
154 for the preceding independent frame are generated by
subtracting the vector output of the vector generator 155 from an
output signal of the main address generator 156. This subtraction
is performed by a subtracter 158.
A subtracter 159 calculates a difference between the output data
from the RAMs 153 and 154. A squaring device 160 calculates the
square of the data difference. An integrator 161 accumulates the
output data from the squaring device 160 during an interval
corresponding to a period of one block. The integrator 161 obtains
a mean square error for a setting vector.
The section corresponding to a part surrounded by the broken line
of FIG. 9 includes the devices 153, 154, 156, 157, 158, 159, 160,
and 161. This section performs a process of detecting a mean square
error. For each setting vector in each block, the detecting process
is repeatedly performed a number of times which equals the number
of pixels within one block.
The mean square errors of respective vectors are sequentially fed
from the integrator 161 to a vector selector 162. The vector
selector 162 detects the smallest among the mean square errors and
outputs the motion vector corresponding to the selected smallest
mean square error as a motion vector V' representing a motion
corresponding to each of blocks of one frame. For example, the
vector selector 162 includes a smallest value selector of the
serial input type which is composed of a combination of latches and
comparators. The; motion vector V' is generated for each block. The
motion vectors of one frame are stored into a frame memory 163.
During the prediction process for dependent frames between two
adjacent independent frames, the motion vectors are repeatedly read
out from the frame memory 163 and are transmitted via an output
terminal 164 to the vector difference detector 141.
Returning to FIG. 8, the vector difference detector 141 performs a
process of calculating differences between vectors in each
predicted frame. As will be made clear hereinafter, some circuit
components are common to the vector difference detector 141 and the
motion vector detector 140.
The vector difference detector 141 is fed with the dependent-frame
signal from the multi-frame memory 131. A first fixed contact 145d
and a second fixed contact 145e of a switch 145 are connected to
the output terminals of the frame memories 132 and 133
respectively. A movable contact 145f of the switch 145 is connected
to the vector difference detector 141. The movable contact 145f of
the switch 145 periodically changes between a first position and a
second position at a predetermined period. When the movable contact
145f of the switch 145 assumes the first position, it contacts with
the first fixed contact 145d of the switch 145 and separates from
the second fixed contact 145e of the switch 145 so that the
preceding independent-frame signal is fed from the frame memory 133
to the vector difference detector 141 via the switch 145. When the
movable contact 145f of the switch 145 assumes the second position,
it contacts with the second fixed contact 145e of the switch 145
and separates from the first fixed contact 145d of the switch 145
so that the current independent-frame signal is fed from the frame
memory 132 to the vector difference detector 141 via the switch
145. In this way, the current independent-frame signal and the
preceding independent-frame signal are alternately fed to the
vector difference detector 141.
Specifically, the switch 145 is changed in response to the order
number of a frame so that one of the current independent-frame
signal and the preceding independent-frame signal is alternately
and periodically selected and fed to the vector difference detector
141. Selected one of the current independent-frame signal and the
preceding independent-frame signal relates to a larger weight in
the predictive calculation.
As shown in FIG. 10, the vector difference detector 141 includes
the RAMs 153 and 154 receiving the dependent-frame signal and the
independent-frame signal via the input terminals 151 and 152
respectively. The dependent-frame signal and the independent-frame
signal are written into the RAMs 153 and 154 respectively.
The motion vector V' determined between the current independent
frame and the preceding independent frame is transmitted from the
motion vector detector 140 to an adder 167 via an input terminal
165. The adder 167 adds the motion vector V' and an output value vd
from a vector difference generator 166, generating a resultant
vector. For example, the vector difference generator 166 includes a
counter.
A known detection of motion vectors use a method in which first
vectors are set at a low distribution density and then second
vectors are set around the first vectors at a high distribution
density. The output value vd from the vector difference generator
166 corresponds to a vector difference determined in respect of
setting the second vectors in the known method.
A multiplier 168 multiplies the resultant vector by (-i) for the
preceding independent frame. The multiplier 168 multiplies the
resultant vector by (N-i) for the current independent frame. The
character i denotes the order number of a predicted frame which is
determined in view of the time relation between frames.
Specifically, the number i is 0 for each independent frame and
varies as i=1, 2, 3, . . . , (N-i) for dependent frames. The output
signal from the multiplier 168 represents an address shift.
During the writing of the signal into each of the RAMs 153 and 154,
addresses fed to each of the RAMs 153 and 154 are directly made by
main addresses of pixels in blocks. During the reading of the
signal from the RAM 153, addresses fed to the RAM 153 are also
directly made by the main addresses. During the reading of the
signal from the RAM 154, addresses fed to the RAM 154 are made by
adding an address shift to the main addresses.
Specifically, reading addresses to the RAM 154 for the independent
frame are generated by adding the address shift from the multiplier
168 to the output signal from the main address generator 156. This
addition is performed by an adder 169. The output signal from the
main address generator 156 are fed to the RAM 153 as reading and
writing addresses.
The subtracter 159 calculates a difference between the output data
from the RAMs 153 and 154. The squaring device 160 calculates the
square of the data difference. The integrator 161 accumulates the
output data from the squaring device 160 during an interval
corresponding to a period of one block. The integrator 161 obtains
a mean square error for a setting vector.
The mean square errors of respective vectors are sequentially fed
from the integrator 161 to the vector selector 162. The vector
selector 162 detects the smallest among the mean square errors and
outputs the motion vector corresponding to the detected smallest
mean square error as a motion vector dV' representing a motion
corresponding to each of blocks of one frame. The motion vector dV'
is generated for each block. An adder 170 adds the motion vector
dV' and the motion vector V', generating a final motion vector V.
The final motion vector V outputted from the adder 170 is
transmitted via the output terminal 164 to the shift calculator 136
and an encoder 113 (see FIG. 8). The output data from the vector
difference detector 141 is encoded by the encoder 113 into
variable-length codes such as Huffman codes.
The motion vector V' or the motion vector dV' is selected from 9
different types while the final motion vector V is selected from 49
different vectors.
The processing by the motion vector detector 140 and the processing
by the vector difference detector 141 are performed during
different periods respectively. This design enables reliable
operation of the detectors 140 and 141 although the circuit
components are common to the detectors 140 and 141. It should be
noted that the circuit components of the detector 140 may separate
from the circuit components of the detector 141.
ADVANTAGE OF THE INVENTION AND ANOTHER EMBODIMENT
As understood from the previous description, in this invention, a
signal of a frame is coded by referring to signals of frames which
precede and follow that frame. This function enables the present
invention to produce new advantages such as an increase in the
efficiency of encoding.
While the reference frames (the independent frames) are
independently coded in the previously-mentioned embodiments, other
designs may be adopted. For example, the reference frames may be
coded by use of the correlation between the reference frames to
further increase the efficiency of encoding.
* * * * *