1. Field of the Invention
The present invention relates to a method of generating three-dimensional (3D) graphic compression data, and an apparatus to perform the method, and a method of recovering 3D graphic compression data, and an apparatus to perform the method, and, more particularly, to a method of generating 3D graphic compression data, and an apparatus to perform the method, and a method of recovering 3D graphic compression data, and an apparatus to perform the method, in a mobile environment.
2. Description of the Related Art
The current state of the evolution of mobile devices allows some services, such as 3D games, 3D avatars, or 3D shopping, which were previously considered to be impossible or impractical in a mobile environment, to be provided. As a result, such services have been recognized as new business models to be used in mobile communications or content providers.
However, the mobile devices are limited in terms of computational complexity and power consumption, and a bandwidth of a wireless network is also limited. Thus, an efficient method of representing and compressing 3D graphic data is needed to overcome these limitations in a mobile environment.
The present invention provides a method of generating three-dimensional (3D) graphic compression data, and an apparatus to perform the method, and a method of recovering 3D graphic compression data, and an apparatus to perform the method, in order to compactly represent the 3D graphic data and effectively transmit the data via a wireless network in a mobile environment that is restricted in power consumption and computational complexity.
Additional aspects and/or advantages of the invention will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the invention.
According to an aspect of the present invention, there is provided a method of generating three-dimensional (3D) compression data, the method comprising generating configuration information of the 3D compression data; generating a plurality of pieces of individual 3D compression data to be included in the 3D compression data; and generating the 3D compression data by multiplexing the pieces of individual 3D compression data, combining the 3D compression data with the configuration information, and outputting the result of the combination.
According to another aspect of the present invention, there is provided a method of recovering three-dimensional (3D) compression data, the method including separating the 3D compression data and configuration information of the 3D compression data from a received signal; separating a plurality of pieces of individual 3D compression data and individual configuration information of the pieces of individual 3D compression data from the 3D compression data; and decoding the pieces of individual 3D compression data by using data type information of the 3D compression data, which is included in the individual configuration information.
According to another aspect of the present invention, there is provided an apparatus to generate three-dimensional (3D) compression data, the apparatus comprising a plurality of encoders which encode received 3D data according to different methods and generate different types of pieces of individual 3D compression data; and a multiplexer which generates configuration information of the 3D compression data and individual configuration information of the pieces of individual 3D compression data, receives the pieces of individual 3D compression data from the encoders and respectively combines the pieces of individual 3D compression data with the corresponding individual configuration information, generates the 3D compression data by multiplexing the combined data, and combines the 3D compression data with the configuration information and outputs the result of the combination.
According to another aspect of the present invention, there is provided an apparatus to recover three-dimensional (3D) compression data, the apparatus comprising a demultiplexer which separates the 3D compression data and configuration information of the 3D compression data from a received signal, separates a plurality of pieces of individual 3D compression data and individual configuration information of the pieces of individual 3D compression data from the 3D compression data, and analyzes a data type code comprising data type information of the individual 3D compression data, the data type code being included in the individual configuration information; and a plurality of decoders which recover 3D graphic data by decoding the pieces of individual 3D compression data according to the corresponding data type code.
According to another aspect of the present invention, there is provided a method of generating three-dimensional (3D) compression data, the method comprising generating configuration information of a 3DCObjectSequence, which is the 3D compression data; generating 3DCObjects, which are a plurality of pieces of individual 3D compression data that are included in the 3D compression data; and generating the 3D compression data by multiplexing the pieces of individual 3D compression data, combining the 3D compression data with the configuration information, and outputting the result of the combination. The generation of configuration information of the 3D compression data, the generation of the pieces of individual 3D compression data, and the generation of the 3D compression data are realized by:
wherein 3dc_object_sequence_start_code denotes code representing a start of the 3D compression data, profile_and_level_indication denotes profile and level identification information of the 3D compression data, and 3dc_object_sequence_end_code denotes code representing an end of the 3D compression data.
According to another aspect of the present invention, there is provided a method of generating three-dimensional (3D) compression data, the method comprising generating configuration information of the 3D compression data; generating a combination of individual configuration information of an individual 3D compression object included in the 3D compression data with the individual 3D compression object corresponding to the individual configuration information, and repeatedly generating the combination; and multiplexing the combinations to obtain a piece of data, and including the configuration information in the obtained data.
According to another aspect of the present invention, there is provided a method of recovering three-dimensional (3D) compression data, the method comprising separating the 3D compression data and configuration information of the 3D compression data from a received signal; separating combinations of individual configuration information and individual 3D compression objects from the 3D compression data, and separating the individual 3D compression objects and the individual configuration information from the separated combinations; and recovering 3D data by decoding the individual 3D compression objects using data type information of the individual 3D compression objects, the data type information being included in the individual configuration information.
These and/or other aspects and advantages of the invention will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below to explain the present invention by referring to the figures.
The 3D graphic authoring device 10 includes an authoring tool 101, an application implementation unit 102, and an AFX (Animation Framework eXtension) encoder 103.
The authoring tool 101 creates 3D resources. The 3D resources may include, for example, a 3D mesh, a key-frame sequence, or bone information.
The application implementation unit 102 outputs scene graph information used to display content stored in a data structure in a screen according to a user's input, an interaction with a user, scene management, Open GL, which is a graphic library, and GFX or DirectX, which are application program interfaces.
The AFX encoder 103 compresses some of the 3D resources from the authoring tool 101, or the information from the application implementation unit 102, and transmits the compression result.
The 3D graphic operation device 11 includes an application execution unit 111 and an AFX decoder 112.
The application execution unit 111 receives and executes the information from the application implementation unit 102, or executes the 3D resources recovered by the AFX decoder 112.
Each of the encoders 21 compresses received 3D data into a compressed bitstream, and the multiplexer 22 multiplexes the compressed bitstreams to a compressed data stream. Each encoder 21 encodes the received 3D data according to the type of an object, e.g., through, for example, 3D mesh coding (3DMC), interpolator coding (IC), wavelet subdivision surface (WSS), or bone-based animation (BBA).
The demultiplexer 23 demultiplexes the compressed data stream into the compressed bitstream, and each of the decoders 24 recovers the original data from the compressed data.
The specification of the system part of the ISO/IEC 14496-1 specifies separate encoding of video data and audio data, and multiplexing and synchronizing of the encoded data in order to store multimedia data in a file or a recording medium or transmit it via a network. It is an MPEG-4 system that defines the data multiplexing. Video or audio binary data that has yet to be multiplexed by the system is referred to as the elementary stream.
In the MPEG-4 standard, object encoding is used to multiplex audio and video data. In this case, both audio data and video data are processed as a single object, and the system multiplexes and synchronizes the objects.
The MPEG-4 standard defines BIFS (Binary Format for Scenes) as a feature used in a scene description by combining and processing a plurality of objects. For example, moving picture data and audio data of a person or a background are encoded as separate objects. Thus, an application can be made, so that the encoded objects are displayed to overlap each other, or a user can move any object.
However, when an application is downloaded and stored by using most basic tools in a mobile environment, the profile illustrated in
Therefore, in an embodiment of the present invention, a 3D compression profile that does not require an MPEG-4 system is adopted. In 3D compression data according to an embodiment of the present invention, configuration information, i.e., header information of an object, is inserted into a start of a bitstream, and, optionally, repeatedly inserted into the bitstream after the start of the bitstream.
The data structure illustrated in
The scene illustrated in
The scene graph information illustrated in
The 3D compression object 3DCObject 52 includes a plurality of 3DCObject headers 521, and a plurality of individual 3DCObjects 522. Here, each of the 3DCObjects 522 is a 3D compression bitstream, such as 3DMC Simple—3DMC, IC (not shown), BBA Simple_BBA, WSS (not shown), and PI Simple_PI, which is encoded by the encoders 21.
The 3DCObject header 521, which is generated by the multiplexer 22, includes a “3dc_object_verid” field describing the version number of a tool list of a 3D compression object type, and a “3dc_object_type_start_code” field that is used in resynchronization and describes the object type of a 3D compression stream to be transmitted and the type of a decoder matching the 3D compression stream. For example, if the “3dc_object_type_start_code ” field is a “Simple—3DMC” field, the demultiplexer 23 analyzes the “3dc_object_type_start_code ” field and outputs the 3D compression stream to a 3DMC decoder, which is one of the decoders 24, and the 3DMC decoder decodes the received 3D compression stream. New object types and a corresponding “3dc_object_type_start_code” field may be defined and extended to define more object types and corresponding decoders.
The 3DCObject header 521 may further include user data that a user defines for a specific application for the 3D compression object. For example, in
A process of generating a 3D compression object sequence by using the multiplexer 22 is expressed with the following code:
In the above code, 3dc_object_sequence_start_code is a hexadecimal number system of a bit string ‘000001A0’, and starts a 3D compression session. In this case, the Mnemonic is bslbf. The Mnemonic describes the type of data available for a coded bitstream, and bslbf stands for a bit string, left bit first.
profile_and_level_indication is an 8-bit integer used to signal the profile and level identification of the bitstream, and the meaning of each bit value is indicated in the following table:
In this case, the mnemonic is uimsbf, which stands for unsigned integer, most significant bit first.
user_start_code is a hexadecimal number system of a bit string ‘000001A4’, and indicates the start of the user data. The user data is continuously generated until another start code is received. In this case, mnemonic is bslbf.
3dc_object_sequence_end_code is a hexadecimal number system of a bit string ‘000001A1’, and ends the 3D compression session. In this case, the mnemonic is bslbf.
To generate the 3D compression object sequence, when the 3D compression session starts, user data is generated according to a given profile and level during a period of time in which a next bit is user_start_code, and 3DCObject is generated during a period of time in which a next bit is not 3dc_object_sequence_end_code.
A process of generating the 3D compression object is expressed with the following code:
In the above code, 3dc_object_start_code is a hexadecimal number system of a bit string ‘000001A2’, and starts a 3D compression object. In this case, the mnemonic is bslbf.
is—3dc_object_identifier is a 1-bit code, and set to ‘1’ when the version identification and priority of a 3D compression object are defined. In this case, the mnemonic is uimsbf.
3dc_object_verid is a 4-bit code that represents the version number of the 3D compression object. The meanings of the bit values are shown in the following table. If 3dc_object_verid does not exist, the value of 3dc_object_verid is ‘0001’. In thiscase, the mnemonic is uimsbf.
Table 3 shows a tool list included in each object type. Current object types may be extended until new tools or functionalities are introduced.
3dc_object_priority is a 3-bit code representing the priority of the 3D compression object. 3dc_object_priority has a value between 1 and 7. Here, ‘1’ represents the highest priority, and ‘7’ represents the lowest priority. ‘0’ is a reserved value. In this case, the mnemonic is uimsbf.
3dc_object_type_start_code is a 32-bit bit string. The first 24 bits of 3dc_object_type_start_code are ‘0000 0000 0000 0000 0000 0001’, which is used in resynchronization. The last 8 bits include values of ‘A6’ or ‘AB’, and represent the object types listed in Table 4. In this case, the mnemonic is bslbf.
A related decoder is called and the compressed stream is decoded according to the last 8 bits of 3dc_object_type_start_code. If more object types are further defined in Table 3, they are reflected in Table 4.
To generate the 3D object, when a session starts, user data is generated according to the version and priority of the 3D compression object during a period of time in which a next bit is user_start_code. Next, an object is generated according to the type of the corresponding 3D object.
A process of generating the user data is expressed with the following code:
user_data_bits is an 8-bit integer that is defined for a specific application by a user. If there are a series of user_data_bits, a bit string of 23 or more consecutive ‘0’s is not allowed.
In addition to the above-described embodiments, the method of the present invention can also be implemented by executing computer readable code/instructions in/on a medium, e.g., a computer readable medium. The medium can correspond to any medium/media permitting the storing and/or transmission of the computer readable code. The code/instructions may form a computer program.
The computer readable code/instructions can be recorded/transferred on a medium in a variety of ways, with examples of the medium including magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.), optical recording media (e.g., CD-ROMs, or DVDs), and storage/transmission media such as carrier waves, as well as through the Internet, for example. The medium may also be a distributed network, so that the computer readable code/instructions is stored/transferred and executed in a distributed fashion. The computer readable code/instructions may be executed by one or more processors.
As described above, according to the present invention, in a mobile environment being limited in power consumption and computational complexity, it is possible to effectively compress 3D graphic data and transmit the compressed 3D graphic data via a wireless network without an MPEG-4 system.
Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.
This application claims the benefit of U.S. Provisional Application No. 60/669,927, filed on Apr. 11, 2005, U.S. Provisional Application No. 60/676,972, field on May 3, 2005, and U.S. Provisional Application No. 60/700,320, field on Jul. 19, 2005, in the United States Patent & Trademark Office, the disclosures of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5057940 | Murakami et al. | Oct 1991 | A |
6377309 | Ito et al. | Apr 2002 | B1 |
6563500 | Kim et al. | May 2003 | B1 |
6571018 | Kim | May 2003 | B1 |
7136415 | Yun et al. | Nov 2006 | B2 |
7224729 | Jang et al. | May 2007 | B1 |
20010028744 | Han et al. | Oct 2001 | A1 |
20040111171 | Jang et al. | Jun 2004 | A1 |
20040236859 | Leistad et al. | Nov 2004 | A1 |
20060257016 | Shioi et al. | Nov 2006 | A1 |
Number | Date | Country |
---|---|---|
10164448 | Jun 1998 | JP |
Number | Date | Country | |
---|---|---|---|
20060227023 A1 | Oct 2006 | US |
Number | Date | Country | |
---|---|---|---|
60669927 | Apr 2005 | US | |
60676972 | May 2005 | US | |
60700320 | Jul 2005 | US |