US20140344486A1 - Methods and apparatus for storing and delivering compressed data - Google Patents

Methods and apparatus for storing and delivering compressed data Download PDF

Info

Publication number
US20140344486A1
US20140344486A1 US14/282,004 US201414282004A US2014344486A1 US 20140344486 A1 US20140344486 A1 US 20140344486A1 US 201414282004 A US201414282004 A US 201414282004A US 2014344486 A1 US2014344486 A1 US 2014344486A1
Authority
US
United States
Prior art keywords
data
direct memory
dma
compressed data
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/282,004
Inventor
Winthrop Wu
Sebastien Nussbaum
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to US14/282,004 priority Critical patent/US20140344486A1/en
Assigned to ADVANCED MICRO DEVICES, INC. reassignment ADVANCED MICRO DEVICES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WU, WINTHROP, NUSSBAUM, SEBASTIEN
Publication of US20140344486A1 publication Critical patent/US20140344486A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32561Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
    • H04N1/32571Details of system components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/04Diagnosis, testing or measuring for television systems or their details for receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • H04N21/43632Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44231Monitoring of peripheral device or external card, e.g. to detect processing problems in a handheld device or the failure of an external recording device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • G09G2370/045Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial
    • G09G2370/047Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller using multiple communication channels, e.g. parallel and serial using display data channel standard [DDC] communication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/10Use of a protocol of communication by packets in interfaces along the display data pipeline

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Methods and apparatus for storing and delivering compressed data are disclosed. In one embodiment, a direct memory access (DMA) unit with a lossless coder/decoder (CODEC) receives uncompressed data. The direct memory access unit then compresses the uncompressed data to produce lossless compressed data, and stores the lossless compressed data in a memory, wherein the compressing operation and the storing operation are each part of a direct memory access (DMA) write operation. In another embodiment, the direct memory access (DMA) unit receives lossless compressed data. The direct memory access unit then decompresses the compressed data to produce lossless decompressed data, and delivers the decompressed data to an output device, wherein the decompressing operation and the receiving operation are each part of a direct memory access (DMA) read operation.

Description

    RELATED APPLICATION
  • This application claims priority to Provisional Application Ser. No. 61/825,249, filed on May 20, 2013, having inventors Winthrop Wu and Sebastien Nussbaum, titled “METHODS AND APPARATUS FOR STORING AND DELIVERING COMPRESSED DATA”, and is incorporated herein by reference.
  • The present disclosure relates in general to computing systems, and, in particular, to methods and apparatus for storing and delivering compressed data.
  • BACKGROUND
  • In order to store and transmit large amounts of data, the data is often compressed. As a result, many electronic devices must compress and decompress large amounts of data. For example, a digital video may be more efficiently stored and transmitted in a compressed form. However, in order to display the digital video on a high definition television or monitor, the video data may need to be decompressed.
  • Compression and decompression are computationally intensive tasks. Accordingly, many electronic devices have a dedicated hardware coder/decoder (CODEC). In addition, moving large amounts of memory from one location to another location often requires a significant amount of time. Accordingly, many electronic devices have a dedicated direct memory access (DMA) unit.
  • However, even with a dedicated hardware coder/decoder (CODEC) and a dedicated direct memory access (DMA) unit, a large amount of central processing unit cycles are consumed managing the interaction between these two devise when a large amount of data needs to be moved and compressed or decompressed (e.g., digital video and/or digital audio).
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of an example network communication system.
  • FIG. 2 is a block diagram of an example electronic device incorporating a direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • FIG. 3 is a block diagram of an example processing unit employing a direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • FIG. 4 is a block diagram of an example direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • FIG. 5 is a flowchart of an example process for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • FIG. 6 is a flowchart of an example process for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • FIG. 7 is a flowchart of another example process for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • FIG. 8 is a flowchart of another example process for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC).
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Briefly, methods and apparatus for storing and delivering compressed data are disclosed. In an embodiment, the apparatus includes a direct memory access (DMA) engine operatively coupled to a lossless compression engine. The direct memory access (DMA) engine is structured to perform a direct memory write operation of lossless compressed data, and the lossless compression engine is structured to produce the lossless compressed data as part of the direct memory write operation.
  • Among other features, electronic devices employing the disclosed direct memory access (DMA) engine with integrated coder/decoder (CODEC) are able to perform large memory transfers where compression and/or decompression are used (e.g., retrieving compressed video from memory and sending the uncompressed version of the video to a graphics processing unit) with minimal intervention from the central processing unit. As a result, the central processing unit is free to perform other tasks.
  • In one example, the direct memory access (DMA) engine is structured to (a) cause the lossless compressed data to be produced in response to an initiation by a central processing unit (CPU) and (b) perform the direct memory storage operation without further interaction by the central processing unit (CPU). In one example, the lossless compression engine is structured to segment uncompressed data and reassemble corresponding lossless compressed data. In one example, the lossless compression engine is structured to send the lossless compressed data via a communication channel.
  • Turning now to the figures, in general, a direct memory access (DMA) unit includes a lossless compression engine and/or a lossless decompression engine (CODEC). In one mode of operation, the direct memory access (DMA) unit compresses uncompressed data and stores the compressed data in a memory as part of a direct memory access (DMA) write operation. For example, the direct memory access (DMA) unit may compress and store video information as the video information is received from a video camera (i.e., “on the fly”). In another mode of operation, the direct memory access (DMA) unit decompresses compressed data and delivers the decompressed data to an output device as part of a direct memory access (DMA) read operation. For example, the direct memory access (DMA) unit may decompress and deliver video information to a display via a graphics processing unit (GPU). In both modes of operation, the operation may be initiated by a central processing unit (CPU). However, the operation is typically performed without further interaction by the central processing unit (CPU).
  • The direct memory access (DMA) unit with integrated coder/decoder (CODEC) may be part of a wide variety of devices. For example, the DMA/CODEC may be part of networked video game console. A block diagram of certain elements of an example network communications system 100 is illustrated in FIG. 1. The illustrated system 100 includes one or more client devices 102 (e.g., computer, television, camera, phone), one or more web servers 106, and one or more databases 108. Each of these devices may communicate with each other via a connection to one or more communications channels 110 such as the Internet or some other wired and/or wireless data network, including, but not limited to, any suitable wide area network or local area network. It will be appreciated that any of the devices described herein may be directly connected to each other instead of over a network.
  • The web server 106 stores a plurality of files, programs, and/or web pages in one or more databases 108 for use by the client devices 102 as described in detail below. The database 108 may be connected directly to the web server 106 and/or via one or more network connections. The database 108 stores data as described in detail below.
  • One web server 106 may interact with a large number of client devices 102. Accordingly, each server 106 is typically a high end computer with a large storage capacity, one or more fast microprocessors, and one or more high speed network connections. Conversely, relative to a typical server 106, each client device 102 typically includes less storage capacity, a single microprocessor, and a single network connection.
  • Each of the devices illustrated in FIG. 1 (e.g., client 102 and/or server 106) may include certain common aspects of many electronic devices such as microprocessors, memories, direct memory access units, peripherals, etc. FIG. 2 is a block diagram of an example electronic device incorporating a direct memory access unit with a lossless coder/decoder (DMA/CODEC). For example, the electrical device 200 may be a client, a server, a camera, a phone, and/or a television.
  • The example electrical device 200 includes a main unit 202 which may include, if desired, one or more processing units 204 electrically coupled by an address/data bus 206 to one or more memories 208, other computer circuitry 210, and one or more interface circuits 212. The processing unit 204 may include any suitable processor or plurality of processors. In addition, the processing unit 204 may include other components that support the one or more processors. For example, the processing unit 204 may include a central processing unit (CPU), a graphics processing unit (GPU), and/or a direct memory access (DMA) unit.
  • The memory 208 may include various types of non-transitory memory including volatile memory and/or non-volatile memory such as, but not limited to, distributed memory, read-only memory (ROM), random access memory (RAM) etc. The memory 208 typically stores a software program that interacts with the other devices in the system as described herein. This program may be executed by the processing unit 204 in any suitable manner. The memory 208 may also store digital data indicative of documents, files, programs, web pages, etc. retrieved from a server and/or loaded via an input device 214.
  • The interface circuit 212 may be implemented using any suitable interface standard, such as an Ethernet interface and/or a Universal Serial Bus (USB) interface. One or more input devices 214 may be connected to the interface circuit 212 for entering data and commands into the main unit 202. For example, the input device 214 may be a keyboard, mouse, touch screen, track pad, isopoint, camera, voice recognition system, accelerometer, global positioning system (GPS), and/or any other suitable input device.
  • One or more displays, printers, speakers, monitors, televisions, high definition televisions, and/or other suitable high bandwidth output devices 216 may also be connected to the main unit 202 via the interface circuit 212. High bandwidth output devices 216 typical consume uncompressed data, such as uncompressed audio and/or video data. For example, a display for displaying decompressed video data may be a cathode ray tube (CRTs), liquid crystal displays (LCDs), electronic ink (e-ink), and/or any other suitable type of display.
  • One or more storage devices 218 may also be connected to the main unit 202 via the interface circuit 212. For example, a hard drive, CD drive, DVD drive, and/or other storage devices may be connected to the main unit 202. The storage devices 218 may store any type of data used by the device 200.
  • The electrical device 200 may also exchange data with one or more low bandwidth input/output (I/O) devices 220. Low bandwidth I/O devices 220 typical produce and/or consume compressed data, such as compressed audio and/or video data. For example, low bandwidth I/O devices 220 may include network routers, camera, audio players, thumb drives etc.
  • The electrical device 200 may also exchange data with other network devices 222 via a connection to a network 110. The network connection may be any type of network connection, such as an Ethernet connection, digital subscriber line (DSL), telephone line, coaxial cable, wireless base station 230, etc. Users 114 of the system 100 may be required to register with a server 106. In such an instance, each user 114 may choose a user identifier (e.g., e-mail address) and a password which may be required for the activation of services. The user identifier and password may be passed across the network 110 using encryption built into the user's browser. Alternatively, the user identifier and/or password may be assigned by the server 106.
  • In some embodiments, the device 200 may be a wireless device 200. In such an instance, the device 200 may include one or more antennas 224 connected to one or more radio frequency (RF) transceivers 226. The transceiver 226 may include one or more receivers and one or more transmitters operating on the same and/or different frequencies. For example, the device 200 may include a blue tooth transceiver 216, a Wi-Fi transceiver 216, and diversity cellular transceivers 216. The transceiver 226 allows the device 200 to exchange signals, such as voice, video and data, with other wireless devices 228, such as a phone, camera, monitor, television, and/or high definition television. For example, the device 200 may send and receive wireless telephone signals, text messages, audio signals and/or video signals directly and/or via a base station 230. A receive signal strength indicator (RSSI) associated with each receiver generates an indication of the relative strength or weakness of each signal being received by the device 200.
  • FIG. 3 is a block diagram of an example processing unit 204 employing a direct memory access unit with a lossless coder/decoder (DMA/CODEC) 304. In this example, the DMA/CODEC 304 is operatively coupled to a central processing unit (CPU) 302 and a graphics processing unit (GPU) 306. The central processing unit 302 initiates a data transfer via the DMA/CODEC 304 by sending data transfer instructions. The data transfer instructions may be indicative of a read operation and/or a write operation. Once the central processing unit 302 initiates the data transfer by sending the instructions to the DMA/CODEC 304, the DMA/CODEC 304 carries out the memory transfer operation without further intervention needed from the central processing unit 302. Once the DMA/CODEC 304 completes the data transfer operation, the DMA/CODEC 304 notifies the central processing unit 302 that the data transfer is complete by asserting an interrupt line.
  • For example the central processing unit 302 may send data transfer instructions to the DMA/CODEC 304 indicating that the DMA/CODEC 304 should retrieve a certain section of memory 208, decompress the data from the memory 208 and send the decompressed data to the graphics processing unit 306. In this example, the graphics processing unit 306 may then transmit the decompressed data to a high bandwidth output device 216, such as a display or television.
  • In another example, the central processing unit 302 may send data transfer instructions to the DMA/CODEC indicating that the DMA/CODEC should receive uncompressed data, compress that data and send the compressed data to some destination without further intervention by the central processing unit 302. For example, a high bandwidth input device 214 such as a video camera and/or microphone interfaced via interface circuit 212 may send uncompressed video data to the DMA/CODEC 304. The DMA/CODEC 304 may then compresses the uncompressed data and store the compressed data in memory 208 and/or send the compressed data to one or more low bandwidth I/O devices 220 via interface circuit to 212. For example, the DMA/CODEC 304 may send the compressed data to a network router and/or an audio player.
  • FIG. 4 is a block diagram of an example direct memory access unit with a lossless coder/decoder (DMA/CODEC). In this example the DMA/CODEC 304 includes a DMA engine 402, a lossless compression engine 404, and a lossless decompression engine 406. In an example, a CPU 302 and/or a GPU 306 sends data transfer instructions to the DMA engine 402. A high bandwidth input device may then send uncompressed data to the DMA engine 402 without further intervention from the CPU 302 or GPU 306. For example, a high definition video recorder may send a long stream of uncompressed video data to the DMA engine 402. The DMA engine 402 then sends the uncompressed data in segments to the lossless compression engine 404, and the lossless compression engine 404 returns the data to the DMA engine 402 in compressed form. The DMA engine 402 then stores the compressed data to a data storage device such as memory 208.
  • In another example, CPU 302 and/or a GPU 306 may send data transfer instructions to the DMA engine 402 to retrieve compressed data from memory 208 and transfer the data in uncompressed form to a high bandwidth output device. For example, the DMA engine 402 may retrieve compressed video data from memory 208, and send the compressed video data to lossless decompression engine 406, which returns the data in decompressed segments to the DMA engine 402. The DMA engine 402 may then send the decompressed data to the high-bandwidth output device. For example, the DMA engine 402 may send uncompressed video data to a high-definition display 216. As discussed in more detail below with reference to FIG. 5 and FIG. 6, each of these data storage and retrieval operations perform the lossless compression or decompression on the fly. Accordingly, segments of data are processed in parallel.
  • FIG. 5 is a flowchart of an example process 500 for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although the process 500 is described with reference to the flowchart illustrated in FIG. 5, it will be appreciated that many other methods of performing the acts associated with process 500 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional.
  • In general, a DMA engine 402 receives uncompressed data, segments the uncompressed data, and forwards each uncompressed data segment to the lossless compression engine 404. After the lossless compression engine 404 returns the compressed data to the DMA engine 402, the DMA engine 402 reassembles the compressed data segments into the overall compressed data stream and then stores and/or sends the compressed data to a memory device and/or a low bandwidth I/O device 220.
  • More specifically, in this example, the process 500 begins when the DMA engine 402 receives or retrieves uncompressed data (block 502). For example, the DMA engine 402 may receive or retrieve uncompressed audio and/or video data from one or more input devices such as a microphone or camera. The DMA engine 402 then segments the uncompressed data as the uncompressed data is being received or retrieved (block 504). The DMA engine 402 then forwards each uncompressed data segment to the lossless compression engine 404 (block 506). The lossless compression engine 404 then compresses that data segment (block 508).
  • After the lossless compression engine 404 returns the compressed data to the DMA engine 402, the DMA engine 402 reassembles the compressed data segments into the overall compressed data stream (block 510). For example, the DMA engine 402 may be reassembling a compressed video stream. The DMA engine 402 then stores and/or sends the compressed data to a memory device and/or a low bandwidth I/O device 220 (block 512). For example, the DMA engine 402 may store the compressed data in memory 208, and/or the DMA engine 402 may send the compressed data to a network router, camera, audio player, thumb drive, and/or any other suitable device.
  • Each of these steps in process 500 may be executed in parallel with one or more of the other steps in 500. For example, after uncompressed data is received, the uncompressed data may be segmented and compressed at the same time that new data is being received. Similarly, as compressed data is produced, the compressed data may be reassembled and stored on the fly at the same time as new data is being received, segmented and compressed.
  • FIG. 6 is a flowchart of an example process 600 for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although the process 600 is described with reference to the flowchart illustrated in FIG. 6, it will be appreciated that many other methods of performing the acts associated with process 600 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional.
  • In general, a DMA engine 402 receives compressed data, segments the compressed data, and forwards each compressed data segment to the lossless decompression engine 406. After the lossless decompression engine 406 returns the decompressed data to the DMA engine 402, the DMA engine 402 reassembles the decompressed data segments into the overall decompressed data stream and then stores and/or sends the decompressed data to a memory device and/or a high bandwidth output device 216.
  • More specifically, in this example, the process 600 begins when the DMA engine 402 receives or retrieves compressed data (block 602). For example, the DMA engine 402 may receive or retrieve compressed audio and/or video data from one or more memories 208 and/or one or more low bandwidth I/O devices 220 such as a network router, camera, audio player, etc. The DMA engine 402 then segments the compressed data as the compressed data is being received or retrieved (block 604). The DMA engine 402 then forwards each compressed data segment to the lossless decompression engine 406 (block 606). The lossless decompression engine 406 then decompresses that data segment (block 608).
  • After the lossless decompression engine 406 returns the decompressed data to the DMA engine 402, the DMA engine 402 reassembles the decompressed data segments into the overall decompressed data stream (block 610). For example, the DMA engine 402 may be reassembling a decompressed video stream. The DMA engine 402 then stores and/or sends the decompressed data to a memory device and/or a high bandwidth output device 216 (block 612). For example, the DMA engine 402 may store the decompressed data in memory 208, and/or the DMA engine 402 may send the decompressed data to a display and/or amplifier/speaker.
  • Each of these steps in process 600 may be executed in parallel with one or more of the other steps in 500. For example, after compressed data is received, the compressed data may be segmented and decompressed at the same time that new data is being received. Similarly, as decompressed data is produced, the decompressed data may be reassembled and transmitted on the fly at the same time as new data is being received, segmented and decompressed.
  • FIG. 7 is a flowchart of another example process for storing data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although the process 700 is described with reference to the flowchart illustrated in FIG. 7, it will be appreciated that many other methods of performing the acts associated with process 700 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional.
  • In this example, the process 700 begins when the DMA engine 402 receives uncompressed data (block 702). For example, the DMA engine 402 may receive uncompressed audio and/or video data. The DMA engine 402 then sends the uncompressed data to the lossless compression engine 404. The lossless compression engine 404 compresses the uncompressed data and stores the resulting lossless encoded data as part of a direct memory access write operation via the DMA engine 402 (block 704).
  • FIG. 8 is a flowchart of another example process for delivering data using a direct memory access unit with a lossless coder/decoder (DMA/CODEC). Although the process 800 is described with reference to the flowchart illustrated in FIG. 8, it will be appreciated that many other methods of performing the acts associated with process 800 may be used. For example, the order of many of the operations may be changed, and some of the operations described may be optional.
  • In this example, the process 800 begins when the DMA engine 402 receives compressed data (block 802). For example, the DMA engine 402 may receive compressed audio and/or video data. The DMA engine 402 then sends the compressed data to the lossless decompression engine 406. The lossless decompression engine 406 decompresses the compressed data and sends the resulting unencoded data as part of a direct memory access read operation via the DMA engine 402 (block 804).
  • In summary, persons of ordinary skill in the art will readily appreciate that methods and apparatus for storing and delivering compressed data have been provided. Among other features, electronic devices employing the disclosed direct memory access (DMA) engine with integrated coder/decoder (CODEC) are able to perform large memory transfers where compression and/or decompression are used (e.g., retrieving compressed video from memory and sending the uncompressed version of the video to a graphics processing unit) with minimal intervention from the central processing unit. As a result, the central processing unit is free to perform other task.
  • The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the exemplary embodiments disclosed. Many modifications and variations are possible in light of the above teachings. It is intended that the scope of the invention be limited not by this detailed description of examples, but rather by the claims appended hereto.

Claims (31)

What is claimed is:
1. A method of storing compressed data, the method comprising:
compressing uncompressed data to produce compressed data; and
storing the compressed data, wherein the compressing operation and the storing operation are each part of a direct memory access (DMA) write operation.
2. The method of claim 1, wherein compressing and storing the compressed data is (a) initiated by a central processing unit (CPU) and (b) performed without further interaction by the central processing unit (CPU).
3. The method of claim 1, wherein the compressing the uncompressed data to produce compressed data includes compressing the uncompressed data to produce lossless compressed data.
4. The method of claim 1, further comprising segmenting the uncompressed data and reassembling corresponding compressed data.
5. The method of claim 1, further comprising sending the compressed data via a communication channel.
6. A method of delivering decompressed data, the method comprising:
receiving compressed data;
decompressing the compressed data to produce decompressed data, wherein the decompressing operation and the receiving operation are each part of a direct memory access (DMA) read operation.
7. The method of claim 6, wherein decompressing and delivering the decompressed data is initiated by a central processing unit (CPU) and performed without further interaction by the central processing unit (CPU).
8. The method of claim 6, wherein the decompressing the compressed data to produce decompressed data includes decompressing lossless compressed data to produce decompressed data.
9. The method of claim 6, further comprising segmenting the compressed data and reassembling corresponding decompressed data.
10. The method of claim 6, further comprising delivering the decompressed data to an output device
11. The method of claim 10, wherein delivering the decompressed data to the output device includes sending the decompressed data to display via a graphics processing unit (GPU).
12. An apparatus for storing compressed data, the apparatus comprising:
a direct memory access (DMA) engine structured to perform a direct memory write operation of compressed data; and
a compression engine, operatively coupled to the direct memory access (DMA) engine, wherein the compression engine is structured to produce the compressed data as part of the direct memory write operation.
13. The apparatus of claim 12, wherein the direct memory access (DMA) engine is structured to (a) cause the compressed data to be produced in response to an initiation by a central processing unit (CPU) and (b) perform the direct memory storage operation without further interaction by the central processing unit (CPU).
14. The apparatus of claim 12, wherein the compression engine is structured to segment uncompressed data and reassemble corresponding compressed data.
15. The apparatus of claim 12, wherein the compression engine is structured to send the compressed data via a communication channel.
16. An apparatus for delivering decompressed data, the apparatus comprising:
a direct memory access (DMA) engine structured to perform a direct memory read operation of decompressed data; and
a lossless decompression engine, operatively coupled to the direct memory access (DMA) engine, wherein the lossless decompression engine is structured to produce the decompressed data as part of the direct memory read operation.
17. The apparatus of claim 16, wherein the direct memory access (DMA) engine is structured to (a) cause the decompressed data to be produced in response to an initiation by a central processing unit (CPU) and (b) perform the direct memory read operation without further interaction by the central processing unit (CPU).
18. The apparatus of claim 16, wherein the lossless decompression engine is structured to segment the lossless compressed data and reassemble corresponding decompressed data.
19. The apparatus of claim 16, further comprising a graphics processing unit (GPU) operatively coupled to the direct memory access (DMA), wherein the direct memory access (DMA) engine is structured to send the decompressed data to a display via the graphics processing unit (GPU).
20. A method of storing and delivering data, the method comprising:
receiving uncompressed data;
compressing the uncompressed data to produce lossless compressed data;
storing the lossless compressed data in a memory, wherein the compressing operation and the storing operation are each part of a first direct memory access (DMA) write operation;
reading the lossless compressed data from the memory;
decompressing the lossless compressed data to produce decompressed data, wherein the decompressing operation and the reading operation are each part of a direct memory access (DMA) read operation; and
delivering the decompressed data to an output device.
21. The method of claim 20, wherein compressing and storing the lossless compressed data is (a) initiated by a central processing unit (CPU) and (b) performed without further interaction by the central processing unit (CPU).
22. The method of claim 21, wherein decompressing and delivering the decompressed data is (c) initiated by the central processing unit (CPU) and (d) performed without further interaction by the central processing unit (CPU).
23. The method of claim 20, further comprising segmenting the uncompressed data and reassembling corresponding lossless compressed data.
24. The method of claim 23, further comprising segmenting the lossless compressed data and reassembling corresponding decompressed data.
25. The method of claim 20, wherein delivering the decompressed data to an output device includes delivering the decompressed data to a display via a graphic processing unit (GPU).
26. An apparatus for storing and delivering data, the apparatus comprising:
a direct memory access (DMA) engine structured to perform (a) a direct memory write operation of lossless compressed data and (b) a direct memory read operation of decompressed data; and
a lossless compression engine, operatively coupled to the direct memory access (DMA) engine, wherein the lossless compression engine is structured to (c) produce the lossless compressed data as part of the direct memory write operation and (d) produce the decompressed data as part of the direct memory read operation.
27. The apparatus of claim 26, wherein the direct memory access (DMA) engine is structured to (e) cause the lossless compressed data to be produced in response to a first initiation by a central processing unit (CPU) and (f) perform the direct memory storage operation without further interaction by the central processing unit (CPU).
28. The apparatus of claim 27, wherein the direct memory access (DMA) engine is structured to (g) cause the decompressed data to be produced in response to a second initiation by a central processing unit (CPU) and (h) perform the direct memory read operation without further interaction by the central processing unit (CPU).
29. The apparatus of claim 26, wherein the lossless compression engine is structured to segment uncompressed data and reassemble corresponding lossless compressed data.
30. The apparatus of claim 29, wherein the lossless decompression engine is structured to segment the lossless compressed data and reassemble corresponding decompressed data.
31. The apparatus of claim 26, further comprising a graphics processing unit (GPU) operatively coupled to the direct memory access (DMA) engine, wherein the direct memory access (DMA) engine is structured to send the decompressed data to a display via the graphics processing unit (GPU).
US14/282,004 2013-05-20 2014-05-20 Methods and apparatus for storing and delivering compressed data Abandoned US20140344486A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/282,004 US20140344486A1 (en) 2013-05-20 2014-05-20 Methods and apparatus for storing and delivering compressed data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361825249P 2013-05-20 2013-05-20
US14/282,004 US20140344486A1 (en) 2013-05-20 2014-05-20 Methods and apparatus for storing and delivering compressed data

Publications (1)

Publication Number Publication Date
US20140344486A1 true US20140344486A1 (en) 2014-11-20

Family

ID=51895479

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/282,004 Abandoned US20140344486A1 (en) 2013-05-20 2014-05-20 Methods and apparatus for storing and delivering compressed data
US14/282,330 Active 2035-09-25 US9686536B2 (en) 2013-05-20 2014-05-20 Method and apparatus for aggregation and streaming of monitoring data

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/282,330 Active 2035-09-25 US9686536B2 (en) 2013-05-20 2014-05-20 Method and apparatus for aggregation and streaming of monitoring data

Country Status (1)

Country Link
US (2) US20140344486A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140122854A1 (en) * 2012-10-25 2014-05-01 Canon Kabushiki Kaisha Information processing apparatus and activation method therefor
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US9116858B1 (en) * 2014-05-28 2015-08-25 Hitachi, Ltd. Direct memory access with conversion or reverse conversion of data

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105163064A (en) * 2015-07-23 2015-12-16 安徽师范大学 Embedded network video data acquisition transmission system and method
US10073137B2 (en) * 2016-08-02 2018-09-11 Qualcomm Incorporated Soundwire-based embedded debugging in an electronic device

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768445A (en) * 1996-09-13 1998-06-16 Silicon Graphics, Inc. Compression and decompression scheme performed on shared workstation memory by media coprocessor
US5812873A (en) * 1994-12-09 1998-09-22 Ricoh Company, Ltd. Data decoding method and system
US5889480A (en) * 1996-10-18 1999-03-30 Samsung Electronics Co., Ltd. Full duplex serial codec interface with DMA
US6002814A (en) * 1998-04-14 1999-12-14 Hewlett-Packard Company Means and method for configuring a data processing pipeline
US6292844B1 (en) * 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
US6373986B1 (en) * 1998-04-08 2002-04-16 Ncr Corporation Compression of data transmission by use of prime exponents
US20030093591A1 (en) * 2001-11-09 2003-05-15 David Hohl System and method for fast data transfer to display driver
US6799232B1 (en) * 2001-12-05 2004-09-28 Zarlink Semiconductor V.N., Inc. Automatic byte swap and alignment for descriptor-based direct memory access data transfers
US6859850B1 (en) * 1998-01-30 2005-02-22 Stmicroelectronics Limited Controller for controlling direct memory access
US20070162649A1 (en) * 2005-12-22 2007-07-12 Vimicro Corporation Direct Memory Access Controller
US7265856B1 (en) * 2001-03-21 2007-09-04 Lexmark International Inc. Method and system for receiving and processing multiple compressed print data streams
US20080204598A1 (en) * 2006-12-11 2008-08-28 Lance Maurer Real-time film effects processing for digital video
US7548586B1 (en) * 2002-02-04 2009-06-16 Mimar Tibet Audio and video processing apparatus
US20090207283A1 (en) * 2008-02-15 2009-08-20 Fujitsu Microelectronics Limited Image processing apparatus, imaging apparatus, and image processing method
US20100250864A1 (en) * 2007-06-19 2010-09-30 Sony Computer Entertainment Europe Limited Method And Apparatus For Compressing And Decompressing Data
US20110075943A1 (en) * 2009-09-30 2011-03-31 Takahiro Minami image processing apparatus
US8166212B2 (en) * 2007-06-26 2012-04-24 Xerox Corporation Predictive DMA data transfer
US20120200559A1 (en) * 2011-02-09 2012-08-09 Samsung Electronics Co., Ltd. Graphic processing unit and method for decompressing data
US8446944B1 (en) * 2009-04-30 2013-05-21 Verint Video Solutions Inc. Data processing system and method
US20130154857A1 (en) * 2011-12-15 2013-06-20 Kabushiki Kaisha Toshiba Decoding device and coding method
US8713214B2 (en) * 2008-08-04 2014-04-29 Apple Inc. Media processing method and device
US8736629B1 (en) * 2012-11-21 2014-05-27 Ncomputing Inc. System and method for an efficient display data transfer algorithm over network

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190738B2 (en) * 2002-03-07 2007-03-13 Stmicroelectronics, Inc. Data assisted serial link decoder using oversampling
US7376418B2 (en) * 2003-09-08 2008-05-20 Wells Loren L System and method for multiple access control in satellite communications system

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812873A (en) * 1994-12-09 1998-09-22 Ricoh Company, Ltd. Data decoding method and system
US5768445A (en) * 1996-09-13 1998-06-16 Silicon Graphics, Inc. Compression and decompression scheme performed on shared workstation memory by media coprocessor
US5889480A (en) * 1996-10-18 1999-03-30 Samsung Electronics Co., Ltd. Full duplex serial codec interface with DMA
US6859850B1 (en) * 1998-01-30 2005-02-22 Stmicroelectronics Limited Controller for controlling direct memory access
US6292844B1 (en) * 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
US6373986B1 (en) * 1998-04-08 2002-04-16 Ncr Corporation Compression of data transmission by use of prime exponents
US6002814A (en) * 1998-04-14 1999-12-14 Hewlett-Packard Company Means and method for configuring a data processing pipeline
US7265856B1 (en) * 2001-03-21 2007-09-04 Lexmark International Inc. Method and system for receiving and processing multiple compressed print data streams
US20030093591A1 (en) * 2001-11-09 2003-05-15 David Hohl System and method for fast data transfer to display driver
US6799232B1 (en) * 2001-12-05 2004-09-28 Zarlink Semiconductor V.N., Inc. Automatic byte swap and alignment for descriptor-based direct memory access data transfers
US7548586B1 (en) * 2002-02-04 2009-06-16 Mimar Tibet Audio and video processing apparatus
US20090316798A1 (en) * 2002-02-04 2009-12-24 Mimar Tibet Audio and video processing apparatus
US20070162649A1 (en) * 2005-12-22 2007-07-12 Vimicro Corporation Direct Memory Access Controller
US7685331B2 (en) * 2005-12-22 2010-03-23 Vimicro Corporation Direct memory access controller
US20080204598A1 (en) * 2006-12-11 2008-08-28 Lance Maurer Real-time film effects processing for digital video
US20100250864A1 (en) * 2007-06-19 2010-09-30 Sony Computer Entertainment Europe Limited Method And Apparatus For Compressing And Decompressing Data
US8166212B2 (en) * 2007-06-26 2012-04-24 Xerox Corporation Predictive DMA data transfer
US20090207283A1 (en) * 2008-02-15 2009-08-20 Fujitsu Microelectronics Limited Image processing apparatus, imaging apparatus, and image processing method
US8531538B2 (en) * 2008-02-15 2013-09-10 Fujitsu Semiconductor Limited Image processing apparatus, imaging apparatus, and image processing method
US8713214B2 (en) * 2008-08-04 2014-04-29 Apple Inc. Media processing method and device
US8446944B1 (en) * 2009-04-30 2013-05-21 Verint Video Solutions Inc. Data processing system and method
US20110075943A1 (en) * 2009-09-30 2011-03-31 Takahiro Minami image processing apparatus
US20120200559A1 (en) * 2011-02-09 2012-08-09 Samsung Electronics Co., Ltd. Graphic processing unit and method for decompressing data
US20130154857A1 (en) * 2011-12-15 2013-06-20 Kabushiki Kaisha Toshiba Decoding device and coding method
US8736629B1 (en) * 2012-11-21 2014-05-27 Ncomputing Inc. System and method for an efficient display data transfer algorithm over network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wikipedia's article on 'Direct Memory Access' archived from May 15, 2013. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140122854A1 (en) * 2012-10-25 2014-05-01 Canon Kabushiki Kaisha Information processing apparatus and activation method therefor
US9904559B2 (en) * 2012-10-25 2018-02-27 Canon Kabushiki Kaisha Information processing apparatus and activation method therefor for processing data of a hibernation image
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US9116858B1 (en) * 2014-05-28 2015-08-25 Hitachi, Ltd. Direct memory access with conversion or reverse conversion of data
US9667697B2 (en) 2014-05-28 2017-05-30 Hitachi, Ltd. Direct memory access with conversion or reverse conversion of data

Also Published As

Publication number Publication date
US9686536B2 (en) 2017-06-20
US20140340527A1 (en) 2014-11-20

Similar Documents

Publication Publication Date Title
US20140344486A1 (en) Methods and apparatus for storing and delivering compressed data
US8767820B2 (en) Adaptive display compression for wireless transmission of rendered pixel data
CN102158553B (en) Method and device for playing multi-media files for remote desktop
US10516591B2 (en) Generating playback configurations based on aggregated crowd-sourced statistics
CN106776677B (en) File conversion method, device and file transmission system
US10264053B2 (en) Method, apparatus, and system for data transmission between multiple devices
CN110809189B (en) Video playing method and device, electronic equipment and computer readable medium
US20240045641A1 (en) Screen sharing display method and apparatus, device, and storage medium
WO2014089114A1 (en) Distributed cross-platform user interface and application projection
US11540028B2 (en) Information presenting method, terminal device, server and system
US8736617B2 (en) Hybrid graphic display
WO2016036504A2 (en) Streaming video data in the graphics domain
US9166633B2 (en) Systems and methods for interfacing a white space device with a host device
WO2021136011A1 (en) Display method and device
CN111478916B (en) Data transmission method, device and storage medium based on video stream
CN102821309A (en) System and method for transferring streaming media based on desktop sharing
US10249269B2 (en) System on chip devices and operating methods thereof
WO2020073777A1 (en) Media processing method and apparatus
US20210099671A1 (en) System and Method for Redirecting Audio and Video Data Streams in a Display-Server Computing System
CN107872683B (en) Video data processing method, device, equipment and storage medium
CN113766266B (en) Audio and video processing method, device, equipment and storage medium
CN103167345A (en) System and method for enabling audio and video to be transmitted to mobile phone to conduct real-time output playing based on Bluetooth
CN104219537A (en) Video data processing method, device and system
US10021161B2 (en) Compression of graphical commands for remote display
US20170111285A1 (en) Methods and apparatus for random access of hevc bitstream for mmt

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WU, WINTHROP;NUSSBAUM, SEBASTIEN;SIGNING DATES FROM 20140415 TO 20140429;REEL/FRAME:032928/0625

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION