Method and apparatus for a memory based packet compression encoding

Methods and apparatus for wireless communication in a mobile device that includes receiving a transmission data packet and detecting a string of bytes in the transmission data packet that matches a preset string of bytes saved in a memory component. Aspects of the methods and apparatus include replacing the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the memory component with a location pointer, wherein after replacing the string of bytes in the data packet with the location pointer, the data packet comprises the location pointer and a set of literal bytes. Aspects of the methods and apparatus also include generating a compressed transmission data packet by entropy coding the transmission data packet comprising the set of literal-bytes and the location pointer.

BACKGROUND

Aspects of the present disclosure relate generally to telecommunication systems, and more particularly, to an apparatus and method for a telecommunication system with a memory based packet coding for compression and decompression, thereby providing consistent service in a wireless communication system.

As the demand for mobile broadband access continues to increase, research and development continue to advance the UMTS technologies not only to meet the growing demand for mobile broadband access, but to advance and enhance the user experience with mobile communications in multimode devices.

However, in some multimode devices, packet data traffic between a mobile user equipment (UE) and a corresponding access network may not always be encoded in a format that minimizes the transmission packet size.

Thus, aspects of this an apparatus and method include minimizing transmission packet size via a memory based transmission packet compression encoding for providing consistent service in a wireless communication system.

SUMMARY

A method for minimizing transmission packet size via a memory based transmission packet compression encoding is provided. The method includes receiving a transmission data packet and detecting a string of bytes in the transmission data packet that matches a preset string of bytes saved in a memory component. Additionally, the method includes replacing the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the memory component with a location pointer, wherein after replacing the string of bytes in the data packet with the location pointer, the data packet comprises the location pointer and a set of literal bytes. Further, the method includes generating a compressed transmission data packet by entropy coding the transmission data packet comprising the set of literal-bytes and the location pointer.

In another aspect, an apparatus for minimizing transmission packet size via a memory based transmission packet compression encoding is provided. The apparatus includes a processor configured to receive a transmission data packet and detect a string of bytes in the transmission data packet that matches a preset string of bytes saved in a memory component. Additionally, the processor is configured to replace the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the memory component with a location pointer, wherein after replacing the string of bytes in the data packet with the location pointer, the data packet comprises the location pointer and a set of literal bytes. Further, the processor is configured to generate a compressed transmission data packet by entropy coding the transmission data packet comprising the set of literal-bytes and the location pointer.

In another aspect, an apparatus for minimizing transmission packet size via a memory based transmission packet compression encoding is provided that includes means for receiving a transmission data packet and means for detecting a string of bytes in the transmission data packet that matches a preset string of bytes saved in a memory component. Additionally, the apparatus includes means for replacing the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the memory component with a location pointer, wherein after replacing the string of bytes in the data packet with the location pointer, the data packet comprises the location pointer and a set of literal bytes. Further, the apparatus includes means for generating a compressed transmission data packet by entropy coding the transmission data packet comprising the set of literal-bytes and the location pointer.

In yet another aspect, a computer-readable media for minimizing transmission packet size via a memory based transmission packet compression encoding is provided that includes machine-executable code for receiving a transmission data packet and detecting a string of bytes in the transmission data packet that matches a preset string of bytes saved in a memory component. Additionally, the code may be executable for replacing the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the memory component with a location pointer, wherein after replacing the string of bytes in the data packet with the location pointer, the data packet comprises the location pointer and a set of literal bytes. Further, the code may be executable for generating a compressed transmission data packet by entropy coding the transmission data packet comprising the set of literal-bytes and the location pointer.

These and other aspects of the disclosure will become more fully understood upon a review of the detailed description, which follows.

DETAILED DESCRIPTION

As discussed above, packet data traffic between a mobile user equipment (UE) and a corresponding access network may not always be encoded in a format that minimizes the transmission packet size. However, two opportunities exist by which the packet data traffic can be easily identified and compressed that minimizes the transmission packet size of the packet data traffic.

One, there could be redundancy within the transmission packet. Such transmission packets may be compressed further without making use of information from other packets in a flow. Two, there could be redundancy across transmission packets in a flow. In this case, compressing each packet individually might not provide as much gain as when the packets are compressed with additional knowledge of packets that were transmitted previously in the data flow.

Thus, aspects of this apparatus and method are configured to minimize transmission packet size in order to reduce redundancy within a transmission packet in a flow and redundancy across transmission packets in a flow.

Referring toFIG. 1, in one aspect, a wireless communication system100is configured to facilitate transmitting vast amount of data from a mobile device to a network at a fast data transfer rate. Wireless communication system100includes at least one UE114that may communicate wirelessly with one or more network112via serving nodes, including, but not limited to, wireless serving node116over one or more wireless link125. The one or more wireless link125, may include, but are not limited to, signaling radio bearers and/or data radio bearers. Wireless serving node116may be configured to transmit one or more signals123to UE114over the one or more wireless link125, and/or UE114may transmit one or more signals124to wireless serving node116. In an aspect, signal123and signal124may include, but are not limited to, one or more messages, such as transmitting a data from the UE114to network112via wireless serving node116.

UE114may comprise a mobile apparatus and may be referred to as such throughout the present disclosure. Such a mobile apparatus or UE114may also be referred to by those skilled in the art as a mobile station, a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, a terminal, a user agent, a mobile client, a client, or some other suitable terminology.

Additionally, the one or more wireless nodes, including, but not limited to, wireless serving node116of wireless communication system100, may include one or more of any type of network component, such as an access point, including a base station or node B, a relay, a peer-to-peer device, an authentication, authorization and accounting (AAA) server, a mobile switching center (MSC), a radio network controller (RNC), etc. In a further aspect, the one or more wireless serving nodes of wireless communication system100may include one or more small base stations, such as, but not limited to a femtocell, picocell, microcell, or any other small base station.

Referring toFIG. 2, in another aspect of the present apparatus and method, a wireless communication system100is configured to include wireless communications between network112and user equipment (UE)114. The wireless communications system may be configured to support communications between a number of users.FIG. 2illustrates a manner in which network112communicates with UE114. The wireless communication system100can be configured for downlink message transmission or uplink message transmission, as represented by the up/down arrows of wireless link125between network112and UE114.

In an aspect, within the UE114resides a call processing component140. The call processing component140may be configured, among other things, to include a TX/RX component142configured to transmit and receive transmission data packets generated at UE114. For example, UE114is configured to receive transmission data packet210generated from an operating system/applications of UE114, as elaborated on inFIG. 2below. In another aspect, the TX/RX component142is configured for transmitting compressed data to network112via wireless serving node116over link125and receiving compressed data from network112via wireless serving node116over link125.

The call processing component140may also be configured to include a compressor component144capable of pattern encoding and entropy encoding. For example, compressor component144is configured for compressing the data generated at UE114via pattern encoding and entropy encoding which is then transmitted to network112via wireless serving node116over link125. The specifics of pattern encoding and entropy encoding are elaborated upon inFIG. 3.

The call processing component140may also be configured to also include a de-compressor component146capable of pattern decoding and entropy decoding. For example, de-compressor component146is configured for pattern decoding and entropy decoding of compressed data received from network112via wireless serving node116over link125. Again, the specifics of pattern decoding and entropy decoding are elaborated upon inFIG. 3.

Similarly, in an alternative or additional aspect, the above noted functionally of call processing component140may be included in wireless serving node116of network112, as represented by call processing component150. For example, but not limited hereto, call processing component150may be hardware mounted within wireless serving node116of network112, software or computer readable media and/or firmware stored within a memory or processor of network112, or any combination thereof.

Furthermore, in an aspect, call processing component150of network112may be configured to include TX/RX component152capable of receiving transmission data packet generated from an operating system/applications of network112, transmitting compressed data to UE114via wireless serving node116over link125, and receiving compressed data from UE114via wireless serving node116over link125. Still further, call processing component150of network112may be configured to include compressor component154capable of compressing the data generated at network112via pattern encoding and entropy encoding which is then transmitted to UE114via wireless serving node116over link125. In addition, call processing component150of network112may be configured to include a de-compressor component156capable of pattern decoding and entropy decoding of compressed data received from UE114via wireless serving node116over link125. The specifics of pattern encoding/decoding and entropy encoding/decoding are elaborated upon inFIG. 3.

Thus, the present apparatus and methods include a UE-based, and/or network based, call processing component capable of compressing and decompressing received transmission data packets in order to minimize transmission data packet size.

FIG. 3is a schematic diagram230further illustrating the functionally and operation of the compressor component244and the de-compressor component246, respectively represented by and equivalent to compressor component144/154and de-compressor component146/156that reside in call processing component140/150ofFIG. 2. Generally, call processing component140may be configured to transmit a transmission data packet210as a compressed transmission data packet212from UE114to network112after being routed through a UE-based compressor component144. Transmission data packet210may be compressed into compressed transmission data packet212and transmitted from UE114to network112over wireless link125, and may consist of bits, bytes, etc., utilized for transmission.

Once network112receives the compressed transmission data packet212from UE114, call processing component150, is configured to route the compressed transmission data packet212through a network-based de-compressor component156, resulting in decompressed transmission data packet214. The decompressed transmission data packet214may then be utilized by network112according to the information located within in the decompressed transmission data packet214.

It should be noted that the process of compressing and decompressing is represented by the down arrows between UE114and network112ofFIGS. 2 and 3. Note, the direction of transmitting the compressed transmission data packet212may be configured to occur from UE114to the network112, as discussed above, and/or from network112to UE114. If the direction of transmitting the compressed transmission data packet212occurs from network112to UE114, the components described inFIG. 3will have corresponding components for compression at network112, as represented by compressor component154(FIG. 2), and decompression at UE114, as represented by de-compressor component146(FIG. 2).

In an aspect, within the compressor component144of UE114resides a pattern encoding component252and a entropy encoding component255and a UE-based memory232. Both the pattern encoding component252and the entropy encoding component255are capable of encoding transmission data packets transmitted to compressor component144.

The pattern encoding component252may also be configured to also include a detecting component253and a location pointer component254. The detecting component253is capable of detecting a string of bytes in the transmission data packet that matches a preset string of bytes saved in a UE-based memory232. The preset sting of bytes saved are the bytes in memory that may be changed before a data packet is processed. For example, first a memory is initialized to 01020304 in hexadecimal. Second, if packet number 1 containing ‘0a0b0c0d’ (in hexadecimal) is to compressed, the memory after compression of data packet 1 is updated to ‘010203040a0b0c0d’ (where the contents of packet number 1 are pushed in to the memory). This is then repeated for each packet number until the whole of the data packet is compressed and the memory is updated with the correct hexadecimal signature.

In addition, the location pointer component254is capable of replacing the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the UE-based memory232with location pointer262. Indeed, the location pointer component254may also be configured to replace a selected string of bytes of the transmission data packet, as determined by UE114or network112.

The location pointer262specifies the location in the UE-based memory232where the preset string of bytes is saved and is referenced for later decompression. Moreover, there may be a plurality of location pointer(s)262that match a plurality of preset string of bytes saved in a UE-based memory232. Last, location pointer262may also be configured to include a length indication indicating the number of bytes of the saved preset string of bytes saved in the UE-based memory232.

In other words, the goal of pattern encoding component252is to detect strings of bytes in the current packet being compressed that match bytes preset in the UE-based memory232. Upon detecting such a match, this particular byte pattern may be replaced by a pointer to the location (location pointer262) in the UE-based memory232that was determined as a match. Basically, pattern encoding component252is configured for replacing the string of bytes of the transmission data packet210that has been determined to match the preset string of bytes saved in the memory component with a location pointer262, wherein after replacing the string of bytes in the transmission data packet with the location pointer262, the transmission data packet210comprises the location pointer262and a set of literal-bytes264.

Not only does this operation replace large strings of bytes with fewer ones, the output from pattern encoding then only consists of either a set of literal-bytes264(bytes of the transmission packet not replaced by the location pointer) or pointers to locations (location pointer262) in the UE-based memory232.

After the transmission data packet is encoded by the pattern encoding component252, the output from pattern encoding is routed to the entropy encoding component255. The entropy encoding component255is configured for generating a compressed transmission data packet212by entropy coding of a set of literal-bytes264remaining in the transmission data packet210and the location pointer262.

Entropy encoding encodes bit strings (i.e. sequences of bits) to symbols (e.g., literal-bytes or location pointer) based on the probability of occurrences. Symbols that occur more frequently are provided shorter bit strings and those that occur less frequently are provided longer bit strings, hence reducing the overall size of the data.

Additionally, as discussed above, literal-bytes264is defined as the bytes remaining in the transmission data packet210after the location pointer component254has replaced some of the bytes in the transmission data packet210with location pointer262.

Indeed, entropy encoding component255is configured for generating a compressed transmission data packet212by entropy coding of a set of literal-bytes264remaining in the transmission data packet210and the location pointer262to generate a compressed transmission data packet212with small overall bit length (i.e., a small number of bits). In other words, entropy encoding component255is configured for generating a compressed transmission data packet212by entropy coding the transmission data packet210comprising the set of literal-bytes264and the location pointer262. This allows for the literal-bytes264and location pointer262to be uniquely recovered from the output bit string.

Generating entropy coding of the set of literal-bytes264and location pointer262is performed by well known algorithms, such as Huffman Coding and Adaptive Arithmetic Coding. Note, the generation can be based on pre-configured static mapping between the literal-bytes, location pointers and bit strings of the entropy coding. In other words, static mapping is allowed between the symbols and bit strings instead of using Huffman Coding, which may determine the mapping based on the probabilities of occurrence of the symbols (dynamic mapping).

Basically, the goal of entropy coding is to generate a unique prefix-free code for each unique symbol that occurs in an input. The entropy encoders then compresses the data by replacing each fixed-length input symbol with a corresponding variable-length prefix-free output codeword. For example, entropy encoding component255generates a unique prefix-free code to both literal-bytes264and location pointer262and replaces each fixed-length input symbol with a corresponding variable-length prefix-free output codeword to generate a compressed transmission data packet212with a small overall bit length.

Once the transmission data packet210is compressed by the compressor component144, the resulting compressed transmission data packet212is sent to the de-compressor component156of network112. Similar to compressor component144, the de-compressor component156is configured to include an entropy decoding component256and a pattern decoding component257. Within pattern decoding component257, there resides a location pointer scanning component258and a replacement component259.

When the de-compressor component156receives the compressed transmission data packet212, the entropy decoding component256is configured to decode the entropy coding bit strings in the compressed transmission data packet212to generate the set of literal-bytes264and location pointer262. That is to say, the entropy decoding component performs the inverse function of the entropy encoding function.

The set of literal-bytes264and the location pointer262are then routed to the pattern decoding component257, where location pointer scanning component258scans for location pointer262to determine which preset of bytes saved in the network-based memory234are to be replaced. The replacement component259then replaces the location pointer262with the preset string of bytes saved in the network-based memory234to generate decompressed transmission data packet214, which, in all aspects, is identical to transmission data packet210before compression. In other words, the pattern decoding component257scans for location pointer262from the output of the entropy decoding component256and replaces location pointer262with the preset of bytes saved in the network-based memory234referred to by the location pointer262.

Both the UE-based memory232and the network-based memory234consist of an amount of memory in which the payloads of the most recent packets in the data flow are stored. In one aspect, after the transmission data packet210is compressed at the compressor component144, the transmission data packet's uncompressed bits are inserted in memory (UE-based memory232). If there is insufficient space in memory for this operation, the oldest bits are removed to create space.

In another aspect, after the compressed transmission data packet212is decompressed at the de-compressor component, the bits of the decompressed transmission data packet214are inserted in memory (network-based memory234). If there is insufficient space in memory for this operation, the oldest bits are removed to create space. Note, both the UE-based memory232and the network-based memory234may be emptied for synchronization purposes.

Other aspects of this apparatus and methods include performing compression operation only on a certain part of the transmission data packet. For example, when operating on Transmission Control Protocol/Internet Protocol (TCP/IP) packets, only the TCP payload is compressed using the above method, while the header could be compressed using other techniques such as Robust Header Compression (ROHC).

Still other aspects may be configured to allow both the pattern-coding and entropy coding functions at the compressor component144/154and the de-compressor component156/146to be transparent, in that the compressor component144/154and the de-compressor component156/146do not perform any functional operation on the input data. This allows for sending the original packet uncompressed, if the overhead associated with compression is not acceptable. In other words, the functions of the compressor component144/154and the de-compressor component156/146may be rendered inactive when overhead associated with coding compression/decompression becomes unacceptable as defined by UE-based memory232or network-based memory234. Indeed, overhead associated with coding compression/decompression becomes unacceptable when the amount of compression seen varies over time as the traffic pattern may change. For example if the amount of compression gains is not enough to justify the increased processing resources used, the compressor component144/154and the de-compressor component156/146may be rendered inactive.

FIG. 4is a flow diagram illustrating an exemplary method460. It should noted that steps462-465, illustrated as solid line boxes, represent method steps that occur in UE114while steps466-469, illustrated as dashed line boxes, represent method steps that occur in network112. Additionally, as discussed above, the method step ofFIG. 4may also be performed in the opposite direction where steps462-465are performed on the network side and466-469are performed on the UE side.

At462, the UE receives a transmission data packet. For example, as discussed above with reference toFIG. 2, Tx/Rx component142of UE114is configured to receive transmission data packet210. As noted above, transmission data packet210may be generated from an operating system and/or applications of UE114.

At463, UE114attempts to detect if a string of bytes in the transmission data packet matches a preset string of bytes saved in a memory component occurs at463. For example, as discussed above with reference toFIG. 3, detecting component253of pattern encoding component252, residing in compressor component144, may be configured to detect a string of bytes in the transmission data packet210that matches a preset string of bytes saved in UE-based memory232.

At464, UE replaces the string of bytes of the transmission data packet that has been determined to match the preset string of bytes saved in the memory component with a location pointer, wherein after replacing the string of bytes in the data packet with the location pointer, the data packet comprises the location pointer and a set of literal bytes. For example, as discussed above with reference toFIG. 3, location pointer component254of pattern encoding component252, residing in compressor component144, may be configured to replace a string of bytes of transmission data packet210that has been determined to match the preset string of bytes saved in the UE-based memory232with location pointer262, wherein after replacing the string of bytes in the transmission data packet210with the location pointer262, the transmission data packet210comprises the location pointer262and a set of literal-bytes264.

It should also be noted that location pointer component254may also be configured to replace a string of bytes of transmission data packet210that has been determined to match the preset string of bytes saved in the UE-based memory232with multiple location pointers.

At465, the UE generates a compressed transmission data packet by entropy coding the transmission data packet comprising the set of literal-bytes and the location pointer. For example, as discussed above with reference toFIG. 3, entropy encoding component255, residing in compressor component144, is configured to generate a compressed transmission data packet212by entropy coding the transmission data packet210comprising the set of literal-bytes264and the location pointer262.

At,466, after UE114has generated compressed transmission data packet212for transmission, network112receives the compressed transmission data packet. For example, as discussed with reference toFIG. 2, Tx/Rx component152of network112is configured to receive compressed transmission data packet212from UE114.

At467, node B of network112decodes the entropy coding bit strings in the compressed transmission data packet to generate the set of literal-bytes and location pointer. For example, as discussed with reference toFIG. 3, entropy decoding component256, residing in de-compressor component156, is configured to decode the entropy coding bit strings in the compressed transmission data packet212to generate the set of literal-bytes264and location pointer262

At468, node B of network112scans for the location pointers to determine which preset of bytes saved in the memory component are to be replaced at the location pointers occurs. For example, as discussed with reference toFIG. 3, location pointer scanning component258of pattern decoding component257, residing in de-compressor component156, may scan the received compressed transmission data packet212for a location pointer262and utilizes the location pointer262to identify which preset of bytes saved in the network-based memory234are to be replaced.

At469, node B of network112replaces the location pointers with the preset string of bytes saved in the memory component to generate a decompressed transmission data packet. For example, as discussed with reference toFIG. 3, replacement component259of pattern decoding component257, residing in de-compressor component156, may replace the location pointer262with the preset string of bytes saved in the network-based memory234to generate decompressed transmission data packet214.

In an aspect, executing method460may be, for example, executed by UE114/network112(FIG. 1) executing the call processing components140/150(FIG. 2), or respective components thereof.

Referring toFIG. 5, in one aspect, UE114and/or wireless serving node116ofFIGS. 1and/or2may be represented by a specially programmed or configured computer device580of wireless communication system100, wherein the special programming or configuration includes call processing component140/150, as described herein. For example, for implementation as UE114(FIG. 2), computer device580may include one or more components for computing and transmitting a data from a UE114to network112via wireless serving node116, such as in specially programmed computer readable instructions or code, firmware, hardware, or some combination thereof. Computer device580includes a processor582for carrying out processing functions associated with one or more of components and functions described herein. Processor582can include a single or multiple set of processors or multi-core processors. Moreover, processor582can be implemented as an integrated processing system and/or a distributed processing system.

Computer device580further includes a memory584, such as for storing data used herein and/or local versions of applications being executed by processor582. Memory584can include any type of memory usable by a computer, such as random access memory (RAM), read only memory (ROM), tapes, magnetic discs, optical discs, volatile memory, non-volatile memory, and any combination thereof.

Further, computer device580includes a communications component586that provides for establishing and maintaining communications with one or more parties utilizing hardware, software, and services as described herein. Communications component586may carry communications between components on computer device580, as well as between computer device580and external devices, such as devices located across a communications network and/or devices serially or locally connected to computer device580. For example, communications component586may include one or more buses, and may further include transmit chain components and receive chain components associated with a transmitter and receiver, respectively, or a transceiver, operable for interfacing with external devices. For example, in an aspect, a receiver of communications component586operates to receive one or more data via a wireless serving node116, which may be a part of memory584.

Additionally, computer device580may further include a data store588, which can be any suitable combination of hardware and/or software, that provides for mass storage of information, databases, and programs employed in connection with aspects described herein. For example, data store588may be a data repository for applications not currently being executed by processor582.

Furthermore, in an embodiment, the above described processor582, memory584, communication component586, data store588, and user interface589of computer device580may be configured to execute call processing component140/150.

FIG. 6is a block diagram illustrating an example of a hardware implementation for an apparatus700employing a processing system714. Apparatus700may be configured to include, for example, wireless communication system100(FIG. 2) and/or call processing component140/150(FIG. 2) implementing the components described above, such as, but not limited to Tx/Rx component142/152, compressor component144/154, and de-compressor component146/156, as described above. In this example, the processing system714may be implemented with a bus architecture, represented generally by the bus702. The bus702may include any number of interconnecting buses and bridges depending on the specific application of the processing system714and the overall design constraints. The bus702links together various circuits including one or more processors, represented generally by the processor704, and computer-readable media, represented generally by the computer-readable medium706. The bus702may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further. A bus interface708provides an interface between the bus702and a transceiver710. The transceiver710provides a means for communicating with various other apparatus over a transmission medium. Depending upon the nature of the apparatus, a user interface712(e.g., keypad, display, speaker, microphone, joystick) may also be provided.

The processor704is responsible for managing the bus702and general processing, including the execution of software stored on the computer-readable medium706. The software, when executed by the processor704, causes the processing system714to perform the various functions described infra for any particular apparatus. The computer-readable medium706may also be used for storing data that is manipulated by the processor704when executing software.

In an aspect, processor704, computer-readable medium706, or a combination of both may be configured or otherwise specially programmed to perform the functionality of the call processing component140/150(FIG. 2) as described herein.

The various concepts presented throughout this disclosure may be implemented across a broad variety of telecommunication systems, network architectures, and communication standards.

Referring toFIG. 7, by way of example and without limitation, the aspects of the present disclosure are presented with reference to a UMTS system800employing a W-CDMA air interface. A UMTS network includes three interacting domains: a Core Network (CN)804, a UMTS Terrestrial Radio Access Network (UTRAN)802, and User Equipment (UE)810. UE810may be configured to include, for example, the call processing component140/150(FIG. 2) implementing the components described above, such as, but not limited to Tx/Rx component142/152, compressor component144/154, and de-compressor component146/156, as described above. In this example, the UTRAN802provides various wireless services including telephony, video, data, messaging, broadcasts, and/or other services. The UTRAN802may include a plurality of Radio Network Subsystems (RNSs) such as an RNS807, each controlled by a respective Radio Network Controller (RNC) such as an RNC806. Here, the UTRAN802may include any number of RNCs806and RNSs807in addition to the RNCs806and RNSs807illustrated herein. The RNC806is an apparatus responsible for, among other things, assigning, reconfiguring and releasing radio resources within the RNS807. The RNC806may be interconnected to other RNCs (not shown) in the UTRAN802through various types of interfaces such as a direct physical connection, a virtual network, or the like, using any suitable transport network.

Communication between a UE810and a Node B808may be considered as including a physical (PHY) layer and a medium access control (MAC) layer. Further, communication between a UE810and an RNC806by way of a respective Node B808may be considered as including a radio resource control (RRC) layer. In the instant specification, the PHY layer may be considered layer 1; the MAC layer may be considered layer 2; and the RRC layer may be considered layer 3. Information hereinbelow utilizes terminology introduced in the RRC Protocol Specification, 3GPP TS 25.331, incorporated herein by reference.

The geographic region covered by the RNS807may be divided into a number of cells, with a radio transceiver apparatus serving each cell. A radio transceiver apparatus is commonly referred to as a Node B in UMTS applications, but may also be referred to by those skilled in the art as a base station (BS), a base transceiver station (BTS), a radio base station, a radio transceiver, a transceiver function, a basic service set (BSS), an extended service set (ESS), an access point (AP), or some other suitable terminology. For clarity, three Node Bs808are shown in each RNS807; however, the RNSs807may include any number of wireless Node Bs. The Node Bs808provide wireless access points to a CN804for any number of mobile apparatuses. Examples of a mobile apparatus include a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a laptop, a notebook, a netbook, a smartbook, a personal digital assistant (PDA), a satellite radio, a global positioning system (GPS) device, a multimedia device, a video device, a digital audio player (e.g., MP3 player), a camera, a game console, or any other similar functioning device. The UE810is commonly referred to as a UE in UMTS applications, but may also be referred to by those skilled in the art as a mobile station, a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, a terminal, a user agent, a mobile client, a client, or some other suitable terminology. In a UMTS system, the UE810may further include a universal subscriber identity module (USIM)811, which contains a user's subscription information to a network. For illustrative purposes, one UE810is shown in communication with a number of the Node Bs808. The DL, also called the forward link, refers to the communication link from a Node B808to a UE810, and the UL, also called the reverse link, refers to the communication link from a UE810to a Node B808.

The CN804interfaces with one or more access networks, such as the UTRAN802. As shown, the CN804is a GSM core network. However, as those skilled in the art will recognize, the various concepts presented throughout this disclosure may be implemented in a RAN, or other suitable access network, to provide UEs with access to types of CNs other than GSM networks.

The CN804includes a circuit-switched (CS) domain and a packet-switched (PS) domain. Some of the circuit-switched elements are a Mobile services Switching Centre (MSC), a Visitor location register (VLR) and a Gateway MSC. Packet-switched elements include a Serving GPRS Support Node (SGSN) and a Gateway GPRS Support Node (GGSN). Some network elements, like EIR, HLR, VLR and AuC may be shared by both of the circuit-switched and packet-switched domains. In the illustrated example, the CN804supports circuit-switched services with a MSC812and a GMSC814. In some applications, the GMSC814may be referred to as a media gateway (MGW). One or more RNCs, such as the RNC806, may be connected to the MSC812. The MSC812is an apparatus that controls call setup, call routing, and UE mobility functions. The MSC812also includes a VLR that contains subscriber-related information for the duration that a UE is in the coverage area of the MSC812. The GMSC814provides a gateway through the MSC812for the UE to access a circuit-switched network816. The GMSC814includes a home location register (HLR)815containing subscriber data, such as the data reflecting the details of the services to which a particular user has subscribed. The HLR is also associated with an authentication center (AuC) that contains subscriber-specific authentication data. When a call is received for a particular UE, the GMSC814queries the HLR815to determine the UE's location and forwards the call to the particular MSC serving that location.

The CN804also supports packet-data services with a serving GPRS support node (SGSN)818and a gateway GPRS support node (GGSN)820. GPRS, which stands for General Packet Radio Service, is designed to provide packet-data services at speeds higher than those available with standard circuit-switched data services. The GGSN820provides a connection for the UTRAN802to a packet-based network822. The packet-based network822may be the Internet, a private data network, or some other suitable packet-based network. The primary function of the GGSN820is to provide the UEs810with packet-based network connectivity. Data packets may be transferred between the GGSN820and the UEs810through the SGSN818, which performs primarily the same functions in the packet-based domain as the MSC812performs in the circuit-switched domain.

An air interface for UMTS may utilize a spread spectrum Direct-Sequence Code Division Multiple Access (DS-CDMA) system. The spread spectrum DS-CDMA spreads user data through multiplication by a sequence of pseudorandom bits called chips. The “wideband” W-CDMA air interface for UMTS is based on such direct sequence spread spectrum technology and additionally calls for a frequency division duplexing (FDD). FDD uses a different carrier frequency for the UL and DL between a Node B808and a UE810. Another air interface for UMTS that utilizes DS-CDMA, and uses time division duplexing (TDD), is the TD-SCDMA air interface. Those skilled in the art will recognize that although various examples described herein may refer to a W-CDMA air interface, the underlying principles may be equally applicable to a TD-SCDMA air interface.

An HSPA air interface includes a series of enhancements to the 3G/W-CDMA air interface, facilitating greater throughput and reduced latency. Among other modifications over prior releases, HSPA utilizes hybrid automatic repeat request (HARQ), shared channel transmission, and adaptive modulation and coding. The standards that define HSPA include HSDPA (high speed downlink packet access) and HSUPA (high speed uplink packet access, also referred to as enhanced uplink, or EUL).

HSDPA utilizes as its transport channel the high-speed downlink shared channel (HS-DSCH). The HS-DSCH is implemented by three physical channels: the high-speed physical downlink shared channel (HS-PDSCH), the high-speed shared control channel (HS-SCCH), and the high-speed dedicated physical control channel (HS-DPCCH).

Among these physical channels, the HS-DPCCH carries the HARQ ACK/NACK signaling on the uplink to indicate whether a corresponding packet transmission was decoded successfully. That is, with respect to the downlink, the UE810provides feedback to the node B808over the HS-DPCCH to indicate whether it correctly decoded a packet on the downlink.

HS-DPCCH further includes feedback signaling from the UE810to assist the node B808in taking the right decision in terms of modulation and coding scheme and precoding weight selection, this feedback signaling including the CQI and PCI.

“HSPA Evolved” or HSPA+ is an evolution of the HSPA standard that includes MIMO and 64-QAM, enabling increased throughput and higher performance. That is, in an aspect of the disclosure, the node B808and/or the UE810may have multiple antennas supporting MIMO technology. The use of MIMO technology enables the node B808to exploit the spatial domain to support spatial multiplexing, beamforming, and transmit diversity.

Multiple Input Multiple Output (MIMO) is a term generally used to refer to multi-antenna technology, that is, multiple transmit antennas (multiple inputs to the channel) and multiple receive antennas (multiple outputs from the channel). MIMO systems generally enhance data transmission performance, enabling diversity gains to reduce multipath fading and increase transmission quality, and spatial multiplexing gains to increase data throughput.

Spatial multiplexing may be used to transmit different streams of data simultaneously on the same frequency. The data steams may be transmitted to a single UE810to increase the data rate, or to multiple UEs810to increase the overall system capacity. This is achieved by spatially precoding each data stream and then transmitting each spatially precoded stream through a different transmit antenna on the downlink. The spatially precoded data streams arrive at the UE(s)810with different spatial signatures, which enables each of the UE(s)810to recover the one or more the data streams destined for that UE810. On the uplink, each UE810may transmit one or more spatially precoded data streams, which enables the node B808to identify the source of each spatially precoded data stream.

Spatial multiplexing may be used when channel conditions are good. When channel conditions are less favorable, beamforming may be used to focus the transmission energy in one or more directions, or to improve transmission based on characteristics of the channel. This may be achieved by spatially precoding a data stream for transmission through multiple antennas. To achieve good coverage at the edges of the cell, a single stream beamforming transmission may be used in combination with transmit diversity.

Generally, for MIMO systems utilizing n transmit antennas, n transport blocks may be transmitted simultaneously over the same carrier utilizing the same channelization code. Note that the different transport blocks sent over the n transmit antennas may have the same or different modulation and coding schemes from one another.

On the other hand, Single Input Multiple Output (SIMO) generally refers to a system utilizing a single transmit antenna (a single input to the channel) and multiple receive antennas (multiple outputs from the channel). Thus, in a SIMO system, a single transport block is sent over the respective carrier.

Referring toFIG. 8, an access network900in a UTRAN architecture is illustrated. The multiple access wireless communication system includes multiple cellular regions (cells), including cells902,904, and906, each of which may include one or more sectors. The multiple sectors can be formed by groups of antennas with each antenna responsible for communication with UEs in a portion of the cell. For example, in cell902, antenna groups912,914, and916may each correspond to a different sector. In cell904, antenna groups918,920, and922each correspond to a different sector. In cell906, antenna groups924,926, and928each correspond to a different sector. The cells902,904and906may include several wireless communication devices, e.g., User Equipment or UEs, which may be in communication with one or more sectors of each cell902,904or906. For example, UEs930and932may be in communication with Node B942, UEs934and936may be in communication with Node B944, and UEs938and940can be in communication with Node B946. Here, each Node B942,944,946is configured to provide an access point to a CN804(seeFIG. 7) for all the UEs930,932,934,936,938,940in the respective cells902,904, and906. Node Bs942,944,946and UEs930,932,934,936,938,940respectively may be configured to include, for example, the call processing component140/150(FIG. 2) implementing the components described above, such as, but not limited to Tx/Rx component142/152, compressor component144/154, and de-compressor component146/156, as described above.

As the UE934moves from the illustrated location in cell904into cell906, a serving cell change (SCC) or handover may occur in which communication with the UE934transitions from the cell904, which may be referred to as the source cell, to cell906, which may be referred to as the target cell. Management of the handover procedure may take place at the UE934, at the Node Bs corresponding to the respective cells, at a radio network controller806(seeFIG. 7), or at another suitable node in the wireless network. For example, during a call with the source cell904, or at any other time, the UE934may monitor various parameters of the source cell904as well as various parameters of neighboring cells such as cells906and902. Further, depending on the quality of these parameters, the UE934may maintain communication with one or more of the neighboring cells. During this time, the UE934may maintain an Active Set, that is, a list of cells that the UE934is simultaneously connected to (i.e., the UTRA cells that are currently assigning a downlink dedicated physical channel DPCH or fractional downlink dedicated physical channel F-DPCH to the UE934may constitute the Active Set).

The modulation and multiple access scheme employed by the access network900may vary depending on the particular telecommunications standard being deployed. By way of example, the standard may include Evolution-Data Optimized (EV-DO) or Ultra Mobile Broadband (UMB). EV-DO and UMB are air interface standards promulgated by the 3rd Generation Partnership Project 2 (3GPP2) as part of the CDMA2000 family of standards and employs CDMA to provide broadband Internet access to mobile stations. The standard may alternately be Universal Terrestrial Radio Access (UTRA) employing Wideband-CDMA (W-CDMA) and other variants of CDMA, such as TD-SCDMA; Global System for Mobile Communications (GSM) employing TDMA; and Evolved UTRA (E-UTRA), Ultra Mobile Broadband (UMB), and Flash-OFDM employing OFDMA. CDMA2000 and UMB are described in documents from the 3GPP2 organization. The actual wireless communication standard and the multiple access technology employed will depend on the specific application and the overall design constraints imposed on the system.

The radio protocol architecture may take on various forms depending on the particular application. An example for an HSPA system will now be presented with reference toFIG. 9.

FIG. 9is a conceptual diagram illustrating an example of the radio protocol architecture1000for the user plane1002and the control plane1004of a user equipment (UE) or node B/base station. For example, architecture1000may be included in a network entity and/or UE such as an entity within network112and/or UE114(FIG. 1). The radio protocol architecture1000for the UE and node B is shown with three layers: Layer 11006, Layer 21008, and Layer 31010. Layer 11006is the lowest lower and implements various physical layer signal processing functions. As such, Layer 11006includes the physical layer1007. Layer 2 (L2 layer)1008is above the physical layer1007and is responsible for the link between the UE and node B over the physical layer1007. Layer 3 (L3 layer)1010includes a radio resource control (RRC) sublayer1015. The RRC sublayer1015handles the control plane signaling of Layer 3 between the UE and the UTRAN.

In the user plane, the L2 layer1008includes a media access control (MAC) sublayer1009, a radio link control (RLC) sublayer1011, and a packet data convergence protocol (PDCP)1013sublayer, which are terminated at the node B on the network side. Although not shown, the UE may have several upper layers above the L2 layer1008including a network layer (e.g., IP layer) that is terminated at a PDN gateway on the network side, and an application layer that is terminated at the other end of the connection (e.g., far end UE, server, etc.).

FIG. 10is a block diagram of a communication system1100including a Node B1110in communication with a UE1150, where Node B1110may be an entity within network112and the UE1150may be UE114according to the aspect described inFIG. 1. UE1150and Node B1110may be configured to include, for example, the call processing component140/150(FIG. 2) implementing the components described above, such as, but not limited to Tx/Rx component142/152, compressor component144/154, and de-compressor component146/156, as described above. In the downlink communication, a transmit processor1120may receive data from a data source1112and control signals from a controller/processor1140. The transmit processor1120provides various signal processing functions for the data and control signals, as well as reference signals (e.g., pilot signals). For example, the transmit processor1120may provide cyclic redundancy check (CRC) codes for error detection, coding and interleaving to facilitate forward error correction (FEC), mapping to signal constellations based on various modulation schemes (e.g., binary phase-shift keying (BPSK), quadrature phase-shift keying (QPSK), M-phase-shift keying (M-PSK), M-quadrature amplitude modulation (M-QAM), and the like), spreading with orthogonal variable spreading factors (OVSF), and multiplying with scrambling codes to produce a series of symbols. Channel estimates from a channel processor1144may be used by a controller/processor1140to determine the coding, modulation, spreading, and/or scrambling schemes for the transmit processor1120. These channel estimates may be derived from a reference signal transmitted by the UE1150or from feedback from the UE1150. The symbols generated by the transmit processor1120are provided to a transmit frame processor1130to create a frame structure. The transmit frame processor1130creates this frame structure by multiplexing the symbols with information from the controller/processor1140, resulting in a series of frames. The frames are then provided to a transmitter1132, which provides various signal conditioning functions including amplifying, filtering, and modulating the frames onto a carrier for downlink transmission over the wireless medium through antenna1134. The antenna1134may include one or more antennas, for example, including beam steering bidirectional adaptive antenna arrays or other similar beam technologies.

At the UE1150, a receiver1154receives the downlink transmission through an antenna1152and processes the transmission to recover the information modulated onto the carrier. The information recovered by the receiver1154is provided to a receive frame processor1160, which parses each frame, and provides information from the frames to a channel processor1194and the data, control, and reference signals to a receive processor1170. The receive processor1170then performs the inverse of the processing performed by the transmit processor1120in the Node B1110. More specifically, the receive processor1170descrambles and despreads the symbols, and then determines the most likely signal constellation points transmitted by the Node B1110based on the modulation scheme. These soft decisions may be based on channel estimates computed by the channel processor1194. The soft decisions are then decoded and deinterleaved to recover the data, control, and reference signals. The CRC codes are then checked to determine whether the frames were successfully decoded. The data carried by the successfully decoded frames will then be provided to a data sink1172, which represents applications running in the UE1150and/or various user interfaces (e.g., display). Control signals carried by successfully decoded frames will be provided to a controller/processor1190. When frames are unsuccessfully decoded by the receiver processor1170, the controller/processor1190may also use an acknowledgement (ACK) and/or negative acknowledgement (NACK) protocol to support retransmission requests for those frames.

In the uplink, data from a data source1178and control signals from the controller/processor1190are provided to a transmit processor1180. The data source1178may represent applications running in the UE1150and various user interfaces (e.g., keyboard). Similar to the functionality described in connection with the downlink transmission by the Node B1110, the transmit processor1180provides various signal processing functions including CRC codes, coding and interleaving to facilitate FEC, mapping to signal constellations, spreading with OVSFs, and scrambling to produce a series of symbols. Channel estimates, derived by the channel processor1194from a reference signal transmitted by the Node B1110or from feedback contained in the midamble transmitted by the Node B1110, may be used to select the appropriate coding, modulation, spreading, and/or scrambling schemes. The symbols produced by the transmit processor1180will be provided to a transmit frame processor1182to create a frame structure. The transmit frame processor1182creates this frame structure by multiplexing the symbols with information from the controller/processor1190, resulting in a series of frames. The frames are then provided to a transmitter1156, which provides various signal conditioning functions including amplification, filtering, and modulating the frames onto a carrier for uplink transmission over the wireless medium through the antenna1152.

The uplink transmission is processed at the Node B1110in a manner similar to that described in connection with the receiver function at the UE1150. A receiver1135receives the uplink transmission through the antenna1134and processes the transmission to recover the information modulated onto the carrier. The information recovered by the receiver1135is provided to a receive frame processor1136, which parses each frame, and provides information from the frames to the channel processor1144and the data, control, and reference signals to a receive processor1138. The receive processor1138performs the inverse of the processing performed by the transmit processor1180in the UE1150. The data and control signals carried by the successfully decoded frames may then be provided to a data sink1139and the controller/processor, respectively. If some of the frames were unsuccessfully decoded by the receive processor, the controller/processor1140may also use an acknowledgement (ACK) and/or negative acknowledgement (NACK) protocol to support retransmission requests for those frames.

The controller/processors1140and1190may be used to direct the operation at the Node B1110and the UE1150, respectively. For example, the controller/processors1140and1190may provide various functions including timing, peripheral interfaces, voltage regulation, power management, and other control functions. The computer readable media of memories1142and1192may store data and software for the Node B1110and the UE1150, respectively. A scheduler/processor1146at the Node B1110may be used to allocate resources to the UEs and schedule downlink and/or uplink transmissions for the UEs.

Several aspects of a telecommunications system have been presented with reference to a W-CDMA system. As those skilled in the art will readily appreciate, various aspects described throughout this disclosure may be extended to other telecommunication systems, network architectures and communication standards.