НАРАЩИВАЕМАЯ БАЗОВАЯ СЕТЬ ОБРАБОТКИ ОДИНОЧНЫХ СОБЫТИЙ В ПОЗИТРОННОМ ЭМИССИОННОМ ТОМОГРАФЕ
UPGRADABLE BACKBONE NETWORK FOR PROCESSING SINGLE EVENTS IN POSITRON EMISSION TOMOGRAPHY

Настоящее изобретение относится к обработке данных. Настоящее изобретение применимо, в частности, к временной сортировке данных с временными метками в ходе медицинской визуализации. В частности, настоящее изобретение сортирует по времени события, регистрируемые медицинскими визуализирующими системами, например, позитронным эмиссионным томографическим (PET) сканером, для облегчения регистрации совпадающих одиночных событий.
Традиционный PET-сканер содержит множество модулей или головок детекторов излучения. Модули расположены для облегчения позиционирования объекта исследования так, чтобы модули окружали объект исследования. Радиоактивный медицинский препарат вводится в объект исследования и/или принимается им внутрь. Радиоактивный медицинский препарат генерирует в объекте исследования акты радиоактивного распада, при которых испускаются позитроны. Позитроны пролетают относительно короткое расстояние до взаимодействия с электроном в ходе события электрон-позитронной аннигиляции, которая порождает два противоположно разлетающихся гамма-кванта. Два противоположно разлетающихся гамма-кванта детектируются двумя разными модулями детекторов излучения как два, по существу, совпадающих события регистрации излучения, которые определяют линию срабатывания (LOR) между ними.
Каждый модуль детектора излучения содержит электрическую схему, которая определяет пространственные координаты, в которых приняты события, и энергию каждого события. Каждый модуль детектора излучения часто содержит, по меньшей мере, один сцинтиллятор, который формирует вспышку или сцинтилляцию света в ответ на регистрацию каждого гамма-кванта. В некоторых PET-сканерах матрица фотоэлектронных умножителей (ФЭУ), оптически связанных со сцинтилляторами, преобразует вспышки света в соответствующие электрические сигналы. В других PET-сканерах применяют матрицу фотодиодов для формирования аналоговых электрических токов, пропорциональных интенсивности вспышек света.
В дополнение к пространственной координате и сигналам энергии каждое принятое событие вынуждает детекторный модуль выдать запускающий сигнал. Запускающие сигналы от всех детекторных модулей передаются в общий детектор совпадений и принимаются в нем. Общий детектор совпадений определяет, находятся события излучения в пределах временного окна совпадения между ними. Если два и только два события излучения находятся в окне совпадения, они считаются совпадающими событиями, происходящими от одного события электронно-позитронной аннигиляции. Сигналы, представляющие совпадающие события, сохраняются и применяются для реконструкции изображений. События излучения, которые не отражают совпадающие события, отбрасываются.
Типичный крупногабаритный PET-сканер может содержать около 20-30 модулей детекторов излучения, расположенных с возможностью окружения объекта исследования. Тенденция развития рынка состоит в уменьшении размера каждой ячейки детектора и увеличении числа модулей детекторов излучения. Когда увеличивается число модулей детекторов излучения, увеличивается число сигналов, передаваемых в детектор совпадения в любой данный момент времени. В результате повышается сложность логических схем детектора совпадений (например, число выходов и соответствующих проводов), что делает традиционные методы непривлекательными и даже практически нецелесообразными. В свете вышеупомянутых недостатков существует потребность в усовершенствованном методе, который облегчает устранение данных затруднений.
В соответствии с одним аспектом визуализирующая система, имеющая наращиваемую архитектуру процессора событий, содержит множество детекторных модулей, расположенных вокруг соответствующей области визуализации, для регистрации событий излучения, испускаемого из объекта исследования, расположенного в области визуализации; множество групп процессорных элементов, при этом каждая группа содержит процессорные элементы, по меньшей мере, одного из множества модулей детекторов излучения, причем каждый процессорный элемент снабжает временной меткой соответствующее зарегистрированное событие излучения и вводит событие с временной меткой в хронологически упорядоченную позицию в потоке данных о события; и схему обнаружения совпадения, которая получает хронологически упорядоченный поток событий и обнаруживает в нем совпадающие пары событий для использования при реконструкции, по меньшей мере, одного соответствующего изображения объекта.
Одно преимущество заключается в обработке событий излучения, зарегистрированных сканером визуализации с большим числом детекторных модулей.
Другое преимущество заключается в усовершенствованном потоке данных и повышенной эффективности обработки.
Другое преимущество заключается в упрощенной передаче данных.
Дополнительные преимущества будут очевидны специалистам в данной области техники после прочтения и изучения подробного описания предпочтительных вариантов осуществления.
Чертежи предназначены только для пояснения вариантов осуществления и не подлежат истолкованию как ограничивающие формулу изобретения. При этом на чертежах представлены:
Фигура 1 - поясняющий пример медицинской визуализирующей системы, которая использует наращиваемую архитектуру процессора.
Фигура 2 - поясняющий пример наращиваемой архитектуры процессора данных для хронологически упорядоченного ввода одиночных событий в поток данных на основании временных меток.
Фигура 3 - поясняющий пример архитектуры процессорного элемента для обработки и хронологически упорядоченного ввода одиночных событий в поток данных на основании временных меток.
Фигура 4 - поясняющий пример процессорного элемента с дигитайзерами, которые оцифровывают электрические сигналы, получаемые из, по меньшей мере, одного сопряженного детектора.
Фигура 5 - поясняющий пример процессорного элемента со схемой усиления и преобразования импульсов (PAC), которая усиливает и/или преобразует сигналы, получаемые из, по меньшей мере, одного сопряженного детектора.
Фигура 6 - поясняющий пример процессорного элемента с компонентами, которые корректируют по энергии и/или корректируют по времени одиночные события.
Фигура 7 - поясняющий пример процессорного элемента с компонентами, которые выполняют селекцию по энергии одиночных событий.
Фигура 8 - поясняющий пример процессорного элемента с сортировщиком, который сортирует по времени пакеты.
Фигура 9 - поясняющий пример сортировщика, содержащего объединитель типа «множество-один», который принимает все пакеты и сортирует их по времени для ввода в поток данных.
Фигура 10 - поясняющий пример сортировщика с древовидным конвейером, который параллельно сортирует по времени пары пакетов посредством множества мультиплексоров.
Фигура 11 - поясняющий пример процессорного элемента с объединителем, который сортирует по времени и объединяет потоки сортированных по времени пакетов.
Фигура 12 - поясняющий пример процессорного элемента, использующего блок проверки неоднозначности.
Фигура 13 - поясняющий пример альтернативной архитектуры процессора с аксиальной топологией.
Фигура 14 - поясняющий пример альтернативной архитектуры процессора с радиальной топологией.
Фигура 15 - поясняющий пример альтернативной архитектуры процессора со звездообразной топологией.
Фигура 16 - поясняющий пример альтернативной архитектуры процессора с распределенной топологией.
На фигуре 1 изображена медицинская визуализирующая система 2 (например, позитронный эмиссионный томографический (PET) сканер), который использует наращиваемую архитектуру процессора. Система 2 содержит множество модулей 4 детекторов излучения, из которых каждый сопряжен с, по меньшей мере, одним процессорным элементом 6 и каждый расположен вокруг области 8 визуализации. Модули 4 располагаются с формированием, по меньшей мере, одного кольца детекторов излучения, которые регистрируют события излучения (например, гамма-кванты), происходящие в области 8 визуализации. Каждый процессорный элемент 6 содержит схему, которая обрабатывает и формирует в пакеты зарегистрированные события излучения (или одиночные события) и хронологически упорядоченно вводит характерные пакеты в поток данных или шину 10 для последующей обработки (например, для обнаружения совпадающих одиночных событий) и реконструкции, по меньшей мере, одного изображения. Поскольку обработка и пакетирование одиночных событий и ввод соответствующих пакетов осуществляются на уровне процессорного элемента, система 2 допускает несложное наращивание за счет числа используемых модулей 4 и/или числа процессорных элементов 6, сопряженных с каждым модулем 4. Система 2 содержит также стол для пациента или опорный механизм 12 для позиционирования объекта исследования (например, человека) в области 8 визуализации до, во время и/или после визуализации (например, по двум координатам и трем координатам).
В ходе подготовки к визуализации посредством системы 2 радиоактивный медицинский препарат вводят в объект исследования. Объект исследования подходящим образом позиционируют внутри области 8 визуализации. Радиоактивный медицинский препарат претерпевает радиоактивный распад, который имеет следствием эмиссию позитрона. Позитрон взаимодействует с, по меньшей мере, одним соседним электроном и аннигилирует, что порождает два противоположно разлетающихся гамма-кванта, каждый с энергией около 511 кэВ. Два противоположно разлетающихся гамма-кванта бомбардируют противоположные детекторные модули 4 параллельно, по существу, в один и тот же момент времени. Поскольку позитроны, образующиеся не эквидистантно от пары детекторов, проходят разные расстояния, хотя и, приблизительно, со скоростью света, то обычно существует небольшое временное смещение между совпадающими событиями.
Типичный детекторный модуль 4 содержит, по меньшей мере, один сцинтилляционный кристалл (не показанный). Каждый сцинтилляционный кристалл порождает сцинтилляцию света, когда подвергается бомбардировке от события излучения, например, гамма-квантом, образованным в результате аннигиляции позитрона. Свет, генерируемый каждым кристаллом, принимается, по меньшей мере, одним фотоприемником (не показанным), сопряженным с соответствующим процессорным элементом 6. Каждый из фотоприемников процессорного элемента 6 преобразует свет в одиночное событие или характерный электрический сигнал. Разумеется, предполагается также возможность применения твердотельных детекторов, которые генерируют электрические сигналы непосредственно в ответ на принятое излучение и систем регистрации других типов.
Одиночные события, получаемые от, по меньшей мере, одного фотоприемника, параллельно передаются и обрабатываются, по меньшей мере, одним процессорным компонентом 14 в параллельных каналах. Подходящая предварительная обработка содержит усиление, фильтрацию и/или преобразование сигналов. Затем предварительно обработанные одиночные события оцифровываются. Полученные оцифрованные одиночные события дополнительно обрабатываются, например, чтобы внести поправку по энергии и/или поправку по времени (например, поправку на временной пробег, смещение) в каждое одиночное событие и/или выполнить селекцию по энергии каждого одиночного события для фильтрации одиночных событий, соответствующих энергии за пределами заданного энергетического окна (например, одиночных событий, полагаемых шумом, рассеянием …). Для поддержки предварительной обработки, оцифровывания и/или дополнительной обработки одиночных событий возможно применение буферов и/или других запоминающих сред.
В каждом процессорном элементе 6 обработанные одиночные события группируются анализатором 16, который определяет различные характеристики каждого одиночного события. Например, анализатор 16 определяет время (например, временную метку), когда было принято каждое событие, идентификационный код кристалла, который принял каждое событие, энергию каждого события, по меньшей мере, одну координату, указывающую положение, в котором было принято каждое событие, и т.п. Анализатор 16 поддерживает также формирование пакета для каждого одиночного события, при этом каждый пакет содержит, по меньшей мере, временную метку и, при желании, по меньшей мере, что-то одно из идентификационного кода кристалла, значения энергии события, координат удара и/или другой информации.
В каждом процессорном элементе 6 пакеты и, при желании, другие пакеты (например, пакеты, доставленные из других процессорных элементов 6, пакеты, содержащие временную метку и системную информацию, пакет, содержащий временную метку и не содержащий информации …) сортируются по времени соответствующим сортировщиком 18 по временным меткам пакетов. Сортированные по времени пакеты, соответствующие каждому процессорному элементу, вводятся в поток 10 данных пакетов соответствующим блоком 20 ввода. В предпочтительном варианте осуществления поток 10 данных обходит каждый из модулей 4 и каждый процессорный элемент 6 в каждом модуле 4, модуль за модулем, по меньшей мере, один раз.
Когда поток 10 данных обходит конкретный процессорный элемент 6, соответствующий блок 20 ввода данного элемента определяет, следует ли ввести и куда ввести пакет, и вводит каждый пакет в хронологическом порядке, по меньшей мере, частично на основании его временной метки в поток 10, если хронологически упорядоченная позиция уже не пропущена. Блок 20 ввода может быть вынужден ожидать хронологически упорядоченной позиции и/или последующего прохождения потока 10 данных для правильного ввода пакета в поток 10 данных. Блок 20 ввода может также переслать пакет в другой процессорный элемент 6 для ввода в поток 10. Например, если надлежащая хронологически упорядоченная позиция пакета в потоке 10 данных уже прошла, то блок 20 ввода может переслать в пакет в процессорный элемент 6, который расположен дальше по ходу потока и который может ввести пакет в поток 10 в его хронологически упорядоченную позицию. В другом примере вместо ожидания хронологически упорядоченной позиции, блок 20 ввода может переслать пакет в процессорный элемент 6, который расположен выше по ходу потока, для ввода в поток 10 данных. Пересылка пакета в другой процессорный элемент 6 способствует выравниванию распределения нагрузки и повышает эффективность, а также корректирует любые задержки, которые приводят к получению асинхронного набора одиночных событий.
Блок 20 ввода обычно определяет хронологически упорядоченную позицию каждого пакета посредством сравнения временных меток пакетов, уже находящихся в потоке 10 данных, с временной меткой пакета, подлежащего вводу в поток 10 данных. При применении подобного алгоритма пакет вводится в поток данных, когда следующий пакет связан с временной меткой, которая является более поздней, чем временная метка вставляемого пакета, и предыдущий пакет связан с временной меткой, которая является более ранней, чем временная метка вставляемого пакета. Блок 20 ввода ожидает (например, включая буферизацию пакетов, при необходимости), чтобы ввести пакет в поток 10 данных, или пересылает пакет дальше по ходу потока, когда текущие пакеты, проходящие процессорный элемент в потоке 10 данных, связаны с временными метками, более поздними, чем временная метка пакета, подлежащего вводу.
Блок 20 ввода продолжает контролировать временные метки, пока не подходит хронологически упорядоченная позиция. В одном примере подобный контроль обеспечивается пакет за пакетом. В другом примере временная разность между временной меткой пакета, проходящего в текущий момент процессорный элемент 6, и временной меткой вводимого пакета определяет частоту проверки пакетов. Когда разность уменьшается, частота отсчета временных меток возрастает, чтобы обеспечить определение хронологически упорядоченной позиции и ввод пакета. При относительно больших разностях временных меток частота снижается для высвобождения циклов обработки, что может повысить общую эффективность. Блока 20 ввода либо ожидает следующего прохода, либо пересылает пакет, когда следующий и предыдущий пакеты в потоке 10 данных связаны с временными метками, более поздними, чем временная метка пакета, подлежащего вводу.
Поток 10 данных из сортированных пакетов пересылается в детектор 22 совпадений, который обрабатывает соседние одиночные события для распознавания пар, по существу, одновременных совпадающих гамма-квантов, которые соответствуют парам событий электрон-позитронной аннигиляции. Упомянутая обработка может содержать, например, фильтрацию по энергии (например, отбрасывание событий регистрации излучения за пределами выбранного окна фильтрации по энергии, находящегося вблизи 511 кэВ) и/или фильтрацию по совпадению (например, отбрасывание пар событий регистрации излучения, отделенных одно от другого интервалом времени, большим, чем выбранный интервал временной фильтрации, или более чем двух событий в пределах общего окна, распознаванием случайного совпадения с использованием метода запаздывающего окна и т.д.). Следует понимать, что детектор 22 совпадений может находиться в процессорном элементе 6, системе реконструкции и/или другой схеме. Например, в одном примере распределенная проверка совпадения выполняется в каждом процессорном элементе 6. Последний процессорный элемент 6 потока 10 отбрасывает одиночные события без совпадающих ему в пару событий. Фильтрованный поток 10 подается в систему реконструкции. Проверка совпадения в конце потока 10 может обеспечиваться посредством FPGA (программируемой пользователем вентильной матрицей) в составе системы реконструкции и/или в последнем процессорном элементе 6 цепи.
Когда детектор 22 совпадения распознает совпадающую пару (например, соседние одиночные события в пределах окна совпадения), то формируется линия срабатывания (LOR), соединяющая совпадающие одиночные события. Известно, что событие электрон-позитронной аннигиляции должно происходить где-то на LOR. Пространственные характеристики LOR и/или пары совпадающих одиночных событий передаются в систему 24 реконструкции, которая реконструирует, по меньшей мере, одно изображение из упомянутых данных с использованием любого подходящего алгоритма реконструкции. Примеры подходящих алгоритмов включают в себя, но без ограничения, метод фильтрованных обратных проекций и/или итеративный метод обратных проекций с коррекцией или без нее. Получаемое реконструированное изображение может отображаться на мониторе, сохраняться, печататься на пленке, архивироваться, передаваться врачу (например, рентгенологу) и т.д.
На фигуре 2 представлена примерная наращиваемая архитектура процессора данных для хронологически упорядоченного ввода одиночных событий (упакованных в пакеты) в поток 10 данных на основе связанных временных меток. В настоящем примере система 2 содержит N модулей 4, каждый из которых содержит L процессорных элементов 6, где N и L являются целыми числами, равными или большими, чем единица. Архитектура процессора данных системы 2 допускает наращивание подходящим выбором N и L.
Когда событие излучения (например, гамма-квант, порожденный аннигиляцией позитрона) принимается посредством (при бомбардировке) одного из модулей 4, измерительно-преобразовательные компоненты (например, по меньшей мере, один сцинтиллятор, фотоприемник, твердотельный детектор, …), связанные с процессорными элементами 6, генерируют, по меньшей мере, один характерный электрический сигнал или одиночное событие. Кроме того, каждый процессорный элемент 6 определяет различные характеристики соответствующих одиночных событий и упаковывает каждое одиночное событие в пакет, который содержит, по меньшей мере, временную метку, указывающую время, когда было принято событие, и, при желании, по меньшей мере, что-то одно из идентификационного кода детектора, который принял событие, энергии события, по меньшей мере, одной координаты, указывающей позицию события, и/или другую информацию.
Каждый процессорный элемент 6 сортирует по времени соответствующие пакеты и хронологически упорядоченно вводит их в поток 10 данных. В предпочтительном варианте осуществления хронологически упорядоченная позиция определяется сравнением временных меток пакетов, уже находящихся в потоке 10 данных, с временной меткой пакета, вводимого в поток 10 данных. Хронологически упорядоченная позиция любого данного пакета, вводимого в поток 10 данных, находится между пакетом с временной меткой, более ранней, чем временная метка вводимого пакета, и пакетом с временной меткой, более поздней, чем временная метка вводимого пакета.
В показанном варианте осуществления каждый процессорный элемент 6 функционально связан потоком 10 данных с, по меньшей мере, одним соседним процессорным элементом 6, находящимся в другом модуле 4 детектора излучения. В подобной конфигурации, по существу, все процессорные элементы 6 соединены с двумя соседними процессорными элементами 6, а именно процессорным элементом 6, находящимся выше по ходу потока в предшествующем модуле 4 детектора излучения, и процессорным элементом 6, находящимся дальше по ходу потока в последующем по ходу потока модуле 4 детектора излучения.
1
J
1
K
1
I
2
1
2
2
1
N
1
1
L
N
Например, процессорный элемент «PE», находящийся в модуле «MODULE» детектора излучения, сообщается с процессорным элементом «PE», находящимся в последующем модуле «MODULE» детектора излучения, и процессорным элементом «PE», находящимся в предшествующем модуле «MODULE» детектора излучения. В другом примере процессорный элемент «PE», находящийся в модуле «MODULE» детектора излучения, сообщается с процессорным элементом «PE», находящимся в последующем модуле «MODULE» детектора излучения, и процессорным элементом «PE», находящимся в предшествующем модуле «MODULE» детектора излучения. Исключения, по меньшей мере, содержат процессорный элемент «PE», находящийся в модуле «MODULE» детектора излучения, и процессорный элемент «PE», находящийся в модуле «MODULE» детектора излучения. Упомянутые два процессорных элемента 6 представляют собой начальный процессорный элемент и конечный процессорный элемент, и оба связаны только с одним соседним процессорным элементом 6, находящимся в другом модуле 4 детектора излучения.
Поток 10 данных изображен на фигуре 2 в виде единственного пути, который последовательно обходит все процессорные элементы 6, модуль за модулем. Однако следует понимать, что возможны различные другие тракты данных. Например, процессорные элементы 6 и/или модули 4 детекторов излучения могут разделяться на несколько групп, при этом каждая группа может содержать собственный тракт и/или совместно использовать, по меньшей мере, один процессорный элемент 6 (например, начальный процессорный элемент 6, конечный процессорный элемент 6 …). В другом примере, по меньшей мере, один из процессорных элементов 6 может быть исключен из потока 10 данных. Например, нефункциональный или неправильно функционирующий процессорный элемент 6 может быть обойден. По существу, возможно формирование любого числа трактов данных посредством различного соединения процессорных элементов 6 любым образом.
Дополнительные тракты 30 данных формируют внутри каждого модуля 4 детектора излучения посредством связи процессорных элементов 6 в каждом модуле 4 детектора излучения. Тракты 30 служат в качестве обходных трактов для движения пакетов между процессорными элементами 6, например, для движения пакета к процессорному элементу 30, который может более эффективно вводить пакет в хронологически упорядоченную позицию в потоке 10. Например, каждый процессорный элемент 6 может пересылать данные в следующий процессорный элемент 6 в потоке 10, как описано выше. Это нарушало бы порядок пакетов в пакете 10, однако тогда процессорные элементы 6 могли бы использовать, по меньшей мере, один тракт 30 данных для пересылки, по меньшей мере, части последних поступивших данных в подходящий процессорный элемент 6 для коррекции нарушения.
В другом примере в варианте осуществления, в котором сканер 2 использует фотоэлектронные умножители (ФЭУ), одиночное событие может задерживаться вследствие изменения скоростей привязки данных, связанных с привязкой зарегистрированных событий к кристаллам. Подобная задержка может привести к сценарию, в котором соответствующий пакет может быть введен только в его хронологически упорядоченную позицию в потоке 10 данных посредством пересылки в процессорный элемент 6, расположенный дальше по ходу потока, который ранее не прослеживал хронологически упорядоченной позиции в проходе потока 10 данных и/или посредством ожидания следующего прохода потока 10 данных в многопроходной архитектуре. В первом случае пакет пересылается по, по меньшей мере, тракту 30 в подходящий процессорный элемент 6, который может ввести пакет в его хронологически упорядоченное место в потоке 10 данных. В последнем случае пакет запоминается в буферной памяти, пока не наступит момент, когда его можно ввести в его хронологически упорядоченное место в потоке 10 данных.
В варианте осуществления, в котором сканер 2 использует цифровые фотодиоды, подобная коррекция, связанная с привязкой событий к кристаллам, обычно не обязательна, поскольку, по существу, аналогичное количество времени затрачивается на определение каждой позиции каждого события на каждом соответствующем кристалле. В результате привязка события к позиции обычно не привносит задержек, изменяющихся от одиночного события к одиночному событию. В описанных случаях тракты 30 могут служить для привнесения задержек. Например, пакеты в конце кольца ожидают более продолжительный период времени перед вводом в поток 10 данных. В результате может потребоваться буфер для буферизации пакетов до того, пока поток 10 данных не пройдет соответствующий модуль 4 детектора излучения. Пакеты могут проталкиваться по трактам 30 для поддержки распределения пакетов в восходящем направлении по ходу потока для более равномерного ввода в поток 10 данных. Применение трактов 30, по существу, может ослабить проблему переполнения буфера и сбалансировать нагрузку.
Кроме пакетов с информацией, касающейся одиночных событий, в поток 10 данных вводятся также пакеты с другой информацией. Например, в поток 10 вводится, по меньшей мере, один фиктивный пакет с, по меньшей мере, временной меткой. Как указано числовой позицией 32, такие пакеты, по крайней мере, вводятся в поток 10 в виде, по меньшей мере, одного начального пакета. Упомянутые пакеты помогают определять хронологически упорядоченные позиции в потоке 10. Например, при применении алгоритма, который определяет хронологически упорядоченные позиции в потоке 10 сравнением временных меток соседних пакетов, уже находящихся в потоке 10, с временной меткой пакета вводимого в поток 10, обеспечение начального фиктивного пакета с, по меньшей мере, временной меткой, обеспечивает пакет, который иначе отсутствовал бы, для подобного сравнения.
Хотя на фигуре 2 ввод фиктивного пакета показан числовой позицией 32, следует понимать, что такие пакеты могут быть введены в любой момент и/или в любой позиции в потоке 10 данных. Обычно временные метки подобных пакетов выбраны не произвольно, чтобы ослабить проблему нарушения хронологической последовательности потока 10 данных. В месте, обозначенном числовой позицией 32, периодически вводятся также пакеты синхронизации для предотвращения блокирования шины. Возможность ввода фиктивных пакетов в поток 10 данных эффективно служит для обеспечения непрерывности потока пакетов, обходящих каждый процессорный элемент 6 и ослабления проблем в ситуациях, в которых невозможно выполнение сравнения. В других примерах, в, по меньшей мере, один «фиктивный» пакет можно включать дополнительную информацию, например, системную информацию. Например, в пакет вместе с временной меткой могут быть также включены позиция опоры пациента, поступающая от датчика в конкретное время, файлы регистрации ошибок, графики планово-профилактического обслуживания, температуры и т.п.
Получаемый сортированный по времени поток данных об одиночных событиях пересылается в схему 22 детектирования совпадений, которая обрабатывает соседние сортированные по времени одиночные события и распознает пары, по существу, одновременных событий образования гамма-квантов. Схема детектирования совпадений может находится снаружи (например, в составе системы реконструкции) модулей 4 и/или внутри одного из процессорных элементов 6 (например, внутри последнего процессорного элемента 6 в потоке 10 данных). Реализация схемы детектирования совпадений в составе процессорного элемента 6 позволяет отфильтровывать несовпадающие одиночные события из потока 10. В результате несовпадающие одиночные события могут отбрасываться до пересылки одиночных событий в систему реконструкции. Вышеописанное построение снижает конвейерную нагрузку и смягчает проблему обязательности проверки на совпадение в системе реконструкции.
На фигуре 3 изображена примерная архитектура процессорного элемента. Как показано, каждый процессорный элемент 6 связан с, по меньшей мере, одним детектором 34. Детекторы 34 генерируют соответствующее одиночное событие, относящееся к каждому зарегистрированному событию излучения. Одиночные события дополнительно параллельно обрабатываются процессорными компонентами 14 с приданием подходящего формата для ввода в поток 10 процессорным блоком 38. Подобная обработка содержит, по меньшей мере, что-то одно из усиления, фильтрации, преобразования, оцифровки, различных видов коррекции и/или селекции по энергии. Кроме того, процессорные компоненты 14 определяют различные характеристики, относящиеся к одиночным событиям, например, идентификационный код детектора, который принял событие, энергию события, координаты бомбардировки на модуле 4 детектора излучения и временную метку, показывающую время бомбардировки, которые могут быть определены и связаны с каждым одиночным событием, например, в пакете.
Процессорные компоненты 14 асинхронно пересылают поток пакетов в процессорный блок 38, который сортирует по времени пакеты и вводит их в поток 10 данных на основании временной метки. Процессорный блок 38 получает также пакеты из других процессорных элементов 6 по тракту 30. Упомянутые пакеты сортируются вместе с пакетами из процессорных компонентов 14. Следует понимать, что каждый процессорный блок 38 может содержать специализированные и/или многофункциональные логические схемы, содержащие, по меньшей мере, одну программируемую вентильную матрицу (PGA), по меньшей мере, одну специализированную интегральную схему (ASIC) и/или т.п.
После получения пакетов процессорный блок 38 хронологически упорядоченно вводит каждый пакет в поток 10 данных и/или пересылает пакеты в другие процессорные блоки 6 по тракту 30 для их ввода. Как пояснялось выше, хронологически упорядоченная позиция определяется сравнением временных меток пакетов, уже находящихся в потоке 10, с временной меткой пакета, вводимого в поток 10. Когда временные метки соседних пакетов в потоке 10 обе являются более ранними, чем временная метка вводимого пакета, процессорный блок 6 удерживает (например, записывает в буфер, память …) пакет, пока не подойдет хронологически упорядоченная позиция. Когда временная метка одного пакета в потоке 10 является более ранней, чем временная метка вводимого пакета, и временная метка следующего пакета в потоке 10 является более поздней, чем временная метка вводимого пакета, процессорный блок 38 вводит пакет между упомянутыми двумя пакетами в поток 10. Когда временные метки соседних пакетов в потоке 10 обе являются более поздними, чем временная метка вводимого пакета, процессорный блок 38 пересылает пакет в процессорный блок 38 в процессорном элементе, расположенном дальше по ходу потока, и/или вводит пакет во время второго прохода потока 10.
На фигурах 4-7 изображены подходящие логические схемы, исполняемые процессорными компонентами 14 в соответствии с различными вариантами осуществления. Как показано на фигуре 4, в одном варианте осуществления каждый процессорный компонент 14 содержит дигитайзер 38, который оцифровывает электрический сигнал, пересылаемый из соответствующего детектора. На фигуре 5 дополнительно показана добавочная схема 40 усиления и преобразования импульсов (PAC), которая усиливает (например, для повышения разрешающей способности или расширения динамического диапазона) и/или преобразует сигналы от фото- или других детекторов 34. На фигуре 6 изображен другой вариант осуществления, который содержит элемент 42, который вводит поправку по энергии в каждое одиночное событие для изменения масштаба изменений кажущейся энергии, и элемент 44, который вводит поправку по времени (например, поправку на временной пробег, смещение) в каждое одиночное событие, для регулировки существующих между детекторами относительных разностей времен обработки и времен передачи. На фигуре 7 изображен вариант осуществления, содержащий вентиль 46, применяемый для сравнения с порогом уровней энергии. Вентиль 46 сравнивает измеренную энергию события с заданным энергетическим окном и пропускает события только с уровнями энергии в пределах окна. События с уровнями энергии за пределами окна считаются шумами, рассеянием и т.п.и отбрасываются.
На фигуре 8 изображен вариант осуществления, в котором сортировщик 18 сортирует по времени пакеты, поступающие из процессорных компонентов 14 и/или других процессорных элементов 6, и пересылает их в процессорный блок 38 для ввода в поток 10. Сортировщик 18 может применять разнообразные методы сортировки. Например, сортировщик 18 может содержать, по меньшей мере, один компонент (например, мультиплексоры, буферы …), который поддерживает сортировку пакетов в хронологическом порядке на основании временных меток. В одном примере сортировщик 18 содержит единственный объединитель 48 типа «множество - один», который принимает все пакеты и сортирует их для ввода в поток 10 данных. Данный вариант показан на фигуре 9.
На фигуре 10 изображен древовидный сортировочный конвейер. В таком конвейере пары пакетов сортируются параллельно посредством множества мультиплексоров 50 («MUX 50»). Сортированные пары из, по меньшей мере, двух мультиплексоров 50 подаются в другой мультиплексор 50, который сортирует полученные пакеты. Этапы получения наборов пакетов, их сортировки и пересылки отсортированного набора в другой мультиплексор 50 продолжаются, пока все пакеты не будут сортированы и готовы к вводу в поток 10. Для краткости на фигуре 10 изображены три уровня сортировки; однако следует понимать, что предполагается возможность применения любого числа уровней сортировки. Кроме того, подходящие мультиплексоры не ограничены объединительными операциями типа два к одному.
На фигуре 11 изображен альтернативный вариант осуществления, в котором сортировщик 18 применяется для сортировки и объединения пакетов из процессорных компонентов 14, и полученные и сортированные пакеты сортируются и объединяются с пакетами, получаемыми по тракту 30 объединителем 48, который находится снаружи сортировщика. Хотя объединитель 48 показан в виде отдельного компонента, следует понимать, что объединитель 48 может находиться в качестве альтернативы в процессорном блоке 38. На фигуре 12 изображен вариант осуществления, содержащий добавочный блок 52 проверки неоднозначности. Блок 52 проверки неоднозначности обычно применяют вместе с системами на базе ФЭУ, в которой процессорные элементы получают данные из перекрывающихся участков детектора. Например, в системах на базе ФЭУ сигнал из одного ФЭУ подается в несколько смежных каналов (т.е. перекрывающиеся 7 колец логических схем Ангера). В результате этого регистрация одного и того же события возможна, по меньшей мере, двумя каналами. Блок 52 проверки неоднозначности способствует определению местоположения и решению задач, связанных с обработкой, при подобной регистрации несколькими каналами.
Следует понимать, что вышеприведенные примеры представлены в целях пояснения и не являются ограничивающими. Предполагается также возможность применения множества других конфигураций для сортировки и объединения одиночных событий и/или пакетов.
На фигурах 13-16 изображены различные другие архитектуры процессоров, применяемые со сканером 2. На фигуре 13 показана аксиальная топология считывания. Эта топология содержит множество модулей 4 детекторов излучения, каждый из которых содержит, по меньшей мере, один процессорный элемент 6. Процессорные элементы 6, находящиеся в каждом модуле 4, соединены друг с другом для формирования множества отдельных последовательных трактов данных к общему компоненту 54, который сортирует и объединяет пакеты и/или проверяет совпадающие события. Например, если сканер 2 выполнен с X модулями 4 детекторов излучения (где X является целым числом, равным или большим, чем единица), то будет X трактов данных, по одному от каждого модуля 4, передающих одиночные события в общий компонент 54.
На фигуре 14 изображена радиальная топология считывания. Такая топология также содержит множество модулей 4 детекторов излучения, каждый с, по меньшей мере, одним процессорным элементом 12. В этом примере процессорные элементы 6, находящиеся в разных (например, соседних) модулях 4 детекторов излучения, соединены друг с другом для формирования множества отдельных последовательных трактов данных к общему компоненту 54. В приведенном варианте осуществления число процессорных элементов 6 в каждом модуле 4 определяет число трактов данных к общему компоненту 54.
Например, если каждый модуль 4 детектора излучения содержит Y процессорных элементов 6 (где Y является целым числом, равным или большим, чем единица), то будет Y трактов данных, по одному от каждого модуля 4, передающих одиночные события и/или пакеты в общий компонент 54.
На фигуре 15 изображена архитектура со звездообразной топологией, в которой каждый процессорный элемент 6 по отдельности пересылает одиночные события и/или пакеты в общий компонент 54, который выполняет вышеописанные операции обработки в единственном компоненте или матрице компонентов, а не в распределенных компонентах.
На фигуре 16 изображено решение с распределенной топологией, в которой одиночные события и/или пакеты из, по меньшей мере, двух процессорных элементов 6 сортируются, объединяются и проверяются на совпадение посредством множества компонентов 54 сортировки, объединения и/или проверки на совпадение, которые сходятся в один базовый компонент 56.
Выше изобретение описано со ссылками на предпочтительные варианты осуществления. После прочтения и глубокого изучения вышеприведенного подробного описания специалисту могут стать очевидными модификации и варианты. Предполагается, что изобретение следует толковать как охватывающее все подобные модификации и варианты в той мере, насколько они находятся в пределах объема притязаний прилагаемой формулы изобретения или ее эквивалентов.