Patent Publication Number: US-10760950-B2

Title: Apparatus and method for processing ultrasonic data

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit under 35 USC 119(a) of Korean Patent Application No. 10-2013-0058888 filed on May 24, 2013, in the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference for all purposes. 
     BACKGROUND 
     1. Field 
     The following description relates to an apparatus and method for processing data that compresses ultrasonic data and stores the compressed ultrasonic data. 
     2. Description of Related Art 
     When beamforming is performed on multiple channel data in an ultrasonic diagnostic apparatus, mass storage ultrasonic data may be generated. When a computing device, for example, a processor, accesses such ultrasonic data and performs beamforming on the ultrasonic data, a large scale storage device may be necessary. Also, a large memory operation cycle may be needed to read/write mass storage data. 
     Also, in general, an additional process of upscaling may be needed because sampled ultrasonic data may be stored for use in performing, thereby increasing a computing load of the processor. 
     SUMMARY 
     This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. 
     In one general aspect, an apparatus for processing data includes a data compressor configured to compress first ultrasonic data, and store the compressed first ultrasonic data in a memory; and a data decompressor configured to read the stored first ultrasonic data from the memory, decompress the read first ultrasonic data, and transfer the decompressed first ultrasonic data to a processor configured to perform beamforming. 
     The data compressor may be further configured to receive second ultrasonic data obtained as a result of the beamforming from the processor, compress the received second ultrasonic data, and store the compressed second ultrasonic data in the memory. 
     The data decompressor may be further configured to read the stored second ultrasonic data from the memory, and decompress the read second ultrasonic data. 
     The apparatus may be configured to receive control information from the processor, and determine whether to enable the data compressor and the data decompressor to perform the compressing and the decompressing based on the received control information. 
     The data compressor may include a data downsampler configured to downsample the first ultrasonic data; and the data compressor may be further configured to compress the downsampled first ultrasonic data, and store the compressed downsampled first ultrasonic data in the memory. 
     The data decompressor may include a data upsampler configured to upsample the decompressed first ultrasonic data; and the data decompressor may be further configured to transfer the upsampled first ultrasonic data to the processor. 
     In another general aspect, an apparatus for processing data includes a data downsampler configured to downsample first ultrasonic data; a data compressor configured to compress the downsampled first ultrasonic data, and store the compressed first ultrasonic data in a memory; a data decompressor configured to read the compressed first ultrasonic data from the memory, and decompress the read first ultrasonic data; and a data upsampler configured to upsample the decompressed first ultrasonic data; and the data decompressor may be further configured to transfer the upsampled first ultrasonic data to a processor configured to perform beamforming. 
     The apparatus may further include an internal cache; and the data compressor may be further configured to temporarily store the upsampled first ultrasonic data in the internal cache. 
     The apparatus may be configured to receive control information from the processor, and determine whether to enable the data compressor and the data decompressor to perform the compressing and the decompressing based on the received control information. 
     The data compressor may be further configured to receive second ultrasonic data obtained as a result of the beamforming from the processor, compress the received second ultrasonic data, and store the compressed second ultrasonic data in the memory. 
     The data decompressor may be further configured to read the stored second ultrasonic data from the memory, and decompress the read second ultrasonic data. 
     In another general aspect, a method of processing data includes downsampling first ultrasonic data; compressing the downsampled first ultrasonic data; storing the compressed first ultrasonic data in a memory; reading the stored first ultrasonic data from the memory; decompressing the read first ultrasonic memory; upsampling the decompressed first ultrasonic data; and transferring the upsampled first ultrasonic data to a processor configured to perform beamforming. 
     The method of claim may further include temporarily storing the upsampled first ultrasonic data in an internal cache accessible by a plurality of processors configured to be capable of requesting the first ultrasonic data. 
     The method may further include receiving control information from the processor; and determining whether to perform the compressing and the decompressing based on the received control information. 
     The method may further include receiving second ultrasonic data obtained as a result of the beamforming from the processor; compressing the received second ultrasonic data; and storing the compressed second ultrasonic data in the memory. 
     The method may further include reading the stored second ultrasonic data from the memory; and decompressing the read second ultrasonic data. 
     In another general aspect, a method of processing data includes reducing an amount of ultrasonic data; storing the reduced amount of ultrasonic data in a memory; reading the stored ultrasonic data from the memory; increasing an amount of the read ultrasonic data; and transferring the increased amount of ultrasonic data to a processor configured to perform beamforming. 
     The reducing of the amount of the ultrasonic data may include compressing the ultrasonic data; and the increasing of the amount of the read ultrasonic data may include decompressing the read ultrasonic data. 
     The reducing of the amount of the ultrasonic data may include downsampling the ultrasonic data, and compressing the downsampled ultrasonic data; and the increasing of the amount of the read ultrasonic data may include decompressing the read ultrasonic data, and upsampling the decompressed ultrasonic data. 
     The method may further include receiving control information from the processor; and determining how to perform the decreasing of the amount of the ultrasonic data and the increasing of the amount of the read ultrasonic data based on the received control information. 
     Other features and aspects will be apparent from the following detailed description, the drawings, and the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an example of an operation of an apparatus for processing data. 
         FIG. 2  illustrates an example of a detailed configuration of an apparatus for processing data. 
         FIG. 3  illustrates an example of an operation of an apparatus for processing data when a plurality of processors perform beamforming. 
         FIG. 4  illustrates an example of a process of storing original ultrasonic data in a memory. 
         FIG. 5  illustrates an example of a process of transferring ultrasonic data to a processor. 
         FIG. 6  illustrates an example of a process of storing ultrasonic data on which beamforming has been performed in a memory. 
     
    
    
     DETAILED DESCRIPTION 
     The following detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. However, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be apparent to one of ordinary skill in the art. The sequences of operations described herein are merely examples, and are not limited to those set forth herein, but may be changed as will be apparent to one of ordinary skill in the art, with the exception of operations necessarily occurring in a certain order. Also, descriptions of functions and constructions that are well known to one of ordinary skill in the art may be omitted for increased clarity and conciseness. 
     Throughout the drawings and the detailed description, the same reference numerals refer to the same elements. The drawings may not be to scale, and the relative size, proportions, and depiction of elements in the drawings may be exaggerated for clarity, illustration, and convenience. 
     When a computing device, for example, a processor, performs beamforming, an apparatus for processing data may reduce a size of memory needed for the processor, and reduce a memory operation cycle needed for accessing the ultrasonic data stored in the memory. Also, the apparatus for processing the data may perform upscaling needed for the beamforming of the ultrasonic data, and thereby decrease a computing load of the processor when the processor performs the beamforming. 
       FIG. 1  illustrates an example of an operation of an apparatus  104  for processing data. Referring to  FIG. 1 , an ultrasonic signal is radiated toward a body  101  from a probe of a scanner  102 . The ultrasonic signal radiated toward the body  101  is reflected by an internal tissue boundary of the body  101 , and the probe of the scanner  102  converts the reflected ultrasonic signal into analog ultrasonic data. 
     An analog to digital converter (ADC)  103  converts the analog ultrasonic data into digital ultrasonic data. The apparatus  104  for processing the data stores the digital ultrasonic data in a memory  105 . 
     When a processor  106  performs beamforming, the apparatus  104  for processing the data reads the digital ultrasonic data stored in the memory  105 , and transfers the read digital ultrasonic data to the processor  106 . The apparatus  104  for processing the data receives the beamformed digital ultrasonic data, and stores the received digital ultrasonic data in the memory  105 . 
     The apparatus  104  for processing the data may include elements for compressing and decompressing ultrasonic data prior to storing the ultrasonic data in the memory to reduce a storage space needed for storing the ultrasonic data, and decrease a memory operation cycle of the memory  105 . 
     Also, the apparatus  104  for processing the data may include an element for performing upscaling when decompressing the ultrasonic data so that the processor  106  does not have to perform the upscaling, thereby reducing an amount of computation the processor  106  needs to perform. 
       FIG. 2  illustrates an example of a detailed configuration of an apparatus  104  for processing data. Referring to  FIG. 2 , the apparatus  104  for processing the data includes a data compressor  201 , a data decompressor  203 , and an internal cache  205 . However, the internal cache  205  may be omitted. The data compressor  201  includes a data downsampler  202 , and the data decompressor  203  includes a data upsampler  204 . However, the data downsampler  202  and the data upsampler  204  may be omitted. The apparatus  104  for processing the data may receive control information from the processor  106 , and may determine whether to enable the data compressor  201  and the data decompressor  203  to compress and decompress ultrasonic data based on the received control information, and may determine whether to enable or disable the data downsampler  202  and the data upsampler  204  to downsample and upsample ultrasonic data based on the received control information. 
     The apparatus  104  for processing the data receives first ultrasonic data from the ADC  103 . The first ultrasonic data is original ultrasonic data on which beamforming has not been performed. The data compressor  201  compresses the first ultrasonic data, and stores the compressed first ultrasonic data in the memory  105 . 
     If included or enabled, the data downsampler  202  downsamples the first ultrasonic data, and the data compressor  201  compresses the downsampled first ultrasonic data and stores the compressed downsampled first ultrasonic data in the memory  105 . 
     When the apparatus  104  for processing the data receives a request for the first ultrasonic data from the processor  106 , the data decompressor  203  reads the compressed first ultrasonic data from the memory  105 . The processor  106  may request first ultrasonic data corresponding to a predetermined address of the memory  105 . 
     The data decompressor  203  decompresses the compressed first ultrasonic data read from the memory  105 , and transfers the decompressed first ultrasonic data to the processor  106 . If the data downsampler  202  and the data upsampler  204  are included or enabled, the decompressed first ultrasonic data is downsampled first ultrasonic data, so the data upsampler  204  upsamples the decompressed first ultrasonic data, and the data decompressor  203  transfers the upsampled first ultrasonic data to the processor  106 . 
     The processor  106  outputs second ultrasonic data after performing the beamforming on the first ultrasonic data received from the apparatus  104  for processing the data. Thus, the second ultrasonic data is beamformed ultrasonic data. The processor  106  transfers the second ultrasonic data to the apparatus  104  for processing the data. 
     The data compressor  201  compresses the second ultrasonic data, and stores the compressed second ultrasonic data in the memory  105 . When the processor  106  requests the second ultrasonic data stored in the memory  105 , the apparatus  104  for processing the data processes the second ultrasonic data the same way the apparatus  104  for processing the data processes the first ultrasonic data as described above. 
     The aforementioned downsampling, compressing, decompressing, and upsampling of the ultrasonic data may be controlled by the processor  106 . Also, as necessary, the apparatus  104  for processing the data may store the first ultrasonic data and the second ultrasonic data in the memory  105  without performing the downsampling, compressing, decompressing, and upsampling of the ultrasonic data. More particularly, the apparatus  104  for processing the data may process the first ultrasonic data or the second ultrasonic data corresponding to a predetermined address needed by the processor  106 . 
     Referring to  FIG. 2 , the processor  106  may transmit the ultrasonic data to the apparatus  104  for processing the data or receive the ultrasonic data from the apparatus  104  for processing the data without accessing the memory  105  directly. Accordingly, the apparatus  104  for processing the data may reduce an amount of the memory  105  needed for performing the beamforming. 
     The apparatus  104  for processing the data reduces the amount of the memory  105  needed for performing the beamforming because the apparatus  104  for processing the data compresses the ultrasonic data received from the ADC  103  and stores the compressed ultrasonic data in the memory  105 . Also, the apparatus  104  for processing the data reduces the amount of the memory  105  needed to store the beamformed ultrasonic data because the apparatus  104  for processing the data compresses the beamformed ultrasonic data before storing the beamformed ultrasonic data in the memory  105 . 
     Further, when the processor  106  requests the ultrasonic data corresponding to a predetermined address of the memory  105 , a computing load of the processor  106  may be reduced because the apparatus  104  for processing the data performs the upsampling needed for a beamforming process of the ultrasonic data. 
       FIG. 3  illustrates an example of an operation of an apparatus  104  for processing data when a plurality of processors  106 - 1  through  106 -N perform beamforming. In particular,  FIG. 3  illustrates an example in which the processor of  FIG. 2  corresponds to the plurality of processors  106 - 1  through  106 -N in  FIG. 3 . Referring to  FIG. 3 , the apparatus  104  for processing the data receives digital first ultrasonic data from an ADC. The apparatus  104  for processing the data compresses the first ultrasonic data, and stores the compressed first ultrasonic data in the memory  105 . 
     When the apparatus  104  for processing the data receives a request for beamforming of the first ultrasonic data from the plurality of processors  106 - 1  through  106 -N, the apparatus  104  for processing the data decompresses the first ultrasonic data stored in the memory  105 , and transfers the decompressed first ultrasonic data to the plurality of processors  106 - 1  through  106 -N. When the first ultrasonic data is downsample before being compressed, the apparatus  104  for processing the data upsamples the decompressed first ultrasonic data. 
     The apparatus  104  for processing the data may temporarily store the decompressed first ultrasonic data in the internal cache  205  of the apparatus  104  for processing the data shown in  FIG. 2 , and may transfer the stored first ultrasonic data to the plurality of processors  106 - 1  to  106 -N requesting the first ultrasonic data. 
     When the first ultrasonic data is downsampled, the apparatus  104  for processing the data may temporarily store the upsampled first ultrasonic data in the internal cache  205 . In particular, the apparatus  104  for processing the data may store calculation results in the internal cache  205  to avoid the need to perform the same calculations on the ultrasonic data each time a different one of the plurality of processors  106 - 1  through  106 -N requests the ultrasonic data. 
     The above description of  FIG. 3  refers to the first ultrasonic data, but the same process may be applied to second ultrasonic data obtained as a result of the beamforming performed by the processor  106 . 
       FIG. 4  illustrates an example of a process of storing original ultrasonic data in a memory. In  401 , the ADC  103  converts analog ultrasonic data into digital ultrasonic data. In  402 , the apparatus  104  for processing the data receives the digital first ultrasonic data from the ADC  103 . The first ultrasonic data is original ultrasonic data on which beamforming has not been performed. 
     In  403 , the apparatus  104  for processing the data downsamples the first ultrasonic data. In  404 , the apparatus  104  for processing the data compresses the downsampled first ultrasonic data. 
     In  405 , the apparatus  104  for processing the data stores the compressed downsampled first ultrasonic data in the memory  105 . However, the operations of  403  and  404  of  FIG. 4  may not be necessary. For example, the first ultrasonic data may be compressed and stored in the memory  105  without being downsampled. Also, the first ultrasonic data may be stored in the memory  105  directly without being downsampled and compressed, 
       FIG. 5  illustrates an example of a process of transferring ultrasonic data to a processor. The processor  106  requests the first ultrasonic data stored in the memory  105  to perform beamforming. In  501 , the apparatus  104  for processing the data reads the first ultrasonic data requested by the processor  106  from the memory  105 . In  502 , the apparatus  104  for processing the data decompresses the compressed first ultrasonic data. In  503 , the apparatus  104  for processing the data upsamples the decompressed first ultrasonic data. 
     As described in  FIG. 4 , the first ultrasonic data may be downsampled and compressed before being stored in the memory  105 , or may be compressed and stored in the memory  105  without the downsampling, or may be directly stored in the memory  105  without the downsampling and the compressing. 
     When the first ultrasonic data is downsampled and compressed, the apparatus  104  for processing the data performs both operations  502  and  503 . When the first ultrasonic data is compressed without being downsampled, the apparatus  104  for processing the data performs  502  but does not perform  503 . When the first ultrasonic data is stored in the memory  105  without being downsampled and compressed, the apparatus  104  for processing the data does not perform either of  502  or  503 . 
     In  504 , the apparatus  104  for processing the data transmits the first ultrasonic data to the processor  106 . When the plurality of processors  106  request the same first ultrasonic data, the apparatus  104  for processing the data may temporarily store a result of performing  502  or  503  in the internal cache  205  shown in  FIG. 2 . 
     In  505 , the processor  106  performs beamforming on the first ultrasonic data received from the apparatus  104  for processing the data. In  506 , the apparatus  104  for processing the data receives second ultrasonic data obtained as a result of the beamforming from the processor  106 . 
       FIG. 6  illustrates an example of a process of storing ultrasonic data on which beamforming has been performed in a memory. In  601 , the apparatus  104  for processing the data transmits first ultrasonic data to the processor  106 . In  602 , the processor  106  performs beamforming on the first ultrasonic data received from the apparatus  104  for processing the data. In  603 , the apparatus  104  for processing the data second ultrasonic data obtained as a result of the beamforming from the processor  106 . 
     In  604 , the apparatus  104  for processing the data downsamples the received second ultrasonic data. In  605 , the apparatus  104  for processing the data compresses the downsampled second ultrasonic data. In  606 , the apparatus  104  for processing the data stores the compressed downsampled second ultrasonic data in the memory  105 . 
     However, it may not be necessary to perform operations  604  and  605   FIG. 6 . In particular, the second ultrasonic data may be compressed and stored in the memory  105  without the downsampling. Also, the second ultrasonic data may be directly stored in the memory  105  without the downsampling and the compressing. 
     An apparatus for processing data may be an interface between a memory for storing ultrasonic data and a plurality of processors for beamforming the ultrasonic data. The apparatus for processing the data may compress/decompress the ultrasonic data. The apparatus for processing the data may downsample/upsample the ultrasonic data as necessary. Also, the apparatus for processing the data may include an internal cache for temporarily storing a result of upsampling for a plurality of processors requesting the same ultrasonic data. The apparatus for processing the data may determine whether to perform compressing/decompressing and downsampling/upsampling based on control information received from the plurality of processors. 
     An amount of storage space needed for mass storage of ultrasonic data may be reduced by compressing the ultrasonic data. When data of 256 channels, 256 scan lines, and 16 frames is stored without the compressing, a storage space of approximately 13.4 gigabytes (GB) may be needed, so a mobile device may not store the ultrasonic data without the compressing. However, when the ultrasonic data is compressed by a factor of ⅓ using, for example, a visually lossless algorithm that is randomly accessible, a storage space of only 4.5 GB may be needed, so the ultrasonic data may be stored in the mobile device. 
     A memory operation cycle of 214 gigahertz (GHz) may be needed when the processor accesses 256 channels, 256 scan lines, and 30 frames per second (fps) of ultrasonic data without compressing the ultrasonic data. In particular, when the ultrasonic data is not compressed, a memory operation cycle needed for accessing the memory may be excessive. However, when the visually lossless algorithm and a memory processing unit (MemPU) accessing the memory in which the ultrasonic data is stored are used, the memory operation cycle may be reduced to 3.2 GHz, for example. The MemPU may be included in a single device through being used along with the apparatus for processing the data. Also, a computing load of the processor may be reduced because the processor does not upsample the ultrasonic data directly. 
     The apparatus for processing data  104 , the data compressor  201 , the data downsampler  202 , the data decompressor  203 , and the data upsampler  204  described above that perform the operations illustrated in  FIGS. 1-6  may be implemented using one or more hardware components, one or more software components, or a combination of one or more hardware components and one or more software components. 
     A hardware component may be, for example, a physical device that physically performs one or more operations, but is not limited thereto. Examples of hardware components include resistors, capacitors, inductors, power supplies, frequency generators, operational amplifiers, power amplifiers, low-pass filters, high-pass filters, band-pass filters, analog-to-digital converters, digital-to-analog converters, and processing devices. 
     A software component may be implemented, for example, by a processing device controlled by software or instructions to perform one or more operations, but is not limited thereto. A computer, controller, or other control device may cause the processing device to run the software or execute the instructions. One software component may be implemented by one processing device, or two or more software components may be implemented by one processing device, or one software component may be implemented by two or more processing devices, or two or more software components may be implemented by two or more processing devices. 
     A processing device may be implemented using one or more general-purpose or special-purpose computers, such as, for example, a processor, a controller and an arithmetic logic unit, a digital signal processor, a microcomputer, a field-programmable array, a programmable logic unit, a microprocessor, or any other device capable of running software or executing instructions. The processing device may run an operating system (OS), and may run one or more software applications that operate under the OS. The processing device may access, store, manipulate, process, and create data when running the software or executing the instructions. For simplicity, the singular term “processing device” may be used in the description, but one of ordinary skill in the art will appreciate that a processing device may include multiple processing elements and multiple types of processing elements. For example, a processing device may include one or more processors, or one or more processors and one or more controllers. In addition, different processing configurations are possible, such as parallel processors or multi-core processors. 
     A processing device configured to implement a software component to perform an operation A may include a processor programmed to run software or execute instructions to control the processor to perform operation A. In addition, a processing device configured to implement a software component to perform an operation A, an operation B, and an operation C may have various configurations, such as, for example, a processor configured to implement a software component to perform operations A, B, and C; a first processor configured to implement a software component to perform operation A, and a second processor configured to implement a software component to perform operations B and C; a first processor configured to implement a software component to perform operations A and B, and a second processor configured to implement a software component to perform operation C; a first processor configured to implement a software component to perform operation A, a second processor configured to implement a software component to perform operation B, and a third processor configured to implement a software component to perform operation C; a first processor configured to implement a software component to perform operations A, B, and C, and a second processor configured to implement a software component to perform operations A, B, and C, or any other configuration of one or more processors each implementing one or more of operations A, B, and C. Although these examples refer to three operations A, B, C, the number of operations that may implemented is not limited to three, but may be any number of operations required to achieve a desired result or perform a desired task. 
     Software or instructions for controlling a processing device to implement a software component may include a computer program, a piece of code, an instruction, or some combination thereof, for independently or collectively instructing or configuring the processing device to perform one or more desired operations. The software or instructions may include machine code that may be directly executed by the processing device, such as machine code produced by a compiler, and/or higher-level code that may be executed by the processing device using an interpreter. The software or instructions and any associated data, data files, and data structures may be embodied permanently or temporarily in any type of machine, component, physical or virtual equipment, computer storage medium or device, or a propagated signal wave capable of providing instructions or data to or being interpreted by the processing device. The software or instructions and any associated data, data files, and data structures also may be distributed over network-coupled computer systems so that the software or instructions and any associated data, data files, and data structures are stored and executed in a distributed fashion. 
     For example, the software or instructions and any associated data, data files, and data structures may be recorded, stored, or fixed in one or more non-transitory computer-readable storage media. A non-transitory computer-readable storage medium may be any data storage device that is capable of storing the software or instructions and any associated data, data files, and data structures so that they can be read by a computer system or processing device. Examples of a non-transitory computer-readable storage medium include read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, magnetic tapes, floppy disks, magneto-optical data storage devices, optical data storage devices, hard disks, solid-state disks, or any other non-transitory computer-readable storage medium known to one of ordinary skill in the art. 
     Functional programs, codes, and code segments for implementing the examples disclosed herein can be easily constructed by a programmer skilled in the art to which the examples pertain based on the drawings and their corresponding descriptions as provided herein. 
     While this disclosure includes specific examples, it will be apparent to one of ordinary skill in the art that various changes in form and details may be made in these examples without departing from the spirit and scope of the claims and their equivalents. Suitable results may be achieved if the described techniques are performed in a different order, and/or if components in a described system, architecture, device, or circuit are combined in a different manner, and/or replaced or supplemented by other components or their equivalents. Therefore, the scope of the disclosure is defined not by the detailed description, but by the claims and their equivalents, and all variations within the scope of the claims and their equivalents are to be construed as being included in the disclosure.