Parallel processing of digital signals in a single arithmetic/logic unit
AssigneeVivo Software, Inc.
InventorsStaffan Ericsson, John Bruder, Bernd Girod
Life of this patent
Estimating the term…
Abstract
A method of processing a digital signal wherein multiple signal values are simultaneously operated upon in a single register. The register is not segmented in hardware, but is segmented by operation of a controlling computer software program. The controlling computer software arranges the digital signal in a computer memory in such a manner as to permit the register to be loaded with a plurality of digital samples, each having a precision less than the total precision available in the register. The method may include steps to partially compensate for errors introduced by carries from one segment of the register to another segment of the register, when necessary.
Claims14
A method of processing image signals in an arithmetic/logic unit having a register including a plurality of segments, each segment accommodating predetermined numbers of bits, and in which carry bits are propagated by operation in the arithmetic/logic unit from a lower order segment of the register to a higher order segment of the register, the method comprising the steps of:
- reciving a digital image signal formed of a sequence of digitial sample representative of numerical values, wherein the digital sample form sets in which at least one anticipated processing step is performed identically upon each digital sample in each set and wherein each set includes a digital sample represented by a number of bits corresponding to one of the plurality of segments;
- loading into contiguous adjacent segments of a single register, without unused bits therebetween, a set of first operands taken from a group including a first set of digital samples and a set of digital samples arranged to have correspondence with the segments of the single register, a second set of operands formed by a remainder of the group;
- performing an arithmetic/logic unit function that causes carry bits to be propagated, the function perform simulaneously between all the digital samples of the first set of operands and the second set of operands, forming a new set of digital samples in the register;
- and
- providing as a processed digital signal, a new sequence of the set of new digital samples.
A method of processing signals in an arithmetic/logic unit having a register including a plurality of segments, each segment accommodating predetermined numbers of bits, and in which carry bits are propagated by operations in the arithmetic/logic unit from a lower order segment of the register to a higher order segment of the register, the method comprising the steps of:
- receiving a digital signal formed of a sequence of digital samples representative of numerical values, wherein the digital samples form sets in which at least one anticipated processing step is performed identically upon each digital sample in each set and wherein each set includes a digital sample represented by a number of bits corresponding to one of the plurality of segments;
- loading into contiguous adjacent segments of a single register, without unused bits therebetween, a set of first operands taken from a group including a first set of the digital samples and a set of digital samples arranged to have correspondence with the segments of the single register, a second set of operands formed by a remainder of the group;
- performing an arithmetic/logic unit function that causes carry bits to be propagated, the function performed simultaneously between all the digital samples of the first set of the operands and the second set of operands, forming a new set of digital samples in the register;
- and
- providing as a processed digital signal, a new sequence of the new set of digital samples.
A method of processing digital image signals, comprising the steps of:
- representing the digital image signal as a sequence of pixel signals;
- loading into adjacent segments in a single register a first plurality of pixel signals;
- subtracting from the first plurality of pixel signals a second plurality of pixel signals, thereby producing in the single register a plurality of difference signals;
- propagating an error introduced by one of the plurality of difference signals to another of the plurality of difference signals;
- comparing the difference signals with a predetermined range;
- adding to the difference signals a third plurality of pixel signals, the third plurality of pixel signals and the second plurality of pixel signals having values related by a first constant factor, thereby producing a fourth plurality of pixel signals;
- selecting as an output plurality of pixel signals the first plurality of pixel signals scaled by a second constant factor when any of the plurality of difference signals lies outside the predetermined range and selecting as the output plurality of pixel signals the fourth plurality of pixel signals when none of the plurality of difference signals lies outside the predetermined range;
- delaying the output plurality of pixel signals by one frame, thereby producing the third plurality of pixel signals;
- and
- assembling the output plurality of pixel signals into a sequence forming a new digital image signal.
A method of processing image signals, comprising the steps of:
- receiving an image signal;
- representing the image signal as a digital image signal formed of a sequence of digital samples representative of numerical values;
- categorizing the digital samples into sets, each set including a plurality of digital samples;
- loading into adjacent segments of a single register a first set of digital samples;
- adding to the first set of digital samples in the single register a second set of digital samples, forming a new set of digital samples in said adjacent segments;
- propagating an error introduced by one of the adjacent segments to another of the adjacent segments;
- multiplying the new set of digital samples in said adjacent segments by a constant;
- and
- adding to the multiplied new set of digital samples in the register a third set of digital samples;
- propagating an error introduced by one of the adjacent segments to another of the adjacent segments.
A method of processing image signals, comprising the steps of:
- receiving an image signal representative of an image having at least two orthogonal dimensions;
- representing the image signal as a digital image signal formed of a sequence of digital samples representative of numerical values;
- categorizing the digital samples into sets, each set including a plurality of digital samples taken along a first dimension of the two orthogonal dimensions;
- loading into adjacent segments of a single register a first set of digital samples;
- adding to the first set of digital samples in the single register a second set of digital samples, forming a set of new digital samples in said adjacent segments;
- forming a new sequence of the new digital samples;
- categorizing the new digital samples into sets of new digital samples taken along a second dimension of the two orthogonal dimensions;
- loading into the adjacent segments of the single register a first set of new digital samples;
- and
- adding to the first set of new digital samples in the single register a second set of new digital samples.
Dependencies are inferred from the claim text.