Abstract:
A method and a corresponding system and apparatus for loading image data stored in a first memory into a second memory includes loading at least a first set of sections of the image data into the second memory. In order to achieve a reduced memory access and memory consumption during loading, the sections of the first set of sections of the image data are allocated to first original addresses in the first memory, wherein the sections of the first set of sections of the image data stored in the first memory are spaced from one another, and the sections of the first set of sections of the image data stored in the first memory are, in particular progressively, loaded into the second memory and stored at first end addresses in the second memory.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a 371 National Stage Application of PCT/EP2013/062835, filed Jun. 20, 2013. This application claims the benefit of U.S. Provisional Application No. 61/662,371, filed Jun. 21, 2012, which is incorporated by reference herein in its entirety. In addition, this application claims the benefit of European Application No. 12172663.2, filed Jun. 20, 2012, which is also incorporated by reference herein in its entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to a method, system and an apparatus for loading image data stored in a first memory into a second memory. 
         [0004]    2. Description of the Related Art 
         [0005]    Loading 2D or 3D image data into a memory of an image data display unit is a challenge in applications where a fast display of preview images is required, in particular in the field of volume rendering of image data which is quite memory intensive. As network bandwidth is often the bottleneck, performant algorithms which handle the memory load efficiently are required. 
       SUMMARY OF THE INVENTION 
       [0006]    Preferred embodiments of the invention provide a method, system and apparatus for loading image data stored in a first memory into a second memory requiring a reduced memory access and memory consumption during loading. 
         [0007]    The preferred embodiments are achieved by the method, system and apparatus described below. 
         [0008]    In a method according to a preferred embodiment of the invention at least a first set of sections of the image data is loaded into the second memory, wherein said sections of said first set of sections of the image data being allocated to first original addresses in the first memory, wherein said sections of said first set of sections of the image data stored in the first memory are spaced from one another, and said sections of said first set of sections of the image data stored in the first memory are progressively loaded into the second memory and stored at first end addresses in the second memory, wherein said first end addresses of said sections of said first set of sections stored in the second memory correspond to said first original addresses of said sections of said first set of sections stored in the first memory. 
         [0009]    The system according to a preferred embodiment of the invention comprises a first memory for storing image data, a second memory for storing image data and a control unit for controlling and/or effecting loading of at least a first set of sections of the image data into the second memory, wherein said sections of said first set of sections of the image data being allocated to first original addresses in the first memory, wherein said sections of said first set of sections of the image data stored in the first memory are spaced from one another, and said sections of said first set of sections of the image data stored in the first memory are progressively loaded into the second memory and stored at first end addresses in the second memory, wherein said first end addresses of said sections of said first set of sections stored in the second memory correspond to said first original addresses of said sections of said first set of sections stored in the first memory. 
         [0010]    The apparatus according to a preferred embodiment of the invention comprises a second memory for storing image data, an image data rendering unit for rendering image data stored in the second memory and a control unit for controlling and/or effecting loading of at least a first set of sections of image data stored in a first memory into the second memory, wherein said sections of said first set of sections of the image data being allocated to first original addresses in the first memory, wherein said sections of said first set of sections of the image data stored in the first memory are spaced from one another, and said sections of said first set of sections of the image data stored in the first memory are progressively loaded into the second memory and stored at first end addresses in the second memory, wherein said first end addresses of said sections of said first set of sections stored in the second memory correspond to said first original addresses of said sections of said first set of sections stored in the first memory. 
         [0011]    Preferred embodiments of the invention are based on an integrated progressive volume loading approach, wherein image data sections, in particular slice images, loaded by two or more progressive iteration steps are already written to—i.e. “integrated” in—the second memory address of the full resolution data volume. Although in each of the progressive iteration steps only a set of spaced sections is loaded and stored in the second memory, the loaded sections are already stored at addresses in the second memory which correspond to the addresses of the loaded sections in the first memory. According to the integrated progressive volume loading method two or more sets of sections of the original image data stored in the first memory are progressively, i.e. step by step, loaded into the second memory, wherein after a first set of sections has been loaded into the second memory, a second set of sections is loaded into the second memory and so on. During the progressive loading, each of the loaded sections is stored at an address in the second memory which corresponds to its end address at a time when the full data image volume has been loaded and stored in the second memory. 
         [0012]    By this, a temporary and time consuming memory allocation is no longer required for each progressive volume loading step because the full resolution memory is allocated only once and used during all progressive steps. Moreover, already loaded slices of earlier steps do no longer have to be loaded and copied again in the volume of the next progressive step. Last but not least, because the slices of each progressive step are already integrated in the full resolution volume in the second memory, the requirement of keeping the previous volume in the second memory until the next progressive step is loaded into the second memory is no longer to be regarded. In sum, memory access and memory consumption is reduced significantly. 
         [0013]    Preferred embodiments of the invention are particularly advantageous in the field of rendering medical image data which were obtained from a patient by a medical imaging modality, e.g. computed tomography (CT). 
         [0014]    Preferably, within the meaning of the present invention, the terms “progressively loaded” or “progressive loading” in connection with two or more sets of sections relate to a successive and/or consecutive loading of two or more, preferably complete, sets of sections stored in the first memory into the second memory, wherein, e.g., after a first set of sections has been completely loaded into the second memory, a second or further set of sections is loaded into the second memory and so on. 
         [0015]    Preferably, within the meaning of the present invention, the terms “progressively loaded” or “progressive loading” in connection with two or more sections of a set of sections relate to a successive and/or consecutive and/or sequential loading of individual sections of the set of sections stored in the first memory into the second memory, wherein, e.g., after a first section of the set of sections has been loaded into the second memory, a second or further section of the set of sections is loaded into the second memory and so on until the two or more sections of the set of sections have been loaded into the second memory. 
         [0016]    Within the meaning of the present invention the term “section of the image data” relates to a part of the image data. A section of the image data has preferably a lower dimension than the image data. E.g., in the case of three-dimensional image data a section of the image data is a two-dimensional slice, in the case of two-dimensional image data, a section of the image data is a one-dimensional line, and in the case of four-dimensional image data comprising time-dependent spatial image data, a section of the image data can be a three-dimensional volume of the image data. Alternatively, a section of the image data can also have the same dimension as the image data and constitute a part thereof. E.g., in the in the case of three-dimensional image data a section of the image data is a three-dimensional part thereof. 
         [0017]    Within the meaning of the present invention the term “set of sections of the image data” relates to two or more sections of the image data, said two or more sections being allocated to different addresses in the memory. 
         [0018]    Within the meaning of the invention, the term “correspond” concerning original addresses in the first memory and end addresses in the second memory is not limited to a correspondence of physical memory addresses in the first and second memory but also relates to a correspondence of logical memory addresses in the first and second memory. Therefore, the term “correspond” also relates to a virtual correspondence of first and second memory addresses. Accordingly, a respective feature of the invention is be understood as said first logical and/or physical end addresses of said sections of said first set of sections stored in the second memory correspond to said first logical and/or physical original addresses of said sections of said first set of sections stored in the first memory. 
         [0019]    Preferably, said first logical and/or physical end addresses of said sections of said first set of sections stored in the second memory are—apart from a possible address offset value—equal to said first logical and/or physical original addresses of said sections of said first set of sections stored in the first memory. For example, in the case that the first memory is part of a server and the second memory is part of a client, the first memory addresses are given by logical addresses which differ from respective physical memory addresses in the first memory, whereas the second memory addresses are given by logical addresses which correlate with respective physical memory addresses in the second memory. 
         [0020]    According to a preferred embodiment of the invention, said sections of said first set of sections of the image data stored in the second memory are spaced from one another. By this, a correspondence of memory addresses of the sections of the first set of sections in the first and second memory can be realized with high reliability. 
         [0021]    In the sense of the present invention the term “spaced from one another” relating to sections of a set of sections of the image data stored in a memory means that image data of each of the sections of a set of sections is stored in the memory at different addresses, wherein between said addresses no image data relating to the same set of sections is stored. Regarding the first memory, between addresses of the sections of a first set image data of at least another set of sections is stored. Regarding the second memory, between addresses of the loaded sections of the first set the second memory is temporarily empty until at least one further set of sections has been loaded into the second memory. 
         [0022]    In particular, within the meaning of the present application the term “spaced from one another” relating to sections of a set of sections of the image data means that image data of sections of a set of sections are allocated non-contiguously in the memory. 
         [0023]    Moreover, it is preferred that an end distance between said first end addresses of said sections of said first set of sections stored in the second memory corresponds, i.e. is equal, to an original distance between said first original addresses of said sections of said first set of sections stored in the first memory. In this way, the spacing between each of the sections of the set of sections in the first memory corresponds exactly to the spacing between respective sections of the set of sections stored in the second memory. 
         [0024]    It is also preferred that an end range of said sections of said first set of sections stored in the second memory corresponds, i.e. is equal, to an original range of said sections of said first set of sections stored in the first memory. In this way, the extent of the memory space relating to the sections of the set of sections in the first memory is identical with the extent of the memory space relating to respective sections of the set of sections stored in the second memory. 
         [0025]    By one or more of the above-mentioned preferred embodiments, a reduction of memory access and memory consumption during progressive loading is achieved in a very reliable manner. 
         [0026]    According to another preferred embodiment of the invention, at least one further set of sections of the image data stored in the first memory is loaded into the second memory, wherein said sections of said further set of sections of the image data being allocated to further original addresses in the first memory, wherein said sections of said further set of sections stored in the first memory are spaced from one another, and said sections of said further set of sections of the image data stored in said first memory are progressively loaded into the second memory and stored at further end addresses in the second memory, wherein said further end addresses of said sections of said further set of sections stored in the second memory correspond to said further original addresses of said sections of said further set of sections stored in the first memory. 
         [0027]    Preferably, said sections of said further set of sections stored in the second memory are spaced from one another. Moreover, it is preferred that said sections of said further set of sections of the image data stored in the first memory are loaded into the second memory after said sections of said first set of sections of the image data stored in the first memory have been stored in the second memory. 
         [0028]    According to a further preferred embodiment, said first original addresses of said sections of said first set of sections of the image data stored in the first memory alternate with said further original addresses of said sections of said further set of sections of the image data stored in the first memory. 
         [0029]    According to another preferred embodiment, said first end addresses of said sections of said first set of sections of the image data stored in the second memory alternate with said further end addresses of said sections of said further set of sections of the image data stored in the second memory. 
         [0030]    The term “alternate” in the meaning of the invention relates to a sequence of the sections starting with a first section of the first set of sections, followed by a first section of a further set of sections, followed by a second section of the first set of sections, followed by a second section of the further set of sections, followed by a third section of the first set of sections and so on. 
         [0031]    By the above-mentioned preferred embodiments according to which a first and at least one further set of sections of the image data are progressively loaded, the memory access and memory consumption during loading is reduced considerably. Moreover, a fast and reliable display of preview images based on the loaded image data is enabled. 
         [0032]    According to another preferred embodiment, said image data comprise n-dimensional image data and each of said sections of the image data loaded from the first memory into the second memory comprises (n−1)-dimensional image data (x-y), wherein n is equal to 2, 3 or 4. E.g., in the case of 3-dimensional image data said sections to be loaded into the second memory are constituted by 2-dimensional image data, so-called slice images. In this way, by progressively loading the sections of the image data into the second memory an iterative refinement of the loaded image data along a dimension of the original data is achieved so that, in addition to a significantly reduced memory access and memory consumption during loading, diagnostically conclusive preview images based on the loaded image data can be achieved. 
         [0033]    Preferably, each of said sections of the image data loaded from the first memory into the second memory is virtually stretched in a dimension, e.g. a z direction, which is perpendicular to the n−1 dimensions, e.g. an x-y plane, of said sections of the image data loaded from the first memory into the second memory. E.g., 3-dimensional image data is rearranged in y direction so that the already loaded slices form one continuous block. This rearranging is performed virtually, just by modifying the volume array dimension and stretching the slices in z direction, but the actual volume data in second memory stays the same 1-dimensional array during each progressive refinement step. By this, rendering algorithms which usually expect a full loaded volume can still be applied to the partially loaded volume, wherein the algorithms only need information about the increased slice thickness (z resolution). Therefore, apart from reduced memory access and consumption during loading, the generation of diagnostically conclusive preview images, in particular 3-dimensional images, is further improved. 
         [0034]    Further advantages, features and examples of the present invention will be apparent from the following description of following figures: 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0035]      FIG. 1  shows an example of a system and an apparatus according to a preferred embodiment of the invention. 
           [0036]      FIG. 2  shows a geometric representation of a first integrated progressive volume loading step. 
           [0037]      FIG. 3  shows a geometric representation of a second integrated progressive volume loading step. 
           [0038]      FIG. 4  shows a geometric representation of a third integrated progressive volume loading step. 
           [0039]      FIG. 5  shows a diagrammatic representation of a memory space assignment of the first memory (a) and the second memory after a first (b), second (c) and third (d) progressive loading step. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0040]      FIG. 1  shows an example of a system and an apparatus  20  according to a preferred embodiment of the invention. A medical image data set  21  comprising a plurality of images, in particular slice images, of a human or animal body is acquired by a medical imaging apparatus  22 , in particular a computer tomography (CT) apparatus, and is stored in a first memory  23 . Upon request of a control unit  24 , e.g. a computer, the image data set  21  or a part thereof is loaded from the first memory  23  into a second memory  25 . The control unit  24  is configured to control and/or to execute an integrated progressive volume loading of the image data set  21  from the first memory  23  into the second memory  25  according to the invention. 
         [0041]    Preferably, the second memory  25  is a part of the control unit  24 . E.g., in the case that the control unit  24  is constituted by a workstation or a personal computer (PC), the second memory  25  can be constituted by a random access memory (RAM) or a hard disk component of the workstation or PC, respectively. Preferably, the control unit  24  is configured to generate a volume reconstruction  29  and/or slice views  28  of the image data set  21  on a display  27 , e.g. a TFT screen. Preferably, in the control unit  24  a volume rendering algorithm for rendering 3-dimensional image data is implemented. 
         [0042]    The image data set  21 , in particular the plurality of slice images, or parts thereof can be directly fed to the control unit  24  and/or the second memory  25 . Alternatively or additionally, the image data set  21  can be transferred via a data network  26  to which both the first memory  23  and the control unit  24  and/or the second memory  25  are, at least temporarily, connected. For example, the data network  26  can be a local area network (LAN) or wireless LAN (WLAN) in a hospital environment or the internet. 
         [0043]    In the following, the integrated progressive volume loading of the image data set  21  from the first memory  23  into the second memory  25  is described in detail by reference to  FIGS. 2 to 5 . 
         [0044]      FIG. 2  shows a geometric illustration of a first integrated progressive volume loading step. In the present example, an original volume data set  30  comprising in total 16 CT slice images of a patient is stored in the first memory  23  (see  FIG. 1 ). Each of the slice images is schematically represented by a rectangular layer in the x-y plane and comprises a plurality of image data, in particular x-y position-dependent intensity values I(x, y, z), wherein z represents the position of the respective slice image, i.e. the layer in the x-y plane, in the z direction. Although in the present example only 16 slice images are shown for reasons of clarity, the total sum of slice images in real volume image data sets can be significantly higher than 16, but also lower than 16. 
         [0045]    In the first integrated progressive volume loading step, image data of a first set of slice images denoted with S1, S5, S9 and S13 are progressively transferred from the first memory  23  to the second memory  25 , wherein a 1 st  (S1), 5 th  (S5), 9 th  (S9) and 13 th  (S13) of the slice images is successively loaded into the second memory  25  so that in the second memory  25  an integrated progressive volume data set  31  is obtained. In the present example, a down sampling factor of 4 is applied when determining the slice images S1, S5, S9 and S13 to be transferred in the first loading step, so that only one out of four slice images is selected and transferred. 
         [0046]    The slice images S1, S5, S9 and S13 of the first set of slice images in the original volume data set  30  are spaced from one another, i.e. there is at least one further slice image, e.g. S2, S3 and S4, between two, e.g. S1 and S5, of the slice images S1, S5, S9 and S13 of the first set of slice images. The image data of the slice images S1, S5, S9 and S13 of the first set of slice images are stored in the second memory  25  at memory addresses which correspond to memory addresses of the slice images S1, S5, S9 and S13 of the first set of slice images in the first memory  23 . This is illustrated in the following by reference to  FIGS. 5   a  and  5   b.    
         [0047]      FIG. 5   a  shows a diagrammatic representation of a memory space assignment of the first memory  23 . In the present diagram, a segment of the first memory  23 , e.g. a linear data array, is represented by an arrow, wherein a position on the arrow represents a respective memory address in the first memory  23 . Accordingly,  FIG. 5   b  shows a diagrammatic representation of a memory space assignment of the second memory  25 , wherein a segment of the second memory  25 , e.g. a linear data array, is represented by an arrow, a position on which representing a respective memory address in the second memory  25 . 
         [0048]    Image data of the slice images S1 to S16 are stored at different addresses 1 to 16 in the first memory  23 . In the first integrated progressive volume loading step, not all of the slice images S1 to S16 are progressively loaded into the second memory  25 , but only image data of a pre-defined first set of slice images S1, S5, S9 and S13. Moreover, the transferred slice images S1, S5, S9 and S13 of the first set are stored in the second memory  25  at addresses 1′, 5′, 9′ and 13′ which correspond to respective addresses 1, 5, 9, 13 of the slice images S1, S5, S9 and S13 of the first set stored in the first memory  23 . In other words, the image data of slice images S1, S5, S9 and S13 of the first set are stored at memory addresses 1′,  5 ′,  9 ′ and 13′ in the second memory  25  which are identical to addresses the slice images S1, S5, S9 and S13 would have, if the full original volume data set  30  was stored in the second memory  25 . 
         [0049]    Accordingly, as illustrated in  FIGS. 5   a  and  5   b , an original distance d between the addresses 1, 5, 9, 13 of the slice images S1, S5, S9 and S13 of the first set stored in the first memory  23  is preferably identical with an end distance d′ between the addresses 1′, 5′, 9′, 13′ of the slice images S1, S5, S9 and S13 of the first set stored in the second memory  25 . Further, an original range w of the slice images S1, S5, S9 and S13 of the first set stored in the first memory  23  is preferably identical with an end range w′ of the slice images S1, S5, S9 and S13 of the first set stored in the second memory  25 . Moreover, like in the first memory  23 , the slice images S1, S5, S9 and S13 of the first set of slice images stored in the second memory  25  are spaced from one another, wherein there is free memory space for storing image data of at least one further slice image, e.g. S2, S3 and S4, between two, e.g. S1 and S5, of the slice images S1, S5, S9 and S13 of the first set of slice images stored in the second memory  25 . 
         [0050]    Preferably, in addition to the selective loading of a first set of slice images S1, S5, S9 and S13 into the second memory  25  set forth above, the integrated progressive volume data set  31  in the second memory  25  is rearranged in y direction so that the already loaded slice images S1, S5, S9 and S13 form one continuous block. This is illustrated in the right part of  FIG. 2  from which it is apparent that the thickness of the loaded slice images S1, S5, S9 and S13 (shaded) in z direction is stretched by a factor of 4 which corresponds to the down sampling factor of 4 mentioned above. Non-shaded layers adjacent to the shaded layers relating to the loaded slice images S1, S5, S9 and S13 represent (empty) placeholders for accordingly stretched non-loaded slice images. 
         [0051]    Preferably, this rearranging is performed virtually, i.e. just by modifying the volume array dimension and stretching the loaded slice images S1, S5, S9 and S13 in z direction, whereas the actual volume data set  31  in the second memory  25  stays the same one-dimensional array (see  FIG. 5   b ) during each progressive refinement step. The advantage of virtually rearranging the volume data set  31  and stretching the slice images S1, S5, S9 and S13 in z direction is that rendering algorithms which expect a fully loaded volume data set can still be applied. Rendering algorithms only have to be provided with information regarding the virtually increased slice thickness or correspondingly lowered z resolution, respectively. Based on this information, the rendering algorithm, which is preferably executed by the control unit  24  (see  FIG. 1 ) of a computer, will treat the loaded image data of the first set of slice images S1, S5, S9 and S13 like a set of slice images having a resolution in z direction lowered by a factor 4. 
         [0052]    Preferably, the rearranged volume can be rendered in the following ways: a) the volume rendering algorithm considers a slice image offset which corresponds to the sub sampling factor, i.e. the down sampling factor, and/or b) a clipping box is applied on the volume rendering algorithm, wherein only the already loaded slices are inside the clipping box. 
         [0053]    Preferably, like in the first progressive loading step described in detail above, image data of further slice images are loaded from the first memory  23  into the second memory  25  in a second and a third progressive loading step which is illustrated by reference to  FIGS. 3 ,  4  and  5   c  and  5   d  in the following. Unless otherwise stated, the above elucidations relating to the first progressive loading step apply accordingly. 
         [0054]      FIG. 3  shows a geometric illustration of a second integrated progressive volume loading step and in  FIG. 5   c  a diagrammatic representation of a memory space assignment of the second memory  25  after the second integrated progressive volume loading step is shown. As apparent from these figures, in the second loading step image data of a second set of slice images S3, S7, S11 and S15 are progressively loaded from the first memory  23  into the second memory  25 . Like in the first loading step, the original memory addresses 3, 7, 11 and 15 of the slice images S3, S7, S11 and S15 of the second set in the first memory  23  correspond to the end memory addresses 3′, 7′, 11′ and 15′ of the slice images S3, S7, S11 of the second set loaded into the second memory  25 . As a result of the second loading step following the first loading step, image data of the first and second set of slice images, i.e. slice images S1, S3, S5, S7, S9, S11, S13 and S15, are stored in the second memory  25 . Accordingly, the down sampling factor after the first and second loading step corresponds to 2, i.e. one out of two slice images have been loaded into the second memory  25 . 
         [0055]    Like in the example given in the first loading step, the integrated progressive volume data set  31  in the second memory  25  is rearranged in y direction during or after the second loading step so that the already loaded slice images S1, S3, S5, S7, S9, S11, S13 and S15 form a continuous block (see right part of  FIG. 3 ), wherein the thickness of the loaded slice images S1, S3, S5, S7, S9, S11, S13 and S15 (shaded) in z direction is stretched by a factor of 2 which corresponds to the down sampling factor of 2. Non-shaded layers adjacent to the shaded layers relating to the loaded slice images S1, S3, S5, S7, S9, S11, S13 and S15 represent (empty) placeholders for accordingly stretched non-loaded slice images. This rearranging is also performed virtually by modifying the volume array dimension and stretching the loaded slice images S1, S3, S5, S7, S9, S11, S13 and S15 in z direction, whereas the actual volume data set  31  in the second memory  25  stays the same one-dimensional array (see  FIG. 5   c ) during each progressive refinement step. 
         [0056]      FIG. 4  shows a geometric illustration of a third integrated progressive volume loading step and in  FIG. 5   d  a diagrammatic representation of a memory space assignment of the second memory  25  after the third integrated progressive volume loading step is shown. In the third loading step image data of a third set of slice images S2, S4, S6, S8, S10, S12, S14 and S16 are progressively loaded from the first memory  23  into the second memory  25 . Like in the first and second loading step, the original memory addresses 2, 4, 6, 8, 10, 12, 14 and 16 of the slice images S2, S4, S6, S8, S10, S12, S14 and S16 of the third set in the first memory  23  correspond to the end memory addresses 2′, 4′, 6′, 8′, 10′, 12′, 14′ and 16′ of the slice images S2, S4, S6, S8, S10, S12, S14 and S16 of the third set loaded into the second memory  25 . As a result of the third loading step following the first and second loading steps, image data of the first, second and third set of slice images, i.e. all of the slice images S1 to S16 of the full original volume data set  30 , are stored in the second memory  25 . Accordingly, the down sampling factor after the first, second and third loading step corresponds to 1, i.e. each of the slice images S1 to S16 of the original volume data set  30  has been loaded into the second memory  25 . Accordingly, the rendering algorithm, which is preferably implemented in the control unit  24 , is able to retrieve the fully loaded volume data set  31  in the second memory  25  so that a three-dimensional representation  29  (see  FIG. 1 ) of the original volume data set  30  can be achieved in full resolution both in x-y plane and z direction. Accordingly, after the third loading step no virtual rearrangement of the and stretching of the integrated progressive volume data set  31  in the second memory  25  is necessary. 
         [0057]    The method of the integrated progressive volume loading illustrated above by three progressive loading steps can be expressed in general by pseudo code as follows: 
         [0000]    
       
         
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 for each progressiveSteps 
               
             
          
           
               
                   
                 for i from 0 to N/M 
               
             
          
           
               
                   
                 index = i * M 
               
               
                   
                 volume.setSlice(index, loadSlice(index)) 
               
             
          
           
               
                   
                 end 
               
               
                   
                 volume.ySize = originalVolume.ySize * M 
               
               
                   
                 volume.zSize = originalVolume.zSize / M 
               
               
                   
                 volume.sliceThickness = originalVolume.sliceThickness * 
               
               
                   
                 M 
               
             
          
           
               
                   
                 end 
               
               
                   
                   
               
             
          
         
       
     
         [0058]    Wherein M corresponds to the sub sampling or down sampling factor and N corresponds to the total number of slices in the volume data set. 
         [0059]    In the example of a first progressive loading step given above, each of the selected slice images S1, S5, S9 and S13 of the first set of slice images corresponds to a respective first slice image of four groups of slice images, wherein a first group comprises slice images S1 to S4, a second group comprises slice images S5 to S8, a third group comprises slice images S9 to S12 and a fourth group comprises slice images S13 to S16. It is, however, also possible to select other slice images for the first set of slice images. For example, instead of selecting a respective first slice image S1, S5, S9 and S13 of the four groups of slice images, it is possible to select a respective second slice image S2, S6, S10 and S14 of the four groups of slice images. It is also possible to select slice images of different order number in each of the four groups of slice images, e.g. S3, S6, S9 and S16. 
         [0060]    Accordingly, the loaded slice images in the second and third progressive loading step can be different from the selected slice images of the second and third set of slice images given in the examples above. 
         [0061]    In this case, the volume rendering algorithm is, preferably at each loading step, provided with information concerning the slice images, e.g. S3, S6, S9 and S16, which are to be or have already been loaded into the second memory. In this way, the volume rendering algorithm can treat the loaded image data of the first set of slice images, e.g. S3, S6, S9 and S16, like a set of slice images having a resolution in z direction lowered by a factor 4. Same applies for subsequently loaded further sets of slice images. 
         [0062]    While preferred embodiments of the present invention have been described above, it is to be understood that variations and modifications will be apparent to those skilled in the art without departing from the scope and spirit of the present invention. The scope of the present invention, therefore, is to be determined solely by the following claims.