Variable length decoding of motion vectors
AssigneeHyundai Electronics Industries Co., Ltd.
InventorsSung Moon Chun, Geum Ock Lee
Life of this patent
Estimating the term…
Abstract
Motion vector decoding apparatus and method for converting a variable length of a motion vector into an original one using a difference component of the motion vector. The motion vector decoding apparatus comprises an X-axis motion vector component decoder for decoding an X-axis component of the motion vector in response to first and second X-axis motion vector difference components, and a Y-axis motion vector component decoder for decoding a Y-axis component of the motion vector in response to first and second Y-axis motion vector difference components. According to the present invention, a compressed video signal can be restored rapidly and accurately in a variable length decoder.
Claims4
A motion vector decoding apparatus for converting a variable length coded representation of a motion vector into an original vector using a difference component of the motion vector, comprising:
- X-axis motion vector component decoding means for decoding an X-axis component of the motion vector in response to first ad second X-axis motion vector difference components, said X-axis motion vector component decoding means includes:
- a first buffer for storing temporarily the first X-axis motion vector difference component in response to a first control signal;
- a second buffer for storing temporarily the second X-axis motion vector difference component in response to the first control signal;
- a first adder for adding an output signal from said first buffer and the X-axis motion vector component;
- a third buffer for storing temporarily an output signal from said first adder in response to a second control signal;
- a second adder for adding an output signal from said second buffer and the X-axis motion vector component;
- a fourth buffer for storing temporarily an output signal from said second adder in response to the second control signal;
- a comparator for comparing absolute values of output signals from said third and fourth buffers with each other and outputting an absolute X-axis motion vector component in accordance with the compared result, the absolute X-axis motion vector component having a value within the range from -31 to 31;
- a selector for selecting one of the output signals from said third and fourth buffers in response to an output signal from said comparator;
- a fifth buffer responsive to third and fourth control signals for storing temporarily an output signal from said selector and outputting the stored signal as the X-axis motion vector component to said first and second adders;
- and
- a controller for generating the first to fourth control signals and an X-axis valid signal in response to a clock signal and an X-axis difference valid signal and outputting the generated first to fourth control signals to said first to fifth buffers, said controller outputting the X-axis valid signal externally synchronously with the output of the X-axis motion vector component from said fifth buffer;
- and
- Y-axis motion vector component decoding means for decoding a Y-axis component of the motion vector in response to first and second Y-axis motion vector difference components.
A motion vector decoding apparatus for converting a variable length coded representation of a motion vector into an original vector using a difference component of the motion vector, comprising:
- X-axis motion vector component decoding means for decoding an X-axis component of the motion vector in response to first and second X-axis motion vector difference components;
- and
- Y-axis motion vector component decoding means for decoding a Y-axis component of the motion vector in response to first and second Y-axis motion vector difference components, said Y-axis motion vector component decoding means includes:
- a first buffer for storing temporarily the first Y-axis motion vector difference component in response to a first control signal;
- a second buffer for storing temporarily the second Y-axis motion vector difference component in response to the first control signal;
- a first adder for adding an output signal from said first buffer and the Y-axis motion vector component;
- a third buffer for storing temporarily an output signal from said first adder in response to a second control signal;
- a second adder for adding an output signal from said second buffer and the Y-axis motion vector component;
- a fourth buffer for storing temporarily an output signal from said second adder in response to the second control signal;
- a comparator for comparing absolute values of output signals from said third and fourth buffers with each other and outputting an absolute Y-axis motion vector component in accordance with the compared result, the absolute Y-axis motion vector component having a value within the range from -8 to 7;
- a selector for selecting one of the output signals from said third and fourth buffers in response to an output signal from said comparator;
- a fifth buffer responsive to third and fourth control signals for storing temporarily an output signal from said selector and outputting the stored signal as the Y-axis motion vector component to said first and second adders;
- and
- a controller for generating the first to fourth control signals and a Y-axis valid signal in response to a clock signal and a Y-axis difference valid signal and outputting the generated first to fourth control signals to said first to fifth buffers, said controller outputting the Y-axis valid signal externally synchronously with the output of the Y-axis motion vector component from said fifth buffer.
A motion vector decoding method for converting a variable length coded representation of a motion vector into an original vector using a difference component of the motion vector, comprising the steps of:
- (a) decoding an X-axis component of the motion vector in response to first and second X-axis motion vector difference components, decoding the X-axis motion vector component includes the steps of:
- (a-1) checking whether an X-axis difference valid signal has been inputted, to check whether the first and second X-axis motion vector difference components have been inputted, the first and second X-axis motion vector difference components being (N+1)th X-axis motion vector components;
- (a-2) checking whether a first buffer is in a clear state, if it is checked at said step (a-1) that the X-axis difference valid signal has been inputted;
- (a-3) setting an output of said first buffer to 0 if it is checked at said step (a-2) that said first buffer is in the clear state and allowing said first buffer to output the X-axis motion vector component;
- (a-4) applying the first and second X-axis motion vector difference components to second and third buffers, respectively, if it is checked at said step (a-2) that said first buffer is not in the clear state;
- (a-5) storing temporarily the first and second X-axis motion vector difference components into said second and third buffers, respectively, adding the stored first and second X-axis motion vector difference components to the X-axis motion vector component from said first buffer, and then outputting the respective sums as first and second Nth X-axis motion vector components through fourth and fifth buffers, respectively;
- (a-6) allowing a comparator to check whether the first Nth X-axis motion vector component from said fourth buffer is within the range from -31 to 31;
- (a-7) allowing a selector to select the first Nth X-axis motion vector component from said fourth buffer and to output the selected first Nth X-axis motion vector component to said first buffer, if it is checked at said step (a-6) that the first Nth X-axis motion vector component from said fourth buffer is within the range from -31 to 31, and allowing said first buffer to output the first Nth X-axis motion vector component from said selector as an (N-1)th X-axis motion vector component;
- (a-8) allowing said selector to select the second Nth X-axis motion vector component from said fifth buffer and to output the selected second Nth X-axis motion vector component to said first buffer, if it is checked at said step (a-6) that the first Nth X-axis motion vector component from said fourth buffer is not within the range from -31 to 31, and allowing said first buffer to output the second Nth X-axis motion vector component from said selector as the (N-1)th X-axis motion vector component;
- and
- (a-9) setting an X-axis valid signal to 1 synchronously with the output of said first buffer;
- and
- (b) decoding a Y-axis component of the motion vector in response to first and second Y-axis motion vector difference components.
A motion vector decoding method as for converting a variable length coded representation of a motion vector into an original vector using a difference component of the motion vector, comprising the steps of:
- (a) decoding an X-axis component of the motion vector in response to first and second X-axis motion vector difference component;
- and
- (b) decoding a Y-axis component of the motion vector in response to first and second Y-axis motion vector difference components, decoding the Y-axis motion vector component includes the steps of:
- (b-1) checking whether a Y-axis difference valid signal has been inputted, to check whether the first and second Y-axis motion vector difference components have been inputted, the first and second Y-axis motion vector difference components being (N+1)th Y-axis motion vector components;
- (b-2) checking whether a first buffer is in a clear state, if it is checked at said step (b-1) that the Y-axis difference valid signal has been inputted;
- (b-3) setting an output of said first buffer to 0 if it is checked at said step (b-2) that said first buffer is in the clear state and allowing said first buffer to output the Y-axis motion vector component;
- (b-4) applying the first and second Y-axis motion vector difference components to second and third buffers, respectively, if it is checked at said step (b-2) that said first buffer is not in the clear state;
- (b-5) storing temporarily the first and second Y-axis motion vector difference components into said second and third buffers, respectively, adding the stored first and second Y-axis motion vector difference components to the Y-axis motion vector component from said first buffer, and then outputting the respective sums as first and second Nth Y-axis motion vector components through fourth and fifth buffers, respectively;
- (b-6) allowing a comparator to check whether the first Nth Y-axis motion vector component from said fourth buffer is within the range from -8 to 7;
- (b-7) allowing a selector to select the first Nth Y-axis motion vector component from said fourth buffer and to output the selected first Nth Y-axis motion vector component to said first buffer, if it is checked at said step (b-6) that the first Nth Y-axis motion vector component from said fourth buffer is within the range from -8 to 7, and allowing said first buffer to output the first Nth Y-axis motion vector component from said selector as an (N-1)th Y-axis motion vector component;
- (b-8) allowing said selector to select the second Nth Y-axis motion vector component from said fifth buffer and to output the selected second Nth Y-axis motion vector component to said first buffer, if it is checked at said step (b-6) that the first Nth Y-axis motion vector component from said fourth buffer is not within the range from -8 to 7, and allowing said first buffer to output the second Nth Y-axis motion vector component from said selector as the (N-1)th Y-axis motion vector component;
- and
- (b-9) setting a Y-axis valid signal to 1 synchronously with the output of said first buffer.
Dependencies are inferred from the claim text.