KR101679508B1 - Sad calculation device and method - Google Patents
Sad calculation device and method Download PDFInfo
- Publication number
- KR101679508B1 KR101679508B1 KR1020150050135A KR20150050135A KR101679508B1 KR 101679508 B1 KR101679508 B1 KR 101679508B1 KR 1020150050135 A KR1020150050135 A KR 1020150050135A KR 20150050135 A KR20150050135 A KR 20150050135A KR 101679508 B1 KR101679508 B1 KR 101679508B1
- Authority
- KR
- South Korea
- Prior art keywords
- absolute difference
- sum
- absolute
- bits
- minimum
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Abstract
The present invention includes a first calculation unit for calculating an absolute difference (AD) between pixels of a current macroblock and a reference macroblock having a size of M * N within a search window range, (SAD) with respect to each of the absolute differences, and a minimum absolute difference sum (min SAD) having a minimum value among the respective calculated absolute differences And a third arithmetic operation unit for performing the arithmetic operation on the first arithmetic operation unit.
Description
The present invention relates to an apparatus and method for computing an absolute sum, and more particularly, to an apparatus and method for computing an absolute difference by approximating upper bits to one higher bit.
In recent years, as the technology related to digital signal processing, storage media and transmission method has developed, the voice service limited to voice has evolved into a multimedia service including digital video.
A digital image is composed of consecutive frames, each of which consists of macroblocks (MBs) having a predetermined size, and each macroblock includes pixels of a predetermined size. Therefore, a digital image may include a large amount of data as compared with a voice.
The multimedia service can provide a compressed digital image using a compression technique for efficiently compressing a digital image. The compression technique is a technique for eliminating temporal redundancy between consecutive frames of a digital image, and a motion estimation technique may be included to eliminate temporal redundancy.
The conventional motion estimation technique can perform a sum of absolute difference (SAD) operation on all pixels in macroblock units. More specifically, the conventional motion estimation technique can calculate the absolute difference (AD) between the pixels of the current macroblock and the reference macroblock, and calculate the sum for each absolute difference.
Here, the pixels may be represented by a bit string, and the bit string may include least significant bits (LSB's) and most significant bits (MSB's). The lower bits are located in the significant digits near the right in the bit stream and the upper bits are located in the significant digits near the left in the bit stream.
In the conventional motion estimation technique, upper bits including a correction bit and an inverter bit can be added by an absolute difference operation. Therefore, there is a problem that the conventional motion estimation technique undergoes a carry-propagation delay with the addition of the upper bits.
In addition, in the conventional motion estimation technique, there is a problem that power consumption is increased due to addition of logic elements for performing operations on additional higher bits.
The present invention uses an approximation rule that approximates the upper bits of the number of higher-order added higher bits to one higher bit, thereby reducing the carry propagation delay and performing an absolute difference calculation Apparatus and method.
The present invention provides an absolute difference arithmetic operation apparatus and method for reducing power consumption of a system by using a logic element to which an approximation rule is applied.
The present invention provides an apparatus and method for absolute difference arithmetic operation that improves the performance of motion compression by adaptively changing an approximation rule.
The absolute difference calculation apparatus according to an embodiment of the present invention includes a first calculation unit for calculating an absolute difference (AD) between pixels of a current macroblock having a size of M * N and a reference macroblock within a search window range, A second arithmetic unit for calculating a sum of absolute difference (SAD) for each of the absolute differences by considering the upper bits added by the absolute difference arithmetic operation; And a third arithmetic unit for determining a minimum absolute difference sum (min SAD).
The second calculation unit may calculate the absolute difference for each absolute difference based on an approximation rule for approximating the number of the added upper bits in the highest order to one higher bit.
The approximation rule may be applied to an OR gate carry method.
The absolute difference calculator according to an embodiment of the present invention calculates a difference between a minimum absolute difference sum and a discrete cosine transform (DCT) value smaller than the predetermined number And re-selecting the approximation rules to change the approximation rule.
And the second calculation unit may recalculate the absolute difference sum for each absolute difference by applying the modified approximation rule.
The absolute difference calculation method according to an embodiment of the present invention includes: calculating an absolute difference between pixels of a current macroblock and a reference macroblock having a size of M * N within a search window range; Calculating an absolute difference sum for each absolute difference in consideration of upper bits, and determining a minimum absolute difference sum having a minimum value among the respective calculated absolute difference differences.
The calculating of the absolute difference sum may calculate the absolute difference sum for each absolute difference based on an approximation rule for approximating the number of higher-order added higher bits to one higher bit.
The absolute difference calculation method according to an embodiment of the present invention is characterized in that when the discrete cosine transform value for the minimum absolute difference sum is equal to or larger than a predetermined threshold value, The method comprising the steps of:
In one embodiment of the present invention, by using an approximation rule that approximates a number of higher-order added bits of the higher order bits by one higher bit, it is possible to reduce a carry propagation delay, .
The present invention can reduce the power consumption of the system by using the logic element to which the approximation rule is applied.
The present invention can adaptively change the approximation rule to improve the performance of motion compression.
1 shows an example of an absolute difference arithmetic operation apparatus having an input of 16 pairs of pixels.
2 shows an example of an absolute difference arithmetic unit having input of 16 pairs of pixels based on a carry store adder.
FIG. 3 shows an example of an absolute difference arithmetic unit having inputs of 16 pairs of pixels based on a ripple carry adder.
FIG. 4 shows an example of the carry adder structure of FIG.
FIG. 5 shows an example of approximating upper bits to one upper bit.
FIG. 6A is an example showing a distribution of the absolute difference sum in a state in which the upper bits are not approximated to FIG.
FIG. 6B shows an example of the distribution of the absolute difference in the state approximated to the upper bits of FIG.
FIG. 7 shows an example of an absolute difference calculation apparatus for approximating four higher bits to one higher bit.
FIG. 8 shows an example of a structure of a logic element for performing the operation of approximating the four upper bits of FIG. 7 to one higher bit.
FIG. 9 is a block diagram illustrating an absolute difference calculation apparatus according to an embodiment of the present invention.
10 is a flowchart illustrating an absolute difference calculation method according to an embodiment of the present invention.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and accompanying drawings, but the present invention is not limited to or limited by the embodiments.
In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The terminology used herein is a term used for appropriately expressing an embodiment of the present invention, which may vary depending on the user, the intent of the operator, or the practice of the field to which the present invention belongs. Therefore, the definitions of these terms should be based on the contents throughout this specification.
1 shows an example of an absolute difference arithmetic operation apparatus having an input of 16 pairs of pixels.
Referring to FIG. 1, the absolute
More specifically, in order to reduce temporal redundancy of a digital image, the absolute
As shown in FIG. 1, the absolute difference
Here, the pixels may be represented by a bit string, and the bit string may include least significant bits (LSB's) and most significant bits (MSB's). The lower bits are located in the significant digits near the right in the bit stream and the upper bits are located in the significant digits near the left in the bit stream.
One macroblock may be pixels with an M * N size and may be 16 pixels with a 4 * 4 size in the H.264 video standard.
According to the embodiment, the absolute difference
For example, the absolute difference
[Equation 1]
Here, M * N denotes a size of a macroblock, Ci denotes a luma value or a chroma value of an i-th pixel of the current macroblock, Ri denotes a luma value of an i-th pixel of a reference macroblock, Or a chroma value.
Referring to FIG. 1, the absolute
Also, the absolute
[Equation 2]
Referring to Equation (2), the absolute difference calculation device can add upper bits including the correction bits and the inverter bits by an absolute difference operation.
For example, if a is greater than b, a correction bit can be added, and if a is less than or equal to b, an inverter bit can be added.
According to an aspect of the present invention, the absolute
According to another aspect of the present invention, the absolute difference
Also, the absolute
2 shows an example of an absolute difference arithmetic unit having input of 16 pairs of pixels based on a carry store adder.
Referring to FIG. 2, the absolute
Here, sixteen pairs of pixels may be represented by a bit string, and the bit string may include lower bits and upper bits.
Also, the carry store adder may perform an add operation on at least three or more bits, may be a structure of a full adder, and may be a Sklansky adder.
As shown in FIG. 2, the absolute
According to an aspect of the present invention, the absolute
FIG. 3 shows an example of an absolute difference arithmetic unit having inputs of 16 pairs of pixels based on a ripple carry adder, and FIG. 4 shows an example of a carry adder structure of FIG.
Referring to FIG. 3, the
Here, sixteen pairs of pixels may be represented by a bit string, and the bit string may include lower bits and upper bits.
As shown in FIG. 4, the ripple carry adder may include a
The absolute
At this time, the
For example, when the upper order bits are cumulatively operated, the absolute
More specifically, the absolute
As shown in FIG. 3, when calculating an absolute difference sum and a minimum absolute difference sum for 16 pairs of pixels using the ripple carry adder, .
According to an aspect of the present invention, the absolute
5A and 5B show an example of approximating upper bits to one upper bit, FIG. 6A is an example showing a distribution of absolute difference sum in a state where the upper bits are not approximated to upper bits of FIG. 5, FIG. This is an example showing the distribution of the absolute difference in a state approximated by bits.
Referring to FIG. 5, the absolute difference calculator can select two or more higher order bits in the highest order and approximate them to one higher order bit.
As shown in FIG. 5, the absolute difference calculator can select four higher bits in descending order, and approximate selected upper bits to one higher bit.
According to an aspect of the present invention, the absolute difference calculation apparatus can maintain the compression performance of a digital image even when the selected upper bits are approximated to one higher bit, and reduce the carry propagation delay.
For example, as shown in FIGS. 6A and 6B, the difference in the distribution of the absolute difference in the state in which the upper bits are not approximated to one upper bit and in the approximated state is as large as not affecting digital image compression Can exist.
Table 1 shows the transmission speed of the compressed digital image. More specifically, Table 1 shows a transmission rate of each compressed digital image when 3 to 5 upper bits are selected and approximated to one upper bit.
[Table 1]
Table 1 shows the transmission rate calculated by applying a digital image having a resolution of 640 * 460 and a search algorithm for calculating various search window ranges.
The search algorithm may include a full search (FS), a fast full search (FFS), and a umh-exagon search (UHS) algorithm.
Referring to Table 1, the absolute difference arithmetic unit can provide a compressed digital image with a higher transmission rate than when it is not approximated by one upper bit, when approximating to one higher bit.
In addition, when the number of high order bits is selected and approximated to one higher bit, the absolute difference sum calculator calculates a compressed digital image having a higher transmission rate than a case where the number of upper bits is selected and approximated to one higher bit .
Accordingly, the absolute difference arithmetic unit can improve the transmission efficiency of the compressed digital image by selecting at least two higher order bits in the descending order and approximating them to one higher order bit.
7 shows an example of an absolute difference arithmetic unit for approximating four upper bits to one upper bit, and FIG. 8 shows a structure of a logic element for performing the operation of approximating the four upper bits of FIG. 7 to one upper bit Here is an example.
Referring to FIG. 7, the absolute
Here, the 16-bit pixel may be represented by a bit string, and the bit string may include lower bits and upper bits, and the absolute difference arithmetic operation unit may correct the upper bits including the correction bits and the inverter bits (710) can be added.
According to the embodiment, the absolute difference
In addition, the absolute
As an example of approximating the number of additional upper bits in the highest order to one higher bit, the circuit included in
Referring to FIG. 8, a logic element that performs an operation of approximating four higher bits to one higher bit can operate in an OR gate carry method, and a NAND gate and an inverter for two inputs .
For example, when determining the absolute difference sum and the minimum absolute difference for an approximated one higher bit, the absolute difference calculator calculates the difference between the two inputs, And a logic gate.
Thus, according to the example shown in FIG. 8, the most significant output bit of the Accumulator can be output as an approximated upper bit " 36 " through the OR gate.
As shown in FIG. 7, in the case of calculating the absolute difference sum and the minimum absolute difference for 16 pairs of pixels by approximating four upper bits to one upper bit, ≪ / RTI > timing units may be included.
Referring to FIGS. 2, 3 and 7, the absolute difference arithmetic and logic unit is composed of a carry store adder, a ripple carry adder, and a logic element for approximating the four upper bits to one higher bit, 52, 48, and 42 timing units may be included in the computation of the absolute and minimum absolute differences.
Therefore, the absolute difference calculator can reduce the carry propagation delay when the four higher order bits are approximated to one higher order bit.
Referring to FIGS. 2, 3 and 7, the absolute difference arithmetic and logic unit calculates a sum of absolute values for 16 pairs of pixels by using a ripple carry adder and a logic element for approximating four upper bits to one upper bit. 108 and 42 logic gates may be included when computing a sum sum operation and a minimum absolute sum sum.
Table 2 shows the power simulation results.
[Table 2]
Referring to Table 2, the absolute difference arithmetic and logic unit includes J.Vanne's SAD, a RCA-based SAD, and a logic element for performing an approximation operation of four upper bits to one upper bit (4-MSB a-SAD), the logic element performing the approximation operation may have the lowest power consumption.
Therefore, the absolute difference calculation device can reduce the power consumption of the logic element when approximating the four upper bits to one higher bit.
The absolute difference arithmetic unit can calculate an absolute difference sum for each absolute difference based on an approximation rule that approximates a number of the added upper bits in the highest order to one higher bit, The minimum absolute difference sum having the minimum value among the calculated absolute difference sum can be determined.
The approximation rule may be a rule that selects 2, 3, 4, or N in ascending order among the added upper bits and approximates to one upper bit.
According to an aspect of the present invention, as the number of added upper bits increases, the absolute difference arithmetic unit can improve the transmission efficiency of the compressed digital image, but can reduce the performance of motion compression.
For example, the absolute difference arithmetic unit can convert a discrete cosine transform (DCT) value based on a high frequency into a discrete cosine transform (DCT) value using a minimum absolute difference sum, and implement motion compression using the transformed discrete cosine transform .
In this case, if the discrete cosine transform value for the minimum absolute difference sum computed within the search window range is equal to or larger than the predetermined threshold value, the performance of the motion compression may be reduced.
Therefore, if the DCT (discrete cosine transform) value for the minimum absolute difference sum is equal to or larger than the predetermined threshold value, the absolute difference arithmetic operation apparatus re-determines the approximation rule to a smaller number than the predetermined number Can be changed.
Also, the absolute difference arithmetic operation apparatus re-computes the absolute difference sum for each absolute difference by applying the modified approximation rule, and recalculates the minimum absolute difference sum having the minimum value among each re-computed absolute difference sum, Performance can be improved.
In addition, the absolute summing calculator can implement motion compression based on wide dynamic voltage scaling. Thus, the absolute difference arithmetic unit can improve the energy efficiency.
Hereinafter, specific embodiments of the absolute difference calculation apparatus and method will be described. 1 to 8 can be applied to all of the descriptions of the absolute difference calculation apparatus and method described later.
FIG. 9 is a block diagram illustrating an absolute difference calculation apparatus according to an embodiment of the present invention.
9, the absolute difference
The
The pixels may be represented by bit strings, and the bit string may include lower bits and upper bits. The lower bits are located in the significant digits near the right in the bit stream and the upper bits are located in the significant digits near the left in the bit stream.
One macroblock may be pixels with an M * N size and may be 16 pixels with a 4 * 4 size in the H.264 video standard.
According to one aspect of the present invention, the
The
More specifically, the
In addition, the
The
Accordingly, the
Also, the
According to an aspect of the present invention, the absolute
According to another aspect of the present invention, the absolute
For example, the
In this case, if the discrete cosine transform value for the minimum absolute difference sum computed within the search window range is equal to or larger than the predetermined threshold value, the performance of the motion compression may be reduced.
When the discrete cosine transform value for the minimum absolute difference sum is equal to or greater than the predetermined threshold value, the absolute
The
10 is a flowchart illustrating an absolute difference calculation method according to an embodiment of the present invention.
Referring to FIG. 10, in
The pixels may be represented by bit strings, and the bit string may include lower bits and upper bits. The lower bits are located in the significant digits near the right in the bit stream and the upper bits are located in the significant digits near the left in the bit stream.
One macroblock may be pixels with an M * N size and may be 16 pixels with a 4 * 4 size in the H.264 video standard.
In
In
More specifically, in
In
The absolute difference arithmetic operation apparatus according to the embodiment of the present invention changes the approximation rule to a smaller number than the predetermined number when the discrete cosine transform value for the minimum absolute difference sum is equal to or larger than the predetermined threshold value .
Accordingly, in
The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
100, 200, 300, 700, 900: Absolute difference arithmetic unit
910:
920:
930:
940:
Claims (8)
A second operation unit for calculating a sum of absolute difference (SAD) for each of the absolute differences by considering the upper bits added by the absolute difference operation;
A third arithmetic unit for determining a minimum absolute difference (min SAD) having a minimum value among the respective computed absolute differences; And
And a control unit,
The second arithmetic unit selects two or more higher order bits in the highest order among the added higher order bits considering the performance of motion compression, and based on an approximation rule for approximating the selected upper order bits to one bit, Calculating the absolute difference sum with respect to each absolute difference,
The control unit
If the discrete cosine transform (DCT) value for the minimum absolute difference sum is greater than or equal to a predetermined threshold value, the upper bits are re-ordered by a smaller number than the predetermined number to change the approximation rule
Absolute summing calculator.
The approximation rule
The OR gate is applied to the carry method.
Absolute summing calculator.
The second calculation unit
And applying the modified approximation rule to re-perform the absolute difference sum for each absolute difference
Absolute summing calculator.
Calculating an absolute difference sum with respect to each absolute difference by considering the upper bits added by the absolute difference operation; And
Determining a minimum absolute difference sum having a minimum value among the respective calculated absolute difference sums,
The calculating of the absolute difference sum may be performed by selecting two or more higher order bits in the highest order among the added higher order bits considering the performance of the motion compression and using an approximation rule And calculates the absolute difference sum with respect to each absolute difference,
Wherein the approximation rule includes re-ordering the upper bits with a smaller number than the predetermined number if the discrete cosine transform value for the minimum absolute difference sum is greater than or equal to a predetermined threshold value
Absolute difference sum calculation method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150050135A KR101679508B1 (en) | 2015-04-09 | 2015-04-09 | Sad calculation device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150050135A KR101679508B1 (en) | 2015-04-09 | 2015-04-09 | Sad calculation device and method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160120934A KR20160120934A (en) | 2016-10-19 |
KR101679508B1 true KR101679508B1 (en) | 2016-11-24 |
Family
ID=57250724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150050135A KR101679508B1 (en) | 2015-04-09 | 2015-04-09 | Sad calculation device and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101679508B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220308881A1 (en) * | 2021-03-26 | 2022-09-29 | Intel Corporation | Instruction and logic for sum of absolute differences |
-
2015
- 2015-04-09 KR KR1020150050135A patent/KR101679508B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
Krishna Kaveri Devarinti ET AL., Bit Serial Architecture for Variable Block Size Motion Estimation, I.J. Image, Graphics and Signal Processing, 2013.08.08, 63-69P |
Yunus Emre ET AL., LOW ENERGY MOTION ESTIMATION VIA SELECTIVE APROXIMATIONS, IEEE, 2011.09.11-14, 176-183P* |
Also Published As
Publication number | Publication date |
---|---|
KR20160120934A (en) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4898467B2 (en) | Coding mode determination method and apparatus for variable block size motion prediction | |
US8705611B2 (en) | Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program | |
WO2016141609A1 (en) | Image prediction method and related device | |
US20150208094A1 (en) | Apparatus and method for determining dct size based on transform depth | |
KR101679508B1 (en) | Sad calculation device and method | |
Kthiri et al. | FPGA architecture of the LDPS Motion Estimation for H. 264/AVC Video Coding | |
Olivares et al. | SAD computation based on online arithmetic for motion estimation | |
Li et al. | Serial and parallel FPGA-based variable block size motion estimation processors | |
JP2008131336A (en) | Filter calculator and motion compensation device | |
JP5711789B2 (en) | Image coding method, image coding apparatus, and image coding program | |
KR20070000702A (en) | Apparatus and method for fast motion estimation based on reduced search ranges | |
Belloulata et al. | A novel cross-hexagon search algorithm for fast block motion estimation | |
CN107105297B (en) | A kind of fast Optimization for 3D-HEVC depth map intraframe predictive coding | |
JP2005168028A (en) | Arithmetic device for absolute difference, and motion estimation apparatus and motion picture encoding apparatus using same | |
JP2009177353A (en) | Encoder, method of controlling the same, and computer program | |
Santosh et al. | A SAD architecture for variable block size motion estimation in H. 264 video coding | |
JP5809574B2 (en) | Encoding method, decoding method, encoding device, decoding device, encoding program, and decoding program | |
KR100802207B1 (en) | Prediction method and encoder for motion estimation of video | |
WO2018205780A1 (en) | Motion estimation method and electronic device | |
Dhoot et al. | Fault tolerant design for low power hierarchical search motion estimation algorithms | |
JP2002218475A (en) | Method and device for reducing video image motion evaluation calculation | |
Li et al. | FPGA-based MSB-first bit-serial variable block size motion estimation processor | |
Manjunatha et al. | Low power 8× 8 Sum of Absolute Difference engine for Motion Estimation in video compression | |
CN111970517B (en) | Inter-frame prediction method, coding method and related device based on bidirectional optical flow | |
JP2003324732A5 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20191028 Year of fee payment: 4 |