This application claims priority from Korean Patent Application No. 10-2011-0066586 filed Jul. 5, 2011, the contents of which is incorporated herein in its entirety by reference.
1. Field
Exemplary embodiments relate to an image decoding device and a decoding method thereof.
2. Description of the Related Art
There has been an explosive increase in a need for digital image products.
The digital image products may include a digital video disk (DVD), high definition television (HDTV), satellite TV, HD set-top box, Internet video streaming, digital camera and HD video camcorder, video juke box, video communications, security and observation, business automation, etc. Such digital video products may necessitate video compression. The compression-decompression (called codec) algorithm may enable a digital video to be stored and transferred. In general, the video encoding may include MPEG-2, MPEG-4, H.264/AVC, AVS, On2, Real Video, Nancy, Windows media video (MWV), and the like.
A problem associated with digital image processing may be that a large quantity of data is needed to store or transfer original images or uncompressed images.
Exemplary embodiments provide an image decoding device and a decoding method thereof.
According to an aspect of an exemplary embodiment, there is provided an image signal decoding device which includes a memory including a first region storing a buffer flag, a second region storing a buffer list, and a third region formed of a plurality of buffers each storing a decoded image signal; and a codec configured to decode an image signal in response to a decoding request from a host and to store the decoded image signal in one of the plurality of buffers. The buffer flag indicates a usable or not-available state of each of the plurality of buffers, and the buffer list indicates a used or unused state of each of the plurality of buffers. The codec stores the decoded image signal in a buffer which is set to the unused state in the buffer list and to a usable state in the buffer flag.
The codec may select a buffer set to an unused state in the buffer list in response to the decoding request and stores the decoded image signal in the selected buffer when the selected buffer is set to a usable state in the buffer flag.
The codec may select a new buffer set to an unused state in the buffer list when the selected buffer is set to a not-available state in the buffer flag and may store the decoded image signal in the new buffer when the new buffer is set to a usable state in the buffer flag.
The memory may further include a fourth region configured to store a display buffer list indicating a display order of buffers, each storing the decoded image signal, of the plurality of buffers; and a fifth region configured to store a decoded picture buffer (DPB) list indicating a buffer, storing an image signal of a reference frame, of the plurality of buffers each storing the decoded image signal.
The codec may store the decoded image signal in the selected buffer and register information of the selected buffer at the DPB list when the decoded image signal is an image signal of the reference frame.
A display order of buffers storing the decoded image signal stored in the display buffer list may be deleted in a first-in first-out manner, and the codec may set a buffer corresponding to the deleted display order in the buffer list to an unused state.
The buffer flag stored in the first region of the memory may be set by the host.
According to an aspect of another exemplary embodiment, there is provided an image signal decoding method of a decoding device which includes receiving a decoding request from a host; selecting a buffer set to an unused state in a buffer list in response to the decoding request; judging whether the selected buffer is set to a usable state in a buffer flag; decoding an image signal when the selected buffer is set to a usable state in the buffer flag; and storing the decoded image signal in the selected buffer.
The image signal decoding method may further include selecting a new buffer set to an unused state in the buffer list when the selected buffer is set to a not-available state in a buffer flag; and storing the decoded image signal in the new buffer when the new buffer is set to a usable state in the buffer flag.
The buffer flag and buffer list may be stored in a first and a second region of the memory, respectively, and a buffer may be a third region of the memory.
The memory may further include a fourth region configured to store a display buffer list indicating a display order of buffers, each storing the decoded image signal, of the plurality of buffers; and a fifth region configured to store a decoded picture buffer (DPB) list indicating a buffer, storing an image signal of a reference frame, of the plurality of buffers each storing the decoded image signal.
The image signal decoding method may further include registering information of the selected buffer at the DPB list when the decoded image signal is an image signal of the reference frame after storing of the decoded image signal in the selected buffer.
The image signal decoding method may further include providing a host with information of a buffer storing the decoded image signal according to a display order of the buffers stored in the buffer list.
The image signal decoding method may further include after information of a buffer storing the decoded image signal is provided to the host, setting the buffer provided to the host at the buffer list as an unused state.
According to an aspect of another exemplary embodiment, there is provided an image signal decoding system which includes a memory including a first region storing a buffer flag, a second region storing a buffer list, and a third region formed of a plurality of buffers each storing a decoded image signal; a codec configured to decode an image signal in response to a decoding request from a host and to store the decoded image signal in one of the plurality of buffers; and a display device configured to display the decoded image signal.
The codec may store the decoded image signal in a buffer which is set to the unused state in the buffer list and to a usable state in the buffer flag.
The codec may select a buffer set to an unused state in the buffer list in response to the decoding request and may store the decoded image signal in the selected buffer when the selected buffer is set to a usable state in the buffer flag.
The codec may select a new buffer set to an unused state in the buffer list when the selected buffer is set to a not-available state in the buffer flag and may store the decoded image signal in the new buffer when the new buffer is set to a usable state in the buffer flag.
The memory may further include: a fourth region configured to store a display buffer list indicating a display order of buffers, each storing the decoded image signal, of the plurality of buffers; and a fifth region configured to store a decoded picture buffer (DPB) list indicating a buffer, storing an image signal of a reference frame, of the plurality of buffers each storing the decoded image signal.
The codec may continuously decode a plurality of frames in response to the decoding request from the host, and the display device may sequentially display decoded image signals according to a frame order.
Illustrative, non-limiting exemplary embodiments will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which:
The inventive concept is described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments of the inventive concept are shown. This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art. In the drawings, the size and relative sizes of layers and regions may be exaggerated for clarity. Like numbers refer to like elements throughout.
It will be understood that, although the terms first, second, third etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of the inventive concept.
Spatially relative terms, such as “beneath”, “below”, “lower”, “under”, “above”, “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below” or “beneath” or “under” other elements or features would then be oriented “above” the other elements or features. Thus, the exemplary terms “below” and “under” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. In addition, it will also be understood that when a layer is referred to as being “between” two layers, it can be the only layer between the two layers, or one or more intervening layers may also be present.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concept. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will be understood that when an element or layer is referred to as being “on”, “connected to”, “coupled to”, or “adjacent to” another element or layer, it can be directly on, connected, coupled, or adjacent to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to”, “directly coupled to”, or “immediately adjacent to” another element or layer, there are no intervening elements or layers present.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this inventive concept belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Referring to
In an exemplary embodiment, the codec 122 and the memory 124 in the image signal decoding device 120 may be separate integrated circuits. In another exemplary embodiment, the codec 122 and the memory 124 may be integrated within a single chip.
The image signal decoding device 120 may be applied to devices, for example but not limited to DVD, HDTV, satellite TV, HD set-top box, Internet video streaming, digital camera and HD video camcorder, video juke box, HD image telephone, digital cinema, digital video broadcasting, IP set-top box, and the like. Further, the inventive concept may be applied to an image signal decoding device complying with various industrial standards such as MPEG2, MPEG4, H.264/AVC, AVS, etc.
Referring to
Referring to
If receiving information indicating decoding completion from the codec 122, the host 110 may control the display device 130 to read and display a decoded image signal stored in the buffer pool 230 of the memory 124. In a case where the codec 122 continuously decodes a plurality of frames in response to a request of the host 110, the display device 130 sequentially displays decoded image signals according to a frame order. If an image signal of a new frame is overwritten before the display device 130 reads an image signal stored in a buffer within the buffer pool 230, there may arise a tearing error that a screen image is broken.
In an exemplary embodiment, the host 110 may store information indicating whether the codec 122 is usable, in the buffer flag 210, according to whether a decoded image signal stored in buffers of the memory 124 is read by the display device 130. The codec 122 may store a decoded image signal in one of buffers in the buffer pool 230 represented as being in an unused state via the buffer list 220 and as being in a usable state via the buffer flag 210. Accordingly, it is possible to prevent the tearing error.
In
Referring to
In operation S2, the host 110 may request decoding on an image signal from the codec 122. In an exemplary embodiment, the host 110 may request frame-unit decoding from the codec 122. In operation S3, the codec 122 may select one of the buffers B0 to B3 of the buffer list 220 in response to a decoding request of the host 110. The codec 122 may select a buffer having an unused state UN of the buffers B0 to B3 in the buffer list 220. The buffer list 220 may store a usable state U or unused state UN of each of the buffers B0 to B3 of the buffer pool 230.
In an exemplary embodiment, it is assumed that the buffers B0 and B3 are set to an unused state UN and the codec 122 selects the buffer B3. In operation S4, the codec 122 may check a flag bit corresponding to the buffer B3 of the buffer flag 210. A flag bit corresponding to the buffer B3 of the buffer flag 210 may indicate a not-available state N. This means that a decoded image signal stored in the buffer B3 of the buffer pool 230 is not yet read by the display device 140.
The codec 122 may select the buffer B0 set to the unused state UN of the buffers B0 and B3 in the buffer list 220. Since a flag bit corresponding to the buffer B0 of the buffer flag 210 indicates a usable state Y, the codec 122 may decode an image signal requested from the host 110. At this time, the codec 122 may decode an image signal stored in a region of the memory 124 in
If an image signal stored in the buffer B0 is an image signal of a reference frame, in operation S6, the codec 122 may register the buffer B0 at the DPB list 250. In operation S7, the buffer B0 registered at the DPB list 250 may be registered at the display buffer list 240 at a display order. When a buffer registered at the display buffer list 240 exists, the codec 122 may inform the host 110 that a buffer registered at the display buffer list 240 exists.
Afterwards, the host 110 may control the display device 140 to read out an image signal from the buffer B0 in the buffer pool 230. Until the display device 140 reads out an image signal from the buffer B0 within the buffer pool 230, the host 110 may set a flag bit corresponding to the buffer B0 to a not-available state N.
The display device 140 may read image signals stored in the buffers B0 to B3 within the buffer pool 230 in response to the control of the host 110. In the event that the display device 140 does not process an image signal stored in the buffer B3 within the buffer pool 230, a flag bit corresponding to the buffer B3 may indicate a not-available state N.
After informing the host 110 of information of the buffer B0 registered at the display buffer list 240, the codec 122 may delete the buffer B0 from the display buffer list 240 and may configure the buffer list 220 with information indicating that the buffer B0 is at an unused state UN. Afterwards, a new decoding image signal may be stored in the buffer B0 of the buffer pool 230.
Referring to
As illustrated in
After informing the host 110 of information associated with a buffer storing the decoded image signal of the I-frame I1 registered at the display buffer list 240, the codec 122 may delete the buffer, which stores the I-frame I1, from the display buffer list 240. If the I-frame I1 is deleted, the codec 122 cannot decode a next P-frame P2. A reference frame to be referred at a next frame may be registered at the DPB list 250. For example, at t0, the I-frame I1 may be decoded, and a buffer storing an image signal of the I-frame I1 may be registered at the DPB list 250. At t1, the P-frame P2 may be decoded based upon the I-frame I1, and a buffer storing an image signal of the P-frame P2 may be registered at the DPB list 250. At this time, information associated with a buffer storing an image signal of the I-frame I1 may be sent to the display buffer list 240 from the DPB list 250. At t2, the P-frame P5 may be decoded, and a buffer storing an image signal of the P-frame P5 may be registered at the DPB list 250. Further, information associated with a buffer storing an image signal of the P-frame P2 may be sent to the display buffer list 240 from the DPB list 250. At t3, the B-frame B3 may be decoded, and a buffer storing an image signal of the B-frame B3 may be registered at the display buffer list 240. At t4, the B-frame B4 may be decoded, and a buffer storing an image signal of the B-frame B4 may be registered at the display buffer list 240. Afterwards, at t5, a buffer storing an image signal of the P-frame P5 registered at the DPB list 250 may be registered at the display buffer list 240. Accordingly, the display device 140 may display the B-frame B3, the B-frame B4, and the P-frame P5 in this order.
Referring to
If a buffer set to the unused state UN exists in the buffer list 220 (S514—Yes), the codec 122 may select the buffer set to the unused state UN. If the selected buffer is not set to a usable state Y within a buffer flag 210 (S516—No), the codec 122 may select a new buffer set to the unused state UN of buffers of the buffer list 220. With the above description, there may be selected a buffer, which is set to an unused state Y within the buffer list 220 and to a usable state Y within the buffer flag 210, of buffers within the buffer pool 230 (S516—Yes). The codec 122 may decode an image signal within a frame requested from the host 110 and may store the decoded image signal in the selected buffer (S518). If a decoded frame is a reference frame (S520—Yes), the codec 122 may perform a reference picture marking process (S522).
Referring to
The reference state value REF may be set to ‘1’ when a frame stored in a corresponding buffer is referred by another frame and to ‘0’ when to refer a frame is ended. The output state value OUT may be set to ‘1’ when a buffer stored in the DPB list 250 is output to a display buffer list 240 and to ‘0’ when it is not yet output to the display buffer list 240.
For example, in the event that a buffer B0 in the buffer pool 230 stores an image signal of an I-frame I1 and a buffer B1 thereof stores an image signal of a P-frame P2, the buffer B0 in the DPB list 250 must be maintained until referring by a next P-frame P2 is ended, without deleting. As described above, the DPB list 250 may be used to maintain an image signal of a reference frame until referring by another frame is ended. However, since a size of the DPB list 250 is limited, a buffer having a reference state value REF being ‘0’ and an output state value OUT being ‘1’ may be removed from the DPB list 250. In a case where a buffer removed from the DPB list 250 exists, the removed buffer may be set to an unused state UN.
Referring again to
If the DPB list 250 is not full (S524—No), the codec 122 may register a buffer, in which an image signal of a decoded reference frame is stored, at the DPB list 250, without the bumping process (S528).
The codec 122 may register a buffer, in which an image signal of a decoded frame is stored, at the display buffer list 240 (S542) when a decoded frame is not a reference frame (S520—No) and is displayed prior to a frame of the DPB list 250 (S540—Yes). This may be made in operations S520 and S540.
If a buffer registered at the display buffer list 240 exists (S530—Yes), the codec 122 may send buffer information to a host 110 and may delete a buffer registered at the display buffer list 240 (S534). If a buffer deleted from the display buffer list 240 is not a buffer storing an image signal of a reference frame (S536—No), the codec 122 may amend a buffer list 220 so as to be set to an unused state UN (S538).
The host 110 may set a flag bit, which corresponds to buffer information provided from the codec 122, of flag bits within the buffer flag 210 into a not-available state N. Afterwards, if a display device 140 reads an image signal stored in a corresponding buffer, a flag bit may be set to a usable stage Y.
With the above-described decoding method, although a buffer is set to an unused state UN at the buffer list 220, it is possible to prevent a new image signal from being overwritten at the buffer which is not read by the display device 140.
A decoding system 700 in
A buffer flag 810 may include flag bits indicating usable and not-available states Y and N of the buffers B0 to B3 as well as the extended buffers B4 to Bn of the buffer pool 830. Likewise, a buffer list 820 may include used and unused states U and UN of the buffers B0 to B3 as well as the extended buffers B4 to Bn of the buffer pool 830.
It is possible to minimize an error caused at a decoding operation by further providing the extended buffers B4 to Bn in the buffer pool 830. For example, the buffer pool 830 can be filled when an image signal decoded by a codec 722 is stored and then a display device 740 does not read the stored image signal. Alternatively, although an image signal of a reference frame is read by the display device 740, it must remain at the buffer pool 830. In the event that a series of image streams include many reference frames, the buffer pool 830 can be filled. It is possible to minimize an error caused at a decoding operation by increasing the number of buffers included in the buffer pool 830. If the buffer pool 830 includes the extended buffers B4 to Bn, the buffer flag 810 and the buffer list 820 can store usable and not-available states Y and N and used and unused states U and UN of the extended buffers B4 to Bn.
Accordingly, it is possible to manage buffers used to store and transfer images effectively.
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other exemplary embodiments, which fall within the true spirit and scope. Thus, to the maximum extent allowed by law, the scope is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Number | Date | Country | Kind |
---|---|---|---|
10-2011-0066586 | Jul 2011 | KR | national |